Skip to content

Commit

Permalink
[Regular Expression] Remove meta.literal
Browse files Browse the repository at this point in the history
This commit removes `meta.literal` as it causes each literal character
to be tokenized separately, which slows down the syntax definition.

Note: Clojure's and Perl's syntax tests are relaxed to not check for
      the removed meta scope anymore.
  • Loading branch information
deathaxe committed Sep 12, 2021
1 parent 4506480 commit 0caecee
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 54 deletions.
16 changes: 7 additions & 9 deletions Clojure/tests/syntax_test_clojure_old.clj
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
(defn square [x] (* x x))
; ^ punctuation.section.parens.begin.clojure
; ^^^^ storage.modifier.def.clojure
; ^- storage
; ^ - storage
; ^^^^^^ entity.name.function.clojure
; ^ punctuation.section.brackets.begin.clojure
; ^ punctuation.section.brackets.end.clojure
Expand All @@ -61,21 +61,21 @@
; ^ string.quoted.double.clojure punctuation.definition.string.begin.clojure
; ^^^^^^^^^^^^^ string.quoted.double.clojure
; ^ string.quoted.double.clojure punctuation.definition.string.end.clojure
; ^- string.quoted.double.clojure
; ^ - string.quoted.double.clojure
; ^^ punctuation.section.parens.end.clojure

(def hello1 (fn [] #"Hello world"))
; ^ punctuation.definition.string.begin.clojure
; ^^^^^^^^^^^^^ string.regexp.clojure
; ^ punctuation.definition.string.end.clojure
; ^- string.regexp.clojure
; ^ - string.regexp.clojure
; ^^ punctuation.section.parens.end.clojure

(def hello2 (fn [] #"Hello world\\"))
; ^ punctuation.definition.string.begin.clojure
; ^^^^^^^^^^^^^^^ string.regexp.clojure
; ^^ constant.character.escape.regexp
; ^- string.regexp.clojure
; ^ - string.regexp.clojure
; ^ punctuation.definition.string.end.clojure
; ^^ punctuation.section.parens.end.clojure
;
Expand All @@ -85,10 +85,8 @@
; ^ punctuation.definition.string.begin.clojure
; ^^ constant.character.escape.regexp - punctuation.definition.string.end.clojure
; ^ punctuation.definition.string.end.clojure
; ^- string.regexp.clojure
; ^ - string.regexp.clojure
; ^^ punctuation.section.parens.end.clojure
; ^^^^^ meta.literal.regexp
; ^^^^^^^ meta.literal.regexp
; ^^ keyword.operator.quantifier.regexp
; ^ invalid.illegal.unexpected-quantifier.regexp
; ^^ keyword.operator.quantifier.regexp
Expand All @@ -100,7 +98,7 @@
; ^ punctuation.definition.string.begin.clojure
; ^ meta.group.regexp keyword.control.group.regexp
; ^^ meta.group.regexp constant.other.assertion.regexp
; ^^^^^^^^^^^^^^ meta.group.regexp meta.literal.regexp
; ^^^^^^^^^^^^^^ meta.group.regexp
; ^ punctuation.definition.string.end.clojure
; ^- string.regexp.clojure
; ^ - string.regexp.clojure
; ^^ punctuation.section.parens.end.clojure
4 changes: 2 additions & 2 deletions Perl/syntax_test_perl.pl
Original file line number Diff line number Diff line change
Expand Up @@ -3669,7 +3669,7 @@ =head1 B<--param>
# ^^^^ variable.other.readwrite.perl
# ^ keyword.operator.assignment.perl
# ^ punctuation.section.generic.begin.perl
# ^^^^^^^ meta.string.perl string.regexp.perl source.regexp meta.literal.regexp
# ^^^^^^^ meta.string.perl string.regexp.perl source.regexp
# ^ punctuation.section.generic.end.perl
# ^ punctuation.terminator.statement.perl
# ^ punctuation.section.block.end.perl
Expand Down Expand Up @@ -4756,7 +4756,7 @@ =head1 B<--param>
print /pattern/g;
# ^^^^^ support.function.perl
# ^ punctuation.section.generic.begin.perl
# ^^^^^^^ meta.string.perl string.regexp.perl source.regexp meta.literal.regexp
# ^^^^^^^ meta.string.perl string.regexp.perl source.regexp
# ^ punctuation.section.generic.end.perl
# ^ constant.language.flags.regexp.perl
print(grep /^Client-/, $res->header_field_names)
Expand Down
2 changes: 0 additions & 2 deletions Regular Expressions/RegExp (Basic).sublime-syntax
Original file line number Diff line number Diff line change
Expand Up @@ -275,5 +275,3 @@ contexts:
scope: keyword.other.any.regexp # https:/sublimehq/Packages/issues/314
- match: \)
scope: invalid.illegal.unmatched-brace.regexp
- match: \w+|.
scope: meta.literal.regexp
49 changes: 8 additions & 41 deletions Regular Expressions/syntax_test_regexp.re
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,15 @@

(?abc)
#^ invalid.illegal.unexpected-quantifier.regexp - storage.modifier.mode.regexp
# ^^^ meta.literal.regexp - storage.modifier.mode.regexp
# ^^^ - storage.modifier.mode.regexp

.*?
#^ keyword.other.any.regexp - meta.literal.regexp
#^ keyword.other.any.regexp
# ^^ keyword.operator.quantifier.regexp

(?=.++\.??\|{2,3}|{2})
#^^ constant.other.assertion.regexp
# ^ keyword.other.any.regexp - meta.literal.regexp
# ^ keyword.other.any.regexp
# ^^ keyword.operator.quantifier.regexp
# ^^ constant.character.escape.regexp
# ^^ keyword.operator.quantifier.regexp
Expand Down Expand Up @@ -109,8 +109,6 @@ a{}

hello**
# ^ invalid.illegal.unexpected-quantifier.regexp
#<- meta.literal.regexp
#^^^^ meta.literal.regexp

)
# <- invalid.illegal.unmatched-brace.regexp
Expand Down Expand Up @@ -285,7 +283,6 @@ where escape characters are ignored.\).
^ - comment

(?ix:
#^^^^
# comment
#^^^^^^^^ comment.line.number-sign

Expand All @@ -312,7 +309,7 @@ where escape characters are ignored.\).
(?<named_group>test)
#^^^^^^^^^^^^^^ keyword.other.named-capture-group.regexp
# ^^^^^^^^^^^ entity.name.capture-group.regexp
# ^^^^ meta.literal.regexp - keyword.other.named-capture-group.regexp
# ^^^^ - keyword.other.named-capture-group.regexp

\g{1}
#^^^^^ keyword.other.backref-and-recursion.regexp - keyword.operator.quantifier.regexp
Expand All @@ -339,7 +336,7 @@ where escape characters are ignored.\).
# ^ variable.other.backref-and-recursion.regexp

