brighterscript 1.0.0-alpha.43 → 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 (200) hide show
  1. package/CHANGELOG.md +69 -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 -133
  25. package/dist/LanguageServer.js +403 -942
  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/SymbolTable.js +4 -3
  44. package/dist/SymbolTable.js.map +1 -1
  45. package/dist/astUtils/reflection.d.ts +4 -4
  46. package/dist/astUtils/reflection.js +12 -10
  47. package/dist/astUtils/reflection.js.map +1 -1
  48. package/dist/bscPlugin/BscPlugin.d.ts +3 -3
  49. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  50. package/dist/bscPlugin/CallExpressionInfo.js +4 -2
  51. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
  52. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +1 -1
  53. package/dist/bscPlugin/completions/CompletionsProcessor.js +15 -15
  54. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  55. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +82 -5
  56. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
  57. package/dist/bscPlugin/hover/HoverProcessor.js +3 -0
  58. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  59. package/dist/bscPlugin/validation/ScopeValidator.d.ts +4 -1
  60. package/dist/bscPlugin/validation/ScopeValidator.js +161 -61
  61. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  62. package/dist/common/Sequencer.d.ts +53 -0
  63. package/dist/common/Sequencer.js +232 -0
  64. package/dist/common/Sequencer.js.map +1 -0
  65. package/dist/common/Sequencer.spec.d.ts +1 -0
  66. package/dist/common/Sequencer.spec.js +75 -0
  67. package/dist/common/Sequencer.spec.js.map +1 -0
  68. package/dist/deferred.d.ts +2 -0
  69. package/dist/deferred.js +10 -0
  70. package/dist/deferred.js.map +1 -1
  71. package/dist/examples/plugins/removePrint.d.ts +2 -2
  72. package/dist/examples/plugins/removePrint.js.map +1 -1
  73. package/dist/files/BrsFile.d.ts +1 -1
  74. package/dist/files/BrsFile.js +11 -40
  75. package/dist/files/BrsFile.js.map +1 -1
  76. package/dist/files/BrsFile.spec.js +51 -2
  77. package/dist/files/BrsFile.spec.js.map +1 -1
  78. package/dist/files/BscFile.d.ts +1 -0
  79. package/dist/files/LazyFileData.d.ts +1 -0
  80. package/dist/files/XmlFile.spec.js +1 -1
  81. package/dist/files/XmlFile.spec.js.map +1 -1
  82. package/dist/globalCallables.js +186 -186
  83. package/dist/globalCallables.js.map +1 -1
  84. package/dist/interfaces.d.ts +56 -13
  85. package/dist/interfaces.js.map +1 -1
  86. package/dist/lexer/Lexer.js +1 -1
  87. package/dist/lexer/Lexer.js.map +1 -1
  88. package/dist/logging.d.ts +6 -1
  89. package/dist/logging.js +14 -1
  90. package/dist/logging.js.map +1 -1
  91. package/dist/lsp/ActionQueue.d.ts +35 -0
  92. package/dist/lsp/ActionQueue.js +115 -0
  93. package/dist/lsp/ActionQueue.js.map +1 -0
  94. package/dist/lsp/ActionQueue.spec.d.ts +1 -0
  95. package/dist/lsp/ActionQueue.spec.js +80 -0
  96. package/dist/lsp/ActionQueue.spec.js.map +1 -0
  97. package/dist/lsp/DocumentManager.d.ts +63 -0
  98. package/dist/lsp/DocumentManager.js +122 -0
  99. package/dist/lsp/DocumentManager.js.map +1 -0
  100. package/dist/lsp/DocumentManager.spec.d.ts +1 -0
  101. package/dist/lsp/DocumentManager.spec.js +103 -0
  102. package/dist/lsp/DocumentManager.spec.js.map +1 -0
  103. package/dist/lsp/LspProject.d.ts +231 -0
  104. package/dist/lsp/LspProject.js +3 -0
  105. package/dist/lsp/LspProject.js.map +1 -0
  106. package/dist/lsp/PathFilterer.d.ts +75 -0
  107. package/dist/lsp/PathFilterer.js +196 -0
  108. package/dist/lsp/PathFilterer.js.map +1 -0
  109. package/dist/lsp/PathFilterer.spec.d.ts +1 -0
  110. package/dist/lsp/PathFilterer.spec.js +182 -0
  111. package/dist/lsp/PathFilterer.spec.js.map +1 -0
  112. package/dist/lsp/Project.d.ts +167 -0
  113. package/dist/lsp/Project.js +432 -0
  114. package/dist/lsp/Project.js.map +1 -0
  115. package/dist/lsp/Project.spec.d.ts +1 -0
  116. package/dist/lsp/Project.spec.js +220 -0
  117. package/dist/lsp/Project.spec.js.map +1 -0
  118. package/dist/lsp/ProjectManager.d.ts +221 -0
  119. package/dist/lsp/ProjectManager.js +735 -0
  120. package/dist/lsp/ProjectManager.js.map +1 -0
  121. package/dist/lsp/ProjectManager.spec.d.ts +1 -0
  122. package/dist/lsp/ProjectManager.spec.js +757 -0
  123. package/dist/lsp/ProjectManager.spec.js.map +1 -0
  124. package/dist/lsp/ReaderWriterManager.d.ts +21 -0
  125. package/dist/lsp/ReaderWriterManager.js +60 -0
  126. package/dist/lsp/ReaderWriterManager.js.map +1 -0
  127. package/dist/lsp/worker/MessageHandler.d.ts +99 -0
  128. package/dist/lsp/worker/MessageHandler.js +138 -0
  129. package/dist/lsp/worker/MessageHandler.js.map +1 -0
  130. package/dist/lsp/worker/MessageHandler.spec.d.ts +1 -0
  131. package/dist/lsp/worker/MessageHandler.spec.js +64 -0
  132. package/dist/lsp/worker/MessageHandler.spec.js.map +1 -0
  133. package/dist/lsp/worker/WorkerPool.d.ts +38 -0
  134. package/dist/lsp/worker/WorkerPool.js +78 -0
  135. package/dist/lsp/worker/WorkerPool.js.map +1 -0
  136. package/dist/lsp/worker/WorkerPool.spec.d.ts +1 -0
  137. package/dist/lsp/worker/WorkerPool.spec.js +59 -0
  138. package/dist/lsp/worker/WorkerPool.spec.js.map +1 -0
  139. package/dist/lsp/worker/WorkerThreadProject.d.ts +144 -0
  140. package/dist/lsp/worker/WorkerThreadProject.js +183 -0
  141. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -0
  142. package/dist/lsp/worker/WorkerThreadProject.spec.d.ts +2 -0
  143. package/dist/lsp/worker/WorkerThreadProject.spec.js +68 -0
  144. package/dist/lsp/worker/WorkerThreadProject.spec.js.map +1 -0
  145. package/dist/lsp/worker/WorkerThreadProjectRunner.d.ts +15 -0
  146. package/dist/lsp/worker/WorkerThreadProjectRunner.js +58 -0
  147. package/dist/lsp/worker/WorkerThreadProjectRunner.js.map +1 -0
  148. package/dist/parser/Expression.js +7 -2
  149. package/dist/parser/Expression.js.map +1 -1
  150. package/dist/parser/Parser.spec.js +12 -0
  151. package/dist/parser/Parser.spec.js.map +1 -1
  152. package/dist/parser/Statement.js +2 -2
  153. package/dist/parser/Statement.js.map +1 -1
  154. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +51 -5
  155. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  156. package/dist/roku-types/data.json +745 -751
  157. package/dist/types/BooleanType.d.ts +0 -2
  158. package/dist/types/BooleanType.js +4 -6
  159. package/dist/types/BooleanType.js.map +1 -1
  160. package/dist/types/BscType.js +5 -0
  161. package/dist/types/BscType.js.map +1 -1
  162. package/dist/types/BuiltInInterfaceAdder.d.ts +1 -0
  163. package/dist/types/BuiltInInterfaceAdder.js +24 -17
  164. package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
  165. package/dist/types/DoubleType.d.ts +0 -2
  166. package/dist/types/DoubleType.js +4 -6
  167. package/dist/types/DoubleType.js.map +1 -1
  168. package/dist/types/DynamicType.d.ts +0 -2
  169. package/dist/types/DynamicType.js +3 -5
  170. package/dist/types/DynamicType.js.map +1 -1
  171. package/dist/types/FloatType.d.ts +0 -2
  172. package/dist/types/FloatType.js +4 -6
  173. package/dist/types/FloatType.js.map +1 -1
  174. package/dist/types/FunctionType.d.ts +0 -2
  175. package/dist/types/FunctionType.js +5 -7
  176. package/dist/types/FunctionType.js.map +1 -1
  177. package/dist/types/IntegerType.d.ts +0 -2
  178. package/dist/types/IntegerType.js +4 -6
  179. package/dist/types/IntegerType.js.map +1 -1
  180. package/dist/types/LongIntegerType.d.ts +0 -2
  181. package/dist/types/LongIntegerType.js +4 -6
  182. package/dist/types/LongIntegerType.js.map +1 -1
  183. package/dist/types/ObjectType.d.ts +3 -3
  184. package/dist/types/ObjectType.js +6 -8
  185. package/dist/types/ObjectType.js.map +1 -1
  186. package/dist/types/StringType.d.ts +0 -2
  187. package/dist/types/StringType.js +4 -6
  188. package/dist/types/StringType.js.map +1 -1
  189. package/dist/types/VoidType.d.ts +0 -2
  190. package/dist/types/VoidType.js +4 -6
  191. package/dist/types/VoidType.js.map +1 -1
  192. package/dist/types/helpers.d.ts +4 -0
  193. package/dist/types/helpers.js +5 -1
  194. package/dist/types/helpers.js.map +1 -1
  195. package/dist/util.d.ts +44 -16
  196. package/dist/util.js +196 -70
  197. package/dist/util.js.map +1 -1
  198. package/dist/validators/ClassValidator.js +2 -2
  199. package/dist/validators/ClassValidator.js.map +1 -1
  200. package/package.json +15 -5
