summaryrefslogtreecommitdiff
path: root/extension/src
diff options
context:
space:
mode:
Diffstat (limited to 'extension/src')
-rw-r--r--extension/src/activation/environmentSetup.ts59
-rw-r--r--extension/src/debugPanel.ts5
2 files changed, 36 insertions, 28 deletions
diff --git a/extension/src/activation/environmentSetup.ts b/extension/src/activation/environmentSetup.ts
index ad6ac71b..db2c5523 100644
--- a/extension/src/activation/environmentSetup.ts
+++ b/extension/src/activation/environmentSetup.ts
@@ -10,6 +10,7 @@ import { getContinueServerUrl } from "../bridge";
import fetch from "node-fetch";
async function runCommand(cmd: string): Promise<[string, string | undefined]> {
+ console.log("Running command: ", cmd);
var stdout: any = "";
var stderr: any = "";
try {
@@ -61,14 +62,16 @@ function getActivateUpgradeCommands(pythonCmd: string, pipCmd: string) {
}
function checkEnvExists() {
- const envBinActivatePath = path.join(
+ const envBinPath = path.join(
getExtensionUri().fsPath,
"scripts",
"env",
- "bin",
- "activate"
+ "bin"
+ );
+ return (
+ fs.existsSync(envBinPath + "/activate") &&
+ fs.existsSync(envBinPath + "/pip")
);
- return fs.existsSync(envBinActivatePath);
}
async function setupPythonEnv() {
@@ -180,34 +183,34 @@ export async function startContinuePythonServer() {
pythonCmd = "python";
}
- // let command = `cd ${path.join(
- // getExtensionUri().fsPath,
- // "scripts"
- // )} && ${activateCmd} && cd env/lib/python3.11/site-packages && ${pythonCmd} -m continuedev.server.main`;
let command = `cd ${path.join(
getExtensionUri().fsPath,
"scripts"
)} && ${activateCmd} && cd .. && ${pythonCmd} -m scripts.run_continue_server`;
- try {
- // exec(command);
- const child = spawn(command, {
- shell: true,
- });
- child.stdout.on("data", (data: any) => {
- console.log(`stdout: ${data}`);
- });
- child.stderr.on("data", (data: any) => {
- console.log(`stderr: ${data}`);
- });
- child.on("error", (error: any) => {
- console.log(`error: ${error.message}`);
- });
- } catch (e) {
- console.log("Failed to start Continue python server", e);
- }
- // Sleep for 3 seconds to give the server time to start
- await new Promise((resolve) => setTimeout(resolve, 3000));
- console.log("Successfully started Continue python server");
+
+ return new Promise((resolve, reject) => {
+ try {
+ const child = spawn(command, {
+ shell: true,
+ });
+ child.stdout.on("data", (data: any) => {
+ console.log(`stdout: ${data}`);
+ });
+ child.stderr.on("data", (data: any) => {
+ console.log(`stderr: ${data}`);
+ if (data.includes("Uvicorn running on")) {
+ console.log("Successfully started Continue python server");
+ resolve(null);
+ }
+ });
+ child.on("error", (error: any) => {
+ console.log(`error: ${error.message}`);
+ });
+ } catch (e) {
+ console.log("Failed to start Continue python server", e);
+ reject();
+ }
+ });
}
async function installNodeModules() {
diff --git a/extension/src/debugPanel.ts b/extension/src/debugPanel.ts
index a295085f..da29a52c 100644
--- a/extension/src/debugPanel.ts
+++ b/extension/src/debugPanel.ts
@@ -16,6 +16,7 @@ import {
import { sendTelemetryEvent, TelemetryEvent } from "./telemetry";
import { RangeInFile, SerializedDebugContext } from "./client";
import { addFileSystemToDebugContext } from "./util/util";
+const WebSocket = require("ws");
class StreamManager {
private _fullText: string = "";
@@ -119,6 +120,9 @@ class WebsocketConnection {
}
public send(message: string) {
+ if (typeof message !== "string") {
+ message = JSON.stringify(message);
+ }
this._ws.send(message);
}
@@ -190,6 +194,7 @@ export function setupDebugPanel(
async function connectWebsocket(url: string) {
return new Promise((resolve, reject) => {
const onMessage = (message: any) => {
+ console.log("websocket message", message);
panel.webview.postMessage({
type: "websocketForwardingMessage",
url,