brighterscript 1.0.0-alpha.44 → 1.0.0-alpha.45

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 (198) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/bsconfig.schema.json +6 -1
  3. package/dist/AstValidationSegmenter.js +6 -1
  4. package/dist/AstValidationSegmenter.js.map +1 -1
  5. package/dist/BsConfig.d.ts +4 -0
  6. package/dist/BusyStatusTracker.d.ts +37 -7
  7. package/dist/BusyStatusTracker.js +73 -8
  8. package/dist/BusyStatusTracker.js.map +1 -1
  9. package/dist/Cache.d.ts +0 -4
  10. package/dist/Cache.js +0 -6
  11. package/dist/Cache.js.map +1 -1
  12. package/dist/CrossScopeValidator.d.ts +1 -1
  13. package/dist/CrossScopeValidator.js +4 -4
  14. package/dist/CrossScopeValidator.js.map +1 -1
  15. package/dist/DiagnosticCollection.d.ts +19 -5
  16. package/dist/DiagnosticCollection.js +71 -23
  17. package/dist/DiagnosticCollection.js.map +1 -1
  18. package/dist/DiagnosticFilterer.d.ts +14 -1
  19. package/dist/DiagnosticFilterer.js +130 -12
  20. package/dist/DiagnosticFilterer.js.map +1 -1
  21. package/dist/DiagnosticManager.d.ts +11 -1
  22. package/dist/DiagnosticManager.js +192 -35
  23. package/dist/DiagnosticManager.js.map +1 -1
  24. package/dist/LanguageServer.d.ts +82 -139
  25. package/dist/LanguageServer.js +402 -980
  26. package/dist/LanguageServer.js.map +1 -1
  27. package/dist/Logger.d.ts +9 -4
  28. package/dist/Logger.js +30 -6
  29. package/dist/Logger.js.map +1 -1
  30. package/dist/PluginInterface.d.ts +8 -8
  31. package/dist/PluginInterface.js.map +1 -1
  32. package/dist/Program.d.ts +23 -4
  33. package/dist/Program.js +294 -194
  34. package/dist/Program.js.map +1 -1
  35. package/dist/ProgramBuilder.d.ts +22 -7
  36. package/dist/ProgramBuilder.js +44 -21
  37. package/dist/ProgramBuilder.js.map +1 -1
  38. package/dist/Scope.d.ts +11 -6
  39. package/dist/Scope.js +60 -36
  40. package/dist/Scope.js.map +1 -1
  41. package/dist/SemanticTokenUtils.js +1 -1
  42. package/dist/SemanticTokenUtils.js.map +1 -1
  43. package/dist/astUtils/reflection.d.ts +4 -4
  44. package/dist/astUtils/reflection.js +12 -10
  45. package/dist/astUtils/reflection.js.map +1 -1
  46. package/dist/bscPlugin/BscPlugin.d.ts +3 -3
  47. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  48. package/dist/bscPlugin/CallExpressionInfo.js +4 -2
  49. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
  50. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +1 -1
  51. package/dist/bscPlugin/completions/CompletionsProcessor.js +15 -15
  52. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  53. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +82 -5
  54. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
  55. package/dist/bscPlugin/hover/HoverProcessor.js +3 -0
  56. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  57. package/dist/bscPlugin/validation/ScopeValidator.d.ts +4 -1
  58. package/dist/bscPlugin/validation/ScopeValidator.js +161 -61
  59. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  60. package/dist/common/Sequencer.d.ts +53 -0
  61. package/dist/common/Sequencer.js +232 -0
  62. package/dist/common/Sequencer.js.map +1 -0
  63. package/dist/common/Sequencer.spec.d.ts +1 -0
  64. package/dist/common/Sequencer.spec.js +75 -0
  65. package/dist/common/Sequencer.spec.js.map +1 -0
  66. package/dist/deferred.d.ts +2 -0
  67. package/dist/deferred.js +10 -0
  68. package/dist/deferred.js.map +1 -1
  69. package/dist/examples/plugins/removePrint.d.ts +2 -2
  70. package/dist/examples/plugins/removePrint.js.map +1 -1
  71. package/dist/files/BrsFile.d.ts +1 -1
  72. package/dist/files/BrsFile.js +11 -40
  73. package/dist/files/BrsFile.js.map +1 -1
  74. package/dist/files/BrsFile.spec.js +51 -2
  75. package/dist/files/BrsFile.spec.js.map +1 -1
  76. package/dist/files/BscFile.d.ts +1 -0
  77. package/dist/files/LazyFileData.d.ts +1 -0
  78. package/dist/files/XmlFile.spec.js +1 -1
  79. package/dist/files/XmlFile.spec.js.map +1 -1
  80. package/dist/globalCallables.js +186 -186
  81. package/dist/globalCallables.js.map +1 -1
  82. package/dist/interfaces.d.ts +56 -13
  83. package/dist/interfaces.js.map +1 -1
  84. package/dist/lexer/Lexer.js +1 -1
  85. package/dist/lexer/Lexer.js.map +1 -1
  86. package/dist/logging.d.ts +6 -1
  87. package/dist/logging.js +14 -1
  88. package/dist/logging.js.map +1 -1
  89. package/dist/lsp/ActionQueue.d.ts +35 -0
  90. package/dist/lsp/ActionQueue.js +115 -0
  91. package/dist/lsp/ActionQueue.js.map +1 -0
  92. package/dist/lsp/ActionQueue.spec.d.ts +1 -0
  93. package/dist/lsp/ActionQueue.spec.js +80 -0
  94. package/dist/lsp/ActionQueue.spec.js.map +1 -0
  95. package/dist/lsp/DocumentManager.d.ts +63 -0
  96. package/dist/lsp/DocumentManager.js +122 -0
  97. package/dist/lsp/DocumentManager.js.map +1 -0
  98. package/dist/lsp/DocumentManager.spec.d.ts +1 -0
  99. package/dist/lsp/DocumentManager.spec.js +103 -0
  100. package/dist/lsp/DocumentManager.spec.js.map +1 -0
  101. package/dist/lsp/LspProject.d.ts +231 -0
  102. package/dist/lsp/LspProject.js +3 -0
  103. package/dist/lsp/LspProject.js.map +1 -0
  104. package/dist/lsp/PathFilterer.d.ts +75 -0
  105. package/dist/lsp/PathFilterer.js +196 -0
  106. package/dist/lsp/PathFilterer.js.map +1 -0
  107. package/dist/lsp/PathFilterer.spec.d.ts +1 -0
  108. package/dist/lsp/PathFilterer.spec.js +182 -0
  109. package/dist/lsp/PathFilterer.spec.js.map +1 -0
  110. package/dist/lsp/Project.d.ts +167 -0
  111. package/dist/lsp/Project.js +432 -0
  112. package/dist/lsp/Project.js.map +1 -0
  113. package/dist/lsp/Project.spec.d.ts +1 -0
  114. package/dist/lsp/Project.spec.js +220 -0
  115. package/dist/lsp/Project.spec.js.map +1 -0
  116. package/dist/lsp/ProjectManager.d.ts +221 -0
  117. package/dist/lsp/ProjectManager.js +735 -0
  118. package/dist/lsp/ProjectManager.js.map +1 -0
  119. package/dist/lsp/ProjectManager.spec.d.ts +1 -0
  120. package/dist/lsp/ProjectManager.spec.js +757 -0
  121. package/dist/lsp/ProjectManager.spec.js.map +1 -0
  122. package/dist/lsp/ReaderWriterManager.d.ts +21 -0
  123. package/dist/lsp/ReaderWriterManager.js +60 -0
  124. package/dist/lsp/ReaderWriterManager.js.map +1 -0
  125. package/dist/lsp/worker/MessageHandler.d.ts +99 -0
  126. package/dist/lsp/worker/MessageHandler.js +138 -0
  127. package/dist/lsp/worker/MessageHandler.js.map +1 -0
  128. package/dist/lsp/worker/MessageHandler.spec.d.ts +1 -0
  129. package/dist/lsp/worker/MessageHandler.spec.js +64 -0
  130. package/dist/lsp/worker/MessageHandler.spec.js.map +1 -0
  131. package/dist/lsp/worker/WorkerPool.d.ts +38 -0
  132. package/dist/lsp/worker/WorkerPool.js +78 -0
  133. package/dist/lsp/worker/WorkerPool.js.map +1 -0
  134. package/dist/lsp/worker/WorkerPool.spec.d.ts +1 -0
  135. package/dist/lsp/worker/WorkerPool.spec.js +59 -0
  136. package/dist/lsp/worker/WorkerPool.spec.js.map +1 -0
  137. package/dist/lsp/worker/WorkerThreadProject.d.ts +144 -0
  138. package/dist/lsp/worker/WorkerThreadProject.js +183 -0
  139. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -0
  140. package/dist/lsp/worker/WorkerThreadProject.spec.d.ts +2 -0
  141. package/dist/lsp/worker/WorkerThreadProject.spec.js +68 -0
  142. package/dist/lsp/worker/WorkerThreadProject.spec.js.map +1 -0
  143. package/dist/lsp/worker/WorkerThreadProjectRunner.d.ts +15 -0
  144. package/dist/lsp/worker/WorkerThreadProjectRunner.js +58 -0
  145. package/dist/lsp/worker/WorkerThreadProjectRunner.js.map +1 -0
  146. package/dist/parser/Expression.js +7 -2
  147. package/dist/parser/Expression.js.map +1 -1
  148. package/dist/parser/Parser.spec.js +12 -0
  149. package/dist/parser/Parser.spec.js.map +1 -1
  150. package/dist/parser/Statement.js +2 -2
  151. package/dist/parser/Statement.js.map +1 -1
  152. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +51 -5
  153. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  154. package/dist/roku-types/data.json +745 -751
  155. package/dist/types/BooleanType.d.ts +0 -2
  156. package/dist/types/BooleanType.js +4 -6
  157. package/dist/types/BooleanType.js.map +1 -1
  158. package/dist/types/BscType.js +5 -0
  159. package/dist/types/BscType.js.map +1 -1
  160. package/dist/types/BuiltInInterfaceAdder.d.ts +1 -0
  161. package/dist/types/BuiltInInterfaceAdder.js +24 -17
  162. package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
  163. package/dist/types/DoubleType.d.ts +0 -2
  164. package/dist/types/DoubleType.js +4 -6
  165. package/dist/types/DoubleType.js.map +1 -1
  166. package/dist/types/DynamicType.d.ts +0 -2
  167. package/dist/types/DynamicType.js +3 -5
  168. package/dist/types/DynamicType.js.map +1 -1
  169. package/dist/types/FloatType.d.ts +0 -2
  170. package/dist/types/FloatType.js +4 -6
  171. package/dist/types/FloatType.js.map +1 -1
  172. package/dist/types/FunctionType.d.ts +0 -2
  173. package/dist/types/FunctionType.js +5 -7
  174. package/dist/types/FunctionType.js.map +1 -1
  175. package/dist/types/IntegerType.d.ts +0 -2
  176. package/dist/types/IntegerType.js +4 -6
  177. package/dist/types/IntegerType.js.map +1 -1
  178. package/dist/types/LongIntegerType.d.ts +0 -2
  179. package/dist/types/LongIntegerType.js +4 -6
  180. package/dist/types/LongIntegerType.js.map +1 -1
  181. package/dist/types/ObjectType.d.ts +3 -3
  182. package/dist/types/ObjectType.js +6 -8
  183. package/dist/types/ObjectType.js.map +1 -1
  184. package/dist/types/StringType.d.ts +0 -2
  185. package/dist/types/StringType.js +4 -6
  186. package/dist/types/StringType.js.map +1 -1
  187. package/dist/types/VoidType.d.ts +0 -2
  188. package/dist/types/VoidType.js +4 -6
  189. package/dist/types/VoidType.js.map +1 -1
  190. package/dist/types/helpers.d.ts +4 -0
  191. package/dist/types/helpers.js +5 -1
  192. package/dist/types/helpers.js.map +1 -1
  193. package/dist/util.d.ts +44 -16
  194. package/dist/util.js +196 -70
  195. package/dist/util.js.map +1 -1
  196. package/dist/validators/ClassValidator.js +2 -2
  197. package/dist/validators/ClassValidator.js.map +1 -1
  198. package/package.json +15 -5
