From 9d2b4e72a90bf3dbd9061a06f9825a736bf50e20 Mon Sep 17 00:00:00 2001 From: Dhruv Manilawala Date: Wed, 24 Jul 2024 20:28:53 +0530 Subject: [PATCH] Sepatate start / stop server logic --- src/common/server.ts | 18 +++++++++--------- src/extension.ts | 11 +++++++---- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/common/server.ts b/src/common/server.ts index f44a81c..1d1ec4c 100644 --- a/src/common/server.ts +++ b/src/common/server.ts @@ -396,21 +396,14 @@ async function createServer( } let _disposables: Disposable[] = []; -export async function restartServer( + +export async function startServer( projectRoot: vscode.WorkspaceFolder, workspaceSettings: ISettings, serverId: string, serverName: string, outputChannel: LogOutputChannel, - lsClient?: LanguageClient, ): Promise { - if (lsClient) { - traceInfo(`Server: Stop requested`); - await lsClient.stop(); - _disposables.forEach((d) => d.dispose()); - _disposables = []; - } - updateStatus(undefined, LanguageStatusSeverity.Information, true); const extensionSettings = await getExtensionSettings(serverId); @@ -454,3 +447,10 @@ export async function restartServer( return newLSClient; } + +export async function stopServer(lsClient: LanguageClient): Promise { + traceInfo(`Server: Stop requested`); + await lsClient.stop(); + _disposables.forEach((d) => d.dispose()); + _disposables = []; +} diff --git a/src/extension.ts b/src/extension.ts index 17e422b..65e725c 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -7,7 +7,7 @@ import { onDidChangePythonInterpreter, resolveInterpreter, } from "./common/python"; -import { restartServer } from "./common/server"; +import { startServer, stopServer } from "./common/server"; import { checkIfConfigurationChanged, getInterpreterFromSetting, @@ -89,6 +89,10 @@ export async function activate(context: vscode.ExtensionContext): Promise restartInProgress = true; try { + if (lsClient) { + await stopServer(lsClient); + } + const projectRoot = await getProjectRoot(); const workspaceSettings = await getWorkspaceSettings(serverId, projectRoot); @@ -124,13 +128,12 @@ export async function activate(context: vscode.ExtensionContext): Promise } } - lsClient = await restartServer( + lsClient = await startServer( projectRoot, workspaceSettings, serverId, serverName, outputChannel, - lsClient, ); } finally { // Ensure that we reset the flag in case of an error, early return, or success. @@ -268,6 +271,6 @@ export async function activate(context: vscode.ExtensionContext): Promise export async function deactivate(): Promise { if (lsClient) { - await lsClient.stop(); + await stopServer(lsClient); } }