diff options
Diffstat (limited to 'extension')
-rw-r--r-- | extension/package-lock.json | 4 | ||||
-rw-r--r-- | extension/package.json | 2 | ||||
-rw-r--r-- | extension/scripts/continuedev-0.1.1-py3-none-any.whl | bin | 84332 -> 85071 bytes | |||
-rw-r--r-- | extension/src/activation/environmentSetup.ts | 33 | ||||
-rw-r--r-- | extension/src/continueIdeClient.ts | 18 |
5 files changed, 36 insertions, 21 deletions
diff --git a/extension/package-lock.json b/extension/package-lock.json index e4387636..c5d97cfb 100644 --- a/extension/package-lock.json +++ b/extension/package-lock.json @@ -1,12 +1,12 @@ { "name": "continue", - "version": "0.0.54", + "version": "0.0.55", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "continue", - "version": "0.0.54", + "version": "0.0.55", "license": "Apache-2.0", "dependencies": { "@electron/rebuild": "^3.2.10", diff --git a/extension/package.json b/extension/package.json index 0cbe1d27..036d13f0 100644 --- a/extension/package.json +++ b/extension/package.json @@ -14,7 +14,7 @@ "displayName": "Continue", "pricing": "Free", "description": "Refine code 10x faster", - "version": "0.0.54", + "version": "0.0.55", "publisher": "Continue", "engines": { "vscode": "^1.74.0" diff --git a/extension/scripts/continuedev-0.1.1-py3-none-any.whl b/extension/scripts/continuedev-0.1.1-py3-none-any.whl Binary files differindex 2e45a933..9d371e17 100644 --- a/extension/scripts/continuedev-0.1.1-py3-none-any.whl +++ b/extension/scripts/continuedev-0.1.1-py3-none-any.whl diff --git a/extension/src/activation/environmentSetup.ts b/extension/src/activation/environmentSetup.ts index bc071461..593b727e 100644 --- a/extension/src/activation/environmentSetup.ts +++ b/extension/src/activation/environmentSetup.ts @@ -161,6 +161,21 @@ function writeEnvFile(path: string, key: string, value: string) { fs.writeFileSync(path, newEnvFile); } +async function checkServerRunning(serverUrl: string): Promise<boolean> { + // Check if already running by calling /health + try { + const response = await fetch(serverUrl + "/health"); + if (response.status === 200) { + console.log("Continue python server already running"); + return true; + } else { + return false; + } + } catch (e) { + return false; + } +} + export async function startContinuePythonServer() { await setupPythonEnv(); @@ -172,14 +187,7 @@ export async function startContinuePythonServer() { console.log("Starting Continue python server..."); - // Check if already running by calling /health - try { - const response = await fetch(serverUrl + "/health"); - if (response.status === 200) { - console.log("Continue python server already running"); - return; - } - } catch (e) {} + if (await checkServerRunning(serverUrl)) return; let activateCmd = ". env/bin/activate"; let pythonCmd = "python3"; @@ -193,7 +201,7 @@ export async function startContinuePythonServer() { "scripts" )} && ${activateCmd} && cd .. && ${pythonCmd} -m scripts.run_continue_server`; - return new Promise((resolve, reject) => { + return new Promise(async (resolve, reject) => { try { const child = spawn(command, { shell: true, @@ -213,7 +221,12 @@ export async function startContinuePythonServer() { }); } catch (e) { console.log("Failed to start Continue python server", e); - reject(); + // If failed, check if it's because the server is already running (might have happened just after we checked above) + if (await checkServerRunning(serverUrl)) { + resolve(null); + } else { + reject(); + } } }); } diff --git a/extension/src/continueIdeClient.ts b/extension/src/continueIdeClient.ts index b4937ac4..3b5de93f 100644 --- a/extension/src/continueIdeClient.ts +++ b/extension/src/continueIdeClient.ts @@ -158,15 +158,17 @@ class IdeProtocolClient { }); editor.setDecorations(decorationType, [range]); - // Listen for changes to cursor position - const cursorDisposable = vscode.window.onDidChangeTextEditorSelection( - (event) => { - if (event.textEditor.document.uri.fsPath === rangeInFile.filepath) { - cursorDisposable.dispose(); - editor.setDecorations(decorationType, []); + // Listen for changes to cursor position and then remove the decoration (but keep for at least 2 seconds) + setTimeout(() => { + const cursorDisposable = vscode.window.onDidChangeTextEditorSelection( + (event) => { + if (event.textEditor.document.uri.fsPath === rangeInFile.filepath) { + cursorDisposable.dispose(); + editor.setDecorations(decorationType, []); + } } - } - ); + ); + }, 2000); } } |