UNPKG

javascript-typescript-langserver

Version:

Implementation of the Language Server Protocol for JavaScript and TypeScript

43 lines 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ts = require("typescript"); const vscode_languageserver_1 = require("vscode-languageserver"); /** * Converts a TypeScript Diagnostic to an LSP Diagnostic */ function convertTsDiagnostic(diagnostic) { const text = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n'); let range = { start: { character: 0, line: 0 }, end: { character: 0, line: 0 } }; if (diagnostic.file && diagnostic.start && diagnostic.length) { range = { start: diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start), end: diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start + diagnostic.length), }; } return { range, message: text, severity: convertDiagnosticCategory(diagnostic.category), code: diagnostic.code, source: diagnostic.source || 'ts', }; } exports.convertTsDiagnostic = convertTsDiagnostic; /** * Converts a diagnostic category to an LSP DiagnosticSeverity * * @param category The Typescript DiagnosticCategory */ function convertDiagnosticCategory(category) { switch (category) { case ts.DiagnosticCategory.Error: return vscode_languageserver_1.DiagnosticSeverity.Error; case ts.DiagnosticCategory.Warning: return vscode_languageserver_1.DiagnosticSeverity.Warning; case ts.DiagnosticCategory.Message: return vscode_languageserver_1.DiagnosticSeverity.Information; case ts.DiagnosticCategory.Suggestion: return vscode_languageserver_1.DiagnosticSeverity.Hint; } } //# sourceMappingURL=diagnostics.js.map