-
-
Notifications
You must be signed in to change notification settings - Fork 33
/
tsx.js
29 lines (26 loc) · 1010 Bytes
/
tsx.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// @ts-nocheck
import refractorJsx from './jsx.js'
import refractorTypescript from './typescript.js'
tsx.displayName = 'tsx'
tsx.aliases = []
/** @type {import('../core.js').Syntax} */
export default function tsx(Prism) {
Prism.register(refractorJsx)
Prism.register(refractorTypescript)
;(function (Prism) {
var typescript = Prism.util.clone(Prism.languages.typescript)
Prism.languages.tsx = Prism.languages.extend('jsx', typescript)
// doesn't work with TS because TS is too complex
delete Prism.languages.tsx['parameter']
delete Prism.languages.tsx['literal-property']
// This will prevent collisions between TSX tags and TS generic types.
// Idea by https://github.com/karlhorky
// Discussion: https://github.com/PrismJS/prism/issues/2594#issuecomment-710666928
var tag = Prism.languages.tsx.tag
tag.pattern = RegExp(
/(^|[^\w$]|(?=<\/))/.source + '(?:' + tag.pattern.source + ')',
tag.pattern.flags
)
tag.lookbehind = true
})(Prism)
}