@@ -21,6 +21,10 @@ class DiagnosticManager {
21
21
  this.diagnosticsCache = new Cache_1.Cache();
22
22
  this.diagnosticFilterer = new DiagnosticFilterer_1.DiagnosticFilterer();
23
23
  this.diagnosticAdjuster = new DiagnosticSeverityAdjuster_1.DiagnosticSeverityAdjuster();
24
+ this.fileUriMap = new Map();
25
+ this.tagMap = new Map();
26
+ this.scopeMap = new Map();
27
+ this.segmentMap = new Map();
24
28
  this.logger = (_a = options === null || options === void 0 ? void 0 : options.logger) !== null && _a !== void 0 ? _a : (0, logging_1.createLogger)();
25
29
  }
26
30
  register(diagnosticArg, context) {
@@ -36,7 +40,7 @@ class DiagnosticManager {
36
40
  diagnostic.relatedInformation = [];
37
41
  }
38
42
  fromCache = false;
39
- return { diagnostic: diagnostic, contexts: new Set() };
43
+ return { diagnostic: Object.assign({ key: key }, diagnostic), contexts: new Set() };
40
44
  });
41
45
  const cachedDiagnostic = cacheData.diagnostic;
42
46
  if (!fromCache && diagnostic.relatedInformation) {
@@ -46,6 +50,41 @@ class DiagnosticManager {
46
50
  if (diagContext) {
47
51
  contexts.add(diagContext);
48
52
  }
53
+ this.addToMaps(cachedDiagnostic, diagContext);
54
+ }
55
+ }
56
+ addToMaps(diagnostic, context) {
57
+ var _a, _b, _c, _d, _e, _f;
58
+ const uriLower = util_1.util.pathToUri((_b = (_a = diagnostic.location) === null || _a === void 0 ? void 0 : _a.uri) === null || _b === void 0 ? void 0 : _b.toLowerCase());
59
+ if (uriLower) {
60
+ if (!this.fileUriMap.has(uriLower)) {
61
+ this.fileUriMap.set(uriLower, new Set());
62
+ }
63
+ (_c = this.fileUriMap.get(uriLower)) === null || _c === void 0 ? void 0 : _c.add(diagnostic.key);
64
+ }
65
+ if (context) {
66
+ if (context.tags) {
67
+ for (const tag of context.tags) {
68
+ const lowerTag = tag.toLowerCase();
69
+ if (!this.tagMap.has(lowerTag)) {
70
+ this.tagMap.set(lowerTag, new Set());
71
+ }
72
+ (_d = this.tagMap.get(lowerTag)) === null || _d === void 0 ? void 0 : _d.add(diagnostic.key);
73
+ }
74
+ }
75
+ if (context.scope) {
76
+ const scopeKey = context.scope.name.toLowerCase();
77
+ if (!this.scopeMap.has(scopeKey)) {
78
+ this.scopeMap.set(scopeKey, new Set());
79
+ }
80
+ (_e = this.scopeMap.get(scopeKey)) === null || _e === void 0 ? void 0 : _e.add(diagnostic.key);
81
+ }
82
+ if (context.segment) {
83
+ if (!this.segmentMap.has(context.segment)) {
84
+ this.segmentMap.set(context.segment, new Set());
85
+ }
86
+ (_f = this.segmentMap.get(context.segment)) === null || _f === void 0 ? void 0 : _f.add(diagnostic.key);
87
+ }
49
88
  }
50
89
  }
