Skip to content

Commit 70b3e0d

Browse files
committed
Add multi-line variable declaration support
1 parent 096c596 commit 70b3e0d

File tree

2 files changed

+61
-11
lines changed

2 files changed

+61
-11
lines changed

client/src/syntaxes/vba.tmLanguage.yaml

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -411,10 +411,10 @@ repository:
411411
- include: "#AsTypeObject"
412412
repository:
413413
AsTypePrimative:
414-
name: support.type.primitive.vba
414+
name: support.type.primitive.$1.vba
415415
match: (?i)(boolean|byte|currency|date|decimal|double|integer|long(long|ptr)?|single|string|variant)\b
416416
AsTypeObject:
417-
name: support.type.object.vba
417+
name: support.type.object.$1.vba
418418
match: (?i)([A-Z][A-Z0-9_]*)
419419

420420
argumentsSignature:
@@ -760,18 +760,33 @@ repository:
760760
patterns:
761761
- include: "#lineContinuation"
762762
- include: "#separator"
763-
- match: (?i)([a-z][a-z0-9_]*)([&%#!@$^])?(?:\s+(as)\s+([a-z][a-z0-9_.]*))?
763+
- include: "#types"
764+
- include: "#variable"
765+
766+
constDeclaration:
767+
name: meta.const.declaration.vba
768+
begin: (?i)(?:(global|public|private)\s+)?(const)
769+
end: (?=[':\n])
770+
beginCaptures:
771+
1:
772+
name: storage.modifier.vba
773+
2:
774+
name: storage.type.vba
775+
patterns:
776+
- include: "#lineContinuation"
777+
- include: "#separator"
778+
- include: "#types"
779+
- include: "#variable"
780+
- match: (=)\s+([^,'_\n]*)
764781
captures:
765782
1:
766-
name: variable.other.read-write.vba
783+
name: keyword.operator.assignment.vba
767784
2:
768-
name: storage.type.$2.vba
769-
3:
770-
name: keyword.control.as.vba
771-
4:
772-
name: support.type.$4.vba
785+
patterns:
786+
- include: "#literals"
773787

774-
constDeclaration:
788+
789+
constDeclaration2:
775790
name: storage.const-declaration.vba
776791
match: (?i)^\s*((?:(?:Public|Private)\s+)?Const)\s+([a-z][a-z0-9_]*)([&%#!@$^])?(\s+As\s+[a-z][a-z0-9_]*)?(.*)
777792
captures:
@@ -865,7 +880,6 @@ repository:
865880
beginCaptures:
866881
1:
867882
patterns:
868-
- include: "#kw-storageMe"
869883
- include: "#variable"
870884
2:
871885
patterns:

test/textmate/unit/declarations.vba

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,3 +68,39 @@ Global Const X As Long = 0, Y As Long = 0, Z = 0 ' Comment
6868
' ^^^^ ^^^^ support.type.primitive.Long.vba
6969
' ^ ^ punctuation.separator.vba
7070
' ^^^^^^^^^ comment.line.apostrophe.vba - meta.variable.declaration.vba
71+
Dim x As Long, _
72+
'<--- meta.variable.declaration.vba storage.modifier.declare-variable.vba
73+
' ^ meta.variable.declaration.vba variable.other.readwrite.vba
74+
' ^^ meta.variable.declaration.vba keyword.control.as.vba
75+
' ^^^^ meta.variable.declaration.vba support.type.primitive.Long.vba
76+
' ^ meta.variable.declaration.vba punctuation.separator.vba
77+
' ^ meta.variable.declaration.vba keyword.control.line-continuation.vba
78+
y As Long, _
79+
' ^ meta.variable.declaration.vba variable.other.readwrite.vba
80+
' ^^ meta.variable.declaration.vba keyword.control.as.vba
81+
' ^^^^ meta.variable.declaration.vba support.type.primitive.Long.vba
82+
' ^ meta.variable.declaration.vba punctuation.separator.vba
83+
' ^ meta.variable.declaration.vba keyword.control.line-continuation.vba
84+
z ' Comment
85+
' ^ meta.variable.declaration.vba variable.other.readwrite.vba
86+
' ^^^^^^^^^ comment.line.apostrophe.vba - meta.variable.declaration.vba
87+
Const X As Long = 0, _
88+
'<----- meta.const.declaration.vba storage.type.vba
89+
' ^ meta.const.declaration.vba variable.other.constant
90+
' ^^ meta.const.declaration.vba keyword.control.as.vba
91+
' ^^^^ meta.const.declaration.vba support.type.primitive.Long.vba
92+
' ^ meta.const.declaration.vba keyword.operator.assignment.vba
93+
' ^ meta.const.declaration.vba constant.numeric.vba
94+
' ^ meta.const.declaration.vba keyword.control.line-continuation.vba
95+
Y As Long = 0, _
96+
' ^ meta.const.declaration.vba variable.other.constant
97+
' ^^ meta.const.declaration.vba keyword.control.as.vba
98+
' ^^^^ meta.const.declaration.vba support.type.primitive.Long.vba
99+
' ^ meta.const.declaration.vba keyword.operator.assignment.vba
100+
' ^ meta.const.declaration.vba constant.numeric.vba
101+
' ^ meta.const.declaration.vba keyword.control.line-continuation.vba
102+
Z = 0 ' Comment
103+
' ^ meta.const.declaration.vba variable.other.constant
104+
' ^ meta.const.declaration.vba keyword.operator.assignment.vba
105+
' ^ meta.const.declaration.vba constant.numeric.vba
106+
' ^^^^^^^^^ comment.line.apostrophe.vba - meta.variable.declaration.vba

0 commit comments

Comments
 (0)