diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2021-01-22 21:03:16 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-22 21:03:16 +1100 |
commit | 1a9209d1e3ed297c96a698550ab833c54c02a4ee (patch) | |
tree | 21be94f78196af33dd4a59c40fbfe2e7fa744922 /cli/tsc | |
parent | ffa920e4b9594f201756f9eeca542e5dfb8576d1 (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.js | 24 | ||||
-rw-r--r-- | cli/tsc/compiler.d.ts | 2 |
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 { |