summaryrefslogtreecommitdiff
path: root/cli/tsc
diff options
context:
space:
mode:
authorKitson Kelly <me@kitsonkelly.com>2021-01-22 21:03:16 +1100
committerGitHub <noreply@github.com>2021-01-22 21:03:16 +1100
commit1a9209d1e3ed297c96a698550ab833c54c02a4ee (patch)
tree21be94f78196af33dd4a59c40fbfe2e7fa744922 /cli/tsc
parentffa920e4b9594f201756f9eeca542e5dfb8576d1 (diff)
fix(lsp): handle mbc documents properly (#9151)
Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
Diffstat (limited to 'cli/tsc')
-rw-r--r--cli/tsc/99_main_compiler.js24
-rw-r--r--cli/tsc/compiler.d.ts2
2 files changed, 17 insertions, 9 deletions
diff --git a/cli/tsc/99_main_compiler.js b/cli/tsc/99_main_compiler.js
index 14fcfa2bc..b50e32c76 100644
--- a/cli/tsc/99_main_compiler.js
+++ b/cli/tsc/99_main_compiler.js
@@ -511,15 +511,23 @@ delete Object.prototype.__proto__;
}
case "getDiagnostics": {
try {
- const diagnostics = [
- ...languageService.getSemanticDiagnostics(request.specifier),
- ...languageService.getSuggestionDiagnostics(request.specifier),
- ...languageService.getSyntacticDiagnostics(request.specifier),
- ].filter(({ code }) => !IGNORED_DIAGNOSTICS.includes(code));
- return respond(id, fromTypeScriptDiagnostic(diagnostics));
+ /** @type {Record<string, any[]>} */
+ const diagnosticMap = {};
+ for (const specifier of request.specifiers) {
+ diagnosticMap[specifier] = fromTypeScriptDiagnostic([
+ ...languageService.getSemanticDiagnostics(specifier),
+ ...languageService.getSuggestionDiagnostics(specifier),
+ ...languageService.getSyntacticDiagnostics(specifier),
+ ].filter(({ code }) => !IGNORED_DIAGNOSTICS.includes(code)));
+ }
+ return respond(id, diagnosticMap);
} catch (e) {
- error(e);
- return respond(id, []);
+ if ("stack" in e) {
+ error(e.stack);
+ } else {
+ error(e);
+ }
+ return respond(id, {});
}
}
case "getQuickInfo": {
diff --git a/cli/tsc/compiler.d.ts b/cli/tsc/compiler.d.ts
index 7fd4ce37d..fc0a2bf83 100644
--- a/cli/tsc/compiler.d.ts
+++ b/cli/tsc/compiler.d.ts
@@ -70,7 +70,7 @@ declare global {
interface GetDiagnosticsRequest extends BaseLanguageServerRequest {
method: "getDiagnostics";
- specifier: string;
+ specifiers: string[];
}
interface GetQuickInfoRequest extends BaseLanguageServerRequest {