16 lines
668 B
JavaScript
16 lines
668 B
JavaScript
|
(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));
|