Skip to content

Commit

Permalink
Simplify numbers patterns
Browse files Browse the repository at this point in the history
This commit removes single-used variables and simplifies patterns related to
numbers matching, according to how it is implemented in Twig.

Note: Rearranges some syntax test assertions
  • Loading branch information
deathaxe committed Jan 2, 2025
1 parent cc13054 commit 9c6e6bf
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 51 deletions.
20 changes: 5 additions & 15 deletions Syntaxes/Text/Text (Jinja).sublime-syntax
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ file_extensions:
- j2.txt

variables:
digit: '[0-9]'
integers: '({{digit}}*_)?({{digit}}+)'
floats: '({{digit}}+_?)?({{digit}}*)?(\.)({{digit}}+)([eE]?{{digit}}*)?'

ident: (?:{{ident_start}}{{ident_part}}*)
ident_start: '[a-zA-Z_]'
Expand Down Expand Up @@ -453,19 +450,12 @@ contexts:
scope: constant.language.null.jinja

numbers:
- match: '{{floats}}'
scope: meta.number.float.decimal.jinja
- match: (?:\d[\d_]*)?(\.)\d+(?:[eE]\d*)?
scope: meta.number.float.decimal.jinja constant.numeric.value.jinja
captures:
1: constant.numeric.value.jinja
2: constant.numeric.value.jinja
3: punctuation.separator.decimal.jinja
4: constant.numeric.value.jinja
5: constant.numeric.value.exponent.jinja
- match: '{{integers}}'
scope: meta.number.integer.decimal.jinja
captures:
1: constant.numeric.value.jinja
2: constant.numeric.value.jinja
1: punctuation.separator.decimal.jinja
- match: \d[\d_]*
scope: meta.number.integer.decimal.jinja constant.numeric.value.jinja

strings:
- match: \"
Expand Down
67 changes: 31 additions & 36 deletions Syntaxes/Text/syntax_test_scopes.jinja.txt
Original file line number Diff line number Diff line change
Expand Up @@ -380,56 +380,44 @@ not a # for statement:
{{ = ~ }}
## ^^^^^^^^^ meta.embedded.expression.jinja
## ^^ punctuation.section.embedded.begin.jinja
## ^^ punctuation.section.embedded.end.jinja
## ^ keyword.operator.assignment.jinja
## ^ keyword.operator.concatenation.jinja
## ^^ punctuation.section.embedded.end.jinja

{{ true false True False none None }}
## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.embedded.expression.jinja
## ^^ punctuation.section.embedded.begin.jinja
## ^^ punctuation.section.embedded.end.jinja
## ^^^^ constant.language.boolean.true.jinja
## ^^^^^ constant.language.boolean.false.jinja
## ^^^^ constant.language.boolean.true.jinja
## ^^^^^ constant.language.boolean.false.jinja
## ^^^^ constant.language.null.jinja
## ^^^^ constant.language.null.jinja
## ^^ punctuation.section.embedded.end.jinja

{{ 123 123_456 }}
## ^^^^^^^^^^^^^^^^^ meta.embedded.expression.jinja
## ^^ punctuation.section.embedded.begin.jinja
## ^^ punctuation.section.embedded.end.jinja
## ^^^ meta.number.integer.decimal.jinja constant.numeric.value.jinja
## ^^^^^^^ meta.number.integer.decimal.jinja constant.numeric.value.jinja
## ^^ punctuation.section.embedded.end.jinja

{{ 42.3 0.3 .5 42.1e2 123_456.789 123_456.789e1 }}
## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.embedded.expression.jinja
## ^^ punctuation.section.embedded.begin.jinja
## ^^ punctuation.section.embedded.end.jinja
## ^^^^ meta.number.float.decimal.jinja
## ^^ constant.numeric.value.jinja
## ^^^^ meta.number.float.decimal.jinja constant.numeric.value.jinja
## ^ punctuation.separator.decimal.jinja
## ^ constant.numeric.value.jinja
## ^^^ meta.number.float.decimal.jinja
## ^ constant.numeric.value.jinja
## ^^^ meta.number.float.decimal.jinja constant.numeric.value.jinja
## ^ punctuation.separator.decimal.jinja
## ^ constant.numeric.value.jinja
## ^^ meta.number.float.decimal.jinja
## ^^ meta.number.float.decimal.jinja constant.numeric.value.jinja
## ^ punctuation.separator.decimal.jinja
## ^ constant.numeric.value.jinja
## ^^^^^^ meta.number.float.decimal.jinja
## ^^ constant.numeric.value.jinja
## ^^^^^^ meta.number.float.decimal.jinja constant.numeric.value.jinja
## ^ punctuation.separator.decimal.jinja
## ^ constant.numeric.value.jinja
## ^^ constant.numeric.value.exponent.jinja
## ^^^^^^^^^^^ meta.number.float.decimal.jinja
## ^^^^^^^ constant.numeric.value.jinja
## ^^^^^^^^^^^ meta.number.float.decimal.jinja constant.numeric.value.jinja
## ^ punctuation.separator.decimal.jinja
## ^^^ constant.numeric.value.jinja
## ^^^^^^^^^^^^^ meta.number.float.decimal.jinja
## ^^^^^^^^^^^^^ meta.number.float.decimal.jinja constant.numeric.value.jinja
## ^ punctuation.separator.decimal.jinja
## ^^^ constant.numeric.value.jinja
## ^^ constant.numeric.value.exponent.jinja