(1)
#^ meta.literal.regexp - keyword - variable
#^ - keyword - variable

(?&named_group)
#^^^^^^^^^^^^^ keyword.other.backref-and-recursion.regexp
Expand All @@ -366,7 +363,7 @@ where escape characters are ignored.\).
# ^^^^^^^^^^^ entity.name.capture-group.regexp
# ^ punctuation.definition.capture-group-name.begin.regexp
# ^ punctuation.definition.capture-group-name.end.regexp
# ^^^^ meta.literal.regexp - keyword.other.named-capture-group.regexp
# ^^^^ - keyword.other.named-capture-group.regexp
# ^^^^^^^^^^^^^ keyword.other.backref-and-recursion.regexp
# ^^^^^^^^^^^ variable.other.backref-and-recursion.regexp

Expand All @@ -392,7 +389,6 @@ where escape characters are ignored.\).
# ^^^^ variable.other.backref-and-recursion.regexp
# ^ punctuation.definition.capture-group-name.end.regexp
# ^^^^ entity.name.capture-group.regexp
# ^ meta.literal.regexp
# ^ punctuation.definition.capture-group-name.begin.regexp
# ^^^^ variable.other.backref-and-recursion.regexp
# ^ punctuation.definition.capture-group-name.end.regexp
Expand All @@ -414,7 +410,6 @@ where escape characters are ignored.\).
#^^ constant.other.assertion.regexp
# ^ keyword.control.set.regexp
# ^ keyword.control.set.regexp
# ^^^ - meta.literal.regexp
# ^ keyword.other.any.regexp
# ^^^ keyword.other.backref-and-recursion.regexp
# ^ keyword.control.anchors.regexp
Expand Down Expand Up @@ -452,9 +447,7 @@ where escape characters are ignored.\).
# ^^ constant.other.assertion.regexp
# ^^ keyword.control.character-class.regexp
# ^ keyword.control.group.regexp
# ^ meta.literal.regexp
# ^ keyword.operator.alternation.regexp
# ^ meta.literal.regexp
# ^ keyword.control.group.regexp
(?(?=\d)\da|b)
#^ keyword.other.conditional.regexp
Expand All @@ -463,44 +456,31 @@ where escape characters are ignored.\).
# ^^ keyword.control.character-class.regexp
# ^ keyword.control.group.regexp
# ^^ keyword.control.character-class.regexp
# ^ meta.literal.regexp
# ^ keyword.operator.alternation.regexp
# ^ meta.literal.regexp
# ^ keyword.control.group.regexp
(?(?<=\dc)a|b)
#^ keyword.other.conditional.regexp
# ^ keyword.control.group.regexp
# ^^^ constant.other.assertion.regexp
# ^^ keyword.control.character-class.regexp
# ^ meta.literal.regexp
# ^ keyword.control.group.regexp
# ^ meta.literal.regexp
# ^ keyword.operator.alternation.regexp
# ^ meta.literal.regexp
# ^ keyword.control.group.regexp
(?(R)a|b)
#^^^^ keyword.other.backref-and-recursion.conditional.regexp
# ^ meta.literal.regexp
# ^ keyword.operator.alternation.regexp
# ^ meta.literal.regexp
# ^ keyword.control.group.regexp
(?(R1)a|b)
#^^^^^ keyword.other.backref-and-recursion.conditional.regexp
# ^ meta.literal.regexp
# ^ keyword.operator.alternation.regexp
# ^ meta.literal.regexp
# ^ keyword.control.group.regexp
(?(R1)a|b)
#^^^^^ keyword.other.backref-and-recursion.conditional.regexp
# ^ meta.literal.regexp
# ^ keyword.operator.alternation.regexp
# ^ meta.literal.regexp
# ^ keyword.control.group.regexp
(?<a>a)?b(?(R&a)c|d)(?1)
# ^^^^^^ keyword.other.backref-and-recursion.conditional.regexp
# ^ meta.literal.regexp
# ^ keyword.operator.alternation.regexp
# ^ meta.literal.regexp
# ^ keyword.control.group.regexp
(?(DEFINE)(?<a>abcd))(?&a)
#^^^^^^^^^ keyword.other.conditional.definition.regexp
Expand All @@ -526,9 +506,7 @@ where escape characters are ignored.\).
# ^^ constant.other.assertion.regexp
# ^^ keyword.control.character-class.regexp
# ^ keyword.control.group.regexp
# ^ meta.literal.regexp
# ^ keyword.operator.alternation.regexp
# ^ meta.literal.regexp
# ^ keyword.control.group.regexp
(?(?=\d)\da|b)
#^ keyword.other.conditional.regexp
Expand All @@ -537,38 +515,27 @@ where escape characters are ignored.\).
# ^^ keyword.control.character-class.regexp
# ^ keyword.control.group.regexp
# ^^ keyword.control.character-class.regexp
# ^ meta.literal.regexp
# ^ keyword.operator.alternation.regexp
# ^ meta.literal.regexp
# ^ keyword.control.group.regexp
(?(?<=\dc)a|b)
#^ keyword.other.conditional.regexp
# ^ keyword.control.group.regexp
# ^^^ constant.other.assertion.regexp
# ^^ keyword.control.character-class.regexp
# ^ meta.literal.regexp
# ^ keyword.control.group.regexp
# ^ meta.literal.regexp
# ^ keyword.operator.alternation.regexp
# ^ meta.literal.regexp
# ^ keyword.control.group.regexp
(?(R)a|b)
#^^^^ keyword.other.backref-and-recursion.conditional.regexp
# ^ meta.literal.regexp
# ^ keyword.operator.alternation.regexp
# ^ meta.literal.regexp
# ^ keyword.control.group.regexp
(?(R1)a|b)
#^^^^^ keyword.other.backref-and-recursion.conditional.regexp
# ^ meta.literal.regexp
# ^ keyword.operator.alternation.regexp
# ^ meta.literal.regexp
# ^ keyword.control.group.regexp
(?<a>a)?b(?(R&a)c|d)(?1)
# ^^^^^^ keyword.other.backref-and-recursion.conditional.regexp
# ^ meta.literal.regexp
# ^ keyword.operator.alternation.regexp
# ^ meta.literal.regexp
# ^ keyword.control.group.regexp
(?(DEFINE)(?<a>abcd))(?&a)
#^^^^^^^^^ keyword.other.conditional.definition.regexp
Expand All @@ -582,7 +549,7 @@ where escape characters are ignored.\).
# ^^^^^^^^^^^ keyword.control.verb.regexp
(*PRUNE) (*SKIP) (*THEN) (*COMMIT) (*FAIL) (*F) (*ACCEPT)
#^^^^^^^^ keyword.control.verb.regexp
# ^ meta.literal.regexp - keyword.control.verb.regexp
# ^ - keyword.control.verb.regexp
# ^^^^^^^ keyword.control.verb.regexp
# ^ - keyword.control.verb.regexp
# ^^^^^^^ keyword.control.verb.regexp
Expand All @@ -599,7 +566,7 @@ where escape characters are ignored.\).
(?x)
(*PRUNE) (*SKIP) (*THEN) (*COMMIT) (*FAIL) (*F) (*ACCEPT)
#^^^^^^^^ keyword.control.verb.regexp
# ^ - meta.literal.regexp - keyword.control.verb.regexp
# ^ - keyword.control.verb.regexp
# ^^^^^^^ keyword.control.verb.regexp
# ^ - keyword.control.verb.regexp
# ^^^^^^^ keyword.control.verb.regexp
Expand Down

0 comments on commit 0caecee

Please sign in to comment.