@vtsls/language-server
Advanced tools
Comparing version 0.2.4 to 0.2.5-alpha.0
@@ -116,3 +116,3 @@ "use strict"; | ||
function onServerInitialize(conn, params) { | ||
var _a, _b, _c; | ||
var _a, _b, _c, _d; | ||
const clientCapabilities = params.capabilities; | ||
@@ -125,3 +125,4 @@ const root = params.rootUri ?? (params.rootPath ? import_vscode_uri.URI.file(params.rootPath).toString() : void 0); | ||
clientCapabilities, | ||
tsExtLogPath: (_a = params.initializationOptions) == null ? void 0 : _a.tsLogPath | ||
hostInfo: (_a = params.initializationOptions) == null ? void 0 : _a.hostInfo, | ||
tsExtLogPath: (_b = params.initializationOptions) == null ? void 0 : _b.tsLogPath | ||
}); | ||
@@ -150,3 +151,3 @@ async function initializeService() { | ||
const capabilities = getTsLspDefaultCapabilities(); | ||
if (!((_c = (_b = clientCapabilities.textDocument) == null ? void 0 : _b.codeAction) == null ? void 0 : _c.codeActionLiteralSupport)) { | ||
if (!((_d = (_c = clientCapabilities.textDocument) == null ? void 0 : _c.codeAction) == null ? void 0 : _d.codeActionLiteralSupport)) { | ||
capabilities.codeActionProvider = true; | ||
@@ -156,3 +157,3 @@ } | ||
capabilities, | ||
serverInfo: { name: "vtsls", version: "0.2.4" } | ||
serverInfo: { name: "vtsls", version: "0.2.5-alpha.0" } | ||
}; | ||
@@ -183,2 +184,15 @@ } | ||
conn.onShutdown(() => service.dispose()); | ||
function catchProviderNotFound(handler, fallback) { | ||
return async (...args) => { | ||
try { | ||
return await handler(...args); | ||
} catch (e) { | ||
if (e instanceof import_language_service2.ProviderNotFoundError) { | ||
conn.console.warn(e.message); | ||
return fallback; | ||
} | ||
throw e; | ||
} | ||
}; | ||
} | ||
conn.onDidOpenTextDocument(service.openTextDocument); | ||
@@ -190,3 +204,5 @@ conn.onDidCloseTextDocument(service.closeTextDocument); | ||
if ((_f = clientCapabilities.workspace) == null ? void 0 : _f.workspaceFolders) { | ||
conn.workspace.onDidChangeWorkspaceFolders((event) => service.changeWorkspaceFolders({ event })); | ||
conn.workspace.onDidChangeWorkspaceFolders( | ||
(event) => service.changeWorkspaceFolders({ event }) | ||
); | ||
} | ||
@@ -213,13 +229,18 @@ conn.onCompletion(service.completion); | ||
conn.onFoldingRanges(service.foldingRanges); | ||
conn.onSelectionRanges(service.selectionRanges); | ||
conn.onSelectionRanges(catchProviderNotFound(service.selectionRanges, null)); | ||
conn.onCodeLens(service.codeLens); | ||
conn.onCodeLensResolve(service.codeLensResolve); | ||
conn.languages.callHierarchy.onPrepare(service.prepareCallHierarchy); | ||
conn.languages.callHierarchy.onIncomingCalls(service.incomingCalls); | ||
conn.languages.callHierarchy.onOutgoingCalls(service.outgoingCalls); | ||
conn.languages.inlayHint.on(service.inlayHint); | ||
conn.languages.semanticTokens.on(service.semanticTokensFull); | ||
conn.languages.semanticTokens.onRange(service.semanticTokensRange); | ||
conn.languages.onLinkedEditingRange(service.linkedEditingRange); | ||
conn.languages.callHierarchy.onPrepare(catchProviderNotFound(service.prepareCallHierarchy, null)); | ||
conn.languages.callHierarchy.onIncomingCalls(catchProviderNotFound(service.incomingCalls, null)); | ||
conn.languages.callHierarchy.onOutgoingCalls(catchProviderNotFound(service.outgoingCalls, null)); | ||
conn.languages.inlayHint.on(catchProviderNotFound(service.inlayHint, null)); | ||
conn.languages.onLinkedEditingRange(catchProviderNotFound(service.linkedEditingRange, null)); | ||
const nullSemanticTokens = { data: [] }; | ||
conn.languages.semanticTokens.on( | ||
catchProviderNotFound(service.semanticTokensFull, nullSemanticTokens) | ||
); | ||
conn.languages.semanticTokens.onRange( | ||
catchProviderNotFound(service.semanticTokensRange, nullSemanticTokens) | ||
); | ||
} | ||
createLanguageServer(); |
{ | ||
"name": "@vtsls/language-server", | ||
"description": "LSP wrapper for typescript extension of vscode", | ||
"version": "0.2.4", | ||
"version": "0.2.5-alpha.0", | ||
"license": "MIT", | ||
@@ -19,3 +19,3 @@ "engines": { | ||
"vscode-uri": "^3.0.8", | ||
"@vtsls/language-service": "0.2.4" | ||
"@vtsls/language-service": "0.2.5-alpha.0" | ||
}, | ||
@@ -22,0 +22,0 @@ "devDependencies": { |
@@ -1,3 +0,7 @@ | ||
import { createTSLanguageService, TSLanguageService } from "@vtsls/language-service"; | ||
import { | ||
createTSLanguageService, | ||
ProviderNotFoundError, | ||
TSLanguageService, | ||
} from "@vtsls/language-service"; | ||
import { | ||
ClientCapabilities, | ||
@@ -38,2 +42,3 @@ ConfigurationRequest, | ||
clientCapabilities, | ||
hostInfo: params.initializationOptions?.hostInfo, | ||
tsExtLogPath: params.initializationOptions?.tsLogPath, | ||
@@ -82,2 +87,3 @@ }); | ||
service.onLogMessage((params) => void conn.sendNotification(LogMessageNotification.type, params)); | ||
service.onLogTrace((params) => void conn.tracer.log(params.message)); | ||
@@ -105,3 +111,21 @@ if (clientCapabilities.window?.showMessage) { | ||
/* eslint-disable @typescript-eslint/no-misused-promises, @typescript-eslint/unbound-method*/ | ||
// some features are missing on older version of ts, supress error for them | ||
function catchProviderNotFound<A extends any[], R>( | ||
handler: (...args: A) => Promise<R>, | ||
fallback: R | ||
) { | ||
return async (...args: A) => { | ||
try { | ||
return await handler(...args); | ||
} catch (e) { | ||
if (e instanceof ProviderNotFoundError) { | ||
conn.console.warn(e.message); | ||
return fallback; | ||
} | ||
throw e; | ||
} | ||
}; | ||
} | ||
/* eslint-disable @typescript-eslint/unbound-method*/ | ||
conn.onDidOpenTextDocument(service.openTextDocument); | ||
@@ -114,3 +138,5 @@ conn.onDidCloseTextDocument(service.closeTextDocument); | ||
// otherwise this will throw error 😈 | ||
conn.workspace.onDidChangeWorkspaceFolders((event) => service.changeWorkspaceFolders({ event })); | ||
conn.workspace.onDidChangeWorkspaceFolders((event) => | ||
service.changeWorkspaceFolders({ event }) | ||
); | ||
} | ||
@@ -138,15 +164,21 @@ conn.onCompletion(service.completion); | ||
conn.onFoldingRanges(service.foldingRanges); | ||
conn.onSelectionRanges(service.selectionRanges); | ||
conn.onSelectionRanges(catchProviderNotFound(service.selectionRanges, null)); | ||
conn.onCodeLens(service.codeLens); | ||
conn.onCodeLensResolve(service.codeLensResolve); | ||
conn.languages.callHierarchy.onPrepare(service.prepareCallHierarchy); | ||
conn.languages.callHierarchy.onIncomingCalls(service.incomingCalls); | ||
conn.languages.callHierarchy.onOutgoingCalls(service.outgoingCalls); | ||
conn.languages.inlayHint.on(service.inlayHint); | ||
conn.languages.semanticTokens.on(service.semanticTokensFull); | ||
conn.languages.semanticTokens.onRange(service.semanticTokensRange); | ||
conn.languages.onLinkedEditingRange(service.linkedEditingRange); | ||
/* eslint-enable @typescript-eslint/no-misused-promises, @typescript-eslint/unbound-method*/ | ||
conn.languages.callHierarchy.onPrepare(catchProviderNotFound(service.prepareCallHierarchy, null)); | ||
conn.languages.callHierarchy.onIncomingCalls(catchProviderNotFound(service.incomingCalls, null)); | ||
conn.languages.callHierarchy.onOutgoingCalls(catchProviderNotFound(service.outgoingCalls, null)); | ||
conn.languages.inlayHint.on(catchProviderNotFound(service.inlayHint, null)); | ||
conn.languages.onLinkedEditingRange(catchProviderNotFound(service.linkedEditingRange, null)); | ||
const nullSemanticTokens = { data: [] }; | ||
conn.languages.semanticTokens.on( | ||
catchProviderNotFound(service.semanticTokensFull, nullSemanticTokens) | ||
); | ||
conn.languages.semanticTokens.onRange( | ||
catchProviderNotFound(service.semanticTokensRange, nullSemanticTokens) | ||
); | ||
/* eslint-enable @typescript-eslint/unbound-method*/ | ||
} | ||
createLanguageServer(); |
43976
11
549
+ Added@vtsls/language-service@0.2.5-alpha.0(transitive)
- Removed@vtsls/language-service@0.2.4(transitive)