brighterscript 1.0.0-alpha.27 → 1.0.0-alpha.28

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 (147) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +1 -1
  3. package/dist/AstValidationSegmenter.d.ts +1 -1
  4. package/dist/AstValidationSegmenter.js +2 -2
  5. package/dist/AstValidationSegmenter.js.map +1 -1
  6. package/dist/DiagnosticFilterer.d.ts +7 -4
  7. package/dist/DiagnosticFilterer.js +67 -37
  8. package/dist/DiagnosticFilterer.js.map +1 -1
  9. package/dist/DiagnosticMessages.d.ts +1 -1
  10. package/dist/PluginInterface.js +1 -1
  11. package/dist/PluginInterface.js.map +1 -1
  12. package/dist/Program.d.ts +1 -1
  13. package/dist/Program.js +10 -6
  14. package/dist/Program.js.map +1 -1
  15. package/dist/Scope.d.ts +6 -27
  16. package/dist/Scope.js +40 -298
  17. package/dist/Scope.js.map +1 -1
  18. package/dist/SymbolTable.d.ts +1 -1
  19. package/dist/{SymbolTableFlag.js → SymbolTypeFlag.js} +1 -1
  20. package/dist/SymbolTypeFlag.js.map +1 -0
  21. package/dist/XmlScope.d.ts +0 -8
  22. package/dist/XmlScope.js +0 -77
  23. package/dist/XmlScope.js.map +1 -1
  24. package/dist/astUtils/CachedLookups.js +4 -8
  25. package/dist/astUtils/CachedLookups.js.map +1 -1
  26. package/dist/astUtils/creators.d.ts +1 -0
  27. package/dist/astUtils/creators.js +3 -2
  28. package/dist/astUtils/creators.js.map +1 -1
  29. package/dist/astUtils/creators.spec.js +0 -10
  30. package/dist/astUtils/creators.spec.js.map +1 -1
  31. package/dist/astUtils/reflection.d.ts +1 -2
  32. package/dist/astUtils/reflection.js +3 -7
  33. package/dist/astUtils/reflection.js.map +1 -1
  34. package/dist/astUtils/reflection.spec.js +10 -15
  35. package/dist/astUtils/reflection.spec.js.map +1 -1
  36. package/dist/astUtils/visitors.d.ts +1 -2
  37. package/dist/astUtils/visitors.js.map +1 -1
  38. package/dist/astUtils/visitors.spec.js +1 -5
  39. package/dist/astUtils/visitors.spec.js.map +1 -1
  40. package/dist/bscPlugin/BscPlugin.d.ts +2 -1
  41. package/dist/bscPlugin/BscPlugin.js +4 -0
  42. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  43. package/dist/bscPlugin/SignatureHelpUtil.js +4 -3
  44. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -1
  45. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +1 -0
  46. package/dist/bscPlugin/completions/CompletionsProcessor.js +26 -9
  47. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  48. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +39 -0
  49. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
  50. package/dist/bscPlugin/hover/HoverProcessor.js +5 -5
  51. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  52. package/dist/bscPlugin/hover/HoverProcessor.spec.js +51 -5
  53. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  54. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  55. package/dist/bscPlugin/references/ReferencesProvider.js +56 -0
  56. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  57. package/dist/bscPlugin/references/ReferencesProvider.spec.d.ts +1 -0
  58. package/dist/bscPlugin/references/ReferencesProvider.spec.js +51 -0
  59. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +1 -0
  60. package/dist/bscPlugin/validation/BrsFileValidator.js +1 -6
  61. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  62. package/dist/bscPlugin/validation/ScopeValidator.d.ts +28 -1
  63. package/dist/bscPlugin/validation/ScopeValidator.js +365 -7
  64. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  65. package/dist/bscPlugin/validation/ScopeValidator.spec.js +89 -3
  66. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
  67. package/dist/files/BrsFile.Class.spec.js +11 -4
  68. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  69. package/dist/files/BrsFile.d.ts +12 -2
  70. package/dist/files/BrsFile.js +64 -38
  71. package/dist/files/BrsFile.js.map +1 -1
  72. package/dist/files/BrsFile.spec.js +373 -6
  73. package/dist/files/BrsFile.spec.js.map +1 -1
  74. package/dist/files/XmlFile.js +1 -1
  75. package/dist/files/XmlFile.js.map +1 -1
  76. package/dist/index.d.ts +1 -0
  77. package/dist/index.js +1 -0
  78. package/dist/index.js.map +1 -1
  79. package/dist/interfaces.d.ts +41 -3
  80. package/dist/interfaces.js.map +1 -1
  81. package/dist/lexer/Lexer.d.ts +9 -3
  82. package/dist/lexer/Lexer.js +36 -15
  83. package/dist/lexer/Lexer.js.map +1 -1
  84. package/dist/lexer/Lexer.spec.js +76 -38
  85. package/dist/lexer/Lexer.spec.js.map +1 -1
  86. package/dist/lexer/Token.js +1 -1
  87. package/dist/lexer/Token.js.map +1 -1
  88. package/dist/lexer/TokenKind.d.ts +1 -0
  89. package/dist/lexer/TokenKind.js +4 -1
  90. package/dist/lexer/TokenKind.js.map +1 -1
  91. package/dist/parser/AstNode.d.ts +1 -2
  92. package/dist/parser/AstNode.js +0 -1
  93. package/dist/parser/AstNode.js.map +1 -1
  94. package/dist/parser/BrsTranspileState.d.ts +1 -1
  95. package/dist/parser/Expression.d.ts +71 -47
  96. package/dist/parser/Expression.js +155 -87
  97. package/dist/parser/Expression.js.map +1 -1
  98. package/dist/parser/Parser.d.ts +7 -2
  99. package/dist/parser/Parser.js +40 -87
  100. package/dist/parser/Parser.js.map +1 -1
  101. package/dist/parser/Parser.spec.js +21 -44
  102. package/dist/parser/Parser.spec.js.map +1 -1
  103. package/dist/parser/SGTypes.js +5 -5
  104. package/dist/parser/SGTypes.js.map +1 -1
  105. package/dist/parser/Statement.d.ts +92 -84
  106. package/dist/parser/Statement.js +199 -133
  107. package/dist/parser/Statement.js.map +1 -1
  108. package/dist/parser/Statement.spec.js +0 -13
  109. package/dist/parser/Statement.spec.js.map +1 -1
  110. package/dist/parser/TranspileState.d.ts +17 -8
  111. package/dist/parser/TranspileState.js +64 -6
  112. package/dist/parser/TranspileState.js.map +1 -1
  113. package/dist/parser/tests/Parser.spec.d.ts +1 -1
  114. package/dist/parser/tests/Parser.spec.js +1 -2
  115. package/dist/parser/tests/Parser.spec.js.map +1 -1
  116. package/dist/parser/tests/controlFlow/If.spec.js +1 -1
  117. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  118. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +1 -3
  119. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  120. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +44 -0
  121. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  122. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +6 -6
  123. package/dist/parser/tests/expression/TernaryExpression.spec.js +47 -0
  124. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  125. package/dist/parser/tests/statement/ConstStatement.spec.js +2 -2
  126. package/dist/parser/tests/statement/InterfaceStatement.spec.js +8 -1
  127. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  128. package/dist/parser/tests/statement/Misc.spec.js +25 -5
  129. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  130. package/dist/preprocessor/Chunk.js +1 -2
  131. package/dist/preprocessor/Chunk.js.map +1 -1
  132. package/dist/preprocessor/PreprocessorParser.js +2 -1
  133. package/dist/preprocessor/PreprocessorParser.js.map +1 -1
  134. package/dist/types/AssociativeArrayType.d.ts +3 -0
  135. package/dist/types/AssociativeArrayType.js +9 -0
  136. package/dist/types/AssociativeArrayType.js.map +1 -1
  137. package/dist/types/BscType.d.ts +1 -1
  138. package/dist/types/BscType.js +1 -0
  139. package/dist/types/BscType.js.map +1 -1
  140. package/dist/types/ComponentType.d.ts +1 -1
  141. package/dist/types/ReferenceType.d.ts +1 -1
  142. package/dist/util.d.ts +18 -8
  143. package/dist/util.js +96 -18
  144. package/dist/util.js.map +1 -1
  145. package/package.json +6 -3
  146. package/dist/SymbolTableFlag.js.map +0 -1
  147. /package/dist/{SymbolTableFlag.d.ts → SymbolTypeFlag.d.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -6,6 +6,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
 
8
8
 
9
+ ## [1.0.0-alpha.28](https://github.com/rokucommunity/brighterscript/compare/v1.0.0-alpha.27...v1.0.0-alpha.28) - 2024-03-13
10
+ ### Added
11
+ - type to const hovers and adds hover for for-each loop vars ([#1092](https://github.com/rokucommunity/brighterscript/pull/1092))
12
+ ### Changed
13
+ - formal support for various variable and name shadowing rules ([#1089](https://github.com/rokucommunity/brighterscript/pull/1089))
14
+ - improve message for empty throw statements ([#1099](https://github.com/rokucommunity/brighterscript/pull/1099))
15
+ - move scope.validate() into BscPlugin ([#1105](https://github.com/rokucommunity/brighterscript/pull/1105))
16
+ - remove `CommentStatement` and all comment tokens from Lexer output ([#1083](https://github.com/rokucommunity/brighterscript/pull/1083))
17
+ ### Fixed
18
+ - 'm' type is now AssocArray in function in AALiteral ([#1097](https://github.com/rokucommunity/brighterscript/pull/1097))
19
+ - ensure SymbolTypeFlag is exported from ./index.ts ([#1094](https://github.com/rokucommunity/brighterscript/pull/1094))
20
+ - diagnostic when using variable declared with unknown type ([#1098](https://github.com/rokucommunity/brighterscript/pull/1098))
21
+ - issue with bitwise binary operators ([#1107](https://github.com/rokucommunity/brighterscript/pull/1107))
22
+ - issue with AA overriding built-in properties ([#1106](https://github.com/rokucommunity/brighterscript/pull/1106))
23
+ - classname as variable for completions and validations ([#1096](https://github.com/rokucommunity/brighterscript/pull/1096))
24
+
25
+
26
+
9
27
  ## [1.0.0-alpha.27](https://github.com/rokucommunity/brighterscript/compare/v1.0.0-alpha.26...v1.0.0-alpha.27) - 2024-02-27
10
28
  ### Added
11
29
  - Validation when trying to access a class member directly on a class name ([#1073](https://github.com/rokucommunity/brighterscript/pull/1073))
@@ -181,6 +199,49 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
181
199
  ## [0.66.0-alpha.0](https://github.com/rokucommunity/brighterscript/compare/v0.65.1...v0.66.0-alpha.0) - 2023-06-09
182
200
  ### Changed
183
201
  - all the type tracking stuff!
202
+ ## [0.65.26](https://github.com/rokucommunity/brighterscript/compare/v0.65.25...v0.65.26) - 2024-03-13
203
+ ### Fixed
204
+ - Prevent unused variable warnings on transpiled ternary and null coalescence expressions ([#1101](https://github.com/rokucommunity/brighterscript/pull/1101))
205
+
206
+
207
+
208
+ ## [0.65.25](https://github.com/rokucommunity/brighterscript/compare/v0.65.24...v0.65.25) - 2024-03-07
209
+ ### Added
210
+ - Allow negative patterns in diagnostic filters ([#1078](https://github.com/rokucommunity/brighterscript/pull/1078))
211
+ - Support when tokens have null ranges ([#1072](https://github.com/rokucommunity/brighterscript/pull/1072))
212
+ - Support whitespace in conditional compile keywords ([#1090](https://github.com/rokucommunity/brighterscript/pull/1090))
213
+ ### Changed
214
+ - Add `create-test-package` command for easier tgz testing ([#1088](https://github.com/rokucommunity/brighterscript/pull/1088))
215
+ - Bump ip from 2.0.0 to 2.0.1 in /benchmarks ([#1079](https://github.com/rokucommunity/brighterscript/pull/1079))
216
+ - Reduce null safety issues in Statement and Expression subclasses ([#1033](https://github.com/rokucommunity/brighterscript/pull/1033))
217
+
218
+
219
+
220
+ ## [0.65.24](https://github.com/rokucommunity/brighterscript/compare/v0.65.23...v0.65.24) - 2024-03-01
221
+ ### Changed
222
+ - upgrade to [roku-deploy@3.12.0](https://github.com/rokucommunity/roku-deploy/blob/master/CHANGELOG.md#3120---2024-03-01). Notable changes since 3.11.3:
223
+ - Support overriding various package upload form data ([roku-deploy#136](https://github.com/rokucommunity/roku-deploy/pull/136))
224
+
225
+
226
+
227
+ ## [0.65.23](https://github.com/rokucommunity/brighterscript/compare/v0.65.22...v0.65.23) - 2024-02-29
228
+ ### Changed
229
+ - upgrade to [roku-deploy@3.11.3](https://github.com/rokucommunity/roku-deploy/blob/master/CHANGELOG.md#3113---2024-02-29). Notable changes since 3.11.2:
230
+ - Retry the convertToSquahsfs request given the HPE_INVALID_CONSTANT error ([roku-deploy#145](https://github.com/rokucommunity/roku-deploy/pull/145))
231
+ ### Fixed
232
+ - empty interfaces break the parser ([#1082](https://github.com/rokucommunity/brighterscript/pull/1082))
233
+
234
+
235
+ ## [0.65.22](https://github.com/rokucommunity/brighterscript/compare/v0.65.21...0.65.22) - 2024-02-09
236
+ ### Added
237
+ - support for `provideReferences` in plugins ([#1066](https://github.com/rokucommunity/brighterscript/pull/1066))
238
+ - allow v1 syntax: built-in types for class member types and type declarations on lhs ([#1059](https://github.com/rokucommunity/brighterscript/pull/1059))
239
+ ### Changed
240
+ - fix sourcemap comment and add `file` prop to map ([#1064](https://github.com/rokucommunity/brighterscript/pull/1064))
241
+ - move `coveralls-next` to a devDependency since it's not needed at runtime ([#1051](https://github.com/rokucommunity/brighterscript/pull/1051))
242
+
243
+
244
+
184
245
  ## [0.65.21](https://github.com/rokucommunity/brighterscript/compare/v0.65.20...v0.65.21) - 2024-01-31
185
246
  ### Fixed
186
247
  - parsing issues with multi-index IndexedSet and IndexedGet ([#1050](https://github.com/rokucommunity/brighterscript/pull/1050))
package/README.md CHANGED
@@ -93,7 +93,7 @@ BrighterScript adds several new features to the BrightScript language such as na
93
93
  </p>
94
94
  <br/>
95
95
 
96
- The BrighterScript project is used to power the popular [Brightscript Language](https://marketplace.visualstudio.com/items?itemName=rokucommunity.brightscript) VSCode extension, the [maestro framework](https://github.com/georgejecook/maestro/blob/master/docs/index.md), and more.
96
+ The BrighterScript project is used to power the popular [Brightscript Language](https://marketplace.visualstudio.com/items?itemName=rokucommunity.brightscript) VSCode extension, the [maestro framework](https://github.com/georgejecook/maestro-roku), and more.
97
97
 
98
98
  [Contact us](https://github.com/rokucommunity/brighterscript/issues/new) if you use BrighterScript in your project and would like your logo listed above. More projects are adopting BrighterScript all the time, from using the new BrighterScript language features to simply using the compiler in their build pipeline.
99
99
 
@@ -1,7 +1,7 @@
1
1
  import type { DottedGetExpression, TypeExpression, VariableExpression } from './parser/Expression';
2
- import { SymbolTypeFlag } from './SymbolTableFlag';
3
2
  import type { TypeChainEntry } from './interfaces';
4
3
  import type { AstNode } from './parser/AstNode';
4
+ import { SymbolTypeFlag } from './SymbolTypeFlag';
5
5
  export declare const InsideSegmentWalkMode: number;
6
6
  export interface UnresolvedSymbol {
7
7
  typeChain: TypeChainEntry[];
@@ -29,7 +29,7 @@ class AstValidationSegmenter {
29
29
  }
30
30
  checkExpressionForUnresolved(segment, expression, assignedSymbols) {
31
31
  var _a, _b;
32
- if (!expression || (0, reflection_1.isCommentStatement)(expression)) {
32
+ if (!expression) {
33
33
  return false;
34
34
  }
35
35
  if ((0, reflection_1.isVariableExpression)(expression) && expression.tokens.name.text.toLowerCase() === 'm') {
@@ -56,7 +56,7 @@ class AstValidationSegmenter {
56
56
  return false;
57
57
  }
58
58
  checkSegmentWalk(segment) {
59
- if ((0, reflection_1.isNamespaceStatement)(segment) || (0, reflection_1.isBody)(segment) || (0, reflection_1.isCommentStatement)(segment)) {
59
+ if ((0, reflection_1.isNamespaceStatement)(segment) || (0, reflection_1.isBody)(segment)) {
60
60
  return;
61
61
  }
62
62
  if ((0, reflection_1.isClassStatement)(segment)) {
@@ -1 +1 @@
1
- {"version":3,"file":"AstValidationSegmenter.js","sourceRoot":"","sources":["../src/AstValidationSegmenter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AstValidationSegmenter.js","sourceRoot":"","sources":["../src/AstValidationSegmenter.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
1
  import type { BsDiagnostic } from './interfaces';
2
2
  import type { BsConfig } from './BsConfig';
3
+ interface NormalizedFilter {
4
+ src?: string;
5
+ codes?: (number | string)[];
6
+ isNegative: boolean;
7
+ }
3
8
  export declare class DiagnosticFilterer {
4
9
  private byFile;
5
10
  private filters;
@@ -20,8 +25,6 @@ export declare class DiagnosticFilterer {
20
25
  private groupByFile;
21
26
  private filterAllFiles;
22
27
  private filterFile;
23
- getDiagnosticFilters(config1: BsConfig): {
24
- src?: string;
25
- codes: (number | string)[];
26
- }[];
28
+ getDiagnosticFilters(config: BsConfig): NormalizedFilter[];
27
29
  }
30
+ export {};
@@ -35,11 +35,9 @@ class DiagnosticFilterer {
35
35
  for (let key in this.byFile) {
36
36
  let fileDiagnostics = this.byFile[key];
37
37
  for (let diagnostic of fileDiagnostics) {
38
- if (finalDiagnostics.includes(diagnostic)) {
39
- //do not include duplicate diagnostics
40
- }
41
- else {
42
- finalDiagnostics.push(diagnostic);
38
+ //filter out duplicate and suppressed diagnostics
39
+ if (!finalDiagnostics.includes(diagnostic.diagnostic) && !diagnostic.isSuppressed) {
40
+ finalDiagnostics.push(diagnostic.diagnostic);
43
41
  }
44
42
  }
45
43
  }
@@ -62,7 +60,10 @@ class DiagnosticFilterer {
62
60
  if (!this.byFile[lowerSrcPath]) {
63
61
  this.byFile[lowerSrcPath] = [];
64
62
  }
65
- this.byFile[lowerSrcPath].push(diagnostic);
63
+ this.byFile[lowerSrcPath].push({
64
+ diagnostic: diagnostic,
65
+ isSuppressed: false
66
+ });
66
67
  }
67
68
  }
68
69
  filterAllFiles(filter) {
@@ -85,56 +86,85 @@ class DiagnosticFilterer {
85
86
  }
86
87
  }
87
88
  filterFile(filter, filePath) {
88
- //if there are no codes, throw out all diagnostics for this file
89
+ //if the filter is negative, we're turning diagnostics on
90
+ //if the filter is not negative we're turning diagnostics off
91
+ const isSuppressing = !filter.isNegative;
92
+ //if there is no code, set isSuppressed on every diagnostic in this file
89
93
  if (!filter.codes) {
90
- //remove this file from the list because all of its diagnostics were removed
91
- delete this.byFile[filePath];
92
- //filter any diagnostics with matching codes
94
+ this.byFile[filePath].forEach(diagnostic => {
95
+ diagnostic.isSuppressed = isSuppressing;
96
+ });
97
+ //set isSuppressed for any diagnostics with matching codes
93
98
  }
94
99
  else {
95
100
  let fileDiagnostics = this.byFile[filePath];
96
- for (let i = 0; i < fileDiagnostics.length; i++) {
97
- let diagnostic = fileDiagnostics[i];
98
- if (filter.codes.includes(diagnostic.code)) {
99
- //remove this diagnostic
100
- fileDiagnostics.splice(i, 1);
101
- //repeat this loop iteration (with the new item at this index)
102
- i--;
101
+ for (const diagnostic of fileDiagnostics) {
102
+ if (filter.codes.includes(diagnostic.diagnostic.code)) {
103
+ diagnostic.isSuppressed = isSuppressing;
103
104
  }
104
105
  }
105
106
  }
106
107
  }
107
- getDiagnosticFilters(config1) {
108
+ getDiagnosticFilters(config) {
108
109
  var _a, _b;
109
- let globalIgnoreCodes = [...(_a = config1.ignoreErrorCodes) !== null && _a !== void 0 ? _a : []];
110
- let diagnosticFilters = [...(_b = config1.diagnosticFilters) !== null && _b !== void 0 ? _b : []];
110
+ let globalIgnoreCodes = [...(_a = config.ignoreErrorCodes) !== null && _a !== void 0 ? _a : []];
111
+ let diagnosticFilters = [...(_b = config.diagnosticFilters) !== null && _b !== void 0 ? _b : []];
111
112
  let result = [];
113
+ //include a filter for all global ignore codes
114
+ //this comes first, because negative patterns will override ignoreErrorCodes
115
+ if (globalIgnoreCodes.length > 0) {
116
+ result.push({
117
+ codes: globalIgnoreCodes,
118
+ isNegative: false
119
+ });
120
+ }
112
121
  for (let filter of diagnosticFilters) {
113
122
  if (typeof filter === 'number') {
114
- globalIgnoreCodes.push(filter);
123
+ result.push({
124
+ codes: [filter],
125
+ isNegative: false
126
+ });
127
+ continue;
128
+ }
129
+ if (typeof filter === 'string') {
130
+ const isNegative = filter.startsWith('!');
131
+ const trimmedFilter = isNegative ? filter.slice(1) : filter;
132
+ result.push({
133
+ src: trimmedFilter,
134
+ isNegative: isNegative
135
+ });
115
136
  continue;
116
137
  }
117
- else if (typeof filter === 'string') {
118
- filter = {
119
- src: filter
120
- };
121
- //if this is a code-only filter, add them to the globalCodes array (and skip adding it now)
138
+ //filter out bad inputs
139
+ if (!filter || typeof filter !== 'object') {
140
+ continue;
122
141
  }
123
- else if (Array.isArray(filter === null || filter === void 0 ? void 0 : filter.codes) && !filter.src) {
124
- globalIgnoreCodes.push(...filter.codes);
142
+ //code-only filter
143
+ if ('codes' in filter && !('src' in filter) && Array.isArray(filter.codes)) {
144
+ result.push({
145
+ codes: filter.codes,
146
+ isNegative: false
147
+ });
125
148
  continue;
126
149
  }
127
- //if this looks like a filter, keep it
128
- if ((filter === null || filter === void 0 ? void 0 : filter.src) || (filter === null || filter === void 0 ? void 0 : filter.codes)) {
129
- result.push(filter);
150
+ if ('src' in filter) {
151
+ const isNegative = filter.src.startsWith('!');
152
+ const trimmedFilter = isNegative ? filter.src.slice(1) : filter.src;
153
+ if ('codes' in filter) {
154
+ result.push({
155
+ src: trimmedFilter,
156
+ codes: filter.codes,
157
+ isNegative: isNegative
158
+ });
159
+ }
160
+ else {
161
+ result.push({
162
+ src: trimmedFilter,
163
+ isNegative: isNegative
164
+ });
165
+ }
130
166
  }
131
167
  }
132
- //include a filter for all global ignore codes
133
- if (globalIgnoreCodes.length > 0) {
134
- result.push({
135
- codes: globalIgnoreCodes
136
- });
137
- }
138
168
  return result;
139
169
  }
140
170
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DiagnosticFilterer.js","sourceRoot":"","sources":["../src/DiagnosticFilterer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DiagnosticFilterer.js","sourceRoot":"","sources":["../src/DiagnosticFilterer.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { Position } from 'vscode-languageserver';
2
2
  import { DiagnosticSeverity } from 'vscode-languageserver';
3
3
  import type { BsDiagnostic, TypeCompatibilityData } from './interfaces';
4
4
  import { TokenKind } from './lexer/TokenKind';
5
- import { SymbolTypeFlag } from './SymbolTableFlag';
5
+ import { SymbolTypeFlag } from './SymbolTypeFlag';
6
6
  /**
7
7
  * An object that keeps track of all possible error messages.
8
8
  */
@@ -23,7 +23,7 @@ class PluginInterface {
23
23
  });
24
24
  }
25
25
  catch (err) {
26
- (_b = this.logger) === null || _b === void 0 ? void 0 : _b.error(`Error when calling plugin ${plugin.name}.${event}:`, err);
26
+ (_b = this.logger) === null || _b === void 0 ? void 0 : _b.error(`Error when calling plugin ${plugin.name}.${event}:`, err.stack);
27
27
  if (!this.suppressErrors) {
28
28
  throw err;
29
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PluginInterface.js","sourceRoot":"","sources":["../src/PluginInterface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PluginInterface.js","sourceRoot":"","sources":["../src/PluginInterface.ts"],"names":[],"mappings":";;AAEA,qCAAoC;AAuBpC,MAAqB,eAAe;IAChC,YACI,OAAyB,EACzB,OAGC;QASG,YAAO,GAAqB,EAAE,CAAC;QAPnC,IAAI,CAAC,MAAM,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,CAAC,OAAe,aAAf,OAAO,uBAAP,OAAO,CAAU,cAAc,MAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAChF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC1B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SACpB;IACL,CAAC;IAUD;;OAEG;IACI,IAAI,CAA8C,KAAQ,EAAE,GAAG,IAA2B;;QAC7F,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC7B,IAAK,MAAc,CAAC,KAAK,CAAC,EAAE;gBACxB,IAAI;oBACA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAC,iBAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE;wBACxD,MAAc,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;oBACpC,CAAC,CAAC,CAAC;iBACN;gBAAC,OAAO,GAAG,EAAE;oBACV,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,CAAC,6BAA6B,MAAM,CAAC,IAAI,IAAI,KAAK,GAAG,EAAG,GAAa,CAAC,KAAK,CAAC,CAAC;oBAC/F,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;wBACtB,MAAM,GAAG,CAAC;qBACb;iBACJ;aACJ;SACJ;QACD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,SAAS,CAA8C,KAAQ,EAAE,GAAG,IAA2B;;QACxG,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC7B,IAAK,MAAc,CAAC,KAAK,CAAC,EAAE;gBACxB,IAAI;oBACA,MAAM,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAC,iBAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE;wBACrE,MAAM,OAAO,CAAC,OAAO,CAChB,MAAc,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAClC,CAAC;oBACN,CAAC,CAAC,CAAA,CAAC;iBACN;gBAAC,OAAO,GAAG,EAAE;oBACV,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,CAAC,6BAA6B,MAAM,CAAC,IAAI,IAAI,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;iBACjF;aACJ;SACJ;QACD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,QAAQ,CAA4C,MAAS;QAChE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAChC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,GAAG,CAA4C,MAAS;QAC3D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACnB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,MAAsB;;QACzC,MAAM,YAAY,GAAG;YACjB,kBAAkB;YAClB,iBAAiB;SACpB,CAAC;QACF,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;YACpC,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE;gBACrB,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,YAAY,WAAW,kDAAkD,CAAC,CAAC;aACvH;SACJ;QAED,MAAM,eAAe,GAAG;YACpB,aAAa,EAAE,wBAAwB;YACvC,YAAY,EAAE,uBAAuB;YACrC,sBAAsB,EAAE,oBAAoB;YAC5C,qBAAqB,EAAE,mBAAmB;YAC1C,eAAe,EAAE,mBAAmB;YACpC,cAAc,EAAE,kBAAkB;YAClC,mBAAmB,EAAE,mBAAmB;YACxC,kBAAkB,EAAE,kBAAkB;YACtC,iBAAiB,EAAE,kBAAkB;YACrC,gBAAgB,EAAE,iBAAiB;SACtC,CAAC;QAEF,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;YAChE,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;oBACnB,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACpC,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,aAAa,QAAQ,uDAAuD,QAAQ,kEAAkE,CAAC,CAAC;iBACnM;qBAAM;oBACH,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,aAAa,QAAQ,mDAAmD,CAAC,CAAC;iBACrH;aACJ;SACJ;IACL,CAAC;IAEM,GAAG,CAAC,MAAsB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAEM,MAAM,CAA4C,MAAS;QAC9D,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;SACxD;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,KAAK;QACR,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;CACJ;AA9ID,kCA8IC"}
package/dist/Program.d.ts CHANGED
@@ -294,7 +294,7 @@ export declare class Program {
294
294
  */
295
295
  getSemanticTokens(srcPath: string): SemanticToken[] | undefined;
296
296
  getSignatureHelp(filepath: string, position: Position): SignatureInfoObj[];
297
- getReferences(srcPath: string, position: Position): Location[] | Promise<Location[]>;
297
+ getReferences(srcPath: string, position: Position): Location[];
298
298
  /**
299
299
  * Transpile a single file and get the result as a string.
300
300
  * This does not write anything to the file system.
package/dist/Program.js CHANGED
@@ -1110,12 +1110,16 @@ class Program {
1110
1110
  getReferences(srcPath, position) {
1111
1111
  //find the file
1112
1112
  let file = this.getFile(srcPath);
1113
- if ((0, reflection_1.isBrsFile)(file) || (0, reflection_1.isXmlFile)(file)) {
1114
- return file.getReferences(position);
1115
- }
1116
- else {
1117
- return null;
1118
- }
1113
+ const event = {
1114
+ program: this,
1115
+ file: file,
1116
+ position: position,
1117
+ references: []
1118
+ };
1119
+ this.plugins.emit('beforeProvideReferences', event);
1120
+ this.plugins.emit('provideReferences', event);
1121
+ this.plugins.emit('afterProvideReferences', event);
1122
+ return event.references;
1119
1123
  }
1120
1124
  /**
1121
1125
  * Transpile a single file and get the result as a string.