-
-
Notifications
You must be signed in to change notification settings - Fork 47
Expand file tree
/
Copy pathtsx.js
More file actions
32 lines (29 loc) · 1.03 KB
/
tsx.js
File metadata and controls
32 lines (29 loc) · 1.03 KB
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
30
31
32
// @ts-nocheck
/**
* @import {Refractor} from '../lib/core.js'
*/
import refractorJsx from './jsx.js'
import refractorTypescript from './typescript.js'
tsx.displayName = 'tsx'
tsx.aliases = []
/** @param {Refractor} Prism */
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)
}