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.
Files changed (63) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/LanguageServer.js +26 -4
  3. package/dist/LanguageServer.js.map +1 -1
  4. package/dist/Program.d.ts +5 -2
  5. package/dist/Program.js +41 -30
  6. package/dist/Program.js.map +1 -1
  7. package/dist/ProgramBuilder.js +2 -1
  8. package/dist/ProgramBuilder.js.map +1 -1
  9. package/dist/Scope.js +19 -4
  10. package/dist/Scope.js.map +1 -1
  11. package/dist/SymbolTable.d.ts +4 -0
  12. package/dist/SymbolTable.js +14 -0
  13. package/dist/SymbolTable.js.map +1 -1
  14. package/dist/bscPlugin/BscPlugin.d.ts +3 -1
  15. package/dist/bscPlugin/BscPlugin.js +8 -0
  16. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  17. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +6 -0
  18. package/dist/bscPlugin/completions/CompletionsProcessor.js +45 -0
  19. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -0
  20. package/dist/bscPlugin/hover/HoverProcessor.d.ts +13 -0
  21. package/dist/bscPlugin/hover/HoverProcessor.js +146 -0
  22. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -0
  23. package/dist/bscPlugin/hover/HoverProcessor.spec.d.ts +1 -0
  24. package/dist/bscPlugin/hover/HoverProcessor.spec.js +195 -0
  25. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -0
  26. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +1 -0
  27. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +19 -8
  28. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  29. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +84 -0
  30. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  31. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +5 -1
  32. package/dist/bscPlugin/validation/BrsFileValidator.js +53 -25
  33. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  34. package/dist/bscPlugin/validation/ScopeValidator.js +12 -1
  35. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  36. package/dist/files/BrsFile.d.ts +5 -6
  37. package/dist/files/BrsFile.js +73 -125
  38. package/dist/files/BrsFile.js.map +1 -1
  39. package/dist/files/BrsFile.spec.js +62 -18
  40. package/dist/files/BrsFile.spec.js.map +1 -1
  41. package/dist/files/XmlFile.d.ts +1 -2
  42. package/dist/files/XmlFile.js +0 -5
  43. package/dist/files/XmlFile.js.map +1 -1
  44. package/dist/index.d.ts +1 -1
  45. package/dist/index.js +3 -1
  46. package/dist/index.js.map +1 -1
  47. package/dist/interfaces.d.ts +59 -2
  48. package/dist/parser/Expression.d.ts +16 -1
  49. package/dist/parser/Expression.js +31 -1
  50. package/dist/parser/Expression.js.map +1 -1
  51. package/dist/parser/Parser.js +5 -3
  52. package/dist/parser/Parser.js.map +1 -1
  53. package/dist/parser/Parser.spec.js +4 -0
  54. package/dist/parser/Parser.spec.js.map +1 -1
  55. package/dist/parser/Statement.d.ts +12 -1
  56. package/dist/parser/Statement.js +15 -1
  57. package/dist/parser/Statement.js.map +1 -1
  58. package/dist/parser/tests/statement/ConstStatement.spec.js +19 -0
  59. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  60. package/dist/util.d.ts +6 -2
  61. package/dist/util.js +13 -18
  62. package/dist/util.js.map +1 -1
  63. 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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"}
@@ -1,5 +1,5 @@
1
1
  import type { CodeWithSourceMap } from 'source-map';
2
- import type { CompletionItem, Hover, Position, Location, Diagnostic } from 'vscode-languageserver';
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;
@@ -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: vscode_languageserver_1.CompletionItemKind.Text
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: vscode_languageserver_1.TextEdit.replace(util_1.util.createRange(currentToken.range.start.line,
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: vscode_languageserver_1.CompletionItemKind.File
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: vscode_languageserver_1.CompletionItemKind.Variable
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) ? vscode_languageserver_1.CompletionItemKind.Function : vscode_languageserver_1.CompletionItemKind.Variable
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: vscode_languageserver_1.CompletionItemKind.Module
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: vscode_languageserver_1.CompletionItemKind.Reference
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) ? vscode_languageserver_1.CompletionItemKind.Field : vscode_languageserver_1.CompletionItemKind.Function
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: vscode_languageserver_1.CompletionItemKind.Class
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: vscode_languageserver_1.CompletionItemKind.Enum
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: vscode_languageserver_1.CompletionItemKind.Constant
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: vscode_languageserver_1.CompletionItemKind.EnumMember
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: vscode_languageserver_1.CompletionItemKind.Module
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: vscode_languageserver_1.CompletionItemKind.Class
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: vscode_languageserver_1.CompletionItemKind.Function
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: vscode_languageserver_1.CompletionItemKind.Enum
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: vscode_languageserver_1.CompletionItemKind.Constant
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 = vscode_languageserver_1.SymbolKind.Function;
1210
+ symbolKind = vscode_languageserver_2.SymbolKind.Function;
1186
1211
  }
1187
1212
  else if ((0, reflection_1.isClassMethodStatement)(statement)) {
1188
- symbolKind = vscode_languageserver_1.SymbolKind.Method;
1213
+ symbolKind = vscode_languageserver_2.SymbolKind.Method;
1189
1214
  }
1190
1215
  else if ((0, reflection_1.isClassFieldStatement)(statement)) {
1191
- symbolKind = vscode_languageserver_1.SymbolKind.Field;
1216
+ symbolKind = vscode_languageserver_2.SymbolKind.Field;
1192
1217
  }
1193
1218
  else if ((0, reflection_1.isNamespaceStatement)(statement)) {
1194
- symbolKind = vscode_languageserver_1.SymbolKind.Namespace;
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 = vscode_languageserver_1.SymbolKind.Class;
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 vscode_languageserver_1.DocumentSymbol.create(name, '', symbolKind, statement.range, statement.range, children);
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 = vscode_languageserver_1.SymbolKind.Function;
1249
+ symbolKind = vscode_languageserver_2.SymbolKind.Function;
1225
1250
  }
1226
1251
  else if ((0, reflection_1.isClassMethodStatement)(statement)) {
1227
- symbolKind = vscode_languageserver_1.SymbolKind.Method;
1252
+ symbolKind = vscode_languageserver_2.SymbolKind.Method;
1228
1253
  }
1229
1254
  else if ((0, reflection_1.isNamespaceStatement)(statement)) {
1230
- symbolKind = vscode_languageserver_1.SymbolKind.Namespace;
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 = vscode_languageserver_1.SymbolKind.Class;
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 = vscode_languageserver_1.SymbolInformation.create(name, symbolKind, statement.range, uri, containerStatement === null || containerStatement === void 0 ? void 0 : containerStatement.getName(Parser_1.ParseMode.BrighterScript));
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 this.program.getScopes()) {
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 this.program.getScopesForFile(this)) {
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(vscode_languageserver_1.ParameterInformation.create(param.name.text));
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 = vscode_languageserver_1.SignatureInformation.create(label, documentation, ...params);
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: vscode_languageserver_1.CompletionItemKind.Keyword
1620
+ kind: vscode_languageserver_2.CompletionItemKind.Keyword
1673
1621
  };
1674
1622
  });
1675
1623
  //# sourceMappingURL=BrsFile.js.map