brighterscript 0.41.4 → 0.43.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 (157) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/LanguageServer.js +0 -9
  3. package/dist/LanguageServer.js.map +1 -1
  4. package/dist/Program.d.ts +1 -1
  5. package/dist/Program.js +45 -10
  6. package/dist/Program.js.map +1 -1
  7. package/dist/ProgramBuilder.js +3 -3
  8. package/dist/ProgramBuilder.js.map +1 -1
  9. package/dist/Scope.d.ts +6 -5
  10. package/dist/Scope.js +33 -32
  11. package/dist/Scope.js.map +1 -1
  12. package/dist/astUtils/AstEditor.d.ts +27 -0
  13. package/dist/astUtils/AstEditor.js +97 -0
  14. package/dist/astUtils/AstEditor.js.map +1 -0
  15. package/dist/astUtils/AstEditor.spec.d.ts +1 -0
  16. package/dist/astUtils/AstEditor.spec.js +133 -0
  17. package/dist/astUtils/AstEditor.spec.js.map +1 -0
  18. package/dist/astUtils/reflection.d.ts +2 -1
  19. package/dist/astUtils/reflection.js +6 -2
  20. package/dist/astUtils/reflection.js.map +1 -1
  21. package/dist/astUtils/reflection.spec.js +6 -6
  22. package/dist/astUtils/reflection.spec.js.map +1 -1
  23. package/dist/astUtils/visitors.spec.js +13 -16
  24. package/dist/astUtils/visitors.spec.js.map +1 -1
  25. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +3 -3
  26. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  27. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js +4 -4
  28. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +1 -1
  29. package/dist/files/BrsFile.Class.spec.js +182 -78
  30. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  31. package/dist/files/BrsFile.d.ts +11 -5
  32. package/dist/files/BrsFile.js +111 -77
  33. package/dist/files/BrsFile.js.map +1 -1
  34. package/dist/files/BrsFile.spec.js +150 -101
  35. package/dist/files/BrsFile.spec.js.map +1 -1
  36. package/dist/files/XmlFile.d.ts +1 -0
  37. package/dist/files/XmlFile.js +9 -8
  38. package/dist/files/XmlFile.js.map +1 -1
  39. package/dist/files/XmlFile.spec.js +42 -40
  40. package/dist/files/XmlFile.spec.js.map +1 -1
  41. package/dist/files/tests/imports.spec.js +6 -4
  42. package/dist/files/tests/imports.spec.js.map +1 -1
  43. package/dist/globalCallables.d.ts +3 -1
  44. package/dist/globalCallables.js +200 -100
  45. package/dist/globalCallables.js.map +1 -1
  46. package/dist/index.d.ts +12 -3
  47. package/dist/index.js +21 -4
  48. package/dist/index.js.map +1 -1
  49. package/dist/interfaces.d.ts +49 -4
  50. package/dist/lexer/Lexer.js +1 -2
  51. package/dist/lexer/Lexer.js.map +1 -1
  52. package/dist/lexer/Lexer.spec.js +462 -462
  53. package/dist/lexer/Lexer.spec.js.map +1 -1
  54. package/dist/parser/Expression.d.ts +1 -1
  55. package/dist/parser/Expression.js +10 -10
  56. package/dist/parser/Expression.js.map +1 -1
  57. package/dist/parser/Parser.Class.spec.js +32 -31
  58. package/dist/parser/Parser.Class.spec.js.map +1 -1
  59. package/dist/parser/Parser.d.ts +13 -1
  60. package/dist/parser/Parser.js +355 -253
  61. package/dist/parser/Parser.js.map +1 -1
  62. package/dist/parser/Parser.spec.js +86 -24
  63. package/dist/parser/Parser.spec.js.map +1 -1
  64. package/dist/parser/Statement.d.ts +2 -2
  65. package/dist/parser/Statement.js +8 -8
  66. package/dist/parser/Statement.js.map +1 -1
  67. package/dist/parser/Statement.spec.js +4 -4
  68. package/dist/parser/Statement.spec.js.map +1 -1
  69. package/dist/parser/tests/Parser.spec.d.ts +3 -3
  70. package/dist/parser/tests/Parser.spec.js +4 -4
  71. package/dist/parser/tests/Parser.spec.js.map +1 -1
  72. package/dist/parser/tests/controlFlow/For.spec.js +40 -40
  73. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  74. package/dist/parser/tests/controlFlow/ForEach.spec.js +22 -21
  75. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  76. package/dist/parser/tests/controlFlow/If.spec.js +100 -99
  77. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  78. package/dist/parser/tests/controlFlow/While.spec.js +25 -25
  79. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  80. package/dist/parser/tests/expression/Additive.spec.js +21 -21
  81. package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
  82. package/dist/parser/tests/expression/ArrayLiterals.spec.js +91 -91
  83. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  84. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +102 -102
  85. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  86. package/dist/parser/tests/expression/Boolean.spec.js +15 -15
  87. package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
  88. package/dist/parser/tests/expression/Call.spec.js +22 -21
  89. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  90. package/dist/parser/tests/expression/Exponential.spec.js +11 -11
  91. package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
  92. package/dist/parser/tests/expression/Function.spec.js +171 -171
  93. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  94. package/dist/parser/tests/expression/Indexing.spec.js +50 -50
  95. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  96. package/dist/parser/tests/expression/Multiplicative.spec.js +25 -25
  97. package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
  98. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +30 -18
  99. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  100. package/dist/parser/tests/expression/PrefixUnary.spec.js +26 -26
  101. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
  102. package/dist/parser/tests/expression/Primary.spec.js +27 -27
  103. package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
  104. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +3 -2
  105. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -1
  106. package/dist/parser/tests/expression/Relational.spec.js +25 -25
  107. package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
  108. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +7 -7
  109. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  110. package/dist/parser/tests/expression/TernaryExpression.spec.js +6 -6
  111. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  112. package/dist/parser/tests/statement/AssignmentOperators.spec.js +15 -15
  113. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
  114. package/dist/parser/tests/statement/Declaration.spec.js +20 -20
  115. package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
  116. package/dist/parser/tests/statement/Function.spec.js +121 -120
  117. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  118. package/dist/parser/tests/statement/Goto.spec.js +9 -8
  119. package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
  120. package/dist/parser/tests/statement/Increment.spec.js +22 -22
  121. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  122. package/dist/parser/tests/statement/InterfaceStatement.spec.js +12 -0
  123. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  124. package/dist/parser/tests/statement/LibraryStatement.spec.js +7 -7
  125. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  126. package/dist/parser/tests/statement/Misc.spec.js +71 -70
  127. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  128. package/dist/parser/tests/statement/PrintStatement.spec.js +17 -17
  129. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  130. package/dist/parser/tests/statement/ReturnStatement.spec.js +33 -33
  131. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  132. package/dist/parser/tests/statement/Set.spec.js +53 -53
  133. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  134. package/dist/parser/tests/statement/Stop.spec.js +7 -6
  135. package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
  136. package/dist/preprocessor/Chunk.d.ts +1 -1
  137. package/dist/preprocessor/Preprocessor.d.ts +1 -1
  138. package/dist/preprocessor/Preprocessor.js +7 -7
  139. package/dist/preprocessor/Preprocessor.js.map +1 -1
  140. package/dist/util.d.ts +5 -1
  141. package/dist/util.js +43 -33
  142. package/dist/util.js.map +1 -1
  143. package/dist/validators/ClassValidator.js +20 -27
  144. package/dist/validators/ClassValidator.js.map +1 -1
  145. package/package.json +2 -1
  146. package/dist/astUtils/index.d.ts +0 -7
  147. package/dist/astUtils/index.js +0 -26
  148. package/dist/astUtils/index.js.map +0 -1
  149. package/dist/lexer/index.d.ts +0 -3
  150. package/dist/lexer/index.js +0 -18
  151. package/dist/lexer/index.js.map +0 -1
  152. package/dist/parser/index.d.ts +0 -3
  153. package/dist/parser/index.js +0 -16
  154. package/dist/parser/index.js.map +0 -1
  155. package/dist/preprocessor/index.d.ts +0 -3
  156. package/dist/preprocessor/index.js +0 -16
  157. package/dist/preprocessor/index.js.map +0 -1
