@@ -16,6 +16,7 @@ repository:
1616 - include : " #labels" # Handle labels first so they aren't handled by lines.
1717 - include : " #methodSignature"
1818 - include : " #continuations" # Consume continuations so they "continue" other matches.
19+ - include : " #enum"
1920 - include : " #syntaxLines" # Split document lines into syntax lines.
2021
2122 continuations :
@@ -42,25 +43,12 @@ repository:
4243 match : ((?:[^\n":]|"(?:\\.|[^\n"\\])*")+|"(?:\\.|[^\n"\\])*")
4344 captures :
4445 1 : # Split line
45- # patterns:
46- # - include: "#strings"
47- # - include: "#syntaxLine"
48- # 2: # Single syntax line.
4946 patterns :
5047 - include : " #main"
51- # repository:
52- # syntaxLine:
53- # name: meta.syntax-line.vba
54- # match: (?:(.*):)
55- # captures:
56- # 1:
57- # patterns:
58- # - include: "main"
5948
6049 main :
6150 patterns :
6251 - include : " #moduleHeader"
63- - include : " #enum"
6452 - include : " #struct"
6553 - include : " #declareFunctionSignature"
6654 - include : " #methodSignature"
@@ -112,7 +100,7 @@ repository:
112100 repository :
113101 opsArithmetic :
114102 name : keyword.operator.arithmetic.vba
115- match : (?i)([*&/\+-] |\bMod\b)
103+ match : (?i)([*&\/\^\+\-]|\^ |\bMod\b)
116104 opsComparison :
117105 name : keyword.operator.comparison.vba
118106 match : (?i)([<>=]|\b(is|like)\b)
@@ -471,30 +459,37 @@ repository:
471459
472460 enum :
473461 name : meta.enum.declaration.vba
474- begin : (?i)^\s*((?:(?:Public|Private) )?\s*Enum)\s+([a-z][a-z0-9_]*)
462+ begin : (?i)^\s*((?:(?:Public|Private)\s+ )?\s*Enum)\s+([a-z][a-z0-9_]+)(\s+(?:'|Rem). *)
475463 beginCaptures :
476464 1 :
477465 name : storage.type.enum.vba
478466 2 :
479467 name : entity.name.type.enum.vba
468+ 3 :
469+ patterns :
470+ - include : " #comments"
480471 patterns :
472+ - include : " #comment"
481473 - include : " #enumMember"
482474 end : (?i)^\s*End\s+Enum\b
483475 endCaptures :
484476 0 :
485477 name : storage.type.enum.vba
486478
487479 enumMember :
488- match : (?i)^\s*([a-z][a-z0-9_]*)(\s+=.* )?('.*)?$
480+ match : (?i)^\s*([a-z][a-z0-9_]*)(?: \s+(=)\s+([^\n']*)\s+ )?('.*)?$
489481 captures :
490482 1 :
491483 name : constant.numeric.enum.vba
492484 2 :
493485 patterns :
494- - include : " #language "
486+ - include : " #operators "
495487 3 :
496488 patterns :
497- - include : " #comment"
489+ - include : " #language"
490+ 4 :
491+ patterns :
492+ - include : " #comments"
498493
499494 struct :
500495 name : meta.struct.declaration.vba
@@ -673,7 +668,7 @@ repository:
673668 # TODO: Redo this so it can take into account chaining, e.g.:
674669 # MyClass.MyProp = SomeObject.Foo(20)
675670 variableAssignment :
676- match : (?i)((Get|Let|Set)\s+)?([a-z][a-z0-9._]*)(\s*=\s*)(.*)
671+ match : (?i)((Get|Let|Set)\s+)?([a-z. ][a-z0-9._]*)(\s*=\s*)(.*)
677672 captures :
678673 2 :
679674 name : keyword.control.vba
0 commit comments