tsxLanguage top-level constant
Grammar
const tsxLanguage
TypeScript with JSX elements, as used by React.
Implementation
const tsxLanguage = Grammar(
name: 'tsx',
fileExtensions: ['tsx'],
signatures: [
r'\breturn\s*\(?\s*<[A-Za-z>]',
r'<[A-Z][\w.]*(?:\s+[\w-]+=|\s*/?>)',
r'\bclassName=',
r'''\bfrom\s+['"]react['"]''',
r'\b(?:interface|type)\s+\w*Props\b',
r':\s*(?:React\.)?(?:FC|ReactNode|JSX\.Element)\b',
],
rules: jsxRules,
repository: {
...jsRepository,
...jsxRepository,
'words': [
...jsMemberRules,
KeywordRule(
{
Scopes.keyword: [...jsKeywords, ...tsExtraKeywords],
Scopes.literal: jsLiterals,
Scopes.variableLanguage: jsVariables,
Scopes.typeBuiltin: [...jsBuiltins, ...tsExtraBuiltins],
},
word: r'(?<![\w$#])#?[A-Za-z_$][\w$]*',
otherwise: jsWordFallbacks,
),
],
},
);