aboutsummaryrefslogtreecommitdiffstats
path: root/public/prism/prism-tsx.js
blob: e6104c7ac99bbe8a635317a71cb0c5e3483fbec2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
(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);