diff --git a/editors/vscode/package.json b/editors/vscode/package.json index 7b0f5102..643e557f 100644 --- a/editors/vscode/package.json +++ b/editors/vscode/package.json @@ -67,6 +67,11 @@ "command": "tombi.showLanguageServerVersion", "title": "Show Language Server Version", "category": "Tombi" + }, + { + "command": "tombi.restartLanguageServer", + "title": "Restart Language Server", + "category": "Tombi" } ], "configuration": { diff --git a/editors/vscode/src/command/index.ts b/editors/vscode/src/command/index.ts index ba455232..f40036dd 100644 --- a/editors/vscode/src/command/index.ts +++ b/editors/vscode/src/command/index.ts @@ -1,3 +1,4 @@ import { showLanguageServerVersion } from "./show-language-server-version"; +import { restartLanguageServer } from "./restart-language-server"; -export { showLanguageServerVersion }; +export { showLanguageServerVersion, restartLanguageServer }; diff --git a/editors/vscode/src/command/restart-language-server.ts b/editors/vscode/src/command/restart-language-server.ts new file mode 100644 index 00000000..28a6a687 --- /dev/null +++ b/editors/vscode/src/command/restart-language-server.ts @@ -0,0 +1,7 @@ +import type * as node from "vscode-languageclient/node"; + +export async function restartLanguageServer( + client: node.LanguageClient, +): Promise { + await client.restart(); +} diff --git a/editors/vscode/src/extention/index.ts b/editors/vscode/src/extention/index.ts index 3e242832..f44b58bc 100644 --- a/editors/vscode/src/extention/index.ts +++ b/editors/vscode/src/extention/index.ts @@ -82,6 +82,12 @@ export class Extension { async () => command.showLanguageServerVersion(this.server), ), ); + this.context.subscriptions.push( + vscode.commands.registerCommand( + `${EXTENTION_ID}.restartLanguageServer`, + async () => command.restartLanguageServer(this.client), + ), + ); } private registerEvents(): void {