diff --git a/Haskell/Literate Haskell.sublime-syntax b/Haskell/Literate Haskell.sublime-syntax index 1c993ebdc8..a947b402ba 100644 --- a/Haskell/Literate Haskell.sublime-syntax +++ b/Haskell/Literate Haskell.sublime-syntax @@ -10,7 +10,7 @@ file_extensions: - lhs contexts: - plain-tex: + begin-end-commands: - meta_prepend: true - include: haskell-code diff --git a/LaTeX/LaTeX.sublime-syntax b/LaTeX/LaTeX.sublime-syntax index 0f1adb8955..a5f6f0afeb 100644 --- a/LaTeX/LaTeX.sublime-syntax +++ b/LaTeX/LaTeX.sublime-syntax @@ -4,6 +4,8 @@ name: LaTeX scope: text.tex.latex +extends: TeX.sublime-syntax + file_extensions: - tex - ltx @@ -14,18 +16,13 @@ first_line_match: |- ) contexts: - prototype: - - include: comments main: - - include: unique-latex + - meta_prepend: true + - include: latex - include: packages - - include: plain-tex - - include: begin-end-commands - - include: general-commands - - include: global-braces - unique-latex: + latex: - include: preamble - include: structure - include: includes @@ -39,27 +36,20 @@ contexts: - include: graphics - include: lists - plain-tex: - - include: macros - - include: scope:text.tex#controls - - include: scope:text.tex#catcode - - include: boxes - - include: block-math - - include: inline-math - - include: general-constants - - comments: - - include: scope:text.tex#comments - - global-braces: + braces: - match: \{ scope: punctuation.definition.group.brace.begin.latex - push: - - meta_scope: meta.group.brace.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true - - include: main + push: brace-group-body + + brace-group-body: + - meta_scope: meta.group.brace.latex + - include: brace-group-end + - include: main + + brace-group-end: + - match: \} + scope: punctuation.definition.group.brace.end.latex + pop: true # these are used to identify arguments in commands general-optional-arguments: @@ -72,7 +62,7 @@ contexts: pop: true - include: general-constants - include: general-commands - - include: global-braces + - include: braces - match: '[A-Za-z[:digit:]-]*(?=\s*\=)' scope: variable.parameter.bracket.latex @@ -83,20 +73,6 @@ contexts: pop: true - include: main - # matches any nospace and pops the context - else-pop: - - match: (?=\S) - pop: true - - immediately-pop: - - match: '' - pop: true - - # pops out of the current context if there is a new paragraph - paragraph-pop: - - match: ^(?=\s*$) - pop: true - argument: - match: \{ scope: punctuation.definition.group.brace.begin.latex @@ -107,21 +83,8 @@ contexts: - include: general-optional-arguments - include: else-pop - # used in macros to prevent matching of \begin{env}...\end{env} - macro-braces: - - match: \{ - scope: punctuation.definition.group.brace.begin.latex - push: - - meta_scope: meta.group.brace.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true - - include: general-constants - - include: general-commands - - include: macro-braces - macros: - - include: scope:text.tex#macros + - meta_append: true - match: (\\)(?:new|renew|provide)command(?:\*|(?![A-Za-z@])) scope: keyword.declaration.function.latex storage.modifier.newcommand.latex captures: @@ -246,6 +209,7 @@ contexts: - include: else-pop general-constants: + - meta_prepend: true - match: (\\\\)(?:(\[)\s*-?((?:[[:digit:]]|\.)*)\s*(\w*)\s*(\]))? captures: 1: constant.character.newline.latex @@ -253,9 +217,9 @@ contexts: 3: constant.numeric.newline.latex 4: keyword.other.newline.latex 5: punctuation.definition.group.bracket.begin.newline.latex - - include: scope:text.tex#general-constants general-commands: + - include: begin-end-commands - match: (\\)[A-Za-z@]+ scope: support.function.general.latex captures: @@ -347,9 +311,7 @@ contexts: 3: punctuation.definition.group.brace.begin.latex push: - meta_scope: meta.include.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end sections: - match: |- @@ -378,9 +340,7 @@ contexts: push: - meta_scope: meta.section.latex - meta_content_scope: entity.name.section.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - include: main structure: @@ -484,112 +444,103 @@ contexts: pop: true - include: main - math-braces: - - match: \{ - scope: punctuation.definition.group.brace.begin.latex - push: - - meta_scope: meta.group.brace.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true - - include: math-content - - math-content: - # unique to latex - - include: verb - - include: text-decorators - - include: references - - include: begin-end-commands - # extended from tex - - include: scope:text.tex#math-builtin - - include: scope:text.tex#math-brackets - - include: math-braces - - include: boxes - - include: scope:text.tex#math-commands - - include: scope:text.tex#math-operators - - include: scope:text.tex#math-characters - - include: scope:text.tex#math-numerics - - include: general-constants - - match: (?=\}) - pop: true +###[ MATH ]#################################################################### inline-math: - - match: \$ - scope: string.other.math.latex punctuation.definition.string.begin.latex - push: - - meta_scope: meta.environment.math.inline.dollar.latex - - match: \$ - scope: string.other.math.latex punctuation.definition.string.end.latex - pop: true - - include: math-content + - meta_append: true + - include: inline-math-parens + - include: inline-math-ensuremath + + inline-math-ensuremath: - match: ((\\)ensuremath)(\{) captures: 1: support.function.ensuremath.latex 2: punctuation.definition.backslash.latex 3: punctuation.definition.group.brace.begin.latex - push: - - meta_scope: meta.function.ensuremath.latex - - meta_content_scope: meta.environment.math.inline.ensuremath.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true - - include: math-content + push: inline-math-ensuremath-body - - match: (\\\() - scope: string.other.math.latex - captures: - 1: punctuation.definition.string.begin.latex - push: - - meta_scope: meta.environment.math.inline.paren.latex - - match: (\\\)) - scope: string.other.math.latex punctuation.definition.string.end.latex - pop: true - - include: math-content + inline-math-ensuremath-body: + - meta_scope: meta.function.ensuremath.latex + - meta_content_scope: meta.environment.math.inline.ensuremath.latex + - include: brace-group-end + - include: math-content - block-math: - - match: \$\$ + inline-math-parens: + - match: \\\( scope: string.other.math.latex punctuation.definition.string.begin.latex - push: - - meta_scope: meta.environment.math.block.dollar.latex - - match: \$\$ - scope: string.other.math.latex punctuation.definition.string.end.latex - pop: true - - include: math-content + push: inline-math-parens-body - - match: (\\\[) - scope: string.other.math.latex punctuation.definition.string.begin.latex - push: - - meta_scope: meta.environment.math.block.bracket.latex - - match: (\\\]) - scope: string.other.math.latex punctuation.definition.string.end.latex - pop: true - - include: math-content + inline-math-parens-body: + - meta_scope: meta.environment.math.inline.paren.latex + - include: inline-math-parens-end + - include: math-content + + inline-math-parens-end: + - match: \\\) + scope: string.other.math.latex punctuation.definition.string.end.latex + pop: true + block-math: + - meta_append: true + - include: block-math-brackets + - include: block-math-begin-end-command + + block-math-begin-end-command: - match: |- (?x) - ((\\)begin)(\{)\s*((?: - align|alignat|aligned|alignedat|displaymath - |eqnarray|equation|flalign|gather|gathered - |math|multline|x?xalignat|split - |dmath|dseries|dgroup|darray|dsuspend - )\*?)\s*(\}) + ((\\)begin) (\{) \s* ( + (?: align | alignat | aligned | alignedat | displaymath | eqnarray + | equation | flalign | gather | gathered | math | multline | x?xalignat + | split | dmath | dseries | dgroup | darray | dsuspend )\*? + ) \s* (\}) captures: 1: support.function.begin.latex keyword.control.flow.begin.latex 2: punctuation.definition.backslash.latex 3: punctuation.definition.group.brace.begin.latex 4: variable.parameter.function.latex 5: punctuation.definition.group.brace.end.latex - push: - - meta_content_scope: meta.environment.math.block.be.latex - - match: ((\\)end)(\{)\s*(\4)\s*(\}) - captures: - 1: support.function.end.latex keyword.control.flow.begin.latex - 2: punctuation.definition.backslash.latex - 3: punctuation.definition.group.brace.begin.latex - 4: variable.parameter.function.latex - 5: punctuation.definition.group.brace.end.latex - pop: true - - include: math-content + push: block-math-begin-end-command-body + + block-math-begin-end-command-body: + - meta_content_scope: meta.environment.math.block.be.latex + - include: block-math-begin-end-command-end + - include: math-content + + block-math-begin-end-command-end: + - match: ((\\)end)(\{)\s*(\4)\s*(\}) + captures: + 1: support.function.end.latex keyword.control.flow.begin.latex + 2: punctuation.definition.backslash.latex + 3: punctuation.definition.group.brace.begin.latex + 4: variable.parameter.function.latex + 5: punctuation.definition.group.brace.end.latex + pop: true + + block-math-brackets: + - match: \\\[ + scope: string.other.math.latex punctuation.definition.string.begin.latex + push: block-math-brackets-body + + block-math-brackets-body: + - meta_scope: meta.environment.math.block.bracket.latex + - include: block-math-brackets-end + - include: math-content + + block-math-brackets-end: + - match: \\\] + scope: string.other.math.latex punctuation.definition.string.end.latex + pop: true + + math-content: + - meta_prepend: true + - match: (?=\}) + pop: true + - include: verb + - include: text-decorators + - include: references + - include: begin-end-commands + +###[ OTHER ]################################################################### graphics: - match: ((\\)includegraphics)\b @@ -635,9 +586,7 @@ contexts: push: - meta_scope: meta.function.emph.latex - meta_content_scope: markup.italic.emph.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - include: main - match: ((\\)textit)(\{) captures: @@ -647,9 +596,7 @@ contexts: push: - meta_scope: meta.function.textit.latex - meta_content_scope: markup.italic.textit.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - include: main - match: ((\\)textbf)(\{) captures: @@ -659,9 +606,7 @@ contexts: push: - meta_scope: meta.function.textbf.latex - meta_content_scope: markup.bold.textbf.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - include: main - match: ((\\)texttt)(\{) captures: @@ -671,9 +616,7 @@ contexts: push: - meta_scope: meta.function.texttt.latex - meta_content_scope: markup.raw.texttt.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - include: main - match: ((\\)textsl)(\{) captures: @@ -683,9 +626,7 @@ contexts: push: - meta_scope: meta.function.textsl.latex - meta_content_scope: markup.italic.textsl.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - include: main - match: ((\\)text)(\{) captures: @@ -693,9 +634,7 @@ contexts: 2: punctuation.definition.backslash.latex 3: punctuation.definition.group.brace.begin.latex push: - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - include: main - match: ((\\)underline)(\{) captures: @@ -705,9 +644,7 @@ contexts: push: - meta_scope: meta.function.underline.latex - meta_content_scope: markup.underline.underline.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - include: main footnote: @@ -723,9 +660,7 @@ contexts: set: - meta_scope: meta.function.footnote.latex meta.group.brace.latex - meta_content_scope: markup.italic.footnote.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - include: main - match: (?=\S) pop: true @@ -777,9 +712,7 @@ contexts: - meta_scope: meta.group.brace.latex - match: '[a-zA-Z0-9\.:/*!^_-]+' scope: constant.other.citation.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - match: '' pop: true - match: |- @@ -801,9 +734,7 @@ contexts: - meta_scope: meta.function.reference.latex meta.group.brace.latex - match: '[a-zA-Z0-9\.:/*!^_-]+' scope: constant.other.reference.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - match: '' pop: true - match: ((\\)label)(\{) @@ -815,9 +746,7 @@ contexts: - meta_scope: meta.function.label.latex - match: '[a-zA-Z0-9\.:/*!^_-]+' scope: entity.name.label.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end begin-end-commands: - match: ((\\)begin)(\{)\s*(\w*)\*?\s*(\}) @@ -1644,9 +1573,7 @@ contexts: push: - meta_include_prototype: false - meta_scope: meta.function.newcolumntype.latex - - match: '\}' - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - include: array-preamble @@ -1690,9 +1617,7 @@ contexts: - match: \{ scope: punctuation.definition.group.brace.begin.latex push: - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - include: general-constants - include: general-commands - include: array-preamble @@ -1712,9 +1637,7 @@ contexts: 2: punctuation.definition.group.brace.begin.latex push: - meta_scope: meta.function.before-column-decl.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - include: general-constants - include: general-commands - include: macro-braces @@ -1725,9 +1648,7 @@ contexts: 2: punctuation.definition.group.brace.begin.latex push: - meta_scope: meta.function.after-column-decl.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - include: general-constants - include: general-commands - include: macro-braces @@ -1741,9 +1662,7 @@ contexts: 2: punctuation.definition.group.brace.begin.latex push: - meta_scope: meta.function.inter-column-decl.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - include: general-constants - include: general-commands - include: macro-braces @@ -1754,9 +1673,7 @@ contexts: 2: punctuation.definition.group.brace.begin.latex push: - meta_scope: meta.function.inter-column-decl.latex - - match: \} - scope: punctuation.definition.group.brace.end.latex - pop: true + - include: brace-group-end - include: general-constants - include: general-commands - include: macro-braces diff --git a/LaTeX/TeX.sublime-syntax b/LaTeX/TeX.sublime-syntax index 936e248f7c..110ff623b5 100644 --- a/LaTeX/TeX.sublime-syntax +++ b/LaTeX/TeX.sublime-syntax @@ -87,16 +87,6 @@ contexts: - include: general-constants - include: general-commands - # matches any nospace and pops the context - else-pop: - - match: (?=\S) - pop: true - - # pops out of the current context if there is a new paragraph - paragraph-pop: - - match: ^(?=\s*$) - pop: true - general-commands: - match: (\\){{letter}}+ scope: support.function.general.tex @@ -144,7 +134,7 @@ contexts: def-registername: - match: \{ scope: punctuation.definition.group.brace.begin.tex - push: inside-register-name-group + push: register-name-group-body - match: (\\){{cmdname}} scope: entity.name.constant.tex captures: @@ -153,7 +143,7 @@ contexts: - include: paragraph-pop - include: else-pop - inside-register-name-group: + register-name-group-body: - meta_scope: meta.group.brace.latex - match: \} scope: punctuation.definition.group.brace.end.tex @@ -216,27 +206,17 @@ contexts: braces: - match: \{ scope: punctuation.definition.group.brace.begin.tex - push: - - meta_scope: meta.group.brace.tex - - match: \} - scope: punctuation.definition.group.brace.end.tex - pop: true - - include: main + push: brace-group-body - # within macros, it is possible that only part of some nested struture - # is present. To prevent this from causing problems, here we only match - # elements that are simple, i.e. that do not push to the stack. - macro-braces: - - match: \{ - scope: punctuation.definition.group.brace.begin.tex - push: - - meta_scope: meta.group.brace.tex - - match: \} - scope: punctuation.definition.group.brace.end.tex - pop: true - - include: general-constants - - include: general-commands - - include: macro-braces + brace-group-body: + - meta_scope: meta.group.brace.tex + - include: brace-group-end + - include: main + + brace-group-end: + - match: \} + scope: punctuation.definition.group.brace.end.tex + pop: true boxes: - match: ((\\)[hv]box)\s*(\{) @@ -244,12 +224,14 @@ contexts: 1: support.function.box.tex 2: punctuation.definition.backslash.tex 3: punctuation.definition.group.brace.begin.tex - push: - - meta_scope: meta.function.box.tex - - match: \} - scope: punctuation.definition.group.brace.end.tex - pop: true - - include: main + push: box-body + + box-body: + - meta_scope: meta.function.box.tex + - include: brace-group-end + - include: main + +###[ MACROS ]################################################################## macros: # Note \edef and \xdef have slightly different syntax, in that they do not @@ -261,21 +243,23 @@ contexts: scope: keyword.declaration.function.tex storage.modifier.definition.tex captures: 1: punctuation.definition.backslash.tex - push: def-commandname + push: def-maybe-commandname - def-commandname: + def-maybe-commandname: - meta_scope: meta.function.tex - match: (?=\\) - set: - - clear_scopes: 1 - - meta_scope: meta.function.identifier.tex - - match: (\\){{cmdname}} - scope: entity.name.definition.tex - captures: - 1: punctuation.definition.backslash.tex - set: def-argspec - - include: paragraph-pop - - include: else-pop + set: def-commandname + - include: paragraph-pop + - include: else-pop + + def-commandname: + - clear_scopes: 1 + - meta_scope: meta.function.identifier.tex + - match: (\\){{cmdname}} + scope: entity.name.definition.tex + captures: + 1: punctuation.definition.backslash.tex + set: def-argspec - include: paragraph-pop - include: else-pop @@ -301,13 +285,65 @@ contexts: def-definition-body: - meta_scope: meta.function.body.tex meta.group.brace.tex - - match: \} - scope: punctuation.definition.group.brace.end.tex - pop: 1 + - include: macro-brace-group-body + + # within macros, it is possible that only part of some nested struture + # is present. To prevent this from causing problems, here we only match + # elements that are simple, i.e. that do not push to the stack. + macro-braces: + - match: \{ + scope: punctuation.definition.group.brace.begin.tex + push: macro-brace-group-body + + macro-brace-group-body: + - meta_scope: meta.group.brace.tex + - include: brace-group-end - include: general-constants - include: general-commands - include: macro-braces +###[ MATH ]#################################################################### + + inline-math: + - match: \$ + scope: string.other.math.tex punctuation.definition.string.begin.tex + push: inline-math-dollar-body + + inline-math-dollar-body: + - meta_scope: meta.environment.math.inline.dollar.tex + - include: inline-math-dollar-end + - include: math-content + + inline-math-dollar-end: + - match: \$ + scope: string.other.math.tex punctuation.definition.string.end.tex + pop: true + + block-math: + - match: \$\$ + scope: string.other.math.tex punctuation.definition.string.begin.tex + push: block-math-dollar-body + + block-math-dollar-body: + - meta_scope: meta.environment.math.block.dollar.tex + - include: block-math-dollar-end + - include: math-content + + block-math-dollar-end: + - match: \$\$ + scope: string.other.math.tex punctuation.definition.string.end.tex + pop: true + + math-content: + - include: math-builtin + - include: math-brackets + - include: math-braces + - include: boxes + - include: math-commands + - include: math-operators + - include: math-characters + - include: math-numerics + - include: general-constants math-builtin: - include: math-greeks @@ -387,12 +423,12 @@ contexts: math-braces: - match: \{ scope: punctuation.definition.group.brace.begin.tex - push: - - meta_scope: meta.group.brace.tex - - match: \} - scope: punctuation.definition.group.brace.end.tex - pop: true - - include: math-content + push: math-brace-group-body + + math-brace-group-body: + - meta_scope: meta.group.brace.tex + - include: brace-group-end + - include: math-content math-brackets: - match: '[\(\)]' @@ -412,33 +448,18 @@ contexts: - match: '[A-Za-z]+' scope: variable.other.math.tex - math-content: - - include: math-builtin - - include: math-brackets - - include: math-braces - - include: boxes - - include: math-commands - - include: math-operators - - include: math-characters - - include: math-numerics - - include: general-constants +###[ PROTOTYPES ]############################################################## - inline-math: - - match: \$ - scope: string.other.math.tex punctuation.definition.string.begin.tex - push: - - meta_scope: meta.environment.math.inline.dollar.tex - - match: \$ - scope: string.other.math.tex punctuation.definition.string.end.tex - pop: true - - include: math-content + # matches any nospace and pops the context + else-pop: + - match: (?=\S) + pop: true - block-math: - - match: \$\$ - scope: string.other.math.tex punctuation.definition.string.begin.tex - push: - - meta_scope: meta.environment.math.block.dollar.tex - - match: \$\$ - scope: string.other.math.tex punctuation.definition.string.end.tex - pop: true - - include: math-content + immediately-pop: + - match: '' + pop: true + + # pops out of the current context if there is a new paragraph + paragraph-pop: + - match: ^(?=\s*$) + pop: true diff --git a/LaTeX/syntax_test_latex.tex b/LaTeX/syntax_test_latex.tex index 390a7bbfc0..7e051ca234 100644 --- a/LaTeX/syntax_test_latex.tex +++ b/LaTeX/syntax_test_latex.tex @@ -704,16 +704,16 @@ \subsubsection{name} % <- - meta.environment.math $f(x) = \} {} y$ -% ^^^^^^^^^^^^^ meta.environment.math.inline.dollar.latex +% ^^^^^^^^^^^^^ meta.environment.math.inline.dollar.tex $\alpha \cdot \beta \leq \cos( 5 )$ %^ punctuation.definition.backslash.tex %^^^^^^ keyword.other.math.greek.tex -% ^ punctuation.definition.backslash.tex +% ^ punctuation.definition.backslash.tex % ^^^^^ keyword.other.math.binary-operator.tex % ^^^^ keyword.other.math.relation.tex -% -$s \gets \sum_{\imath = 0}^10 \langle \hat{x}, x \rangle$ +% +$s \gets \sum_{\imath = 0}^10 \langle \hat{x}, x \rangle$ % ^^^^^ keyword.other.math.arrow.tex % ^^^^ keyword.other.math.large-operator.tex % ^^^^^^ keyword.other.math.symbol.tex @@ -721,6 +721,13 @@ \subsubsection{name} % ^^^^ keyword.other.math.accent.tex % ^^^^^^^ keyword.other.math.delimiter.tex +$$ + \begin{foo} +% ^^^^^^ keyword.control.flow.begin.latex + \end{foo} +% ^^^^ keyword.control.flow.end.latex +$$ + \end{document} % ^ support.function.end.latex keyword.control.flow.end.latex % ^ variable.parameter.function.latex diff --git a/Markdown/tests/syntax_test_markdown.md b/Markdown/tests/syntax_test_markdown.md index 11ace0245b..c08bd934c8 100644 --- a/Markdown/tests/syntax_test_markdown.md +++ b/Markdown/tests/syntax_test_markdown.md @@ -8036,24 +8036,24 @@ $$ |^ punctuation.definition.math.begin.latex | ^ - punctuation foo = 1 + 2 * \sqrt{a^2+b^2} -| <- markup.math.block.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar.latex variable.other.math.tex -|^^^^^^^^^^^^^^^^^^^^^^^^^^^^ markup.math.block.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar.latex -| ^ keyword.operator.math.tex -| ^ constant.numeric.math.tex -| ^ keyword.operator.math.tex -| ^ constant.numeric.math.tex -| ^ keyword.operator.math.tex -| ^^^^^ support.function.math.tex -| ^^^^^^^^^ meta.group.brace.latex -| ^ punctuation.definition.group.brace.begin.latex -| ^ variable.other.math.tex -| ^ keyword.operator.math.tex -| ^ constant.numeric.math.tex -| ^ keyword.operator.math.tex -| ^ variable.other.math.tex -| ^ keyword.operator.math.tex -| ^ constant.numeric.math.tex -| ^ punctuation.definition.group.brace.end.latex +| <- markup.math.block.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar variable.other.math +|^^^^^^^^^^^^^^^^^^^^^^^^^^^^ markup.math.block.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar +| ^ keyword.operator.math +| ^ constant.numeric.math +| ^ keyword.operator.math +| ^ constant.numeric.math +| ^ keyword.operator.math +| ^^^^^ support.function.math +| ^^^^^^^^^ meta.group.brace +| ^ punctuation.definition.group.brace.begin +| ^ variable.other.math +| ^ keyword.operator.math +| ^ constant.numeric.math +| ^ keyword.operator.math +| ^ variable.other.math +| ^ keyword.operator.math +| ^ constant.numeric.math +| ^ punctuation.definition.group.brace.end $$ | <- markup.math.block.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar.latex punctuation.definition.math.end.latex |^ markup.math.block.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar.latex punctuation.definition.math.end.latex @@ -8211,11 +8211,11 @@ b$ math. |^^^^^^^^ meta.paragraph.markdown - markup.math Handle incomplete $\sqrt{b$ expressions well. -| ^^^^^^^^^ meta.paragraph.markdown markup.math.inline.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar.latex -| ^ punctuation.definition.math.begin.latex -| ^^^^^ support.function.math.tex -| ^^ meta.group.brace.latex -| ^ punctuation.definition.math.end.latex - meta.group +| ^^^^^^^^^ meta.paragraph.markdown markup.math.inline.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar +| ^ punctuation.definition.math.begin +| ^^^^^ support.function.math +| ^^ meta.group.brace +| ^ punctuation.definition.math.end - meta.group | ^ meta.paragraph.markdown - markup.math 1. ordered list $\sqrt{b}$ equation $1+ @@ -8238,12 +8238,12 @@ Handle incomplete $\sqrt{b$ expressions well. | ^^^^^^ - markup.math - meta.tag + unordered $\sqrt{b}$ equation - | ^^^^^^^^^^ markup.list.numbered.markdown meta.paragraph.list.markdown markup.math.inline.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar.latex + | ^^^^^^^^^^ markup.list.numbered.markdown meta.paragraph.list.markdown markup.math.inline.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar Handle incomplete $\sqrt{b$ expressions well. - | ^^^^^^^^^ meta.paragraph.list.markdown markup.math.inline.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar.latex - | ^ punctuation.definition.math.begin.latex - | ^^^^^ support.function.math.tex - | ^^ meta.group.brace.latex - | ^ punctuation.definition.math.end.latex - meta.group + | ^^^^^^^^^ meta.paragraph.list.markdown markup.math.inline.markdown text.tex.latex.embedded.markdown meta.environment.math.block.dollar + | ^ punctuation.definition.math.begin + | ^^^^^ support.function.math + | ^^ meta.group.brace + | ^ punctuation.definition.math.end - meta.group | ^ meta.paragraph.list.markdown - markup.math