From 1a9209d1e3ed297c96a698550ab833c54c02a4ee Mon Sep 17 00:00:00 2001 From: Kitson Kelly Date: Fri, 22 Jan 2021 21:03:16 +1100 Subject: fix(lsp): handle mbc documents properly (#9151) Co-authored-by: Ryan Dahl --- cli/tsc/99_main_compiler.js | 24 ++++++++++++++++-------- cli/tsc/compiler.d.ts | 2 +- 2 files changed, 17 insertions(+), 9 deletions(-) (limited to 'cli/tsc') 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} */ + 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 { -- cgit v1.2.3