{{ "Hello, World" 'Hello, World' }}
Expand All @@ -449,57 +437,64 @@ not a # for statement:
## ^^ punctuation.section.embedded.end.jinja
## ^^^^^^^^^^^^^^^^^^^ meta.sequence.list.jinja
## ^ punctuation.section.sequence.begin.jinja
## ^ punctuation.section.sequence.end.jinja
## ^ meta.number.integer.decimal.jinja constant.numeric.value.jinja
## ^^^^^ meta.number.float.decimal.jinja
## ^ punctuation.separator.sequence.jinja
## ^^^^^ meta.number.float.decimal.jinja constant.numeric.value.jinja
## ^ punctuation.section.sequence.end.jinja

{{ ["a", 'c'] }}
## ^^^^^^^^^^^^^^^^ meta.embedded.expression.jinja
## ^^ punctuation.section.embedded.begin.jinja
## ^^ punctuation.section.embedded.end.jinja
## ^^^ meta.string.jinja string.quoted.double.jinja
## ^^^ meta.string.jinja string.quoted.single.jinja
## ^ punctuation.separator.sequence.jinja
## ^^^ meta.string.jinja string.quoted.single.jinja
## ^^ punctuation.section.embedded.end.jinja

{{ (1, 0.5, 'a', "b") }}
## ^^^^^^^^^^^^^^^^^^^^^^^^ meta.embedded.expression.jinja
## ^^ punctuation.section.embedded.begin.jinja
## ^^ punctuation.section.embedded.end.jinja
## ^^^^^^^^^^^^^^^^^^ meta.sequence.tuple.jinja
## ^ punctuation.section.sequence.begin.jinja
## ^ punctuation.section.sequence.end.jinja
## ^ meta.number.integer.decimal.jinja constant.numeric.value.jinja
## ^^^ meta.number.float.decimal.jinja
## ^ punctuation.separator.sequence.jinja
## ^^^ meta.number.float.decimal.jinja constant.numeric.value.jinja
## ^^^ meta.string.jinja string.quoted.single.jinja
## ^^^ meta.string.jinja string.quoted.double.jinja
## ^ punctuation.separator.sequence.jinja
## ^ punctuation.section.sequence.end.jinja
## ^^ punctuation.section.embedded.end.jinja

{{ (1 + 2) (1 not in [1, 2, 3]) }}
## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.embedded.expression.jinja
## ^^ punctuation.section.embedded.begin.jinja
## ^^ punctuation.section.embedded.end.jinja
## ^^^^^^^ meta.group.jinja
## ^ punctuation.section.group.begin.jinja
## ^ meta.group.jinja punctuation.section.group.end.jinja
## ^^^^^^^^^^^^^^^^^^^^ meta.group.jinja
## ^ punctuation.section.group.begin.jinja
## ^ punctuation.section.group.end.jinja
## ^^ punctuation.section.embedded.end.jinja

{{ { "a": "b", 'c': 'd', "e": 123, "f": 123.456 } }}
## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.embedded.expression.jinja
## ^^ punctuation.section.embedded.begin.jinja
## ^^ punctuation.section.embedded.end.jinja
## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.mapping.jinja
## ^ punctuation.section.mapping.begin.jinja
## ^ punctuation.section.mapping.end.jinja
## ^^^ meta.string.jinja string.quoted.double.jinja
## ^^^ meta.string.jinja string.quoted.single.jinja
## ^ punctuation.separator.mapping.key-value.jinja
## ^^^ meta.string.jinja string.quoted.double.jinja
## ^ punctuation.separator.mapping.pair.jinja
## ^^^ meta.string.jinja string.quoted.single.jinja
## ^^^ meta.string.jinja string.quoted.single.jinja
## ^^^ meta.string.jinja string.quoted.single.jinja
## ^ punctuation.separator.mapping.pair.jinja
## ^^^ meta.string.jinja string.quoted.double.jinja
## ^ punctuation.separator.mapping.key-value.jinja
## ^^^ meta.number.integer.decimal.jinja constant.numeric.value.jinja
## ^^^^^^^ meta.number.float.decimal.jinja
## ^ punctuation.separator.mapping.pair.jinja
## ^^^ meta.string.jinja string.quoted.double.jinja
## ^ punctuation.separator.mapping.key-value.jinja
## ^^^^^^^ meta.number.float.decimal.jinja constant.numeric.value.jinja
## ^ punctuation.section.mapping.end.jinja
## ^^ punctuation.section.embedded.end.jinja

{{ not and or }}
## ^^^^^^^^^^^^^^^^ meta.embedded.expression.jinja
Expand Down Expand Up @@ -528,7 +523,7 @@ not a # for statement:
## ^ punctuation.section.interpolation.begin.jinja
## ^ meta.number.integer.decimal.jinja constant.numeric.value.jinja
## ^ keyword.operator.arithmetic.jinja
## ^^^ meta.number.float.decimal.jinja
## ^^^ meta.number.float.decimal.jinja constant.numeric.value.jinja
## ^ punctuation.section.interpolation.end.jinja
## ^^^^^ meta.string.jinja string.quoted.double.jinja
## ^^ punctuation.section.embedded.end.jinja
Expand Down

0 comments on commit 9c6e6bf

Please sign in to comment.