@@ -1,60 +1,107 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DiagnosticCollection = void 0;
4
+ const vscode_uri_1 = require("vscode-uri");
4
5
  const util_1 = require("./util");
6
+ const thenby_1 = require("thenby");
5
7
  class DiagnosticCollection {
6
8
  constructor() {
7
9
  this.previousDiagnosticsByFile = {};
8
10
  }
9
- getPatch(projects) {
10
- const diagnosticsByFile = this.getDiagnosticsByFileFromProjects(projects);
11
+ /**
12
+ * Get a patch of any changed diagnostics since last time. This takes a single project and diagnostics, but evaluates
13
+ * the patch based on all previously seen projects. It's supposed to be a rolling patch.
14
+ * This will include _ALL_ diagnostics for a file if any diagnostics have changed for that file, due to how the language server expects diagnostics to be sent.
15
+ */
16
+ getPatch(projectId, diagnostics) {
17
+ const diagnosticsByFile = this.getDiagnosticsByFile(projectId, diagnostics);
11
18
  const patch = Object.assign(Object.assign(Object.assign({}, this.getRemovedPatch(diagnosticsByFile)), this.getModifiedPatch(diagnosticsByFile)), this.getAddedPatch(diagnosticsByFile));
12
19
  //save the new list of diagnostics
13
20
  this.previousDiagnosticsByFile = diagnosticsByFile;
14
21
  return patch;
15
22
  }
16
- getDiagnosticsByFileFromProjects(projects) {
17
- var _a, _b, _c;
18
- const result = {};
19
- //get all diagnostics for all projects
20
- let diagnostics = Array.prototype.concat.apply([], projects.map((x) => x.builder.getDiagnostics()));
21
- const keys = {};
22
- //build the full current set of diagnostics by file
23
- for (let diagnostic of diagnostics) {
24
- const fileUri = (_a = diagnostic === null || diagnostic === void 0 ? void 0 : diagnostic.location) === null || _a === void 0 ? void 0 : _a.uri;
25
- if (!fileUri) {
26
- continue;
23
+ /**
24
+ * Get all the previous diagnostics, remove any that were exclusive to the current project, then mix in the project's new diagnostics.
25
+ * @param projectId the id of the project that should have its diagnostics refreshed
26
+ * @param thisProjectDiagnostics diagnostics for the project
27
+ */
28
+ getDiagnosticsByFile(projectId, thisProjectDiagnostics) {
29
+ var _a, _b;
30
+ const result = this.clonePreviousDiagnosticsByFile();
31
+ const diagnosticsByKey = new Map();
32
+ //delete all diagnostics linked to this project
33
+ for (const srcPath in result) {
34
+ const diagnostics = result[srcPath];
35
+ for (let i = diagnostics.length - 1; i >= 0; i--) {
36
+ const diagnostic = diagnostics[i];
37
+ //remember this diagnostic key for use when deduplicating down below
38
+ diagnosticsByKey.set(diagnostic.key, diagnostic);
39
+ //unlink the diagnostic from this project
40
+ diagnostic.projectIds.delete(projectId);
41
+ //delete this diagnostic if it's no longer linked to any projects
42
+ if (diagnostic.projectIds.size === 0) {
43
+ diagnostics.splice(i, 1);
44
+ diagnosticsByKey.delete(diagnostic.key);
45
+ }
27
46
  }
47
+ }
48
+ //build the full current set of diagnostics by file
49
+ for (let diagnostic of thisProjectDiagnostics) {
50
+ const srcPath = vscode_uri_1.URI.parse(diagnostic.uri).fsPath;
28
51
  //ensure the file entry exists
29
- if (!result[fileUri]) {
30
- result[fileUri] = [];
52
+ if (!result[srcPath]) {
53
+ result[srcPath] = [];
31
54
  }
32
- const diagnosticMap = result[fileUri];
33
55
  //fall back to a default range if missing
34
- const range = (_c = (_b = diagnostic === null || diagnostic === void 0 ? void 0 : diagnostic.location) === null || _b === void 0 ? void 0 : _b.range) !== null && _c !== void 0 ? _c : util_1.util.createRange(0, 0, 0, 0);
56
+ const range = (_a = diagnostic.range) !== null && _a !== void 0 ? _a : util_1.util.createRange(0, 0, 0, 0);
35
57
  diagnostic.key =
36
- fileUri.toLowerCase() + '-' +
58
+ srcPath.toLowerCase() + '-' +
37
59
  diagnostic.code + '-' +
38
60
  range.start.line + '-' +
39
61
  range.start.character + '-' +
40
62
  range.end.line + '-' +
41
63
  range.end.character +
42
64
  diagnostic.message;
65
+ (_b = diagnostic.projectIds) !== null && _b !== void 0 ? _b : (diagnostic.projectIds = new Set([projectId]));
43
66
  //don't include duplicates
44
- if (!keys[diagnostic.key]) {
45
- keys[diagnostic.key] = true;
46
- diagnosticMap.push(diagnostic);
67
+ if (!diagnosticsByKey.has(diagnostic.key)) {
68
+ diagnosticsByKey.set(diagnostic.key, diagnostic);
69
+ const diagnosticsForFile = result[srcPath];
70
+ diagnosticsForFile.push(diagnostic);
47
71
  }
72
+ //link this project to the diagnostic
73
+ diagnosticsByKey.get(diagnostic.key).projectIds.add(projectId);
74
+ }
75
+ //sort the list so it's easier to compare later
76
+ for (let key in result) {
77
+ result[key].sort((0, thenby_1.firstBy)(x => x.key));
48
78
  }
49
79
  return result;
50
80
  }
81
+ /**
82
+ * Clone the previousDiagnosticsByFile, retaining the array of project references on each diagnostic
83
+ */
84
+ clonePreviousDiagnosticsByFile() {
85
+ let clone = {};
86
+ for (let key in this.previousDiagnosticsByFile) {
87
+ clone[key] = [];
88
+ for (const diagnostic of this.previousDiagnosticsByFile[key]) {
89
+ clone[key].push(Object.assign(Object.assign({}, diagnostic), {
90
+ //make a copy of the projects array (but keep the project references intact)
91
+ projectIds: new Set([...diagnostic.projectIds]) }));
92
+ }
93
+ }
94
+ return clone;
95
+ }
51
96
  /**
52
97
  * Get a patch for all the files that have been removed since last time
53
98
  */
54
99
  getRemovedPatch(currentDiagnosticsByFile) {
100
+ var _a, _b;
55
101
  const result = {};
56
102
  for (const filePath in this.previousDiagnosticsByFile) {
57
- if (!currentDiagnosticsByFile[filePath]) {
103
+ //if there are no current diagnostics for this file, add an empty array to the result for that file path
104
+ if (((_b = (_a = currentDiagnosticsByFile[filePath]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) === 0) {
58
105
  result[filePath] = [];
59
106
  }
60
107
  }
@@ -93,9 +140,10 @@ class DiagnosticCollection {
93
140
  * Get diagnostics for all new files not seen since last time
94
141
  */
95
142
  getAddedPatch(currentDiagnosticsByFile) {
143
+ var _a, _b;
96
144
  const result = {};
97
145
  for (const filePath in currentDiagnosticsByFile) {
98
- if (!this.previousDiagnosticsByFile[filePath]) {
146
+ if (((_b = (_a = this.previousDiagnosticsByFile[filePath]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) === 0) {
99
147
  result[filePath] = currentDiagnosticsByFile[filePath];
100
148
  }
101
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DiagnosticCollection.js","sourceRoot":"","sources":["../src/DiagnosticCollection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DiagnosticCollection.js","sourceRoot":"","sources":["../src/DiagnosticCollection.ts"],"names":[],"mappings":"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"}
@@ -10,13 +10,23 @@ interface NormalizedFilter {
10
10
  export declare class DiagnosticFilterer {
11
11
  private byFile;
12
12
  private fileDestSrcUriMap;
13
- private filters;
13
+ private _filters;
14
14
  private rootDir;
15
+ options: BsConfig | undefined;
15
16
  constructor();
17
+ get filters(): NormalizedFilter[];
16
18
  /**
17
19
  * Filter a list of diagnostics based on the provided filters
18
20
  */
19
21
  filter(options: BsConfig, diagnostics: BsDiagnostic[], program?: Program): BsDiagnostic[];
22
+ /**
23
+ * Should this file be completely ignored?
24
+ * If the file diagnostics are ignored, we do not need to validate this file
25
+ */
26
+ isFileFiltered(file: {
27
+ srcPath: string;
28
+ destPath: string;
29
+ }): boolean;
20
30
  /**
21
31
  * Iterate over all remaining diagnostics from the byFile map.
22
32
  * Also removes duplicates
@@ -26,9 +36,12 @@ export declare class DiagnosticFilterer {
26
36
  * group the diagnostics by file
27
37
  */
28
38
  private groupByFile;
39
+ private matchFileSrcUris;
40
+ private matchFileDestUris;
29
41
  private filterAllFiles;
30
42
  private filterFile;
31
43
  getDiagnosticFilters(config: BsConfig): NormalizedFilter[];
44
+ private getDiagnosticFiltersV0;
32
45
  private getNormalizedFilter;
33
46
  }
34
47
  export {};
@@ -10,12 +10,22 @@ class DiagnosticFilterer {
10
10
  this.byFile = {};
11
11
  this.fileDestSrcUriMap = {};
12
12
  }
13
+ get filters() {
14
+ if (!this.options) {
15
+ return null;
16
+ }
17
+ if (!this._filters) {
18
+ this._filters = this.getDiagnosticFilters(this.options);
19
+ }
20
+ return this._filters;
21
+ }
13
22
  /**
14
23
  * Filter a list of diagnostics based on the provided filters
15
24
  */
16
25
  filter(options, diagnostics, program) {
17
- this.filters = this.getDiagnosticFilters(options);
18
- this.rootDir = options.rootDir;
26
+ this.options = options;
27
+ delete this._filters;
28
+ this.rootDir = this.options.rootDir;
19
29
  this.groupByFile(diagnostics, program);
20
30
  for (let filter of this.filters) {
21
31
  this.filterAllFiles(filter);
@@ -24,10 +34,45 @@ class DiagnosticFilterer {
24
34
  //clean up
25
35
  this.byFile = {};
26
36
  this.fileDestSrcUriMap = {};
27
- delete this.rootDir;
28
- delete this.filters;
29
37
  return result;
30
38
  }
39
+ /**
40
+ * Should this file be completely ignored?
41
+ * If the file diagnostics are ignored, we do not need to validate this file
42
+ */
43
+ isFileFiltered(file) {
44
+ var _a, _b, _c;
45
+ if (!this.options || !this.filters) {
46
+ return false;
47
+ }
48
+ this.rootDir = this.options.rootDir;
49
+ let isMatch = false;
50
+ //filter each matched file
51
+ for (let filter of this.filters) {
52
+ if (((_a = filter.codes) === null || _a === void 0 ? void 0 : _a.length) > 0) {
53
+ continue;
54
+ }
55
+ let srcMatch = false;
56
+ if (filter.src) {
57
+ const srcUri = util_1.default.pathToUri(file.srcPath);
58
+ const srcFsPath = vscode_uri_1.URI.parse(srcUri).fsPath;
59
+ srcMatch = !!(filter.src && ((_b = this.matchFileSrcUris(filter, [srcFsPath])) === null || _b === void 0 ? void 0 : _b.length) > 0);
60
+ }
61
+ let destMatch = false;
62
+ if (filter.dest) {
63
+ destMatch = !!(filter.dest && ((_c = this.matchFileDestUris(filter, [file.destPath])) === null || _c === void 0 ? void 0 : _c.length) > 0);
64
+ }
65
+ if (!filter.isNegative) {
66
+ isMatch = isMatch || srcMatch || destMatch;
67
+ }
68
+ else {
69
+ if (srcMatch || destMatch) {
70
+ isMatch = false;
71
+ }
72
+ }
73
+ }
74
+ return isMatch;
75
+ }
31
76
  /**
32
77
  * Iterate over all remaining diagnostics from the byFile map.
33
78
  * Also removes duplicates
@@ -77,24 +122,32 @@ class DiagnosticFilterer {
77
122
  }
78
123
  }
79
124
  }
125
+ matchFileSrcUris(filter, fileUris) {
126
+ //prepend rootDir to src if the filter is not a relative path
127
+ let src = (0, util_1.standardizePath)(path.isAbsolute(filter.src) ? filter.src : `${this.rootDir}/${filter.src}`);
128
+ let matchedFileUris = minimatch.match(fileUris, src, {
129
+ nocase: true
130
+ }).map(src => util_1.default.pathToUri(src).toLowerCase());
131
+ return matchedFileUris;
132
+ }
133
+ matchFileDestUris(filter, fileUris) {
134
+ let matchedFileUris = minimatch.match(fileUris, filter.dest, {
135
+ nocase: true
136
+ });
137
+ return matchedFileUris;
138
+ }
80
139
  filterAllFiles(filter) {
81
140
  let matchedFileUris;
82
141
  if (filter.src) {
83
142
  //if there's a src, match against all files
84
- //prepend rootDir to src if the filter is not a relative path
85
- let src = (0, util_1.standardizePath)(path.isAbsolute(filter.src) ? filter.src : `${this.rootDir}/${filter.src}`);
86
143
  const byFileSrcs = Object.keys(this.byFile).map(uri => vscode_uri_1.URI.parse(uri).fsPath);
87
- matchedFileUris = minimatch.match(byFileSrcs, src, {
88
- nocase: true
89
- }).map(src => util_1.default.pathToUri(src).toLowerCase());
144
+ matchedFileUris = this.matchFileSrcUris(filter, byFileSrcs);
90
145
  }
91
146
  else if (filter.dest) {
92
147
  // applies to file dest location
93
148
  // search against the set of file destinations
94
149
  const byFileDests = Object.keys(this.fileDestSrcUriMap);
95
- matchedFileUris = minimatch.match(byFileDests, filter.dest, {
96
- nocase: true
97
- }).map((destPath) => {
150
+ matchedFileUris = this.matchFileDestUris(filter, byFileDests).map((destPath) => {
98
151
  var _a;
99
152
  return (_a = this.fileDestSrcUriMap[destPath]) === null || _a === void 0 ? void 0 : _a.toLowerCase();
100
153
  });
@@ -136,6 +189,9 @@ class DiagnosticFilterer {
136
189
  }
137
190
  getDiagnosticFilters(config) {
138
191
  var _a, _b;
192
+ if (config.diagnosticFiltersV0Compatibility) {
193
+ return this.getDiagnosticFiltersV0(config);
194
+ }
139
195
  let globalIgnoreCodes = [...(_a = config.ignoreErrorCodes) !== null && _a !== void 0 ? _a : []];
140
196
  let diagnosticFilters = [...(_b = config.diagnosticFilters) !== null && _b !== void 0 ? _b : []];
141
197
  let result = [];
@@ -194,6 +250,68 @@ class DiagnosticFilterer {
194
250
  }
195
251
  return result;
196
252
  }
253
+ getDiagnosticFiltersV0(config) {
254
+ var _a, _b;
255
+ let globalIgnoreCodes = [...(_a = config.ignoreErrorCodes) !== null && _a !== void 0 ? _a : []];
256
+ let diagnosticFilters = [...(_b = config.diagnosticFilters) !== null && _b !== void 0 ? _b : []];
257
+ let result = [];
258
+ //include a filter for all global ignore codes
259
+ //this comes first, because negative patterns will override ignoreErrorCodes
260
+ if (globalIgnoreCodes.length > 0) {
261
+ result.push({
262
+ codes: globalIgnoreCodes,
263
+ isNegative: false
264
+ });
265
+ }
266
+ for (let filter of diagnosticFilters) {
267
+ if (typeof filter === 'number') {
268
+ result.push({
269
+ codes: [filter],
270
+ isNegative: false
271
+ });
272
+ continue;
273
+ }
274
+ if (typeof filter === 'string') {
275
+ const isNegative = filter.startsWith('!');
276
+ const trimmedFilter = isNegative ? filter.slice(1) : filter;
277
+ result.push({
278
+ src: trimmedFilter,
279
+ isNegative: isNegative
280
+ });
281
+ continue;
282
+ }
283
+ //filter out bad inputs
284
+ if (!filter || typeof filter !== 'object') {
285
+ continue;
286
+ }
287
+ //code-only filter
288
+ if ('codes' in filter && !('src' in filter) && Array.isArray(filter.codes)) {
289
+ result.push({
290
+ codes: filter.codes,
291
+ isNegative: false
292
+ });
293
+ continue;
294
+ }
295
+ if ('src' in filter && typeof filter.src === 'string') {
296
+ const isNegative = filter.src.startsWith('!');
297
+ const trimmedFilter = isNegative ? filter.src.slice(1) : filter.src;
298
+ if ('codes' in filter) {
299
+ result.push({
300
+ src: trimmedFilter,
301
+ codes: filter.codes,
302
+ isNegative: isNegative
303
+ });
304
+ }
305
+ else {
306
+ result.push({
307
+ src: trimmedFilter,
308
+ isNegative: isNegative
309
+ });
310
+ }
311
+ }
312
+ }
313
+ return result;
314
+ }
197
315
  getNormalizedFilter(fileGlob, filter, locationKey = 'src') {
198
316
  const isNegative = fileGlob.startsWith('!');
199
317
  const trimmedFilter = isNegative ? fileGlob.slice(1) : fileGlob;
@@ -1 +1 @@
1
- {"version":3,"file":"DiagnosticFilterer.js","sourceRoot":"","sources":["../src/DiagnosticFilterer.ts"],"names":[],"mappings":";;;AACA,6BAA6B;AAC7B,uCAAuC;AAEvC,iCAAoD;AACpD,2CAAiC;AAejC,MAAa,kBAAkB;IAO3B;QACI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,OAAiB,EAAE,WAA2B,EAAE,OAAiB;QAC3E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE/B,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEvC,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC7B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;SAC/B;QACD,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEnC,UAAU;QACV,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC;QAEpB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,cAAc;QAClB,mCAAmC;QACnC,IAAI,gBAAgB,GAAG,EAAoB,CAAC;QAC5C,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;YACzB,IAAI,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvC,KAAK,IAAI,UAAU,IAAI,eAAe,EAAE;gBACpC,iDAAiD;gBACjD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;oBAC/E,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;iBAChD;aACJ;SACJ;QACD,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,WAA2B,EAAE,OAAiB;;QAC9D,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,KAAK,IAAI,UAAU,IAAI,WAAW,EAAE;YAChC,MAAM,OAAO,GAAG,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,0CAAE,GAAG,mCAAI,aAAa,CAAC;YAC3D,mCAAmC;YACnC,IAAI,CAAC,OAAO,EAAE;gBACV,SAAS;aACZ;YACD,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAC3C,0DAA0D;YAC1D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;aAClC;YACD,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;gBAC3B,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,KAAK;aACtB,CAAC,CAAC;YAEH,IAAI,OAAO,EAAE;gBACT,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,MAAA,UAAU,CAAC,QAAQ,0CAAE,GAAG,CAAC,CAAC;gBACpE,IAAI,iBAAiB,EAAE;oBACnB,MAAM,aAAa,GAAG,iBAAiB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAC/D,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,GAAG,MAAA,UAAU,CAAC,QAAQ,0CAAE,GAAG,CAAC;iBACpE;aACJ;SACJ;IACL,CAAC;IAEO,cAAc,CAAC,MAAwB;QAC3C,IAAI,eAAyB,CAAC;QAE9B,IAAI,MAAM,CAAC,GAAG,EAAE;YACZ,2CAA2C;YAE3C,6DAA6D;YAC7D,IAAI,GAAG,GAAG,IAAA,sBAAC,EACP,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,CAC7E,CAAC;YAEF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;YAC9E,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE;gBAC/C,MAAM,EAAE,IAAI;aACf,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,cAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;SAEpD;aAAM,IAAI,MAAM,CAAC,IAAI,EAAE;YACpB,gCAAgC;YAEhC,8CAA8C;YAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACxD,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE;gBACxD,MAAM,EAAE,IAAI;aACf,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;;gBAChB,OAAO,MAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,0CAAE,WAAW,EAAE,CAAC;YAC3D,CAAC,CAAC,CAAC;SAEN;aAAM;YACH,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9C;QAED,0BAA0B;QAC1B,KAAK,IAAI,OAAO,IAAI,eAAe,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACpC;IACL,CAAC;IAEO,UAAU,CAAC,MAAwB,EAAE,OAAe;QACxD,IAAI,CAAC,OAAO,EAAE;YACV,OAAO;SACV;QACD,yDAAyD;QACzD,6DAA6D;QAC7D,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;QACzC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,wEAAwE;QACxE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBAC3C,UAAU,CAAC,YAAY,GAAG,aAAa,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,0DAA0D;SAC7D;aAAM;YACH,IAAI,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAChD,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE;gBACtC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,IAAK,CAAC;oBAClD,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU;wBAC7B,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;4BACpD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;oBAC9E,UAAU,CAAC,YAAY,GAAG,aAAa,CAAC;iBAC3C;aACJ;SACJ;IACL,CAAC;IAEM,oBAAoB,CAAC,MAAgB;;QACxC,IAAI,iBAAiB,GAAwB,CAAC,GAAG,MAAA,MAAM,CAAC,gBAAgB,mCAAI,EAAE,CAAC,CAAC;QAChF,IAAI,iBAAiB,GAAG,CAAC,GAAG,MAAA,MAAM,CAAC,iBAAiB,mCAAI,EAAE,CAAC,CAAC;QAE5D,IAAI,MAAM,GAAuB,EAAE,CAAC;QAEpC,8CAA8C;QAC9C,4EAA4E;QAC5E,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,iBAAiB;gBACxB,UAAU,EAAE,KAAK;aACpB,CAAC,CAAC;SACN;QAED,KAAK,IAAI,MAAM,IAAI,iBAAiB,EAAE;YAClC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBAC1D,MAAM,CAAC,IAAI,CAAC;oBACR,KAAK,EAAE,CAAC,MAAM,CAAC;oBACf,UAAU,EAAE,KAAK;iBACpB,CAAC,CAAC;gBACH,SAAS;aACZ;YAED,uBAAuB;YACvB,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBACvC,SAAS;aACZ;YAED,kBAAkB;YAClB,IAAI,OAAO,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC1E,MAAM,CAAC,IAAI,CAAC;oBACR,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU,EAAE,KAAK;iBACpB,CAAC,CAAC;gBACH,SAAS;aACZ;YAED,IAAI,OAAO,IAAI,MAAM,EAAE;gBACnB,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;oBAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;oBAC5D,SAAS;iBACZ;gBAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBAC7B,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,KAAK,EAAE;wBACvC,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;4BACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;4BAC9D,SAAS;yBACZ;wBACD,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;4BACpC,IAAI,KAAK,IAAI,cAAc,EAAE;gCACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;gCAClE,SAAS;6BACZ;4BACD,IAAI,MAAM,IAAI,cAAc,EAAE;gCAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gCAC3E,SAAS;6BACZ;yBACJ;qBACJ;iBACJ;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAGO,mBAAmB,CAAC,QAAgB,EAAE,MAA2D,EAAE,cAA8B,KAAK;QAC1I,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChE,IAAI,WAAW,KAAK,KAAK,EAAE;YACvB,IAAI,OAAO,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAClD,OAAO;oBACH,GAAG,EAAE,aAAa;oBAClB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU,EAAE,UAAU;iBACzB,CAAC;aACL;iBAAM;gBACH,OAAO;oBACH,GAAG,EAAE,aAAa;oBAClB,UAAU,EAAE,UAAU;iBACzB,CAAC;aACL;SACJ;aAAM;YACH,OAAO;YACP,IAAI,OAAO,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAClD,OAAO;oBACH,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU,EAAE,UAAU;iBACzB,CAAC;aACL;iBAAM;gBACH,OAAO;oBACH,IAAI,EAAE,aAAa;oBACnB,UAAU,EAAE,UAAU;iBACzB,CAAC;aACL;SACJ;IAEL,CAAC;CACJ;AA5PD,gDA4PC"}
1
+ {"version":3,"file":"DiagnosticFilterer.js","sourceRoot":"","sources":["../src/DiagnosticFilterer.ts"],"names":[],"mappings":";;;AACA,6BAA6B;AAC7B,uCAAuC;AAEvC,iCAAoD;AACpD,2CAAiC;AAejC,MAAa,kBAAkB;IAS3B;QACI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,OAAO;QACP,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,OAAO,IAAI,CAAC;SACf;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3D;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAGD;;OAEG;IACI,MAAM,CAAC,OAAiB,EAAE,WAA2B,EAAE,OAAiB;QAC3E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,OAAO,IAAI,CAAC,QAAQ,CAAC;QAErB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAEpC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEvC,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC7B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;SAC/B;QACD,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEnC,UAAU;QACV,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAE5B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,IAA2C;;QAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAChC,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACpC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,0BAA0B;QAC1B,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC7B,IAAI,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,IAAG,CAAC,EAAE;gBAC1B,SAAS;aACZ;YACD,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,MAAM,CAAC,GAAG,EAAE;gBACZ,MAAM,MAAM,GAAG,cAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC5C,MAAM,SAAS,GAAG,gBAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;gBAC3C,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA,MAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,0CAAE,MAAM,IAAG,CAAC,CAAC,CAAC;aACvF;YACD,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,MAAM,CAAC,IAAI,EAAE;gBACb,SAAS,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAA,MAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,0CAAE,MAAM,IAAG,CAAC,CAAC,CAAC;aAC9F;YAED,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;gBACpB,OAAO,GAAG,OAAO,IAAI,QAAQ,IAAI,SAAS,CAAC;aAC9C;iBAAM;gBACH,IAAI,QAAQ,IAAI,SAAS,EAAE;oBACvB,OAAO,GAAG,KAAK,CAAC;iBACnB;aACJ;SACJ;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;OAGG;IACK,cAAc;QAClB,mCAAmC;QACnC,IAAI,gBAAgB,GAAG,EAAoB,CAAC;QAC5C,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;YACzB,IAAI,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvC,KAAK,IAAI,UAAU,IAAI,eAAe,EAAE;gBACpC,iDAAiD;gBACjD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;oBAC/E,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;iBAChD;aACJ;SACJ;QACD,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,WAA2B,EAAE,OAAiB;;QAC9D,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,KAAK,IAAI,UAAU,IAAI,WAAW,EAAE;YAChC,MAAM,OAAO,GAAG,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,0CAAE,GAAG,mCAAI,aAAa,CAAC;YAC3D,mCAAmC;YACnC,IAAI,CAAC,OAAO,EAAE;gBACV,SAAS;aACZ;YACD,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAC3C,0DAA0D;YAC1D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;aAClC;YACD,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;gBAC3B,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,KAAK;aACtB,CAAC,CAAC;YAEH,IAAI,OAAO,EAAE;gBACT,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,MAAA,UAAU,CAAC,QAAQ,0CAAE,GAAG,CAAC,CAAC;gBACpE,IAAI,iBAAiB,EAAE;oBACnB,MAAM,aAAa,GAAG,iBAAiB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAC/D,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,GAAG,MAAA,UAAU,CAAC,QAAQ,0CAAE,GAAG,CAAC;iBACpE;aACJ;SACJ;IACL,CAAC;IAGO,gBAAgB,CAAC,MAAwB,EAAE,QAAkB;QACjE,6DAA6D;QAC7D,IAAI,GAAG,GAAG,IAAA,sBAAC,EACP,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,CAC7E,CAAC;QAEF,IAAI,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE;YACjD,MAAM,EAAE,IAAI;SACf,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,cAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAEjD,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEO,iBAAiB,CAAC,MAAwB,EAAE,QAAkB;QAClE,IAAI,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE;YACzD,MAAM,EAAE,IAAI;SACf,CAAC,CAAC;QACH,OAAO,eAAe,CAAC;IAC3B,CAAC;IAGO,cAAc,CAAC,MAAwB;QAC3C,IAAI,eAAyB,CAAC;QAE9B,IAAI,MAAM,CAAC,GAAG,EAAE;YACZ,2CAA2C;YAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;YAC9E,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;SAC/D;aAAM,IAAI,MAAM,CAAC,IAAI,EAAE;YACpB,gCAAgC;YAChC,8CAA8C;YAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACxD,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;;gBAC3E,OAAO,MAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,0CAAE,WAAW,EAAE,CAAC;YAC3D,CAAC,CAAC,CAAC;SACN;aAAM;YACH,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9C;QAED,0BAA0B;QAC1B,KAAK,IAAI,OAAO,IAAI,eAAe,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACpC;IACL,CAAC;IAEO,UAAU,CAAC,MAAwB,EAAE,OAAe;QACxD,IAAI,CAAC,OAAO,EAAE;YACV,OAAO;SACV;QACD,yDAAyD;QACzD,6DAA6D;QAC7D,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;QACzC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,wEAAwE;QACxE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBAC3C,UAAU,CAAC,YAAY,GAAG,aAAa,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,0DAA0D;SAC7D;aAAM;YACH,IAAI,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAChD,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE;gBACtC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,IAAK,CAAC;oBAClD,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU;wBAC7B,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;4BACpD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;oBAC9E,UAAU,CAAC,YAAY,GAAG,aAAa,CAAC;iBAC3C;aACJ;SACJ;IACL,CAAC;IAEM,oBAAoB,CAAC,MAAgB;;QACxC,IAAI,MAAM,CAAC,gCAAgC,EAAE;YACzC,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;SAC9C;QAED,IAAI,iBAAiB,GAAwB,CAAC,GAAG,MAAA,MAAM,CAAC,gBAAgB,mCAAI,EAAE,CAAC,CAAC;QAChF,IAAI,iBAAiB,GAAG,CAAC,GAAG,MAAA,MAAM,CAAC,iBAAiB,mCAAI,EAAE,CAAC,CAAC;QAE5D,IAAI,MAAM,GAAuB,EAAE,CAAC;QAEpC,8CAA8C;QAC9C,4EAA4E;QAC5E,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,iBAAiB;gBACxB,UAAU,EAAE,KAAK;aACpB,CAAC,CAAC;SACN;QAED,KAAK,IAAI,MAAM,IAAI,iBAAiB,EAAE;YAClC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBAC1D,MAAM,CAAC,IAAI,CAAC;oBACR,KAAK,EAAE,CAAC,MAAM,CAAC;oBACf,UAAU,EAAE,KAAK;iBACpB,CAAC,CAAC;gBACH,SAAS;aACZ;YAED,uBAAuB;YACvB,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBACvC,SAAS;aACZ;YAED,kBAAkB;YAClB,IAAI,OAAO,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC1E,MAAM,CAAC,IAAI,CAAC;oBACR,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU,EAAE,KAAK;iBACpB,CAAC,CAAC;gBACH,SAAS;aACZ;YAED,IAAI,OAAO,IAAI,MAAM,EAAE;gBACnB,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;oBAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;oBAC5D,SAAS;iBACZ;gBAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBAC7B,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,KAAK,EAAE;wBACvC,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;4BACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;4BAC9D,SAAS;yBACZ;wBACD,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;4BACpC,IAAI,KAAK,IAAI,cAAc,EAAE;gCACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;gCAClE,SAAS;6BACZ;4BACD,IAAI,MAAM,IAAI,cAAc,EAAE;gCAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gCAC3E,SAAS;6BACZ;yBACJ;qBACJ;iBACJ;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,sBAAsB,CAAC,MAAgB;;QAC3C,IAAI,iBAAiB,GAAwB,CAAC,GAAG,MAAA,MAAM,CAAC,gBAAgB,mCAAI,EAAE,CAAC,CAAC;QAChF,IAAI,iBAAiB,GAAG,CAAC,GAAG,MAAA,MAAM,CAAC,iBAAiB,mCAAI,EAAE,CAAC,CAAC;QAE5D,IAAI,MAAM,GAAuB,EAAE,CAAC;QAEpC,8CAA8C;QAC9C,4EAA4E;QAC5E,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,iBAAiB;gBACxB,UAAU,EAAE,KAAK;aACpB,CAAC,CAAC;SACN;QAED,KAAK,IAAI,MAAM,IAAI,iBAAwB,EAAE;YACzC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBAC5B,MAAM,CAAC,IAAI,CAAC;oBACR,KAAK,EAAE,CAAC,MAAM,CAAC;oBACf,UAAU,EAAE,KAAK;iBACpB,CAAC,CAAC;gBACH,SAAS;aACZ;YAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBAC5B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC1C,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAE5D,MAAM,CAAC,IAAI,CAAC;oBACR,GAAG,EAAE,aAAa;oBAClB,UAAU,EAAE,UAAU;iBACzB,CAAC,CAAC;gBACH,SAAS;aACZ;YAED,uBAAuB;YACvB,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBACvC,SAAS;aACZ;YAED,kBAAkB;YAClB,IAAI,OAAO,IAAI,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBACxE,MAAM,CAAC,IAAI,CAAC;oBACR,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU,EAAE,KAAK;iBACpB,CAAC,CAAC;gBACH,SAAS;aACZ;YAED,IAAI,KAAK,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE;gBACnD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC9C,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBAEpE,IAAI,OAAO,IAAI,MAAM,EAAE;oBACnB,MAAM,CAAC,IAAI,CAAC;wBACR,GAAG,EAAE,aAAa;wBAClB,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,UAAU,EAAE,UAAU;qBACzB,CAAC,CAAC;iBACN;qBAAM;oBACH,MAAM,CAAC,IAAI,CAAC;wBACR,GAAG,EAAE,aAAa;wBAClB,UAAU,EAAE,UAAU;qBACzB,CAAC,CAAC;iBACN;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAGO,mBAAmB,CAAC,QAAgB,EAAE,MAA2D,EAAE,cAA8B,KAAK;QAC1I,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChE,IAAI,WAAW,KAAK,KAAK,EAAE;YACvB,IAAI,OAAO,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAClD,OAAO;oBACH,GAAG,EAAE,aAAa;oBAClB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU,EAAE,UAAU;iBACzB,CAAC;aACL;iBAAM;gBACH,OAAO;oBACH,GAAG,EAAE,aAAa;oBAClB,UAAU,EAAE,UAAU;iBACzB,CAAC;aACL;SACJ;aAAM;YACH,OAAO;YACP,IAAI,OAAO,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAClD,OAAO;oBACH,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU,EAAE,UAAU;iBACzB,CAAC;aACL;iBAAM;gBACH,OAAO;oBACH,IAAI,EAAE,aAAa;oBACnB,UAAU,EAAE,UAAU;iBACzB,CAAC;aACL;SACJ;IAEL,CAAC;CACJ;AAlYD,gDAkYC"}
@@ -4,6 +4,7 @@ import type { Scope } from './Scope';
4
4
  import type { FinalizedBsConfig } from './BsConfig';
5
5
  import type { Logger } from './logging';
6
6
  import type { Program } from './Program';
7
+ import type { BrsFile } from './files/BrsFile';
7
8
  /**
8
9
  * Manages all diagnostics for a program.
9
10
  * Diagnostics can be added specific to a certain file/range and optionally scope or an AST node
@@ -21,6 +22,10 @@ export declare class DiagnosticManager {
21
22
  logger: Logger;
22
23
  options: FinalizedBsConfig;
23
24
  program: Program;
25
+ private fileUriMap;
26
+ private tagMap;
27
+ private scopeMap;
28
+ private segmentMap;
24
29
  /**
25
30
  * Registers a diagnostic (or multiple diagnostics) for a program.
26
31
  * Diagnostics can optionally be associated with a context
@@ -28,12 +33,13 @@ export declare class DiagnosticManager {
28
33
  register(diagnostic: BsDiagnostic, context?: DiagnosticContext): any;
29
34
  register(diagnostics: Array<BsDiagnostic>, context?: DiagnosticContext): any;
30
35
  register(diagnostics: Array<DiagnosticContextPair>): any;
36
+ private addToMaps;
31
37
  /**
32
38
  * Returns a list of all diagnostics, filtered by the in-file comment filters, filtered by BsConfig diagnostics and adjusted based on BsConfig
33
39
  * If the same diagnostic is included in multiple contexts, they are included in a single diagnostic's relatedInformation
34
40
  */
35
41
  getDiagnostics(): BsDiagnostic[];
36
- private getNonSuppresedDiagnostics;
42
+ private getNonSuppressedDiagnostics;
37
43
  /**
38
44
  * Determine whether this diagnostic should be supressed or not, based on brs comment-flags
39
45
  */
@@ -44,13 +50,17 @@ export declare class DiagnosticManager {
44
50
  clearForScope(scope: Scope): void;
45
51
  clearForSegment(segment: AstNode): void;
46
52
  clearForTag(tag: string): void;
53
+ private getSearchIntersection;
47
54
  /**
48
55
  * Clears all diagnostics that match all aspects of the filter provided
49
56
  * Matches equality of tag, scope, file, segment filters. Leave filter option undefined to not filter on option
50
57
  */
51
58
  clearByFilter(filter: DiagnosticContextFilter): void;
59
+ private deleteContextsFromDiagnostic;
60
+ private removeDiagnosticIfNoContexts;
52
61
  private getDiagnosticKey;
53
62
  private mergeRelatedInformation;
63
+ shouldFilterFile(file: BrsFile): boolean;
54
64
  }
55
65
  interface DiagnosticContextFilter {
56
66
  tag?: string;