From 21e500105b651ecede36495b98d3ad61ac1466a1 Mon Sep 17 00:00:00 2001 From: Dominik Nakamura Date: Tue, 5 Dec 2023 13:06:30 +0900 Subject: [PATCH] feat(vscode): provide command to restart the LSP server Although mostly useful during development, add a custom command to the VSCode extension, which allows to restart the LSP server. --- vscode-extension/package.json | 11 +++++++++-- vscode-extension/src/extension.ts | 12 +++++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/vscode-extension/package.json b/vscode-extension/package.json index 3bae46c..4959f67 100644 --- a/vscode-extension/package.json +++ b/vscode-extension/package.json @@ -47,13 +47,20 @@ "description": "Controls the maximum number of problems produced by the server." } } - } + }, + "commands": [ + { + "command": "stef.restart", + "title": "Restart LSP Server", + "category": "Stef" + } + ] }, "vsce": { "dependencies": false }, "scripts": { - "esbuild": "esbuild ./src/extension.ts --outfile=dist/extension.js --external:vscode --format=cjs --platform=node --bundle", + "esbuild": "esbuild src/extension.ts --outfile=dist/extension.js --external:vscode --format=cjs --platform=node --bundle", "watch": "bun run esbuild --watch", "build": "bun run esbuild --minify", "lint": "biome check --apply src/**/*.ts", diff --git a/vscode-extension/src/extension.ts b/vscode-extension/src/extension.ts index 9d167f7..f51a46a 100644 --- a/vscode-extension/src/extension.ts +++ b/vscode-extension/src/extension.ts @@ -1,4 +1,4 @@ -import { ExtensionContext, workspace } from "vscode"; +import { ExtensionContext, commands, workspace } from "vscode"; import { Executable, LanguageClient, @@ -9,7 +9,17 @@ import { let client: LanguageClient; +enum Cmds { + Restart = "stef.restart", +} + export function activate(context: ExtensionContext) { + context.subscriptions.push( + commands.registerCommand(Cmds.Restart, () => { + client?.restart(); + }), + ); + const executable: Executable = { command: "stef-lsp", transport: TransportKind.stdio,