From fcc6ade02cf9183e1cb8636374eb3ef154a25e64 Mon Sep 17 00:00:00 2001 From: Karthik Nadig Date: Fri, 3 Feb 2023 09:04:05 -0800 Subject: [PATCH] Ensure LSP server is shutdown. (#224) --- bundled/tool/lsp_server.py | 8 +++++++- package-lock.json | 4 ++-- src/extension.ts | 12 +++++++++--- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/bundled/tool/lsp_server.py b/bundled/tool/lsp_server.py index edc7f31..c4dba7f 100644 --- a/bundled/tool/lsp_server.py +++ b/bundled/tool/lsp_server.py @@ -398,7 +398,13 @@ def initialize(params: lsp.InitializeParams) -> None: @LSP_SERVER.feature(lsp.EXIT) -def on_exit(): +def on_exit(_params: Optional[Any] = None): + """Handle clean up on exit.""" + jsonrpc.shutdown_json_rpc() + + +@LSP_SERVER.feature(lsp.SHUTDOWN) +def on_shutdown(_params: Optional[Any] = None): """Handle clean up on exit.""" jsonrpc.shutdown_json_rpc() diff --git a/package-lock.json b/package-lock.json index 57f8bcc..975c316 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "isort", - "version": "2022.9.0-dev", + "version": "2023.9.0-dev", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "isort", - "version": "2022.9.0-dev", + "version": "2023.9.0-dev", "license": "MIT", "dependencies": { "fs-extra": "^11.1.0", diff --git a/src/extension.ts b/src/extension.ts index ba0c06a..11f6e45 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -3,7 +3,6 @@ import * as vscode from 'vscode'; import { LanguageClient } from 'vscode-languageclient/node'; -import { restartServer } from './common/server'; import { registerLogger, setLoggingLevel, traceLog, traceVerbose } from './common/log/logging'; import { OutputChannelLogger } from './common/log/outputChannelLogger'; import { @@ -12,6 +11,7 @@ import { onDidChangePythonInterpreter, runPythonExtensionCommand, } from './common/python'; +import { restartServer } from './common/server'; import { checkIfConfigurationChanged, getExtensionSettings, @@ -20,9 +20,9 @@ import { ISettings, } from './common/settings'; import { loadServerDefaults } from './common/setup'; -import { createOutputChannel, onDidChangeConfiguration, registerCommand } from './common/vscodeapi'; -import { getProjectRoot } from './common/utilities'; import { registerSortImportFeatures } from './common/sortImports'; +import { getProjectRoot } from './common/utilities'; +import { createOutputChannel, onDidChangeConfiguration, registerCommand } from './common/vscodeapi'; let lsClient: LanguageClient | undefined; export async function activate(context: vscode.ExtensionContext): Promise { @@ -94,3 +94,9 @@ export async function activate(context: vscode.ExtensionContext): Promise } }); } + +export async function deactivate(): Promise { + if (lsClient) { + await lsClient.stop(); + } +}