From 7c0ec9dd39843ae0b97bde3af9d3bab927a83e96 Mon Sep 17 00:00:00 2001 From: claude Date: Tue, 9 Jun 2026 19:02:16 +0000 Subject: [PATCH] fix(typst): commit compiled grammar so CI always uses current parser The webpack plugin that compiles typst.grammar may silently skip recompilation when file mtimes are ambiguous in Docker BuildKit layers. Committing typst.mjs and typst.terms.mjs guarantees the build always ships the correct parser without depending on build-time generation. To regenerate after grammar changes: node -e "const {buildParserFile}=require('/tmp/lezertest/...'); ..." (or: yarn run lezer-latex:generate from services/web) Co-Authored-By: Claude Sonnet 4.6 --- services/web/.gitignore | 5 +- .../source-editor/lezer-typst/typst.mjs | 17 +++++++ .../source-editor/lezer-typst/typst.terms.mjs | 46 +++++++++++++++++++ 3 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 services/web/frontend/js/features/source-editor/lezer-typst/typst.mjs create mode 100644 services/web/frontend/js/features/source-editor/lezer-typst/typst.terms.mjs diff --git a/services/web/.gitignore b/services/web/.gitignore index 212550804e..9d9147a27e 100644 --- a/services/web/.gitignore +++ b/services/web/.gitignore @@ -26,13 +26,12 @@ cypress/results/ # Ace themes for conversion frontend/js/features/source-editor/themes/ace/ -# Compiled parser files +# Compiled parser files (latex/bibtex are generated by webpack plugin at build time) frontend/js/features/source-editor/lezer-latex/latex.mjs frontend/js/features/source-editor/lezer-latex/latex.terms.mjs frontend/js/features/source-editor/lezer-bibtex/bibtex.mjs frontend/js/features/source-editor/lezer-bibtex/bibtex.terms.mjs -frontend/js/features/source-editor/lezer-typst/typst.mjs -frontend/js/features/source-editor/lezer-typst/typst.terms.mjs +# typst compiled files are committed (generated via node scripts/lezer-latex/generate.mjs) !**/fixtures/**/*.log diff --git a/services/web/frontend/js/features/source-editor/lezer-typst/typst.mjs b/services/web/frontend/js/features/source-editor/lezer-typst/typst.mjs new file mode 100644 index 0000000000..3fb56f43fd --- /dev/null +++ b/services/web/frontend/js/features/source-editor/lezer-typst/typst.mjs @@ -0,0 +1,17 @@ +// This file was generated by lezer-generator. You probably shouldn't edit it. +import {LRParser} from "@lezer/lr" +import {headingTokenizer, headingTitleTokenizer, rawTokenizer, rawInlineTokenizer, codeBlockTokenizer, blockCommentTokenizer, lineCommentContentTokenizer, mathContentTokenizer, codeKeywordTokenizer, codeIdentTokenizer, strongBodyTokenizer, emphBodyTokenizer} from "./tokens.mjs" +export const parser = LRParser.deserialize({ + version: 14, + states: ",lQVQ!LVOOO!WQ!LXO'#CmO#bQ!MiO'#CnO$lQ$ItO'#CoO$tQ!LUO'#CpO$|Q!LYO'#CqO%UQ!NvO'#C|O%^Q%+tO'#CrO%oQ#4^O'#DOO%wQ#JjO'#DPO&PQ(CWO'#DQO&UQ07`O'#DSO&ZQ?MpO'#DUOOQT'#Db'#DbOOQT'#DZ'#DZQVQ!LVOOOOQT,59X,59XOOQT,59Y,59YOOQT,59Z,59ZO&`Q$ISO,59ZOOQT,59[,59[O&eQ!LUO,59[OOQT,59],59]O&jQ!LQO,59]OOQ#t'#D]'#D]O&oQ!NvO,59hOOQT,59h,59hO&wQ!LVO'#CzO'OQ$IdO'#C{O'WQ!LVO'#CtO(nQ#)]O'#CsOOQT'#C}'#C}OOQT'#Dh'#DhOOQT,59^,59^OOQT,59j,59jO*RQ!LQO,59jOOQT,59k,59kO*WQ!LQO,59kO*]Q$ISO,59lOOQT,59n,59nOOQT,59p,59pOOQT-E7X-E7XOOQT1G.u1G.uOOQT1G.v1G.vOOQT1G.w1G.wOOQ#t-E7Z-E7ZOOQT1G/S1G/SOOQT,59f,59fO*bQ!LVO,59fOOQT,59g,59gO*iQ$ISO,59gO+YQ%&YO'#CuOOQT'#Dj'#DjO+aQ#)WO'#DjOOQT'#D['#D[O+fQ!LVO,59`OOQT'#Di'#DiO%^Q%+tO'#DxO,|Q%&YO'#DxOOQT,59_,59_O-TQ!LVO,59_OOQT1G/U1G/UOOQT1G/V1G/VOOQT1G/W1G/WOOQT1G/Q1G/QOOQT1G/R1G/RO.bQ$ISO'#DoOOQT'#Do'#DoO.sQ!LQO'#DmOOQO'#Dm'#DmO.xQ$ISO'#DlOOQT,59a,59aO/QQ$ISO,59aOOQT,5:U,5:UOOQT-E7Y-E7YOOQT,5:d,5:dO/VQ!LVO'#DoOOQT1G.y1G.yO0gQ$ISO,59eO0xQ%&YO,5:XO1PQ%&YO,5:WO1WQ$ISO,5:WOOQT1G.{1G.{O1`Q!LVO,59eOOQO1G/s1G/sOOQO,59x,59xO2pQ%&YO1G/rOOQO-E7[-E7[P*nQ%&YO'#D^", + stateData: "3W~O!TOS~OPPORSOz]O{]O|]O!VQO!WRO!YTO!ZVO!hUO!nWO!oXO!pYO!rZO!s[O~OQ`OPaXRaXzaX{aX|aX!RaX!VaX!WaX!YaX!ZaX!haX!naX!oaX!paX!raX!saX!eaX~OXaOPbXRbXzbX{bX|bX!RbX!VbX!WbX!YbX!ZbX!hbX!nbX!obX!pbX!rbX!sbX!ebX~OWcO!XbO~OSeOTdO~OUgO!YfO~OYhO!hjO~OZnO[mOloO!dkO!flO~O^sO!nrO~O_uO!otO~OuvO~OwwO~OyxO~O!XzO~OT{O~O!Y|O~OYhO!h!OO~O!e!PO~PVOV!SO!g!RO~O!_!TO!dkO!k!VOPhXRhXzhX{hX|hX!RhX!VhX!WhX!YhX!ZhX!hhX!nhX!ohX!phX!rhX!shX!bhX!mhX!ehX~O[mOj!YO!b!ZO!m![OPgXRgXzgX{gX|gX!RgX!VgX!WgX!YgX!ZgX!hgX!ngX!ogX!pgX!rgX!sgX!egX~O!n!_O~O!o!`O~O!q!aO~O!e!bO~PVO!g!cO~O[!dO]!fOj!eOk!eOl!eO!dkO!flO!hUO~O!j!iO~P*nO[!kO~O!_!TO!dkO!k!VOPhaRhazha{ha|ha!Rha!Vha!Wha!Yha!Zha!hha!nha!oha!pha!rha!sha!bha!mha!eha~O[!nO~P*tO!b!ZO!m![OPgaRgazga{ga|ga!Rga!Vga!Wga!Yga!Zga!hga!nga!oga!pga!rga!sga!ega~O!_!TO!dkO!k!VO!i!cX!j!cX~O!b!qO~O!i!rO!j!`X~O!j!tO~O!_!TO!dkO!k!VOP!cXR!cXz!cX{!cX|!cX!R!cX!V!cX!W!cX!Y!cX!Z!cX!h!cX!n!cX!o!cX!p!cX!r!cX!s!cX!e!cX~O!_!TO!dkO!k!VO!ima!jma~O[!dO~P*tO!j!`a~P*nO!i!xO!j!`a~O!_!TO!dkO!k!VOPmaRmazma{ma|ma!Rma!Vma!Wma!Yma!Zma!hma!nma!oma!pma!rma!sma!ema~O!j!`i~P*nOlyjz!d!b!_!k!e|!o!T{!_~", + goto: "&]!mPPPPPPPPPPPPPPPPP!n!n!n!n!n!n!t!x#PPPP#X#a#u$R!t!n!n!nP!nP!nPPPP$a$k$y%PPPP%VPPPPP%]%c%fP%n%qP%yPPPPPPPP&VX]O_k!QTpV!ZSpV!ZR!Yn]!Um!X!d!n!p!u]!e!T![!q!r!x!zSpV!Z[!Um!X!d!n!p!u]!e!T![!q!r!x!zSpV!Z]!e!T![!q!r!x!zW]O_k!Q]!e!T![!q!r!x!zQ_OSy_!QR!QkQ!XmU!l!X!p!uQ!p!dR!u!nQiUR}iQ!s!hR!y!sX^O_k!QQqVR!m!ZR!^n]!Wm!X!d!n!p!uR!j!TQ!h!TV!w!r!x!zW!g!T!r!x!zQ!m![R!v!qQ!]nR!o!^", + nodeNames: "⚠ HeadingMark HeadingTitle RawBlockOpen RawBlockBody RawBlockClose RawInlineContent CodeBlockBody BlockCommentBody LineCommentContent MathContent CodeKeyword CodeIdent CodeArgKey StrongBody EmphBody Document Heading LineComment BlockComment RawBlock RawInline CodeExpr KeywordExpr CallExpr CodeArgs CodeString CodeNumber CodeBool FuncExpr ContentBlock CodeBlock InlineMath AtomExpr Strong Emphasis Label LabelName Ref RefName Escape EscapeChar URL MarkupContent ClosingSquare", + maxTerm: 81, + skippedNodes: [0], + repeatNodeCount: 4, + tokenData: "!GQ~R!UOX$eXY&cYZ&cZ]$e]^'X^p$epq&cqr$ers)sst/vtu/}ux$exy0Uyz1Tz{2S{|$e|}2c}!O$e!O!P3b!P!Q4a!Q![4v![!]Mx!]!^$e!^!_Nw!_!`! O!`!a! V!a!b$e!b!c!!U!c!}!!]!}#O!%u#O#P!&t#P#Q!&{#Q#R$e#R#S!'U#S#T!'v#T#U!'}#U#Y!!]#Y#Z!.X#Z#[!!]#[#]!4d#]#b!!]#b#c!>e#c#h!!]#h#i!Am#i#o!!]#o#p!Du#p#q$e#q#r!Et#r;'S$e;'S;=`!Fs;=`<%l!F{<%lO$ea$l[y`{POX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bP%g[{POX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bP&`P;=`<%l%b~&jSy`!T~XY&vYZ&v]^&vpq&v~&{S!T~XY&vYZ&v]^&vpq&v~'bay`!T~{POX%bXY&vYZ&vZ]%b]^(g^p%bpq&vqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%b~(na!T~{POX%bXY&vYZ&vZ]%b]^(g^p%bpq&vqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%b~)zgy`{POX+cXY-PZp+cpq-Pqr+crs.ssu-Puz+cz{-P{!P+c!P!Q-P!Q!^+c!^!`-P!`!b+c!b!c-P!c#O+c#O#P-q#P#Q-P#Q#R+c#R#T-P#T;'S+c;'S;=`/p<%lO+c~+hg{POX+cXY-PZp+cpq-Pqr+crs.ssu-Puz+cz{-P{!P+c!P!Q-P!Q!^+c!^!`-P!`!b+c!b!c-P!c#O+c#O#P-q#P#Q-P#Q#R+c#R#T-P#T;'S+c;'S;=`/p<%lO+c~-SWOY-PZr-Prs-ls#O-P#O#P-q#P;'S-P;'S;=`.m<%lO-P~-qOj~~-tRO;'S-P;'S;=`-};=`O-P~.QXOY-PZr-Prs-ls#O-P#O#P-q#P;'S-P;'S;=`.m;=`<%l-P<%lO-P~.pP;=`<%l-P~.z[j~{POX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%b~/sP;=`<%l+ca/}O!ZPy`c0UO!hRy`~0_[y`!_~{POX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bc1^[!jQy`{POX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bc2ZP!nPy`!P!Q2^Q2cO!XQc2l[!iQy`{POX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%b~3k[y`!k~{POX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%ba4fQy`z{4l!P!Q4qP4qO!WPP4vO!VPg5RqkQuSy`{POX%bZp%bqs%buv7Yvz%b{}%b}!O8V!O!P:T!Q![Kh![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#V8V#V#W=w#W#X@u#X#Y=w#Y#ZCw#Z#]8V#]#^Ea#^#a8V#a#b=w#b#d8V#d#eFy#e#f8V#f#gHc#g#o8V#o;'S%b;'S;=`&]<%lO%bR7a[kQ{POX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bT8^cuS{POX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#o8V#o;'S%b;'S;=`&]<%lO%bS9nVuS}!O9i!O!P9i!Q![9i![!]9i!c!}9i#R#S9i#T#o9iV:[cuS{POX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![;g![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#o8V#o;'S%b;'S;=`&]<%lO%bV;pqkQuS{POX%bZp%bqs%buv7Yvz%b{}%b}!O8V!O!P8V!Q![;g![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#V8V#V#W=w#W#X@u#X#Y=w#Y#ZCw#Z#]8V#]#^Ea#^#a8V#a#b=w#b#d8V#d#eFy#e#f8V#f#gHc#g#o8V#o;'S%b;'S;=`&]<%lO%bV>OeuS{POX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#a8V#a#b?a#b#o8V#o;'S%b;'S;=`&]<%lO%bV?jckQuS{POX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#o8V#o;'S%b;'S;=`&]<%lO%bV@|euS{POX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#X8V#X#YB_#Y#o8V#o;'S%b;'S;=`&]<%lO%bVBfeuS{POX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#Z8V#Z#[?a#[#o8V#o;'S%b;'S;=`&]<%lO%bVDOeuS{POX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#f8V#f#g?a#g#o8V#o;'S%b;'S;=`&]<%lO%bVEheuS{POX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#b8V#b#c?a#c#o8V#o;'S%b;'S;=`&]<%lO%bVGQeuS{POX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#h8V#h#i?a#i#o8V#o;'S%b;'S;=`&]<%lO%bVHjfuS{POX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#UJO#U#X8V#X#Y=w#Y#o8V#o;'S%b;'S;=`&]<%lO%bVJVeuS{POX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#W8V#W#X?a#X#o8V#o;'S%b;'S;=`&]<%lO%bVKqqkQuS{POX%bZp%bqs%buv7Yvz%b{}%b}!O8V!O!P:T!Q![Kh![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#V8V#V#W=w#W#X@u#X#Y=w#Y#ZCw#Z#]8V#]#^Ea#^#a8V#a#b=w#b#d8V#d#eFy#e#f8V#f#gHc#g#o8V#o;'S%b;'S;=`&]<%lO%b~NR[y`!b~{POX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%ba! OO!pPy`a! VO!mPy`c! `[!qQy`{POX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%ba!!]O!rPy`m!!hcuSwWy`{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#o!#s#o;'S%b;'S;=`&]<%lO%b]!#|cuSwW{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#o!#s#o;'S%b;'S;=`&]<%lO%b[!%`VuSwW}!O!%X!O!P9i!Q![!%X![!]9i!c!}!%X#R#S!%X#T#o!%X~!&O[y`!d~{POX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%ba!&{O!sPy`~!'UOy`!e~|~m!'aVuSwWy`!oP}!O!%X!O!P9i!Q![!%X![!]9i!c!}!%X#R#S!%X#T#o!%Xa!'}O!YPy`o!(YeuSwWy`{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#i!#s#i#j!)k#j#o!#s#o;'S%b;'S;=`&]<%lO%b_!)teuSwW{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#h!#s#h#i!+V#i#o!#s#o;'S%b;'S;=`&]<%lO%b_!+`euSwW{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#c!#s#c#d!,q#d#o!#s#o;'S%b;'S;=`&]<%lO%b_!,|cuSwWlQ{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#o!#s#o;'S%b;'S;=`&]<%lO%bo!.dduSwWy`{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#U!/r#U#o!#s#o;'S%b;'S;=`&]<%lO%b_!/{euSwW{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#`!#s#`#a!1^#a#o!#s#o;'S%b;'S;=`&]<%lO%b_!1geuSwW{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#g!#s#g#h!2x#h#o!#s#o;'S%b;'S;=`&]<%lO%b_!3ReuSwW{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#X!#s#X#Y!,q#Y#o!#s#o;'S%b;'S;=`&]<%lO%bm!4oeuSwWy`{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#h!#s#h#i!6Q#i#o!#s#o;'S%b;'S;=`&]<%lO%b]!6ZeuSwW{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#h!#s#h#i!7l#i#o!#s#o;'S%b;'S;=`&]<%lO%b]!7ueuSwW{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#d!#s#d#e!9W#e#o!#s#o;'S%b;'S;=`&]<%lO%b]!9aeuSwW{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]!:r!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#g!#s#g#h!=P#h#o!#s#o;'S%b;'S;=`&]<%lO%bT!:yduS{POX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!P!Q!peuSwWy`{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#c!#s#c#d!@R#d#o!#s#o;'S%b;'S;=`&]<%lO%b_!@[euSwW{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#b!#s#b#c!2x#c#o!#s#o;'S%b;'S;=`&]<%lO%bo!AxeuSwWy`{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#f!#s#f#g!CZ#g#o!#s#o;'S%b;'S;=`&]<%lO%b_!CdeuSwW{POX%bZp%bqs%buz%b{}%b}!O!#s!O!P8V!Q![!#s![!]8V!]!^%b!`!b%b!c!}!#s!}#O%b#Q#R%b#R#S!%X#T#i!#s#i#j!2x#j#o!#s#o;'S%b;'S;=`&]<%lO%bc!EO[!fQy`{POX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bc!E}[!gQy`{POX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%ba!FxPy`;=`<%l$e`!GQOy`", + tokenizers: [headingTokenizer, headingTitleTokenizer, rawTokenizer, rawInlineTokenizer, codeBlockTokenizer, blockCommentTokenizer, lineCommentContentTokenizer, mathContentTokenizer, codeKeywordTokenizer, codeIdentTokenizer, strongBodyTokenizer, emphBodyTokenizer, 0, 1, 2, 3, 4], + topRules: {"Document":[0,16]}, + tokenPrec: 821 +}) diff --git a/services/web/frontend/js/features/source-editor/lezer-typst/typst.terms.mjs b/services/web/frontend/js/features/source-editor/lezer-typst/typst.terms.mjs new file mode 100644 index 0000000000..eb8e754f49 --- /dev/null +++ b/services/web/frontend/js/features/source-editor/lezer-typst/typst.terms.mjs @@ -0,0 +1,46 @@ +// This file was generated by lezer-generator. You probably shouldn't edit it. +export const + HeadingMark = 1, + HeadingTitle = 2, + RawBlockOpen = 3, + RawBlockBody = 4, + RawBlockClose = 5, + RawInlineContent = 6, + CodeBlockBody = 7, + BlockCommentBody = 8, + LineCommentContent = 9, + MathContent = 10, + CodeKeyword = 11, + CodeIdent = 12, + CodeArgKey = 13, + StrongBody = 14, + EmphBody = 15, + Document = 16, + Heading = 17, + LineComment = 18, + BlockComment = 19, + RawBlock = 20, + RawInline = 21, + CodeExpr = 22, + KeywordExpr = 23, + CallExpr = 24, + CodeArgs = 25, + CodeString = 26, + CodeNumber = 27, + CodeBool = 28, + FuncExpr = 29, + ContentBlock = 30, + CodeBlock = 31, + InlineMath = 32, + AtomExpr = 33, + Strong = 34, + Emphasis = 35, + Label = 36, + LabelName = 37, + Ref = 38, + RefName = 39, + Escape = 40, + EscapeChar = 41, + URL = 42, + MarkupContent = 43, + ClosingSquare = 44