package/dist/Scope.d.ts CHANGED
@@ -2,8 +2,9 @@ import type { CompletionItem, Position, Range } from 'vscode-languageserver';
2
2
  import { Location } from 'vscode-languageserver';
3
3
  import type { CallableContainer, BsDiagnostic, BscFile, CallableContainerMap } from './interfaces';
4
4
  import type { FileLink, Program } from './Program';
5
- import type { NamespaceStatement, Statement, NewExpression, FunctionStatement, ClassStatement } from './parser';
6
- import { ParseMode } from './parser';
5
+ import type { NamespaceStatement, Statement, FunctionStatement, ClassStatement } from './parser/Statement';
6
+ import type { NewExpression } from './parser/Expression';
7
+ import { ParseMode } from './parser/Parser';
7
8
  import { Cache } from './Cache';
8
9
  import type { BrsFile } from './files/BrsFile';
9
10
  import type { DependencyGraph, DependencyChangedEvent } from './DependencyGraph';
@@ -27,7 +28,7 @@ export declare class Scope {
27
28
  * If a namespace is declared as "NameA.NameB.NameC", there will be 3 entries in this dictionary,
28
29
  * "namea", "namea.nameb", "namea.nameb.namec"
29
30
  */
30
- get namespaceLookup(): Record<string, NamespaceContainer>;
31
+ get namespaceLookup(): Map<string, NamespaceContainer>;
31
32
  /**
32
33
  * Get the class with the specified name.
33
34
  * @param className - The class name, including the namespace of the class if possible
@@ -123,7 +124,7 @@ export declare class Scope {
123
124
  /**
124
125
  * Builds a tree of namespace objects
125
126
  */
126
- buildNamespaceLookup(): Record<string, NamespaceContainer>;
127
+ buildNamespaceLookup(): Map<string, NamespaceContainer>;
127
128
  getAllNamespaceStatements(): NamespaceStatement[];
128
129
  protected logDebug(...args: any[]): void;
129
130
  private _debugLogComponentName;
@@ -215,7 +216,7 @@ interface NamespaceContainer {
215
216
  statements: Statement[];
216
217
  classStatements: Record<string, ClassStatement>;
217
218
  functionStatements: Record<string, FunctionStatement>;
218
- namespaces: Record<string, NamespaceContainer>;
219
+ namespaces: Map<string, NamespaceContainer>;
219
220
  }
220
221
  interface AugmentedNewExpression extends NewExpression {
221
222
  file: BscFile;
package/dist/Scope.js CHANGED
@@ -6,7 +6,7 @@ const vscode_languageserver_1 = require("vscode-languageserver");
6
6
  const chalk_1 = require("chalk");
7
7
  const DiagnosticMessages_1 = require("./DiagnosticMessages");
8
8
  const ClassValidator_1 = require("./validators/ClassValidator");
9
- const parser_1 = require("./parser");
9
+ const Parser_1 = require("./parser/Parser");
10
10
  const util_1 = require("./util");
11
11
  const globalCallables_1 = require("./globalCallables");
12
12
  const Cache_1 = require("./Cache");
@@ -84,7 +84,7 @@ class Scope {
84
84
  var _a;
85
85
  if ((0, reflection_1.isBrsFile)(file)) {
86
86
  for (let cls of file.parser.references.classStatements) {
87
- const lowerClassName = (_a = cls.getName(parser_1.ParseMode.BrighterScript)) === null || _a === void 0 ? void 0 : _a.toLowerCase();
87
+ const lowerClassName = (_a = cls.getName(Parser_1.ParseMode.BrighterScript)) === null || _a === void 0 ? void 0 : _a.toLowerCase();
88
88
  //only track classes with a defined name (i.e. exclude nameless malformed classes)
89
89
  if (lowerClassName) {
90
90
  map.set(lowerClassName, { item: cls, file: file });
@@ -240,7 +240,7 @@ class Scope {
240
240
  let lowerName = name.toLowerCase();
241
241
  let callables = this.getAllCallables();
242
242
  for (let callable of callables) {
243
- if (callable.callable.getName(parser_1.ParseMode.BrighterScript).toLowerCase() === lowerName) {
243
+ if (callable.callable.getName(Parser_1.ParseMode.BrighterScript).toLowerCase() === lowerName) {
244
244
  return callable.callable;
245
245
  }
246
246
  }
@@ -291,12 +291,11 @@ class Scope {
291
291
  * Builds a tree of namespace objects
292
292
  */
293
293
  buildNamespaceLookup() {
294
- let namespaceLookup = {};
294
+ let namespaceLookup = new Map();
295
295
  this.enumerateBrsFiles((file) => {
296
- var _a;
297
296
  for (let namespace of file.parser.references.namespaceStatements) {
298
297
  //TODO should we handle non-brighterscript?
299
- let name = namespace.nameExpression.getName(parser_1.ParseMode.BrighterScript);
298
+ let name = namespace.nameExpression.getName(Parser_1.ParseMode.BrighterScript);
300
299
  let nameParts = name.split('.');
301
300
  let loopName = null;
302
301
  //ensure each namespace section is represented in the results
@@ -304,18 +303,20 @@ class Scope {
304
303
  for (let part of nameParts) {
305
304
  loopName = loopName === null ? part : `${loopName}.${part}`;
306
305
  let lowerLoopName = loopName.toLowerCase();
307
- namespaceLookup[lowerLoopName] = (_a = namespaceLookup[lowerLoopName]) !== null && _a !== void 0 ? _a : {
308
- file: file,
309
- fullName: loopName,
310
- nameRange: namespace.nameExpression.range,
311
- lastPartName: part,
312
- namespaces: {},
313
- classStatements: {},
314
- functionStatements: {},
315
- statements: []
316
- };
306
+ if (!namespaceLookup.has(lowerLoopName)) {
307
+ namespaceLookup.set(lowerLoopName, {
308
+ file: file,
309
+ fullName: loopName,
310
+ nameRange: namespace.nameExpression.range,
311
+ lastPartName: part,
312
+ namespaces: new Map(),
313
+ classStatements: {},
314
+ functionStatements: {},
315
+ statements: []
316
+ });
317
+ }
317
318
  }
318
- let ns = namespaceLookup[name.toLowerCase()];
319
+ let ns = namespaceLookup.get(name.toLowerCase());
319
320
  ns.statements.push(...namespace.body.statements);
320
321
  for (let statement of namespace.body.statements) {
321
322
  if ((0, reflection_1.isClassStatement)(statement) && statement.name) {
@@ -327,14 +328,14 @@ class Scope {
327
328
  }
328
329
  }
329
330
  //associate child namespaces with their parents
330
- for (let key in namespaceLookup) {
331
- let ns = namespaceLookup[key];
331
+ for (let [, ns] of namespaceLookup) {
332
332
  let parts = ns.fullName.split('.');
333
333
  if (parts.length > 1) {
334
334
  //remove the last part
335
335
  parts.pop();
336
336
  let parentName = parts.join('.');
337
- namespaceLookup[parentName.toLowerCase()].namespaces[ns.lastPartName.toLowerCase()] = ns;
337
+ const parent = namespaceLookup.get(parentName.toLowerCase());
338
+ parent.namespaces.set(ns.lastPartName.toLowerCase(), ns);
338
339
  }
339
340
  }
340
341
  });
@@ -413,7 +414,7 @@ class Scope {
413
414
  for (let func of file.parser.references.functionExpressions) {
414
415
  for (let param of func.parameters) {
415
416
  let lowerParamName = param.name.text.toLowerCase();
416
- let namespace = this.namespaceLookup[lowerParamName];
417
+ let namespace = this.namespaceLookup.get(lowerParamName);
417
418
  //see if the param matches any starting namespace part
418
419
  if (namespace) {
419
420
  this.diagnostics.push(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.parameterMayNotHaveSameNameAsNamespace(param.name.text)), { range: param.name.range, relatedInformation: [{
@@ -425,7 +426,7 @@ class Scope {
425
426
  }
426
427
  for (let assignment of file.parser.references.assignmentStatements) {
427
428
  let lowerAssignmentName = assignment.name.text.toLowerCase();
428
- let namespace = this.namespaceLookup[lowerAssignmentName];
429
+ let namespace = this.namespaceLookup.get(lowerAssignmentName);
429
430
  //see if the param matches any starting namespace part
430
431
  if (namespace) {
431
432
  this.diagnostics.push(Object.assign(Object.assign({ file: file }, DiagnosticMessages_1.DiagnosticMessages.variableMayNotHaveSameNameAsNamespace(assignment.name.text)), { range: assignment.name.range, relatedInformation: [{
@@ -440,7 +441,7 @@ class Scope {
440
441
  */
441
442
  diagnosticDetectFunctionCollisions(file) {
442
443
  for (let func of file.callables) {
443
- const funcName = func.getName(parser_1.ParseMode.BrighterScript);
444
+ const funcName = func.getName(Parser_1.ParseMode.BrighterScript);
444
445
  const lowerFuncName = funcName === null || funcName === void 0 ? void 0 : funcName.toLowerCase();
445
446
  if (lowerFuncName) {
446
447
  //find function declarations with the same name as a stdlib function
@@ -463,7 +464,7 @@ class Scope {
463
464
  if ((0, reflection_1.isCustomType)(func.returnType) && func.returnTypeToken) {
464
465
  // check if this custom type is in our class map
465
466
  const returnTypeName = func.returnType.name;
466
- const currentNamespaceName = (_a = func.namespaceName) === null || _a === void 0 ? void 0 : _a.getName(parser_1.ParseMode.BrighterScript);
467
+ const currentNamespaceName = (_a = func.namespaceName) === null || _a === void 0 ? void 0 : _a.getName(Parser_1.ParseMode.BrighterScript);
467
468
  if (!this.hasClass(returnTypeName, currentNamespaceName)) {
468
469
  this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.invalidFunctionReturnType(returnTypeName)), { range: func.returnTypeToken.range, file: file }));
469
470
  }
@@ -471,7 +472,7 @@ class Scope {
471
472
  for (let param of func.parameters) {
472
473
  if ((0, reflection_1.isCustomType)(param.type) && param.typeToken) {
473
474
  const paramTypeName = param.type.name;
474
- const currentNamespaceName = (_b = func.namespaceName) === null || _b === void 0 ? void 0 : _b.getName(parser_1.ParseMode.BrighterScript);
475
+ const currentNamespaceName = (_b = func.namespaceName) === null || _b === void 0 ? void 0 : _b.getName(Parser_1.ParseMode.BrighterScript);
475
476
  if (!this.hasClass(paramTypeName, currentNamespaceName)) {
476
477
  this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.functionParameterTypeIsInvalid(param.name.text, paramTypeName)), { range: param.typeToken.range, file: file }));
477
478
  }
@@ -514,7 +515,7 @@ class Scope {
514
515
  maxParams++;
515
516
  //optional parameters must come last, so we can assume that minParams won't increase once we hit
516
517
  //the first isOptional
517
- if (param.isOptional === false) {
518
+ if (param.isOptional !== true) {
518
519
  minParams++;
519
520
  }
520
521
  }
@@ -568,7 +569,7 @@ class Scope {
568
569
  //has the same name as an in-scope class
569
570
  }
570
571
  else if (classMap.has(lowerVarName)) {
571
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.localVarSameNameAsClass((_a = classMap.get(lowerVarName)) === null || _a === void 0 ? void 0 : _a.item.getName(parser_1.ParseMode.BrighterScript))), { range: varDeclaration.nameRange, file: file }));
572
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.localVarSameNameAsClass((_a = classMap.get(lowerVarName)) === null || _a === void 0 ? void 0 : _a.item.getName(Parser_1.ParseMode.BrighterScript))), { range: varDeclaration.nameRange, file: file }));
572
573
  }
573
574
  }
574
575
  }
@@ -595,7 +596,7 @@ class Scope {
595
596
  let callablesWithThisName;
596
597
  if (expCall.functionScope.func.namespaceName) {
597
598
  // prefer namespaced function
598
- const potentialNamespacedCallable = expCall.functionScope.func.namespaceName.getName(parser_1.ParseMode.BrightScript).toLowerCase() + '_' + lowerName;
599
+ const potentialNamespacedCallable = expCall.functionScope.func.namespaceName.getName(Parser_1.ParseMode.BrightScript).toLowerCase() + '_' + lowerName;
599
600
  callablesWithThisName = callablesByLowerName.get(potentialNamespacedCallable.toLowerCase());
600
601
  }
601
602
  if (!callablesWithThisName) {
@@ -739,7 +740,7 @@ class Scope {
739
740
  getCallablesAsCompletions(parseMode) {
740
741
  let completions = [];
741
742
  let callables = this.getAllCallables();
742
- if (parseMode === parser_1.ParseMode.BrighterScript) {
743
+ if (parseMode === Parser_1.ParseMode.BrighterScript) {
743
744
  //throw out the namespaced callables (they will be handled by another method)
744
745
  callables = callables.filter(x => x.callable.hasNamespace === false);
745
746
  }
@@ -750,7 +751,7 @@ class Scope {
750
751
  }
751
752
  createCompletionFromCallable(callableContainer) {
752
753
  return {
753
- label: callableContainer.callable.getName(parser_1.ParseMode.BrighterScript),
754
+ label: callableContainer.callable.getName(Parser_1.ParseMode.BrighterScript),
754
755
  kind: vscode_languageserver_1.CompletionItemKind.Function,
755
756
  detail: callableContainer.callable.shortDescription,
756
757
  documentation: callableContainer.callable.documentation ? { kind: 'markdown', value: callableContainer.callable.documentation } : undefined
@@ -758,7 +759,7 @@ class Scope {
758
759
  }
759
760
  createCompletionFromFunctionStatement(statement) {
760
761
  return {
761
- label: statement.getName(parser_1.ParseMode.BrighterScript),
762
+ label: statement.getName(Parser_1.ParseMode.BrighterScript),
762
763
  kind: vscode_languageserver_1.CompletionItemKind.Function
763
764
  };
764
765
  }
@@ -811,7 +812,7 @@ class Scope {
811
812
  let link = this.getClassFileLink(className, callsiteNamespace);
812
813
  while (link) {
813
814
  items.push(link);
814
- link = this.getClassFileLink((_b = (_a = link.item.parentClassName) === null || _a === void 0 ? void 0 : _a.getName(parser_1.ParseMode.BrighterScript)) === null || _b === void 0 ? void 0 : _b.toLowerCase(), callsiteNamespace);
815
+ link = this.getClassFileLink((_b = (_a = link.item.parentClassName) === null || _a === void 0 ? void 0 : _a.getName(Parser_1.ParseMode.BrighterScript)) === null || _b === void 0 ? void 0 : _b.toLowerCase(), callsiteNamespace);
815
816
  }
816
817
  return items;
817
818
  }
package/dist/Scope.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Scope.js","sourceRoot":"","sources":["../src/Scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scope.js","sourceRoot":"","sources":["../src/Scope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export declare class AstEditor {
2
+ private changes;
3
+ /**
4
+ * Indicates whether the editor have changes that were applied
5
+ */
6
+ get hasChanges(): boolean;
7
+ /**
8
+ * Change the value of an object's property
9
+ */
10
+ setProperty<T, K extends keyof T>(obj: T, key: K, newValue: T[K]): void;
11
+ /**
12
+ * Insert an element into an array at the specified index
13
+ */
14
+ addToArray<T extends any[]>(array: T, index: number, newValue: T[0]): void;
15
+ /**
16
+ * Change the value of an item in an array at the specified index
17
+ */
18
+ setArrayValue<T extends any[], K extends keyof T>(array: T, index: number, newValue: T[K]): void;
19
+ /**
20
+ * Remove an element from an array at the specified index
21
+ */
22
+ removeFromArray<T extends any[]>(array: T, index: number): void;
23
+ /**
24
+ * Unto all changes.
25
+ */
26
+ undoAll(): void;
27
+ }
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AstEditor = void 0;
4
+ class AstEditor {
5
+ constructor() {
6
+ this.changes = [];
7
+ }
8
+ /**
9
+ * Indicates whether the editor have changes that were applied
10
+ */
11
+ get hasChanges() {
12
+ return this.changes.length > 0;
13
+ }
14
+ /**
15
+ * Change the value of an object's property
16
+ */
17
+ setProperty(obj, key, newValue) {
18
+ const change = new EditPropertyChange(obj, key, newValue);
19
+ this.changes.push(change);
20
+ change.apply();
21
+ }
22
+ /**
23
+ * Insert an element into an array at the specified index
24
+ */
25
+ addToArray(array, index, newValue) {
26
+ const change = new AddToArrayChange(array, index, newValue);
27
+ this.changes.push(change);
28
+ change.apply();
29
+ }
30
+ /**
31
+ * Change the value of an item in an array at the specified index
32
+ */
33
+ setArrayValue(array, index, newValue) {
34
+ this.setProperty(array, index, newValue);
35
+ }
36
+ /**
37
+ * Remove an element from an array at the specified index
38
+ */
39
+ removeFromArray(array, index) {
40
+ const change = new RemoveFromArrayChange(array, index);
41
+ this.changes.push(change);
42
+ change.apply();
43
+ }
44
+ /**
45
+ * Unto all changes.
46
+ */
47
+ undoAll() {
48
+ for (let i = this.changes.length - 1; i >= 0; i--) {
49
+ this.changes[i].undo();
50
+ }
51
+ this.changes = [];
52
+ }
53
+ }
54
+ exports.AstEditor = AstEditor;
55
+ class EditPropertyChange {
56
+ constructor(obj, propertyName, newValue) {
57
+ this.obj = obj;
58
+ this.propertyName = propertyName;
59
+ this.newValue = newValue;
60
+ }
61
+ apply() {
62
+ this.originalValue = this.obj[this.propertyName];
63
+ this.obj[this.propertyName] = this.newValue;
64
+ }
65
+ undo() {
66
+ this.obj[this.propertyName] = this.originalValue;
67
+ }
68
+ }
69
+ class AddToArrayChange {
70
+ constructor(array, index, newValue) {
71
+ this.array = array;
72
+ this.index = index;
73
+ this.newValue = newValue;
74
+ }
75
+ apply() {
76
+ this.array.splice(this.index, 0, this.newValue);
77
+ }
78
+ undo() {
79
+ this.array.splice(this.index, 1);
80
+ }
81
+ }
82
+ /**
83
+ * Remove an item from an array
84
+ */
85
+ class RemoveFromArrayChange {
86
+ constructor(array, index) {
87
+ this.array = array;
88
+ this.index = index;
89
+ }
90
+ apply() {
91
+ [this.originalValue] = this.array.splice(this.index, 1);
92
+ }
93
+ undo() {
94
+ this.array.splice(this.index, 0, this.originalValue);
95
+ }
96
+ }
97
+ //# sourceMappingURL=AstEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AstEditor.js","sourceRoot":"","sources":["../../src/astUtils/AstEditor.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAAtB;QACY,YAAO,GAAa,EAAE,CAAC;IAoDnC,CAAC;IAlDG;;OAEG;IACH,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,WAAW,CAAuB,GAAM,EAAE,GAAM,EAAE,QAAc;QACnE,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,UAAU,CAAkB,KAAQ,EAAE,KAAa,EAAE,QAAc;QACtE,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,aAAa,CAAqC,KAAQ,EAAE,KAAa,EAAE,QAAc;QAC5F,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,eAAe,CAAkB,KAAQ,EAAE,KAAa;QAC3D,MAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,OAAO;QACV,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC/C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAC1B;QACD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;CACJ;AArDD,8BAqDC;AAOD,MAAM,kBAAkB;IACpB,YACY,GAAM,EACN,YAAe,EACf,QAAc;QAFd,QAAG,GAAH,GAAG,CAAG;QACN,iBAAY,GAAZ,YAAY,CAAG;QACf,aAAQ,GAAR,QAAQ,CAAM;IACtB,CAAC;IAIE,KAAK;QACR,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChD,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;IACrD,CAAC;CACJ;AAED,MAAM,gBAAgB;IAClB,YACY,KAAQ,EACR,KAAa,EACb,QAAa;QAFb,UAAK,GAAL,KAAK,CAAG;QACR,UAAK,GAAL,KAAK,CAAQ;QACb,aAAQ,GAAR,QAAQ,CAAK;IACrB,CAAC;IAEE,KAAK;QACR,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,qBAAqB;IACvB,YACY,KAAQ,EACR,KAAa;QADb,UAAK,GAAL,KAAK,CAAG;QACR,UAAK,GAAL,KAAK,CAAQ;IACrB,CAAC;IAIE,KAAK;QACR,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzD,CAAC;CACJ"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const AstEditor_1 = require("./AstEditor");
5
+ describe('AstEditor', () => {
6
+ let changer;
7
+ let obj;
8
+ beforeEach(() => {
9
+ changer = new AstEditor_1.AstEditor();
10
+ obj = getTestObject();
11
+ });
12
+ function getTestObject() {
13
+ return {
14
+ name: 'parent',
15
+ hobbies: ['gaming', 'reading', 'cycling'],
16
+ children: [{
17
+ name: 'oldest',
18
+ age: 15
19
+ }, {
20
+ name: 'middle',
21
+ age: 10
22
+ }, {
23
+ name: 'youngest',
24
+ age: 5
25
+ }],
26
+ jobs: [{
27
+ title: 'plumber',
28
+ annualSalary: 50000
29
+ }, {
30
+ title: 'carpenter',
31
+ annualSalary: 75000
32
+ }]
33
+ };
34
+ }
35
+ it('applies single property change', () => {
36
+ (0, chai_1.expect)(obj.name).to.eql('parent');
37
+ changer.setProperty(obj, 'name', 'jack');
38
+ (0, chai_1.expect)(obj.name).to.eql('jack');
39
+ changer.undoAll();
40
+ (0, chai_1.expect)(obj.name).to.eql('parent');
41
+ });
42
+ it('inserts at beginning of array', () => {
43
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading', 'cycling']);
44
+ changer.addToArray(obj.hobbies, 0, 'climbing');
45
+ (0, chai_1.expect)(obj.hobbies).to.eql(['climbing', 'gaming', 'reading', 'cycling']);
46
+ changer.undoAll();
47
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading', 'cycling']);
48
+ });
49
+ it('inserts at middle of array', () => {
50
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading', 'cycling']);
51
+ changer.addToArray(obj.hobbies, 1, 'climbing');
52
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'climbing', 'reading', 'cycling']);
53
+ changer.undoAll();
54
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading', 'cycling']);
55
+ });
56
+ it('changes the value at an array index', () => {
57
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading', 'cycling']);
58
+ changer.setArrayValue(obj.hobbies, 1, 'sleeping');
59
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'sleeping', 'cycling']);
60
+ changer.undoAll();
61
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading', 'cycling']);
62
+ });
63
+ it('inserts at end of array', () => {
64
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading', 'cycling']);
65
+ changer.addToArray(obj.hobbies, 3, 'climbing');
66
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading', 'cycling', 'climbing']);
67
+ changer.undoAll();
68
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading', 'cycling']);
69
+ });
70
+ it('removes at beginning of array', () => {
71
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading', 'cycling']);
72
+ changer.removeFromArray(obj.hobbies, 0);
73
+ (0, chai_1.expect)(obj.hobbies).to.eql(['reading', 'cycling']);
74
+ changer.undoAll();
75
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading', 'cycling']);
76
+ });
77
+ it('removes at middle of array', () => {
78
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading', 'cycling']);
79
+ changer.removeFromArray(obj.hobbies, 1);
80
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'cycling']);
81
+ changer.undoAll();
82
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading', 'cycling']);
83
+ });
84
+ it('removes at middle of array', () => {
85
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading', 'cycling']);
86
+ changer.removeFromArray(obj.hobbies, 2);
87
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading']);
88
+ changer.undoAll();
89
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading', 'cycling']);
90
+ });
91
+ it('restores array after being removed', () => {
92
+ changer.removeFromArray(obj.hobbies, 0);
93
+ changer.setProperty(obj, 'hobbies', undefined);
94
+ (0, chai_1.expect)(obj.hobbies).to.be.undefined;
95
+ changer.undoAll();
96
+ (0, chai_1.expect)(obj.hobbies).to.eql(['gaming', 'reading', 'cycling']);
97
+ });
98
+ it('works for many changes', () => {
99
+ (0, chai_1.expect)(obj).to.eql(getTestObject());
100
+ changer.setProperty(obj, 'name', 'bob');
101
+ changer.setProperty(obj.children[0], 'name', 'jimmy');
102
+ changer.addToArray(obj.children, obj.children.length, { name: 'sally', age: 1 });
103
+ changer.removeFromArray(obj.jobs, 1);
104
+ changer.removeFromArray(obj.hobbies, 0);
105
+ changer.removeFromArray(obj.hobbies, 0);
106
+ changer.removeFromArray(obj.hobbies, 0);
107
+ changer.setProperty(obj, 'hobbies', undefined);
108
+ (0, chai_1.expect)(obj).to.eql({
109
+ name: 'bob',
110
+ hobbies: undefined,
111
+ children: [{
112
+ name: 'jimmy',
113
+ age: 15
114
+ }, {
115
+ name: 'middle',
116
+ age: 10
117
+ }, {
118
+ name: 'youngest',
119
+ age: 5
120
+ }, {
121
+ name: 'sally',
122
+ age: 1
123
+ }],
124
+ jobs: [{
125
+ title: 'plumber',
126
+ annualSalary: 50000
127
+ }]
128
+ });
129
+ changer.undoAll();
130
+ (0, chai_1.expect)(obj).to.eql(getTestObject());
131
+ });
132
+ });
133
+ //# sourceMappingURL=AstEditor.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AstEditor.spec.js","sourceRoot":"","sources":["../../src/astUtils/AstEditor.spec.ts"],"names":[],"mappings":"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"}