Skip to content

Commit c8265ee

Browse files
authored
Merge pull request #7 from SSlinky/dev
Syntax bug fixes
2 parents 2ae6ba7 + 60155db commit c8265ee

File tree

1 file changed

+14
-19
lines changed

1 file changed

+14
-19
lines changed

client/src/syntaxes/vba.tmLanguage.yaml

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)