51
90
  /**
@@ -56,7 +95,7 @@ class DiagnosticManager {
56
95
  var _a, _b;
57
96
  const doDiagnosticsGathering = () => {
58
97
  var _a, _b, _c, _d;
59
- const diagnostics = this.getNonSuppresedDiagnostics();
98
+ const diagnostics = this.getNonSuppressedDiagnostics();
60
99
  const filteredDiagnostics = (_b = (_a = this.logger) === null || _a === void 0 ? void 0 : _a.time(logging_1.LogLevel.debug, ['filter diagnostics'], () => {
61
100
  return this.filterDiagnostics(diagnostics);
62
101
  })) !== null && _b !== void 0 ? _b : this.filterDiagnostics(diagnostics);
@@ -69,7 +108,7 @@ class DiagnosticManager {
69
108
  };
70
109
  return (_b = (_a = this.logger) === null || _a === void 0 ? void 0 : _a.time(logging_1.LogLevel.info, ['DiagnosticsManager.getDiagnostics()'], doDiagnosticsGathering)) !== null && _b !== void 0 ? _b : doDiagnosticsGathering();
71
110
  }
72
- getNonSuppresedDiagnostics() {
111
+ getNonSuppressedDiagnostics() {
73
112
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
74
113
  const results = [];
75
114
  for (const cachedDiagnostic of this.diagnosticsCache.values()) {
@@ -134,91 +173,202 @@ class DiagnosticManager {
134
173
  this.diagnosticsCache.clear();
135
174
  }
136
175
  clearForFile(fileSrcPath) {
137
- var _a, _b, _c, _d, _e;
176
+ var _a, _b, _c, _d;
138
177
  const fileSrcPathUri = (_b = (_a = util_1.util.pathToUri(fileSrcPath)) === null || _a === void 0 ? void 0 : _a.toLowerCase) === null || _b === void 0 ? void 0 : _b.call(_a);
139
- for (const [key, cachedData] of this.diagnosticsCache.entries()) {
140
- if (((_e = (_d = (_c = cachedData.diagnostic.location) === null || _c === void 0 ? void 0 : _c.uri) === null || _d === void 0 ? void 0 : _d.toLowerCase) === null || _e === void 0 ? void 0 : _e.call(_d)) === fileSrcPathUri) {
141
- this.diagnosticsCache.delete(key);
142
- }
178
+ for (const key of (_c = this.fileUriMap.get(fileSrcPathUri)) !== null && _c !== void 0 ? _c : []) {
179
+ const cachedData = this.diagnosticsCache.get(key);
180
+ this.deleteContextsFromDiagnostic(cachedData.diagnostic, Array.from(cachedData.contexts));
181
+ this.removeDiagnosticIfNoContexts(cachedData.diagnostic);
143
182
  }
183
+ (_d = this.fileUriMap.get(fileSrcPathUri)) === null || _d === void 0 ? void 0 : _d.clear();
144
184
  }
145
185
  clearForScope(scope) {
146
- for (const [key, cachedData] of this.diagnosticsCache.entries()) {
147
- let removedContext = false;
186
+ var _a, _b;
187
+ const scopeNameLower = scope.name.toLowerCase();
188
+ for (const key of (_a = this.scopeMap.get(scopeNameLower)) !== null && _a !== void 0 ? _a : []) {
189
+ const cachedData = this.diagnosticsCache.get(key);
190
+ const contextsToRemove = [];
191
+ let foundMatch = false;
148
192
  for (const context of cachedData.contexts.values()) {
149
193
  if (context.scope === scope) {
150
- cachedData.contexts.delete(context);
151
- removedContext = true;
194
+ contextsToRemove.push(context);
195
+ foundMatch = true;
152
196
  }
153
197
  }
154
- if (removedContext && cachedData.contexts.size === 0) {
155
- // no more contexts for this diagnostic - remove diagnostic
156
- this.diagnosticsCache.delete(key);
198
+ this.deleteContextsFromDiagnostic(cachedData.diagnostic, contextsToRemove);
199
+ if (foundMatch) {
200
+ this.removeDiagnosticIfNoContexts(cachedData.diagnostic);
157
201
  }
158
202
  }
203
+ (_b = this.scopeMap.get(scopeNameLower)) === null || _b === void 0 ? void 0 : _b.clear();
159
204
  }
160
205
  clearForSegment(segment) {
161
- for (const [key, cachedData] of this.diagnosticsCache.entries()) {
162
- let removedContext = false;
206
+ var _a, _b;
207
+ for (const key of (_a = this.segmentMap.get(segment)) !== null && _a !== void 0 ? _a : []) {
208
+ const cachedData = this.diagnosticsCache.get(key);
209
+ const contextsToRemove = [];
210
+ let foundMatch = false;
163
211
  for (const context of cachedData.contexts.values()) {
164
212
  if (context.segment === segment) {
165
- cachedData.contexts.delete(context);
213
+ foundMatch = true;
214
+ contextsToRemove.push(context);
166
215
  }
167
216
  }
168
- if (removedContext && cachedData.contexts.size === 0) {
169
- // no more contexts for this diagnostic - remove diagnostic
170
- this.diagnosticsCache.delete(key);
217
+ this.deleteContextsFromDiagnostic(cachedData.diagnostic, contextsToRemove);
218
+ if (foundMatch) {
219
+ this.removeDiagnosticIfNoContexts(cachedData.diagnostic);
171
220
  }
172
221
  }
222
+ (_b = this.segmentMap.get(segment)) === null || _b === void 0 ? void 0 : _b.clear();
173
223
  }
174
224
  clearForTag(tag) {
175
- for (const [key, cachedData] of this.diagnosticsCache.entries()) {
225
+ var _a, _b;
226
+ const tagLower = tag.toLowerCase();
227
+ for (const key of (_a = this.tagMap.get(tagLower)) !== null && _a !== void 0 ? _a : []) {
228
+ const cachedData = this.diagnosticsCache.get(key);
229
+ const contextsToRemove = [];
230
+ let foundMatch = false;
176
231
  for (const context of cachedData.contexts.values()) {
177
232
  if (context.tags.includes(tag)) {
178
- this.diagnosticsCache.delete(key);
233
+ foundMatch = true;
234
+ contextsToRemove.push(context);
179
235
  }
180
236
  }
237
+ this.deleteContextsFromDiagnostic(cachedData.diagnostic, contextsToRemove);
238
+ if (foundMatch) {
239
+ this.removeDiagnosticIfNoContexts(cachedData.diagnostic);
240
+ }
181
241
  }
242
+ (_b = this.tagMap.get(tagLower)) === null || _b === void 0 ? void 0 : _b.clear();
243
+ }
244
+ /*
245
+ * Filters searchData to include only those diagnostics that match the filter provided
246
+ *
247
+ * @param shouldMatch true if this is an important filter, false if it is an optional filter
248
+ * @param {MapIterator<DiagnosticWithContexts>} searchData Data to filter
249
+ * @param filteredDiagnosticKeysSet Set of keys to filter by
250
+ * @returns {MapIterator<DiagnosticWithContexts>} result of intersection
251
+ */
252
+ getSearchIntersection(shouldMatch, searchData, filteredDiagnosticKeysSet, ignoreEmptyFilter = false) {
253
+ if (!shouldMatch) {
254
+ return searchData;
255
+ }
256
+ if (!filteredDiagnosticKeysSet || filteredDiagnosticKeysSet.size === 0) {
257
+ return [];
258
+ }
259
+ return searchData.filter((diagnosticWithContext) => {
260
+ return filteredDiagnosticKeysSet.has(diagnosticWithContext.diagnostic.key);
261
+ });
182
262
  }
