summaryrefslogtreecommitdiff
path: root/cli/tsc
diff options
context:
space:
mode:
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 {