Implementation
Mode latex(Highlight hljs) {
final Mode _mode0 = Mode();
final Mode _mode1 = Mode();
final Mode _mode2 = Mode();
final Mode _mode3 = Mode();
final Mode _mode4 = Mode();
final Mode _mode5 = Mode();
final Mode _mode6 = Mode();
final Mode _mode7 = Mode();
final Mode _mode8 = Mode();
final Mode _mode9 = Mode();
final Mode _mode10 = Mode();
final Mode _mode11 = Mode();
final Mode _mode12 = Mode();
final Mode _mode13 = Mode();
final Mode _mode14 = Mode();
final Mode _mode15 = Mode();
final Mode _mode16 = Mode();
final Mode _mode17 = Mode();
final Mode _mode18 = Mode();
final Mode _mode19 = Mode();
final Mode _mode20 = Mode();
final Mode _mode21 = Mode();
final Mode _mode22 = Mode();
final Mode _mode23 = Mode();
_mode0.begin = r'\s+';
_mode0.relevance = 0;
_mode1.begin = r'\{';
_mode1.end = r'\}';
_mode1.relevance = 0;
_mode1.contains = [
_mode2,
_mode3,
_mode16,
_mode17,
_mode18,
_mode19,
_mode20,
];
_mode1.endsParent = true;
_mode2.begin = r'\{';
_mode2.end = r'\}';
_mode2.relevance = 0;
_mode2.contains = [
r'self',
_mode3,
_mode16,
_mode17,
_mode18,
_mode19,
_mode20,
];
_mode3.scope = r'keyword';
_mode3.begin = r'\\';
_mode3.relevance = 0;
_mode3.contains = [_mode4, _mode5, _mode6, _mode13];
_mode4.endsParent = true;
_mode4.begin =
r'(?:(?:NeedsTeXFormat|RequirePackage|GetIdInfo)(?![a-zA-Z@:_])|Provides(?:Expl)?(?:Package|Class|File)(?![a-zA-Z@:_])|(?:DeclareOption|ProcessOptions)(?![a-zA-Z@:_])|(?:documentclass|usepackage|input|include)(?![a-zA-Z@:_])|makeat(?:letter|other)(?![a-zA-Z@:_])|ExplSyntax(?:On|Off)(?![a-zA-Z@:_])|(?:new|renew|provide)?command(?![a-zA-Z@:_])|(?:re)newenvironment(?![a-zA-Z@:_])|(?:New|Renew|Provide|Declare)(?:Expandable)?DocumentCommand(?![a-zA-Z@:_])|(?:New|Renew|Provide|Declare)DocumentEnvironment(?![a-zA-Z@:_])|(?:(?:e|g|x)?def|let)(?![a-zA-Z@:_])|(?:begin|end)(?![a-zA-Z@:_])|(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph)(?![a-zA-Z@:_])|caption(?![a-zA-Z@:_])|(?:label|(?:eq|page|name)?ref|(?:paren|foot|super)?cite)(?![a-zA-Z@:_])|(?:alpha|beta|[Gg]amma|[Dd]elta|(?:var)?epsilon|zeta|eta|[Tt]heta|vartheta)(?![a-zA-Z@:_])|(?:iota|(?:var)?kappa|[Ll]ambda|mu|nu|[Xx]i|[Pp]i|varpi|(?:var)rho)(?![a-zA-Z@:_])|(?:[Ss]igma|varsigma|tau|[Uu]psilon|[Pp]hi|varphi|chi|[Pp]si|[Oo]mega)(?![a-zA-Z@:_])|(?:frac|sum|prod|lim|infty|times|sqrt|leq|geq|left|right|middle|[bB]igg?)(?![a-zA-Z@:_])|(?:[lr]angle|q?quad|[lcvdi]?dots|d?dot|hat|tilde|bar)(?![a-zA-Z@:_]))';
_mode5.endsParent = true;
_mode5.begin =
r'(?:__)?[a-zA-Z]{2,}_[a-zA-Z](?:_?[a-zA-Z])+:[a-zA-Z]*(?![a-zA-Z:_])|[lgc]__?[a-zA-Z](?:_?[a-zA-Z])*_[a-zA-Z]{2,}(?![a-zA-Z:_])|[qs]__?[a-zA-Z](?:_?[a-zA-Z])+(?![a-zA-Z:_])|use(?:_i)?:[a-zA-Z]*(?![a-zA-Z:_])|(?:else|fi|or):(?![a-zA-Z:_])|(?:if|cs|exp):w(?![a-zA-Z:_])|(?:hbox|vbox):n(?![a-zA-Z:_])|::[a-zA-Z]_unbraced(?![a-zA-Z:_])|::[a-zA-Z:](?![a-zA-Z:_])';
_mode6.endsParent = true;
_mode6.variants = [_mode7, _mode8, _mode9, _mode10, _mode11, _mode12];
_mode7.begin = r'\^{6}[0-9a-f]{6}';
_mode8.begin = r'\^{5}[0-9a-f]{5}';
_mode9.begin = r'\^{4}[0-9a-f]{4}';
_mode10.begin = r'\^{3}[0-9a-f]{3}';
_mode11.begin = r'\^{2}[0-9a-f]{2}';
_mode12.begin = r'\^{2}[\u0000-\u007f]';
_mode13.endsParent = true;
_mode13.relevance = 0;
_mode13.variants = [_mode14, _mode15];
_mode14.begin = r'[a-zA-Z@]+';
_mode15.begin = r'[^a-zA-Z@]?';
_mode16.scope = r'params';
_mode16.relevance = 0;
_mode16.begin = r'#+\d?';
_mode17.variants = [_mode7, _mode8, _mode9, _mode10, _mode11, _mode12];
_mode18.scope = r'built_in';
_mode18.relevance = 0;
_mode18.begin = r'[$&^_]';
_mode19.scope = r'meta';
_mode19.begin = r'% ?!(T[eE]X|tex|BIB|bib)';
_mode19.end = r'$';
_mode19.relevance = 10;
_mode20.scope = r'comment';
_mode20.begin = r'%';
_mode20.end = r'$';
_mode20.contains = [_mode21, _mode22];
_mode20.relevance = 0;
_mode21.scope = r'doctag';
_mode21.begin = r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)';
_mode21.end = r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):';
_mode21.excludeBegin = true;
_mode21.relevance = 0;
_mode22.begin =
r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}";
_mode23.begin = r'\[';
_mode23.end = r'\]';
_mode23.endsParent = true;
_mode23.relevance = 0;
_mode23.contains = [
_mode2,
_mode3,
_mode16,
_mode17,
_mode18,
_mode19,
_mode20,
];
return Mode(
name: r'LaTeX',
aliases: [r'tex'],
contains: [
Mode(
begin: r'\\verb(?![a-zA-Z@:_])',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\verb'},
relevance: 0,
contains: [_mode0],
starts: Mode(
contains: [
hljs.END_SAME_AS_BEGIN(
Mode(
scope: r'string',
begin: r'(.|\r?\n)',
end: r'(.|\r?\n)',
excludeBegin: true,
excludeEnd: true,
endsParent: true,
),
),
],
),
),
Mode(
begin: r'\\lstinline(?![a-zA-Z@:_])',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\lstinline'},
relevance: 0,
contains: [_mode0],
starts: Mode(
contains: [
hljs.END_SAME_AS_BEGIN(
Mode(
scope: r'string',
begin: r'(.|\r?\n)',
end: r'(.|\r?\n)',
excludeBegin: true,
excludeEnd: true,
endsParent: true,
),
),
],
),
),
Mode(
begin: r'\\mint(?![a-zA-Z@:_])',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\mint'},
relevance: 0,
contains: [_mode0],
starts: Mode(
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode1],
starts: Mode(
contains: [
hljs.END_SAME_AS_BEGIN(
Mode(
scope: r'string',
begin: r'(.|\r?\n)',
end: r'(.|\r?\n)',
excludeBegin: true,
excludeEnd: true,
endsParent: true,
),
),
],
),
),
),
),
Mode(
begin: r'\\mintinline(?![a-zA-Z@:_])',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\mintinline'},
relevance: 0,
contains: [_mode0],
starts: Mode(
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode1],
starts: Mode(
contains: [
Mode(
relevance: 0,
begin: r'\{',
starts: Mode(
endsParent: true,
contains: [
Mode(
scope: r'string',
end: r'(?=\})',
endsParent: true,
contains: [
Mode(
begin: r'\{',
end: r'\}',
relevance: 0,
contains: [r'self'],
),
],
),
],
),
),
hljs.END_SAME_AS_BEGIN(
Mode(
scope: r'string',
begin: r'(.|\r?\n)',
end: r'(.|\r?\n)',
excludeBegin: true,
excludeEnd: true,
endsParent: true,
),
),
],
),
),
),
),
Mode(
begin: r'\\url(?![a-zA-Z@:_])',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\url'},
relevance: 0,
contains: [_mode0],
starts: Mode(
contains: [
Mode(
relevance: 0,
begin: r'\{',
starts: Mode(
endsParent: true,
contains: [
Mode(
scope: r'link',
end: r'(?=\})',
endsParent: true,
contains: [
Mode(
begin: r'\{',
end: r'\}',
relevance: 0,
contains: [r'self'],
),
],
),
],
),
),
Mode(
relevance: 0,
begin: r'\{',
starts: Mode(
endsParent: true,
contains: [
Mode(
scope: r'link',
end: r'(?=\})',
endsParent: true,
contains: [
Mode(
begin: r'\{',
end: r'\}',
relevance: 0,
contains: [r'self'],
),
],
),
],
),
),
],
),
),
Mode(
begin: r'\\hyperref(?![a-zA-Z@:_])',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\hyperref'},
relevance: 0,
contains: [_mode0],
starts: Mode(
contains: [
Mode(
relevance: 0,
begin: r'\{',
starts: Mode(
endsParent: true,
contains: [
Mode(
scope: r'link',
end: r'(?=\})',
endsParent: true,
contains: [
Mode(
begin: r'\{',
end: r'\}',
relevance: 0,
contains: [r'self'],
),
],
),
],
),
),
],
),
),
Mode(
begin: r'\\href(?![a-zA-Z@:_])',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\href'},
relevance: 0,
contains: [_mode0],
starts: Mode(
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode23],
starts: Mode(
contains: [
Mode(
relevance: 0,
begin: r'\{',
starts: Mode(
endsParent: true,
contains: [
Mode(
scope: r'link',
end: r'(?=\})',
endsParent: true,
contains: [
Mode(
begin: r'\{',
end: r'\}',
relevance: 0,
contains: [r'self'],
),
],
),
],
),
),
],
),
),
),
),
Mode(
begin: r'\\begin(?=[ ]*(\r?\n[ ]*)?\{verbatim\})',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\begin'},
relevance: 0,
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode1],
starts: Mode(scope: r'string', end: r'(?=\\end\{verbatim\})'),
),
),
Mode(
begin: r'\\begin(?=[ ]*(\r?\n[ ]*)?\{filecontents\})',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\begin'},
relevance: 0,
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode1],
starts: Mode(
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode1],
starts: Mode(scope: r'string', end: r'(?=\\end\{filecontents\})'),
),
),
),
),
Mode(
begin: r'\\begin(?=[ ]*(\r?\n[ ]*)?\{Verbatim\})',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\begin'},
relevance: 0,
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode1],
starts: Mode(
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode23],
starts: Mode(scope: r'string', end: r'(?=\\end\{Verbatim\})'),
),
),
),
),
Mode(
begin: r'\\begin(?=[ ]*(\r?\n[ ]*)?\{BVerbatim\})',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\begin'},
relevance: 0,
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode1],
starts: Mode(
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode23],
starts: Mode(scope: r'string', end: r'(?=\\end\{BVerbatim\})'),
),
),
),
),
Mode(
begin: r'\\begin(?=[ ]*(\r?\n[ ]*)?\{LVerbatim\})',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\begin'},
relevance: 0,
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode1],
starts: Mode(
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode23],
starts: Mode(scope: r'string', end: r'(?=\\end\{LVerbatim\})'),
),
),
),
),
Mode(
begin: r'\\begin(?=[ ]*(\r?\n[ ]*)?\{verbatim\*\})',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\begin'},
relevance: 0,
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode1],
starts: Mode(scope: r'string', end: r'(?=\\end\{verbatim\*\})'),
),
),
Mode(
begin: r'\\begin(?=[ ]*(\r?\n[ ]*)?\{filecontents\*\})',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\begin'},
relevance: 0,
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode1],
starts: Mode(
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode1],
starts: Mode(
scope: r'string',
end: r'(?=\\end\{filecontents\*\})',
),
),
),
),
),
Mode(
begin: r'\\begin(?=[ ]*(\r?\n[ ]*)?\{Verbatim\*\})',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\begin'},
relevance: 0,
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode1],
starts: Mode(
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode23],
starts: Mode(scope: r'string', end: r'(?=\\end\{Verbatim\*\})'),
),
),
),
),
Mode(
begin: r'\\begin(?=[ ]*(\r?\n[ ]*)?\{BVerbatim\*\})',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\begin'},
relevance: 0,
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode1],
starts: Mode(
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode23],
starts: Mode(scope: r'string', end: r'(?=\\end\{BVerbatim\*\})'),
),
),
),
),
Mode(
begin: r'\\begin(?=[ ]*(\r?\n[ ]*)?\{LVerbatim\*\})',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\begin'},
relevance: 0,
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode1],
starts: Mode(
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode23],
starts: Mode(scope: r'string', end: r'(?=\\end\{LVerbatim\*\})'),
),
),
),
),
Mode(
begin: r'\\begin(?=[ ]*(\r?\n[ ]*)?\{minted\})',
keywords: {r'$pattern': r'\\[a-zA-Z]+', r'keyword': r'\begin'},
relevance: 0,
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode1],
starts: Mode(
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode23],
starts: Mode(
contains: [_mode0],
starts: Mode(
relevance: 0,
contains: [_mode1],
starts: Mode(scope: r'string', end: r'(?=\\end\{minted\})'),
),
),
),
),
),
),
_mode3,
_mode16,
_mode17,
_mode18,
_mode19,
_mode20,
],
);
}