183
263
  /**
184
264
  * Clears all diagnostics that match all aspects of the filter provided
185
265
  * Matches equality of tag, scope, file, segment filters. Leave filter option undefined to not filter on option
186
266
  */
187
267
  clearByFilter(filter) {
188
- var _a, _b, _c;
268
+ var _a, _b, _c, _d, _e, _f;
189
269
  const needToMatch = {
190
270
  tag: !!filter.tag,
191
271
  scope: !!filter.scope,
192
272
  fileUri: !!filter.fileUri,
193
273
  segment: !!filter.segment
194
274
  };
195
- for (const [key, cachedData] of this.diagnosticsCache.entries()) {
196
- let removedContext = false;
197
- for (const context of cachedData.contexts.values()) {
275
+ let searchData = Array.from(this.diagnosticsCache.values());
276
+ searchData = this.getSearchIntersection(needToMatch.tag, searchData, needToMatch.tag ? this.tagMap.get((_a = filter.tag) === null || _a === void 0 ? void 0 : _a.toLowerCase()) : null);
277
+ if (searchData.length === 0) {
278
+ return;
279
+ }
280
+ searchData = this.getSearchIntersection(needToMatch.scope, searchData, needToMatch.scope ? this.scopeMap.get((_c = (_b = filter.scope) === null || _b === void 0 ? void 0 : _b.name) === null || _c === void 0 ? void 0 : _c.toLowerCase()) : null, true);
281
+ if (searchData.length === 0) {
282
+ return;
283
+ }
284
+ searchData = this.getSearchIntersection(needToMatch.fileUri, searchData, needToMatch.fileUri ? this.fileUriMap.get(util_1.util.pathToUri(filter.fileUri).toLowerCase()) : null);
285
+ if (searchData.length === 0) {
286
+ return;
287
+ }
288
+ searchData = this.getSearchIntersection(needToMatch.segment, searchData, needToMatch.segment ? this.segmentMap.get(filter.segment) : null);
289
+ for (const { diagnostic, contexts } of searchData !== null && searchData !== void 0 ? searchData : []) {
290
+ const contextsToRemove = [];
291
+ let foundMatch = false;
292
+ for (const context of contexts) {
198
293
  let isMatch = true;
199
294
  if (isMatch && needToMatch.tag) {
200
- isMatch = !!((_a = context.tags) === null || _a === void 0 ? void 0 : _a.includes(filter.tag));
295
+ isMatch = !!((_d = context.tags) === null || _d === void 0 ? void 0 : _d.includes(filter.tag));
201
296
  }
202
297
  if (isMatch && needToMatch.scope) {
203
- isMatch = ((_b = context.scope) === null || _b === void 0 ? void 0 : _b.name) === filter.scope.name;
298
+ isMatch = ((_e = context.scope) === null || _e === void 0 ? void 0 : _e.name) === filter.scope.name;
204
299
  }
205
300
  if (isMatch && needToMatch.fileUri) {
206
- isMatch = ((_c = cachedData.diagnostic.location) === null || _c === void 0 ? void 0 : _c.uri) === filter.fileUri;
301
+ isMatch = ((_f = diagnostic.location) === null || _f === void 0 ? void 0 : _f.uri) === filter.fileUri;
207
302
  }
208
303
  if (isMatch && needToMatch.segment) {
209
304
  isMatch = context.segment === filter.segment;
210
305
  }
211
306
  if (isMatch) {
212
- cachedData.contexts.delete(context);
213
- removedContext = true;
307
+ contextsToRemove.push(context);
308
+ foundMatch = true;
309
+ }
310
+ }
311
+ this.deleteContextsFromDiagnostic(diagnostic, contextsToRemove);
312
+ if (foundMatch) {
313
+ this.removeDiagnosticIfNoContexts(diagnostic);
314
+ }
315
+ }
316
+ }
317
+ deleteContextsFromDiagnostic(diagnostic, contexts) {
318
+ var _a, _b, _c, _d, _e;
319
+ const key = diagnostic.key;
320
+ const cachedData = this.diagnosticsCache.get(key);
321
+ for (const context of contexts) {
322
+ cachedData.contexts.delete(context);
323
+ }
324
+ for (const context of contexts) {
325
+ for (const tag of (_a = context.tags) !== null && _a !== void 0 ? _a : []) {
326
+ let foundTagOtherContext = false;
327
+ for (const otherContext of cachedData.contexts) {
328
+ if ((_b = otherContext.tags) === null || _b === void 0 ? void 0 : _b.includes(tag)) {
329
+ foundTagOtherContext = true;
330
+ break;
331
+ }
332
+ }
333
+ if (!foundTagOtherContext) {
334
+ (_c = this.tagMap.get(tag.toLowerCase())) === null || _c === void 0 ? void 0 : _c.delete(key);
214
335
  }
215
336
  }
216
- if (removedContext && cachedData.contexts.size === 0) {
217
- // no more contexts for this diagnostic - remove diagnostic
218
- this.diagnosticsCache.delete(key);
337
+ if (context.scope) {
338
+ let foundScopeOtherContext = false;
339
+ for (const otherContext of cachedData.contexts) {
340
+ if (otherContext.scope === context.scope) {
341
+ foundScopeOtherContext = true;
342
+ break;
343
+ }
344
+ }
345
+ if (!foundScopeOtherContext) {
346
+ (_d = this.scopeMap.get(context.scope.name.toLowerCase())) === null || _d === void 0 ? void 0 : _d.delete(key);
347
+ }
348
+ }
349
+ if (context.segment) {
350
+ let foundSegmentOtherContext = false;
351
+ for (const otherContext of cachedData.contexts) {
352
+ if (otherContext.segment === context.segment) {
353
+ foundSegmentOtherContext = true;
354
+ break;
355
+ }
356
+ }
357
+ if (!foundSegmentOtherContext) {
358
+ (_e = this.segmentMap.get(context.segment)) === null || _e === void 0 ? void 0 : _e.delete(key);
359
+ }
219
360
  }
220
361
  }
221
362
  }
363
+ removeDiagnosticIfNoContexts(diagnostic) {
364
+ var _a, _b, _c;
365
+ const key = diagnostic.key;
366
+ const cachedData = this.diagnosticsCache.get(key);
367
+ if (cachedData.contexts.size === 0) {
368
+ this.diagnosticsCache.delete(key);
369
+ (_c = this.fileUriMap.get((_b = (_a = diagnostic.location) === null || _a === void 0 ? void 0 : _a.uri) === null || _b === void 0 ? void 0 : _b.toLowerCase())) === null || _c === void 0 ? void 0 : _c.delete(key);
370
+ }
371
+ }
222
372
  getDiagnosticKey(diagnostic) {
223
373
  var _a, _b, _c;
224
374
  return `${(_b = (_a = diagnostic.location) === null || _a === void 0 ? void 0 : _a.uri) !== null && _b !== void 0 ? _b : 'No uri'} ${util_1.util.rangeToString((_c = diagnostic.location) === null || _c === void 0 ? void 0 : _c.range)} - ${diagnostic.code} - ${diagnostic.message}`;
@@ -236,6 +386,13 @@ class DiagnosticManager {
236
386
  }
237
387
  }
238
388
  }
389
+ shouldFilterFile(file) {
390
+ if (this.diagnosticFilterer.options !== this.options) {
391
+ this.diagnosticFilterer.options = this.options;
392
+ }
393
+ this.diagnosticFilterer.isFileFiltered(file);
394
+ return false;
395
+ }
239
396
  }
240
397
  exports.DiagnosticManager = DiagnosticManager;
241
398
  //# sourceMappingURL=DiagnosticManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DiagnosticManager.js","sourceRoot":"","sources":["../src/DiagnosticManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DiagnosticManager.js","sourceRoot":"","sources":["../src/DiagnosticManager.ts"],"names":[],"mappings":"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"}