knowledgebase_law/node_modules/refractor/lang/tsx.js
2025-04-11 11:47:09 -04:00

25 lines
966 B
JavaScript

'use strict'
var refractorJsx = require('./jsx.js')
var refractorTypescript = require('./typescript.js')
module.exports = tsx
tsx.displayName = 'tsx'
tsx.aliases = []
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)
}