brighterscript 0.53.1 → 0.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/dist/LanguageServer.js +26 -4
- package/dist/LanguageServer.js.map +1 -1
- package/dist/Program.d.ts +5 -2
- package/dist/Program.js +41 -30
- package/dist/Program.js.map +1 -1
- package/dist/ProgramBuilder.js +2 -1
- package/dist/ProgramBuilder.js.map +1 -1
- package/dist/Scope.js +19 -4
- package/dist/Scope.js.map +1 -1
- package/dist/SymbolTable.d.ts +4 -0
- package/dist/SymbolTable.js +14 -0
- package/dist/SymbolTable.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.d.ts +3 -1
- package/dist/bscPlugin/BscPlugin.js +8 -0
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +6 -0
- package/dist/bscPlugin/completions/CompletionsProcessor.js +45 -0
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -0
- package/dist/bscPlugin/hover/HoverProcessor.d.ts +13 -0
- package/dist/bscPlugin/hover/HoverProcessor.js +146 -0
- package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -0
- package/dist/bscPlugin/hover/HoverProcessor.spec.d.ts +1 -0
- package/dist/bscPlugin/hover/HoverProcessor.spec.js +195 -0
- package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +1 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +19 -8
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +84 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.d.ts +5 -1
- package/dist/bscPlugin/validation/BrsFileValidator.js +53 -25
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.js +12 -1
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/files/BrsFile.d.ts +5 -6
- package/dist/files/BrsFile.js +73 -125
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +62 -18
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/XmlFile.d.ts +1 -2
- package/dist/files/XmlFile.js +0 -5
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +59 -2
- package/dist/parser/Expression.d.ts +16 -1
- package/dist/parser/Expression.js +31 -1
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.js +5 -3
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.js +4 -0
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/Statement.d.ts +12 -1
- package/dist/parser/Statement.js +15 -1
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/tests/statement/ConstStatement.spec.js +19 -0
- package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
- package/dist/util.d.ts +6 -2
- package/dist/util.js +13 -18
- package/dist/util.js.map +1 -1
- package/package.json +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScopeValidator.js","sourceRoot":"","sources":["../../../src/bscPlugin/validation/ScopeValidator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScopeValidator.js","sourceRoot":"","sources":["../../../src/bscPlugin/validation/ScopeValidator.ts"],"names":[],"mappings":"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"}
|
package/dist/files/BrsFile.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CodeWithSourceMap } from 'source-map';
|
|
2
|
-
import type { CompletionItem,
|
|
2
|
+
import type { CompletionItem, Position, Location, Diagnostic } from 'vscode-languageserver';
|
|
3
3
|
import { SignatureInformation, DocumentSymbol, SymbolInformation } from 'vscode-languageserver';
|
|
4
4
|
import type { Scope } from '../Scope';
|
|
5
5
|
import { FunctionScope } from '../FunctionScope';
|
|
@@ -80,6 +80,10 @@ export declare class BrsFile {
|
|
|
80
80
|
* @param position
|
|
81
81
|
*/
|
|
82
82
|
getTokenAt(position: Position): Token;
|
|
83
|
+
/**
|
|
84
|
+
* Walk the AST and find the expression that this token is most specifically contained within
|
|
85
|
+
*/
|
|
86
|
+
getClosestExpression(position: Position): Expression | Statement;
|
|
83
87
|
get parser(): Parser;
|
|
84
88
|
private _parser;
|
|
85
89
|
fileContents: string;
|
|
@@ -217,11 +221,6 @@ export declare class BrsFile {
|
|
|
217
221
|
*/
|
|
218
222
|
getDefinition(position: Position): Location[];
|
|
219
223
|
getClassMemberDefinitions(textToSearchFor: string, file: BrsFile): Location[];
|
|
220
|
-
getHover(position: Position): Hover;
|
|
221
|
-
/**
|
|
222
|
-
* Build a hover documentation for a callable.
|
|
223
|
-
*/
|
|
224
|
-
private getCallableDocumentation;
|
|
225
224
|
getSignatureHelpForNamespaceMethods(callableName: string, dottedGetText: string, scope: Scope): {
|
|
226
225
|
key: string;
|
|
227
226
|
signature: SignatureInformation;
|
package/dist/files/BrsFile.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.KeywordCompletions = exports.BrsFile = void 0;
|
|
4
4
|
const source_map_1 = require("source-map");
|
|
5
5
|
const vscode_languageserver_1 = require("vscode-languageserver");
|
|
6
|
+
const vscode_languageserver_2 = require("vscode-languageserver");
|
|
6
7
|
const chalk_1 = require("chalk");
|
|
7
8
|
const path = require("path");
|
|
8
9
|
const DiagnosticMessages_1 = require("../DiagnosticMessages");
|
|
@@ -21,6 +22,7 @@ const serialize_error_1 = require("serialize-error");
|
|
|
21
22
|
const reflection_1 = require("../astUtils/reflection");
|
|
22
23
|
const visitors_1 = require("../astUtils/visitors");
|
|
23
24
|
const CommentFlagProcessor_1 = require("../CommentFlagProcessor");
|
|
25
|
+
const vscode_uri_1 = require("vscode-uri");
|
|
24
26
|
/**
|
|
25
27
|
* Holds all details about this file within the scope of the whole program
|
|
26
28
|
*/
|
|
@@ -143,6 +145,29 @@ class BrsFile {
|
|
|
143
145
|
}
|
|
144
146
|
}
|
|
145
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Walk the AST and find the expression that this token is most specifically contained within
|
|
150
|
+
*/
|
|
151
|
+
getClosestExpression(position) {
|
|
152
|
+
const handle = new vscode_languageserver_1.CancellationTokenSource();
|
|
153
|
+
let containingNode;
|
|
154
|
+
this.ast.walk((node) => {
|
|
155
|
+
const latestContainer = containingNode;
|
|
156
|
+
//bsc walks depth-first
|
|
157
|
+
if (util_1.util.rangeContains(node.range, position)) {
|
|
158
|
+
containingNode = node;
|
|
159
|
+
}
|
|
160
|
+
//we had a match before, and don't now. this means we've finished walking down the whole way, and found our match
|
|
161
|
+
if (latestContainer && !containingNode) {
|
|
162
|
+
containingNode = latestContainer;
|
|
163
|
+
handle.cancel();
|
|
164
|
+
}
|
|
165
|
+
}, {
|
|
166
|
+
walkMode: visitors_1.WalkMode.visitAllRecursive,
|
|
167
|
+
cancel: handle.token
|
|
168
|
+
});
|
|
169
|
+
return containingNode;
|
|
170
|
+
}
|
|
146
171
|
get parser() {
|
|
147
172
|
if (!this._parser) {
|
|
148
173
|
//remove the typedef file (if it exists)
|
|
@@ -305,7 +330,7 @@ class BrsFile {
|
|
|
305
330
|
for (const key of Object.keys(propertyHints)) {
|
|
306
331
|
results.push({
|
|
307
332
|
label: propertyHints[key],
|
|
308
|
-
kind:
|
|
333
|
+
kind: vscode_languageserver_2.CompletionItemKind.Text
|
|
309
334
|
});
|
|
310
335
|
}
|
|
311
336
|
return results;
|
|
@@ -651,12 +676,12 @@ class BrsFile {
|
|
|
651
676
|
const pkgPath = `${fileProtocol}:/${file.pkgPath.replace(/\\/g, '/')}`;
|
|
652
677
|
result.push({
|
|
653
678
|
label: pkgPath,
|
|
654
|
-
textEdit:
|
|
679
|
+
textEdit: vscode_languageserver_2.TextEdit.replace(util_1.util.createRange(currentToken.range.start.line,
|
|
655
680
|
//+1 to step past the opening quote
|
|
656
681
|
currentToken.range.start.character + (openingQuote ? 1 : 0), currentToken.range.end.line,
|
|
657
682
|
//-1 to exclude the closing quotemark (or the end character if there is no closing quotemark)
|
|
658
683
|
currentToken.range.end.character + (currentToken.text.endsWith('"') ? -1 : 0)), pkgPath),
|
|
659
|
-
kind:
|
|
684
|
+
kind: vscode_languageserver_2.CompletionItemKind.File
|
|
660
685
|
});
|
|
661
686
|
}
|
|
662
687
|
return result;
|
|
@@ -733,7 +758,7 @@ class BrsFile {
|
|
|
733
758
|
//add `m` because that's always valid within a function
|
|
734
759
|
result.push({
|
|
735
760
|
label: 'm',
|
|
736
|
-
kind:
|
|
761
|
+
kind: vscode_languageserver_2.CompletionItemKind.Variable
|
|
737
762
|
});
|
|
738
763
|
names.m = true;
|
|
739
764
|
result.push(...exports.KeywordCompletions);
|
|
@@ -747,7 +772,7 @@ class BrsFile {
|
|
|
747
772
|
names[variable.name.toLowerCase()] = true;
|
|
748
773
|
result.push({
|
|
749
774
|
label: variable.name,
|
|
750
|
-
kind: (0, reflection_1.isFunctionType)(variable.type) ?
|
|
775
|
+
kind: (0, reflection_1.isFunctionType)(variable.type) ? vscode_languageserver_2.CompletionItemKind.Function : vscode_languageserver_2.CompletionItemKind.Variable
|
|
751
776
|
});
|
|
752
777
|
}
|
|
753
778
|
if (this.parseMode === Parser_1.ParseMode.BrighterScript) {
|
|
@@ -762,7 +787,7 @@ class BrsFile {
|
|
|
762
787
|
names[firstPart.toLowerCase()] = true;
|
|
763
788
|
result.push({
|
|
764
789
|
label: firstPart,
|
|
765
|
-
kind:
|
|
790
|
+
kind: vscode_languageserver_2.CompletionItemKind.Module
|
|
766
791
|
});
|
|
767
792
|
}
|
|
768
793
|
}
|
|
@@ -772,7 +797,7 @@ class BrsFile {
|
|
|
772
797
|
getLabelCompletion(functionScope) {
|
|
773
798
|
return functionScope.labelStatements.map(label => ({
|
|
774
799
|
label: label.name,
|
|
775
|
-
kind:
|
|
800
|
+
kind: vscode_languageserver_2.CompletionItemKind.Reference
|
|
776
801
|
}));
|
|
777
802
|
}
|
|
778
803
|
getClassMemberCompletions(position, currentToken, functionScope, scope) {
|
|
@@ -786,7 +811,7 @@ class BrsFile {
|
|
|
786
811
|
if (!results.has(member.name.text.toLowerCase())) {
|
|
787
812
|
results.set(member.name.text.toLowerCase(), {
|
|
788
813
|
label: member.name.text,
|
|
789
|
-
kind: (0, reflection_1.isClassFieldStatement)(member) ?
|
|
814
|
+
kind: (0, reflection_1.isClassFieldStatement)(member) ? vscode_languageserver_2.CompletionItemKind.Field : vscode_languageserver_2.CompletionItemKind.Function
|
|
790
815
|
});
|
|
791
816
|
}
|
|
792
817
|
}
|
|
@@ -822,7 +847,7 @@ class BrsFile {
|
|
|
822
847
|
if (!results.has(cs.name.text)) {
|
|
823
848
|
results.set(cs.name.text, {
|
|
824
849
|
label: cs.name.text,
|
|
825
|
-
kind:
|
|
850
|
+
kind: vscode_languageserver_2.CompletionItemKind.Class
|
|
826
851
|
});
|
|
827
852
|
}
|
|
828
853
|
}
|
|
@@ -844,7 +869,7 @@ class BrsFile {
|
|
|
844
869
|
if (fullName.startsWith(containingNamespaceName) || !fullName.includes('.')) {
|
|
845
870
|
results.set(fullName, {
|
|
846
871
|
label: enumStatement.name,
|
|
847
|
-
kind:
|
|
872
|
+
kind: vscode_languageserver_2.CompletionItemKind.Enum
|
|
848
873
|
});
|
|
849
874
|
}
|
|
850
875
|
}
|
|
@@ -865,7 +890,7 @@ class BrsFile {
|
|
|
865
890
|
if (fullName.startsWith(containingNamespaceName) || !fullName.includes('.')) {
|
|
866
891
|
results.set(fullName, {
|
|
867
892
|
label: statement.name,
|
|
868
|
-
kind:
|
|
893
|
+
kind: vscode_languageserver_2.CompletionItemKind.Constant
|
|
869
894
|
});
|
|
870
895
|
}
|
|
871
896
|
}
|
|
@@ -894,7 +919,7 @@ class BrsFile {
|
|
|
894
919
|
const nameLower = name.toLowerCase();
|
|
895
920
|
results.set(nameLower, {
|
|
896
921
|
label: member.name,
|
|
897
|
-
kind:
|
|
922
|
+
kind: vscode_languageserver_2.CompletionItemKind.EnumMember
|
|
898
923
|
});
|
|
899
924
|
}
|
|
900
925
|
}
|
|
@@ -928,7 +953,7 @@ class BrsFile {
|
|
|
928
953
|
if (!result.has(ns.lastPartName)) {
|
|
929
954
|
result.set(ns.lastPartName, {
|
|
930
955
|
label: ns.lastPartName,
|
|
931
|
-
kind:
|
|
956
|
+
kind: vscode_languageserver_2.CompletionItemKind.Module
|
|
932
957
|
});
|
|
933
958
|
}
|
|
934
959
|
}
|
|
@@ -938,25 +963,25 @@ class BrsFile {
|
|
|
938
963
|
if ((0, reflection_1.isClassStatement)(stmt)) {
|
|
939
964
|
result.set(stmt.name.text, {
|
|
940
965
|
label: stmt.name.text,
|
|
941
|
-
kind:
|
|
966
|
+
kind: vscode_languageserver_2.CompletionItemKind.Class
|
|
942
967
|
});
|
|
943
968
|
}
|
|
944
969
|
else if ((0, reflection_1.isFunctionStatement)(stmt) && !newToken) {
|
|
945
970
|
result.set(stmt.name.text, {
|
|
946
971
|
label: stmt.name.text,
|
|
947
|
-
kind:
|
|
972
|
+
kind: vscode_languageserver_2.CompletionItemKind.Function
|
|
948
973
|
});
|
|
949
974
|
}
|
|
950
975
|
else if ((0, reflection_1.isEnumStatement)(stmt) && !newToken) {
|
|
951
976
|
result.set(stmt.name, {
|
|
952
977
|
label: stmt.name,
|
|
953
|
-
kind:
|
|
978
|
+
kind: vscode_languageserver_2.CompletionItemKind.Enum
|
|
954
979
|
});
|
|
955
980
|
}
|
|
956
981
|
else if ((0, reflection_1.isConstStatement)(stmt) && !newToken) {
|
|
957
982
|
result.set(stmt.name, {
|
|
958
983
|
label: stmt.name,
|
|
959
|
-
kind:
|
|
984
|
+
kind: vscode_languageserver_2.CompletionItemKind.Constant
|
|
960
985
|
});
|
|
961
986
|
}
|
|
962
987
|
}
|
|
@@ -1182,16 +1207,16 @@ class BrsFile {
|
|
|
1182
1207
|
let symbolKind;
|
|
1183
1208
|
const children = [];
|
|
1184
1209
|
if ((0, reflection_1.isFunctionStatement)(statement)) {
|
|
1185
|
-
symbolKind =
|
|
1210
|
+
symbolKind = vscode_languageserver_2.SymbolKind.Function;
|
|
1186
1211
|
}
|
|
1187
1212
|
else if ((0, reflection_1.isClassMethodStatement)(statement)) {
|
|
1188
|
-
symbolKind =
|
|
1213
|
+
symbolKind = vscode_languageserver_2.SymbolKind.Method;
|
|
1189
1214
|
}
|
|
1190
1215
|
else if ((0, reflection_1.isClassFieldStatement)(statement)) {
|
|
1191
|
-
symbolKind =
|
|
1216
|
+
symbolKind = vscode_languageserver_2.SymbolKind.Field;
|
|
1192
1217
|
}
|
|
1193
1218
|
else if ((0, reflection_1.isNamespaceStatement)(statement)) {
|
|
1194
|
-
symbolKind =
|
|
1219
|
+
symbolKind = vscode_languageserver_2.SymbolKind.Namespace;
|
|
1195
1220
|
for (const childStatement of statement.body.statements) {
|
|
1196
1221
|
const symbol = this.getDocumentSymbol(childStatement);
|
|
1197
1222
|
if (symbol) {
|
|
@@ -1200,7 +1225,7 @@ class BrsFile {
|
|
|
1200
1225
|
}
|
|
1201
1226
|
}
|
|
1202
1227
|
else if ((0, reflection_1.isClassStatement)(statement)) {
|
|
1203
|
-
symbolKind =
|
|
1228
|
+
symbolKind = vscode_languageserver_2.SymbolKind.Class;
|
|
1204
1229
|
for (const childStatement of statement.body) {
|
|
1205
1230
|
const symbol = this.getDocumentSymbol(childStatement);
|
|
1206
1231
|
if (symbol) {
|
|
@@ -1212,7 +1237,7 @@ class BrsFile {
|
|
|
1212
1237
|
return;
|
|
1213
1238
|
}
|
|
1214
1239
|
const name = (0, reflection_1.isClassFieldStatement)(statement) ? statement.name.text : statement.getName(Parser_1.ParseMode.BrighterScript);
|
|
1215
|
-
return
|
|
1240
|
+
return vscode_languageserver_2.DocumentSymbol.create(name, '', symbolKind, statement.range, statement.range, children);
|
|
1216
1241
|
}
|
|
1217
1242
|
/**
|
|
1218
1243
|
* Builds a single SymbolInformation object for use by LanguageServer's onWorkspaceSymbol functionality
|
|
@@ -1221,13 +1246,13 @@ class BrsFile {
|
|
|
1221
1246
|
let symbolKind;
|
|
1222
1247
|
const symbols = [];
|
|
1223
1248
|
if ((0, reflection_1.isFunctionStatement)(statement)) {
|
|
1224
|
-
symbolKind =
|
|
1249
|
+
symbolKind = vscode_languageserver_2.SymbolKind.Function;
|
|
1225
1250
|
}
|
|
1226
1251
|
else if ((0, reflection_1.isClassMethodStatement)(statement)) {
|
|
1227
|
-
symbolKind =
|
|
1252
|
+
symbolKind = vscode_languageserver_2.SymbolKind.Method;
|
|
1228
1253
|
}
|
|
1229
1254
|
else if ((0, reflection_1.isNamespaceStatement)(statement)) {
|
|
1230
|
-
symbolKind =
|
|
1255
|
+
symbolKind = vscode_languageserver_2.SymbolKind.Namespace;
|
|
1231
1256
|
for (const childStatement of statement.body.statements) {
|
|
1232
1257
|
for (const symbol of this.generateWorkspaceSymbols(childStatement, statement)) {
|
|
1233
1258
|
symbols.push(symbol);
|
|
@@ -1235,7 +1260,7 @@ class BrsFile {
|
|
|
1235
1260
|
}
|
|
1236
1261
|
}
|
|
1237
1262
|
else if ((0, reflection_1.isClassStatement)(statement)) {
|
|
1238
|
-
symbolKind =
|
|
1263
|
+
symbolKind = vscode_languageserver_2.SymbolKind.Class;
|
|
1239
1264
|
for (const childStatement of statement.body) {
|
|
1240
1265
|
for (const symbol of this.generateWorkspaceSymbols(childStatement, statement)) {
|
|
1241
1266
|
symbols.push(symbol);
|
|
@@ -1247,7 +1272,7 @@ class BrsFile {
|
|
|
1247
1272
|
}
|
|
1248
1273
|
const name = statement.getName(Parser_1.ParseMode.BrighterScript);
|
|
1249
1274
|
const uri = util_1.util.pathToUri(this.srcPath);
|
|
1250
|
-
const symbol =
|
|
1275
|
+
const symbol = vscode_languageserver_2.SymbolInformation.create(name, symbolKind, statement.range, uri, containerStatement === null || containerStatement === void 0 ? void 0 : containerStatement.getName(Parser_1.ParseMode.BrighterScript));
|
|
1251
1276
|
symbols.push(symbol);
|
|
1252
1277
|
return symbols;
|
|
1253
1278
|
}
|
|
@@ -1256,6 +1281,7 @@ class BrsFile {
|
|
|
1256
1281
|
* go to the definition of that identifier (where this thing was first defined)
|
|
1257
1282
|
*/
|
|
1258
1283
|
getDefinition(position) {
|
|
1284
|
+
var _a, _b;
|
|
1259
1285
|
let results = [];
|
|
1260
1286
|
//get the token at the position
|
|
1261
1287
|
const token = this.getTokenAt(position);
|
|
@@ -1268,10 +1294,24 @@ class BrsFile {
|
|
|
1268
1294
|
if (!token || !definitionTokenTypes.includes(token.kind)) {
|
|
1269
1295
|
return results;
|
|
1270
1296
|
}
|
|
1297
|
+
const scopesForFile = this.program.getScopesForFile(this);
|
|
1298
|
+
const [scope] = scopesForFile;
|
|
1299
|
+
scope.linkSymbolTable();
|
|
1300
|
+
const expression = this.getClosestExpression(position);
|
|
1301
|
+
if (expression) {
|
|
1302
|
+
let containingNamespace = (_a = this.getNamespaceStatementForPosition(expression.range.start)) === null || _a === void 0 ? void 0 : _a.getName(Parser_1.ParseMode.BrighterScript);
|
|
1303
|
+
const fullName = (_b = util_1.util.getAllDottedGetParts(expression)) === null || _b === void 0 ? void 0 : _b.map(x => x.text).join('.');
|
|
1304
|
+
//find a constant with this name
|
|
1305
|
+
const constant = scope.getConstFileLink(fullName, containingNamespace);
|
|
1306
|
+
if (constant) {
|
|
1307
|
+
results.push(util_1.util.createLocation(vscode_uri_1.URI.file(constant.file.srcPath).toString(), constant.item.tokens.name.range));
|
|
1308
|
+
return results;
|
|
1309
|
+
}
|
|
1310
|
+
}
|
|
1271
1311
|
let textToSearchFor = token.text.toLowerCase();
|
|
1272
1312
|
const previousToken = this.getTokenAt({ line: token.range.start.line, character: token.range.start.character });
|
|
1273
1313
|
if ((previousToken === null || previousToken === void 0 ? void 0 : previousToken.kind) === TokenKind_1.TokenKind.Callfunc) {
|
|
1274
|
-
for (const scope of
|
|
1314
|
+
for (const scope of scopesForFile) {
|
|
1275
1315
|
//to only get functions defined in interface methods
|
|
1276
1316
|
const callable = scope.getAllCallables().find((c) => c.callable.name.toLowerCase() === textToSearchFor); // eslint-disable-line @typescript-eslint/no-loop-func
|
|
1277
1317
|
if (callable) {
|
|
@@ -1323,7 +1363,7 @@ class BrsFile {
|
|
|
1323
1363
|
}
|
|
1324
1364
|
const filesSearched = new Set();
|
|
1325
1365
|
//look through all files in scope for matches
|
|
1326
|
-
for (const scope of
|
|
1366
|
+
for (const scope of scopesForFile) {
|
|
1327
1367
|
for (const file of scope.getAllFiles()) {
|
|
1328
1368
|
if ((0, reflection_1.isXmlFile)(file) || filesSearched.has(file)) {
|
|
1329
1369
|
continue;
|
|
@@ -1372,98 +1412,6 @@ class BrsFile {
|
|
|
1372
1412
|
});
|
|
1373
1413
|
return results;
|
|
1374
1414
|
}
|
|
1375
|
-
getHover(position) {
|
|
1376
|
-
const fence = (code) => util_1.util.mdFence(code, 'brightscript');
|
|
1377
|
-
//get the token at the position
|
|
1378
|
-
let token = this.getTokenAt(position);
|
|
1379
|
-
let hoverTokenTypes = [
|
|
1380
|
-
TokenKind_1.TokenKind.Identifier,
|
|
1381
|
-
TokenKind_1.TokenKind.Function,
|
|
1382
|
-
TokenKind_1.TokenKind.EndFunction,
|
|
1383
|
-
TokenKind_1.TokenKind.Sub,
|
|
1384
|
-
TokenKind_1.TokenKind.EndSub
|
|
1385
|
-
];
|
|
1386
|
-
//throw out invalid tokens and the wrong kind of tokens
|
|
1387
|
-
if (!token || !hoverTokenTypes.includes(token.kind)) {
|
|
1388
|
-
return null;
|
|
1389
|
-
}
|
|
1390
|
-
let lowerTokenText = token.text.toLowerCase();
|
|
1391
|
-
//look through local variables first
|
|
1392
|
-
{
|
|
1393
|
-
//get the function scope for this position (if exists)
|
|
1394
|
-
let functionScope = this.getFunctionScopeAtPosition(position);
|
|
1395
|
-
if (functionScope) {
|
|
1396
|
-
//find any variable with this name
|
|
1397
|
-
for (const varDeclaration of functionScope.variableDeclarations) {
|
|
1398
|
-
//we found a variable declaration with this token text!
|
|
1399
|
-
if (varDeclaration.name.toLowerCase() === lowerTokenText) {
|
|
1400
|
-
let typeText;
|
|
1401
|
-
if ((0, reflection_1.isFunctionType)(varDeclaration.type)) {
|
|
1402
|
-
typeText = varDeclaration.type.toString();
|
|
1403
|
-
}
|
|
1404
|
-
else {
|
|
1405
|
-
typeText = `${varDeclaration.name} as ${varDeclaration.type.toString()}`;
|
|
1406
|
-
}
|
|
1407
|
-
return {
|
|
1408
|
-
range: token.range,
|
|
1409
|
-
//append the variable name to the front for scope
|
|
1410
|
-
contents: fence(typeText)
|
|
1411
|
-
};
|
|
1412
|
-
}
|
|
1413
|
-
}
|
|
1414
|
-
for (const labelStatement of functionScope.labelStatements) {
|
|
1415
|
-
if (labelStatement.name.toLocaleLowerCase() === lowerTokenText) {
|
|
1416
|
-
return {
|
|
1417
|
-
range: token.range,
|
|
1418
|
-
contents: fence(`${labelStatement.name}: label`)
|
|
1419
|
-
};
|
|
1420
|
-
}
|
|
1421
|
-
}
|
|
1422
|
-
}
|
|
1423
|
-
}
|
|
1424
|
-
//look through all callables in relevant scopes
|
|
1425
|
-
{
|
|
1426
|
-
let scopes = this.program.getScopesForFile(this);
|
|
1427
|
-
for (let scope of scopes) {
|
|
1428
|
-
let callable = scope.getCallableByName(lowerTokenText);
|
|
1429
|
-
if (callable) {
|
|
1430
|
-
return {
|
|
1431
|
-
range: token.range,
|
|
1432
|
-
contents: this.getCallableDocumentation(callable)
|
|
1433
|
-
};
|
|
1434
|
-
}
|
|
1435
|
-
}
|
|
1436
|
-
}
|
|
1437
|
-
}
|
|
1438
|
-
/**
|
|
1439
|
-
* Build a hover documentation for a callable.
|
|
1440
|
-
*/
|
|
1441
|
-
getCallableDocumentation(callable) {
|
|
1442
|
-
var _a;
|
|
1443
|
-
const comments = [];
|
|
1444
|
-
const tokens = callable.file.parser.tokens;
|
|
1445
|
-
const idx = tokens.indexOf((_a = callable.functionStatement) === null || _a === void 0 ? void 0 : _a.func.functionType);
|
|
1446
|
-
for (let i = idx - 1; i >= 0; i--) {
|
|
1447
|
-
const token = tokens[i];
|
|
1448
|
-
//skip whitespace and newline chars
|
|
1449
|
-
if (token.kind === TokenKind_1.TokenKind.Comment) {
|
|
1450
|
-
comments.push(token);
|
|
1451
|
-
}
|
|
1452
|
-
else if (token.kind === TokenKind_1.TokenKind.Newline || token.kind === TokenKind_1.TokenKind.Whitespace) {
|
|
1453
|
-
//skip these tokens
|
|
1454
|
-
continue;
|
|
1455
|
-
//any other token means there are no more comments
|
|
1456
|
-
}
|
|
1457
|
-
else {
|
|
1458
|
-
break;
|
|
1459
|
-
}
|
|
1460
|
-
}
|
|
1461
|
-
let result = util_1.util.mdFence(callable.type.toString(), 'brightscript');
|
|
1462
|
-
if (comments.length > 0) {
|
|
1463
|
-
result += '\n***\n' + comments.reverse().map(x => x.text.replace(/^('|rem)/i, '')).join('\n');
|
|
1464
|
-
}
|
|
1465
|
-
return result;
|
|
1466
|
-
}
|
|
1467
1415
|
getSignatureHelpForNamespaceMethods(callableName, dottedGetText, scope) {
|
|
1468
1416
|
var _a;
|
|
1469
1417
|
if (!dottedGetText) {
|
|
@@ -1534,11 +1482,11 @@ class BrsFile {
|
|
|
1534
1482
|
let key = statement.name.text + documentation;
|
|
1535
1483
|
const params = [];
|
|
1536
1484
|
for (const param of func.parameters) {
|
|
1537
|
-
params.push(
|
|
1485
|
+
params.push(vscode_languageserver_2.ParameterInformation.create(param.name.text));
|
|
1538
1486
|
key += param.name.text;
|
|
1539
1487
|
}
|
|
1540
1488
|
const label = util_1.util.getTextForRange(lines, util_1.util.createRangeFromPositions(func.functionType.range.start, func.body.range.start)).trim();
|
|
1541
|
-
const signature =
|
|
1489
|
+
const signature = vscode_languageserver_2.SignatureInformation.create(label, documentation, ...params);
|
|
1542
1490
|
const index = 1;
|
|
1543
1491
|
return { key: key, signature: signature, index: index };
|
|
1544
1492
|
}
|
|
@@ -1669,7 +1617,7 @@ exports.KeywordCompletions = Object.keys(TokenKind_1.Keywords)
|
|
|
1669
1617
|
.map(x => {
|
|
1670
1618
|
return {
|
|
1671
1619
|
label: x,
|
|
1672
|
-
kind:
|
|
1620
|
+
kind: vscode_languageserver_2.CompletionItemKind.Keyword
|
|
1673
1621
|
};
|
|
1674
1622
|
});
|
|
1675
1623
|
//# sourceMappingURL=BrsFile.js.map
|