Skip to content

Commit c85fdcf

Browse files
committed
Support for semantic tokens requests
1 parent 314b8fe commit c85fdcf

File tree

9 files changed

+775
-438
lines changed

9 files changed

+775
-438
lines changed

server/src/antlr/vba.g4

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,15 +102,17 @@ startRule : module EOF;
102102
module :
103103
WS?
104104
endOfLine*
105-
(moduleHeader endOfLine*)?
106-
moduleConfig? endOfLine*
105+
(moduleHeader endOfLine* | errorWords)?
106+
(moduleConfig? endOfLine* | errorWords)
107107
moduleAttributes? endOfLine*
108108
moduleDeclarations? endOfLine*
109109
moduleBody? endOfLine*
110110
WS?
111111
;
112112

113-
moduleHeader : VERSION WS DOUBLELITERAL WS CLASS;
113+
errorWords : EW;
114+
115+
moduleHeader : errorWords? VERSION WS DOUBLELITERAL WS CLASS;
114116

115117
moduleConfig :
116118
BEGIN endOfLine*
@@ -160,6 +162,7 @@ moduleBodyElement :
160162
| propertyLetStmt
161163
| subStmt
162164
| macroStmt
165+
| errorWords
163166
;
164167

165168

@@ -238,6 +241,7 @@ blockStmt :
238241
| writeStmt
239242
| implicitCallStmt_InBlock
240243
| implicitCallStmt_InStmt
244+
| errorWords
241245
;
242246

243247

@@ -623,7 +627,7 @@ iCS_S_ProcedureOrArrayCall : (ambiguousIdentifier | baseType) typeHint? WS? LPAR
623627

624628
iCS_S_MembersCall : (iCS_S_VariableOrProcedureCall | iCS_S_ProcedureOrArrayCall)? iCS_S_MemberCall+ dictionaryCallStmt? (WS? LPAREN subscripts RPAREN)*;
625629

626-
iCS_S_MemberCall : ('.' | '!') (iCS_S_VariableOrProcedureCall | iCS_S_ProcedureOrArrayCall);
630+
iCS_S_MemberCall : LINE_CONTINUATION? ('.' | '!') LINE_CONTINUATION? (iCS_S_VariableOrProcedureCall | iCS_S_ProcedureOrArrayCall);
627631

628632
iCS_S_DictionaryCall : dictionaryCallStmt;
629633

@@ -769,7 +773,7 @@ ELSEIF: 'ELSEIF';
769773
END_ENUM: 'END' WS 'ENUM';
770774
END_FUNCTION: 'END' WS 'FUNCTION';
771775
END_IF: 'END' WS 'IF';
772-
END_PROPERTY: 'END' WS' PROPERTY';
776+
END_PROPERTY: 'END' WS 'PROPERTY';
773777
END_SELECT: 'END' WS 'SELECT';
774778
END_SUB: 'END' WS 'SUB';
775779
END_TYPE: 'END' WS 'TYPE';
@@ -936,13 +940,13 @@ fragment DATEVALUEPART : DIGIT+ | MONTHNAME;
936940
fragment DATESEPARATOR : WS? [/,-]? WS?;
937941
fragment MONTHNAME : ENGLISHMONTHNAME | ENGLISHMONTHABBREVIATION;
938942
fragment ENGLISHMONTHNAME: 'JANUARY' | 'FEBRUARY' | 'MARCH' | 'APRIL' | 'MAY' | 'JUNE | AUGUST' | 'SEPTEMBER' | 'OCTOBER' | 'NOVEMBER' | 'DECEMBER';
939-
fragment ENGLISHMONTHABBREVIATION: 'JAN' | 'FEB' | 'MAR' | 'APR' | 'JUN' | 'JUL' | 'AUG' | 'SEP' | ' OCT' | 'NOV' | 'DEC';
943+
fragment ENGLISHMONTHABBREVIATION: 'JAN' | 'FEB' | 'MAR' | 'APR' | 'JUN' | 'JUL' | 'AUG' | 'SEP' | 'OCT' | 'NOV' | 'DEC';
940944
fragment TIMEVALUE : DIGIT+ AMPM | DIGIT+ TIMESEPARATOR DIGIT+ (TIMESEPARATOR DIGIT+)? AMPM?;
941945
fragment TIMESEPARATOR : WS? (':' | '.') WS?;
942946
fragment AMPM : WS? ('AM' | 'PM' | 'A' | 'P');
943947
944948
// whitespace, line breaks, comments, ...
945-
LINE_CONTINUATION : [ \t]+ UNDERSCORE '\r'? '\n' -> skip;
949+
LINE_CONTINUATION : [ \t]+ UNDERSCORE '\r'? '\n' WS* -> skip;
946950
NEWLINE : [\r\n\u2028\u2029]+;
947951
REMCOMMENT : COLON? REM WS (LINE_CONTINUATION | ~[\r\n\u2028\u2029])*;
948952
COMMENT : SINGLEQUOTE (LINE_CONTINUATION | ~[\r\n\u2028\u2029])*;
@@ -953,6 +957,8 @@ WS : ([ \t] | LINE_CONTINUATION)+;
953957

954958
// identifier
955959
IDENTIFIER : ~[\]()\r\n\t.,'"|!@#$%^&*\-+:=; ]+ | L_SQUARE_BRACKET (~[!\]\r\n])+ R_SQUARE_BRACKET;
960+
EW : (.* LINE_CONTINUATION)*? WS;
961+
956962
957963
// letters
958964
fragment LETTER : [A-Z_\p{L}];

server/src/capabilities/ast.ts

Lines changed: 0 additions & 224 deletions
This file was deleted.

server/src/capabilities/vbaFolding.ts

Lines changed: 0 additions & 31 deletions
This file was deleted.

0 commit comments

Comments
 (0)