From 671783a964067cb11f9405cc5fd2df85d7b8d7d8 Mon Sep 17 00:00:00 2001 From: Myriad-Dreamin <35292584+Myriad-Dreamin@users.noreply.github.com> Date: Sat, 4 Jan 2025 05:41:57 +0800 Subject: [PATCH] feat: enable experimental math syntax highlighting (#1107) --- syntaxes/textmate/feature.mts | 2 +- .../tests/unit/basic/bracket.typ.snap | 10 ++++- .../tests/unit/bugs/brace-in-math.typ.snap | 14 +++--- .../tests/unit/math/bracket-issue194.typ.snap | 40 +++++++++++++++-- .../textmate/tests/unit/math/bracket.typ.snap | 44 ++++++++++++++++--- .../tests/unit/math/bracket_unmatch.typ.snap | 38 +++++++++++++--- 6 files changed, 123 insertions(+), 25 deletions(-) diff --git a/syntaxes/textmate/feature.mts b/syntaxes/textmate/feature.mts index 37512940b..abd5afc3a 100644 --- a/syntaxes/textmate/feature.mts +++ b/syntaxes/textmate/feature.mts @@ -2,5 +2,5 @@ * Feature Flags */ export const SYNTAX_WITH_BOLD_ITALIC = false; -export const SYNTAX_WITH_MATH = false; +export const SYNTAX_WITH_MATH = true; export const SYNTAX_WITH_LANGS = true; diff --git a/syntaxes/textmate/tests/unit/basic/bracket.typ.snap b/syntaxes/textmate/tests/unit/basic/bracket.typ.snap index 89474a8c7..42476de54 100644 --- a/syntaxes/textmate/tests/unit/basic/bracket.typ.snap +++ b/syntaxes/textmate/tests/unit/basic/bracket.typ.snap @@ -1,11 +1,17 @@ >$((,(#[)],)))$ #^ source.typst markup.math.typst punctuation.definition.string.math.typst -# ^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst markup.content.brace.typst +# ^ source.typst markup.math.typst markup.content.brace.typst +# ^ source.typst markup.math.typst +# ^ source.typst markup.math.typst markup.content.brace.typst # ^ source.typst markup.math.typst keyword.control.hash.typst # ^ source.typst markup.math.typst meta.brace.square.typst # ^ source.typst markup.math.typst markup.content.brace.typst # ^ source.typst markup.math.typst meta.brace.square.typst -# ^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst +# ^ source.typst markup.math.typst markup.content.brace.typst +# ^ source.typst markup.math.typst markup.content.brace.typst +# ^ source.typst markup.math.typst markup.content.brace.typst # ^ source.typst markup.math.typst punctuation.definition.string.math.typst > >#for i in range(0) [)] diff --git a/syntaxes/textmate/tests/unit/bugs/brace-in-math.typ.snap b/syntaxes/textmate/tests/unit/bugs/brace-in-math.typ.snap index 5db8861b3..0017fbbf3 100644 --- a/syntaxes/textmate/tests/unit/bugs/brace-in-math.typ.snap +++ b/syntaxes/textmate/tests/unit/bugs/brace-in-math.typ.snap @@ -10,14 +10,16 @@ >$ #^ source.typst markup.math.typst punctuation.definition.string.math.typst > ( -#^^^^ source.typst markup.math.typst +#^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst markup.content.brace.typst >$ #^ source.typst markup.math.typst punctuation.definition.string.math.typst > >$ #^ source.typst markup.math.typst punctuation.definition.string.math.typst > ) -#^^^^ source.typst markup.math.typst +#^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst markup.content.brace.typst >$ #^ source.typst markup.math.typst punctuation.definition.string.math.typst > @@ -54,9 +56,11 @@ #^^ source.typst meta.expr.let.typst # ^ source.typst meta.expr.let.typst markup.math.typst punctuation.definition.string.math.typst > lr(}) -#^^^^^^^ source.typst meta.expr.let.typst markup.math.typst -# ^ source.typst meta.expr.let.typst markup.math.typst markup.content.brace.typst -# ^^ source.typst meta.expr.let.typst markup.math.typst +#^^^^ source.typst meta.expr.let.typst markup.math.typst +# ^^ source.typst meta.expr.let.typst markup.math.typst meta.expr.call.typst entity.name.function.typst +# ^ source.typst meta.expr.let.typst markup.math.typst meta.expr.call.typst meta.brace.round.typst +# ^ source.typst meta.expr.let.typst markup.math.typst meta.expr.call.typst +# ^ source.typst meta.expr.let.typst markup.math.typst meta.expr.call.typst meta.brace.round.typst > $ #^^ source.typst meta.expr.let.typst markup.math.typst # ^ source.typst meta.expr.let.typst markup.math.typst punctuation.definition.string.math.typst diff --git a/syntaxes/textmate/tests/unit/math/bracket-issue194.typ.snap b/syntaxes/textmate/tests/unit/math/bracket-issue194.typ.snap index c560a0376..7522a7bd7 100644 --- a/syntaxes/textmate/tests/unit/math/bracket-issue194.typ.snap +++ b/syntaxes/textmate/tests/unit/math/bracket-issue194.typ.snap @@ -4,7 +4,8 @@ # ^^^^^^^^^^ source.typst comment.line.double-slash.typst >$ x^"#" = "argmin"_(A x=b) ||x||_(cal(l)_2) $ #^ source.typst markup.math.typst punctuation.definition.string.math.typst -# ^^^ source.typst markup.math.typst +# ^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst # ^ source.typst markup.math.typst string.quoted.double.typst punctuation.definition.string.typst # ^ source.typst markup.math.typst string.quoted.double.typst # ^ source.typst markup.math.typst string.quoted.double.typst punctuation.definition.string.typst @@ -12,12 +13,27 @@ # ^ source.typst markup.math.typst string.quoted.double.typst punctuation.definition.string.typst # ^^^^^^ source.typst markup.math.typst string.quoted.double.typst # ^ source.typst markup.math.typst string.quoted.double.typst punctuation.definition.string.typst -# ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^^^ source.typst markup.math.typst meta.expr.call.typst entity.name.function.typst +# ^ source.typst markup.math.typst meta.expr.call.typst meta.brace.round.typst +# ^ source.typst markup.math.typst meta.expr.call.typst +# ^ source.typst markup.math.typst meta.expr.call.typst meta.brace.round.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst # ^ source.typst markup.math.typst punctuation.definition.string.math.typst > >$ x^"#" = "argmin"_(A x=b()) ||x||_(cal(l)_2) $ #^ source.typst markup.math.typst punctuation.definition.string.math.typst -# ^^^ source.typst markup.math.typst +# ^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst # ^ source.typst markup.math.typst string.quoted.double.typst punctuation.definition.string.typst # ^ source.typst markup.math.typst string.quoted.double.typst # ^ source.typst markup.math.typst string.quoted.double.typst punctuation.definition.string.typst @@ -25,6 +41,22 @@ # ^ source.typst markup.math.typst string.quoted.double.typst punctuation.definition.string.typst # ^^^^^^ source.typst markup.math.typst string.quoted.double.typst # ^ source.typst markup.math.typst string.quoted.double.typst punctuation.definition.string.typst -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst markup.content.brace.typst +# ^ source.typst markup.math.typst markup.content.brace.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^^^ source.typst markup.math.typst meta.expr.call.typst entity.name.function.typst +# ^ source.typst markup.math.typst meta.expr.call.typst meta.brace.round.typst +# ^ source.typst markup.math.typst meta.expr.call.typst +# ^ source.typst markup.math.typst meta.expr.call.typst meta.brace.round.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst # ^ source.typst markup.math.typst punctuation.definition.string.math.typst > \ No newline at end of file diff --git a/syntaxes/textmate/tests/unit/math/bracket.typ.snap b/syntaxes/textmate/tests/unit/math/bracket.typ.snap index 91a5a854a..a1941ffa6 100644 --- a/syntaxes/textmate/tests/unit/math/bracket.typ.snap +++ b/syntaxes/textmate/tests/unit/math/bracket.typ.snap @@ -1,36 +1,66 @@ > >$ ||x||_[] $ #^ source.typst markup.math.typst punctuation.definition.string.math.typst -# ^^^^^^^^^^ source.typst markup.math.typst +# ^^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst # ^ source.typst markup.math.typst punctuation.definition.string.math.typst > >$ ||x||_[) $ #^ source.typst markup.math.typst punctuation.definition.string.math.typst -# ^^^^^^^^^^ source.typst markup.math.typst +# ^^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst # ^ source.typst markup.math.typst punctuation.definition.string.math.typst > >$ ||x||_⧼) $ #^ source.typst markup.math.typst punctuation.definition.string.math.typst -# ^^^^^^^^^^ source.typst markup.math.typst +# ^^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst # ^ source.typst markup.math.typst punctuation.definition.string.math.typst > >$ 1 / () $ #^ source.typst markup.math.typst punctuation.definition.string.math.typst -# ^^^^^^^^ source.typst markup.math.typst +# ^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst # ^ source.typst markup.math.typst punctuation.definition.string.math.typst > >$ √() $ #^ source.typst markup.math.typst punctuation.definition.string.math.typst -# ^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst # ^ source.typst markup.math.typst punctuation.definition.string.math.typst > >$ ∛() $ #^ source.typst markup.math.typst punctuation.definition.string.math.typst -# ^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst # ^ source.typst markup.math.typst punctuation.definition.string.math.typst > >$ ∛∜() $ #^ source.typst markup.math.typst punctuation.definition.string.math.typst -# ^^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst # ^ source.typst markup.math.typst punctuation.definition.string.math.typst > \ No newline at end of file diff --git a/syntaxes/textmate/tests/unit/math/bracket_unmatch.typ.snap b/syntaxes/textmate/tests/unit/math/bracket_unmatch.typ.snap index 27ac0573a..2ef396cc8 100644 --- a/syntaxes/textmate/tests/unit/math/bracket_unmatch.typ.snap +++ b/syntaxes/textmate/tests/unit/math/bracket_unmatch.typ.snap @@ -1,30 +1,56 @@ >$ ||x||_(cal(l)_2() $ #^ source.typst markup.math.typst punctuation.definition.string.math.typst -# ^^^^^^^^^^^^^^^^^^^ source.typst markup.math.typst +# ^^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^^^ source.typst markup.math.typst meta.expr.call.typst entity.name.function.typst +# ^ source.typst markup.math.typst meta.expr.call.typst meta.brace.round.typst +# ^ source.typst markup.math.typst meta.expr.call.typst +# ^ source.typst markup.math.typst meta.expr.call.typst meta.brace.round.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst +# ^ source.typst markup.math.typst markup.content.brace.typst +# ^ source.typst markup.math.typst markup.content.brace.typst +# ^ source.typst markup.math.typst # ^ source.typst markup.math.typst punctuation.definition.string.math.typst > >$ ||x||_) $ #^ source.typst markup.math.typst punctuation.definition.string.math.typst -# ^^^^^^^^^ source.typst markup.math.typst +# ^^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst markup.content.brace.typst +# ^ source.typst markup.math.typst # ^ source.typst markup.math.typst punctuation.definition.string.math.typst > >$ ||x||_[ $ #^ source.typst markup.math.typst punctuation.definition.string.math.typst -# ^^^^^^^^^ source.typst markup.math.typst +# ^^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst # ^ source.typst markup.math.typst punctuation.definition.string.math.typst > >$ ||x||_[ $ #^ source.typst markup.math.typst punctuation.definition.string.math.typst -# ^^^^^^^^^ source.typst markup.math.typst +# ^^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst # ^ source.typst markup.math.typst punctuation.definition.string.math.typst > >$ ||x||_⧼ $ #^ source.typst markup.math.typst punctuation.definition.string.math.typst -# ^^^^^^^^^ source.typst markup.math.typst +# ^^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst constant.other.symbol.typst +# ^ source.typst markup.math.typst # ^ source.typst markup.math.typst punctuation.definition.string.math.typst > >$ ||x||_) $ #^ source.typst markup.math.typst punctuation.definition.string.math.typst -# ^^^^^^^^^ source.typst markup.math.typst +# ^^^^^^ source.typst markup.math.typst +# ^ source.typst markup.math.typst punctuation.math.operator.typst +# ^ source.typst markup.math.typst markup.content.brace.typst +# ^ source.typst markup.math.typst # ^ source.typst markup.math.typst punctuation.definition.string.math.typst > \ No newline at end of file