@@ -65,7 +65,6 @@ repository:
6565 - include : " #methodSignature"
6666 - include : " #enum"
6767 - include : " #struct"
68- - include : " #variableDeclarations"
6968 - include : " #main"
7069
7170 continuations :
@@ -89,9 +88,8 @@ repository:
8988
9089 main :
9190 patterns :
92- - include : " #declareFunctionSignature"
9391 - include : " #methodSignature"
94- - include : " #variableDeclarations "
92+ - include : " #declaration "
9593 - include : " #block"
9694
9795
@@ -794,36 +792,6 @@ repository:
794792 patterns :
795793 - include : " #comments"
796794
797- declareFunctionSignature :
798- name : source.declare.signature.vba
799- begin : (?i)^\s*((?:Public|Private|Friend)?\b\s*Declare)\s+(PtrSafe\s+)?(Sub|Function)\s+([a-z][a-z0-9_]*)\s+(Lib)\s+("[a-z][a-z0-9._]*")(?:\s+(Alias)\s+("[a-z][a-z0-9_]*"))?\s+\(
800- end : ' (?i)(?:\))\s+(as\s+[a-z][a-z0-9_]*)'
801- beginCaptures :
802- 1 : # Public|Private|Friend Declare
803- name : storage.type.method.vba
804- 2 : # PtrSafe
805- name : storage.type.method.vba
806- 3 : # Sub|Function
807- name : storage.type.method.vba
808- 4 : # Name
809- name : entity.name.function.vba
810- 5 : # Lib
811- name : storage.type.method.vba
812- 6 : # Lib name
813- patterns :
814- - include : " #literals"
815- 7 : # Alias
816- name : storage.type.method.vba
817- 8 : # Alias name
818- patterns :
819- - include : " #literals"
820- endCaptures :
821- 1 : # return type
822- patterns :
823- - include : " #types"
824- patterns :
825- - include : " #argumentsSignature"
826-
827795 methodSignature :
828796 name : source.method.signature.vba
829797 begin : (?i)^\s*((?:Public|Private)?\b\s*(?:(?:Sub|Function)|Property\s+(?:Let|Get|Set)))\s+([a-z][a-z0-9_]*)\s*(\()
@@ -884,7 +852,7 @@ repository:
884852 block :
885853 patterns :
886854 - include : " #testing"
887- - include : " #variableDeclarations "
855+ - include : " #declaration "
888856 - include : " #valueAssignment"
889857 - include : " #methodAttribute"
890858 - include : " #methodClose"
@@ -905,23 +873,25 @@ repository:
905873 name : punctuation.separator.vba
906874 match : ' ,'
907875
908- variableDeclarations :
876+ declaration :
909877 patterns :
910878 - include : " #variableDeclarationVisbility"
911879 - include : " #variableDeclarationDim"
912880 - include : " #variableDeclarationConst"
881+ - include : " #methodDeclarationDeclare"
913882 repository :
914883 variableDeclarationVisbility :
915884 name : meta.declare.$1.vba
916885 begin : (?i)(global|public|private)
917886 end : (?=[':\n])
918887 beginCaptures :
919888 0 :
920- name : storage.modifier.declare-variable .vba
889+ name : storage.modifier.visibility .vba
921890 patterns :
922891 - include : " #separator"
923892 - include : " #lineContinuation"
924893 - include : " #variableDeclarationConst"
894+ - include : " #methodDeclarationDeclare"
925895 - include : " #variableDeclarationVarName"
926896
927897 variableDeclarationDim :
@@ -930,7 +900,7 @@ repository:
930900 end : (?=[':\n])
931901 beginCaptures :
932902 0 :
933- name : storage.modifier.declare-variable .vba
903+ name : storage.modifier.declare.vba
934904 patterns :
935905 - include : " #separator"
936906 - include : " #lineContinuation"
@@ -942,13 +912,12 @@ repository:
942912 end : (?=[':\n])
943913 beginCaptures :
944914 0 :
945- name : storage.modifier.declare-variable .vba
915+ name : storage.modifier.declare.vba
946916 patterns :
947917 - include : " #separator"
948918 - include : " #lineContinuation"
949919 - include : " #variableDeclarationConstName"
950920
951-
952921 variableDeclarationVarName :
953922 begin : (?i)[a-z][a-z0-9_]*
954923 end : (?=[':\n,])
@@ -1003,6 +972,94 @@ repository:
1003972 - include : " #lineContinuation"
1004973 - include : " #argumentSignatureFromTypeName"
1005974
975+ methodDeclarationDeclare :
976+ name : meta.declare.function.vba
977+ begin : (?i)declare
978+ end : (?=[':\n])
979+ beginCaptures :
980+ 0 :
981+ name : storage.modifier.declare.vba
982+ patterns :
983+ - include : " #lineContinuation"
984+ - include : " #methodDeclarationPtrsafe"
985+ - include : " #methodDeclarationMethod"
986+ - include : " #argumentSignatureFromTypeAs"
987+
988+ methodDeclarationPtrsafe :
989+ begin : (?i)ptrsafe
990+ end : (?=[)':\n])
991+ beginCaptures :
992+ 0 :
993+ name : storage.modifier.declare.vba
994+ patterns :
995+ - include : " #lineContinuation"
996+ - include : " #methodDeclarationMethod"
997+
998+ methodDeclarationMethod :
999+ begin : (?i)sub|function
1000+ end : (?=[)':\n])
1001+ beginCaptures :
1002+ 0 :
1003+ name : storage.type.$0.vba
1004+ patterns :
1005+ - include : " #lineContinuation"
1006+ - include : " #methodDeclarationIdentifier"
1007+
1008+ methodDeclarationIdentifier :
1009+ begin : (?i)[a-z][a-z0-9_]*
1010+ end : (?=[)':\n])
1011+ beginCaptures :
1012+ 0 :
1013+ name : entity.name.function.vba
1014+ patterns :
1015+ - include : " #lineContinuation"
1016+ - include : " #methodDeclarationLib"
1017+
1018+ methodDeclarationLib :
1019+ begin : (?i)lib
1020+ end : (?=[)':\n])
1021+ beginCaptures :
1022+ 0 :
1023+ name : storage.type.dll.vba
1024+ patterns :
1025+ - include : " #lineContinuation"
1026+ - include : " #methodDeclarationLibIdentifier"
1027+
1028+ methodDeclarationLibIdentifier :
1029+ begin : (?i)"[a-z][a-z0-9._]*"(\s+\()?
1030+ end : (?=[)':\n])
1031+ beginCaptures :
1032+ 0 :
1033+ patterns :
1034+ - include : " #literals"
1035+ patterns :
1036+ - include : " #separator"
1037+ - include : " #lineContinuation"
1038+ - include : " #methodDeclarationAlias"
1039+ - include : " #argumentsSignature"
1040+
1041+ methodDeclarationAlias :
1042+ begin : (?i)alias
1043+ end : (?=[)':\n])
1044+ beginCaptures :
1045+ 0 :
1046+ name : storage.type.dll.vba
1047+ patterns :
1048+ - include : " #lineContinuation"
1049+ - include : " #methodDeclarationAliasIdentifier"
1050+
1051+ methodDeclarationAliasIdentifier :
1052+ begin : (?i)"[a-z][a-z0-9._]*"
1053+ end : (?=[)':\n])
1054+ beginCaptures :
1055+ 0 :
1056+ patterns :
1057+ - include : " #literals"
1058+ patterns :
1059+ - include : " #separator"
1060+ - include : " #lineContinuation"
1061+ - include : " #argumentsSignature"
1062+
10061063 valueAssignment :
10071064 name : meta.variable-assignment.vba
10081065 begin : (?i)(?:(Let|Set)\s+)?((?:[a-z][a-z0-9_]*)?(?:\.(?:(?:[a-z][a-z0-9_]*)?\.)*)?(?:[a-z][a-z0-9_]*)?)(\s*=\s*)
0 commit comments