From 178e180e9c68ec7e89554c0b99a93dbb111c42b0 Mon Sep 17 00:00:00 2001 From: Kirill Dubovitskiy Date: Sat, 5 Aug 2023 01:28:20 -0700 Subject: Minor refactoring to fix up typing --- extension/src/activation/environmentSetup.ts | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) (limited to 'extension/src/activation/environmentSetup.ts') diff --git a/extension/src/activation/environmentSetup.ts b/extension/src/activation/environmentSetup.ts index 1ca32841..7c18913a 100644 --- a/extension/src/activation/environmentSetup.ts +++ b/extension/src/activation/environmentSetup.ts @@ -1,7 +1,7 @@ import { getExtensionUri } from "../util/vscode"; -const util = require("util"); -const exec = util.promisify(require("child_process").exec); -const { spawn } = require("child_process"); +import { promisify } from "util"; +import { exec as execCb } from "child_process"; +import { spawn } from "child_process"; import * as path from "path"; import * as fs from "fs"; import { getContinueServerUrl } from "../bridge"; @@ -10,11 +10,13 @@ import * as vscode from "vscode"; import * as os from "os"; import fkill from "fkill"; import { finished } from "stream/promises"; -const request = require("request"); +import * as request from "request"; + +const exec = promisify(execCb); async function runCommand(cmd: string): Promise<[string, string | undefined]> { - var stdout: any = ""; - var stderr: any = ""; + var stdout = ""; + var stderr = ""; try { var { stdout, stderr } = await exec(cmd, { shell: process.platform === "win32" ? "powershell.exe" : undefined, @@ -23,14 +25,9 @@ async function runCommand(cmd: string): Promise<[string, string | undefined]> { stderr = e.stderr; stdout = e.stdout; } - if (stderr === "") { - stderr = undefined; - } - if (typeof stdout === "undefined") { - stdout = ""; - } - return [stdout, stderr]; + const stderrOrUndefined = stderr === "" ? undefined : stderr; + return [stdout, stderrOrUndefined]; } async function checkServerRunning(serverUrl: string): Promise { -- cgit v1.2.3-70-g09d2 From 400d1da490dab08a9b2ef2c88ab842ae5bc75620 Mon Sep 17 00:00:00 2001 From: Kirill Dubovitskiy Date: Sun, 6 Aug 2023 18:48:30 -0700 Subject: Added a launch configuration to start debugging both server + extension --- .gitignore | 1 - .vscode/launch.json | 14 ++++++- .vscode/settings.json | 3 ++ .vscode/tasks.json | 61 ++++++++++++++++------------ extension/package.json | 12 +++--- extension/src/activation/environmentSetup.ts | 2 +- 6 files changed, 57 insertions(+), 36 deletions(-) create mode 100644 .vscode/settings.json (limited to 'extension/src/activation/environmentSetup.ts') diff --git a/.gitignore b/.gitignore index 8f403dfe..ad37b017 100644 --- a/.gitignore +++ b/.gitignore @@ -131,7 +131,6 @@ dmypy.json **/node_modules **/out -**/.vscode/settings.json notes.txt cached_embeddings.pkl .ruff_cache diff --git a/.vscode/launch.json b/.vscode/launch.json index f6a37bed..2c7d1a27 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -3,6 +3,16 @@ // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", + "compounds": [ + { + "name": "Server + Extension (VSCode)", + "stopAll": true, + "configurations": [ + "Server", + "Extension (VSCode)" + ] + } + ], "configurations": [ { "name": "Server", @@ -19,7 +29,7 @@ // What about a watch task? - type errors? }, { - "name": "VSCode Extension", + "name": "Extension (VSCode)", "type": "extensionHost", "request": "launch", "cwd": "${workspaceFolder}/extension", @@ -29,7 +39,7 @@ "outFiles": [ "${workspaceFolder}/extension/out/**/*.js" ], - "preLaunchTask": "vscode-extension:build-watch", + "preLaunchTask": "vscode-extension:build", "env": { "CONTINUE_SERVER_URL": "http://localhost:8001" } diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..2195200a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.defaultInterpreterPath": "${workspaceFolder}/continuedev/.venv/bin/python", +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json index aad0d2e4..3b6b62e8 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,44 +1,53 @@ -// See https://go.microsoft.com/fwlink/?LinkId=733558 -// for the documentation about the tasks.json format { "version": "2.0.0", "tasks": [ { - "label": "vscode-extension:build-watch", - "type": "npm", - "script": "esbuild-watch", - "path": "extension", - "isBackground": true, + "label": "vscode-extension:build", + "dependsOn": [ + // To detect compile errors + "vscode-extension:tsc", + // To bundle the code the same way we do for publishing + "vscode-extension:esbuild" + ], "group": { "kind": "build", "isDefault": true - }, - "problemMatcher": [ - // We rely on tsc to emit type errors in a separate task - ], - // Depends on prevents the task from running until the other task has completed, not want we want - // does not start the extension - // "dependsOn": [ - // // esbuild does not emit type errors so we need a separate task for that - // // https://esbuild.github.io/content-types/#typescript - // "vscode-extension:tsc-watch" - // ] + } }, { - "label": "vscode-extension:tsc-watch", + "label": "vscode-extension:esbuild", "type": "npm", - "script": "watch", + "script": "esbuild", "path": "extension", - "isBackground": true, "problemMatcher": [ - "$tsc-watch" + { + "pattern": [ + { + "regexp": "> (.*?):([0-9]+):([0-9]+): (warning|error): (.+)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + ], + } + ], + }, + // Tsc currently errors out due to testing setup issues, will be resolved in a different PR + // This will be useful for preventing debugging if there are compile errors + { + "label": "vscode-extension:tsc", + "type": "shell", + "command": "echo lol", + // "script": "tsc", + // "path": "extension", + "problemMatcher": [ + "$tsc" ], - // Problems are currently broken due to path resolution not being relative to the workspace root - // The way cursorless does it it by having top level package.json which is not ideal. - // Multi root workspaces would help here "presentation": { "revealProblems": "onProblem", - "clear": true + "clear": true, }, "group": { "kind": "build", diff --git a/extension/package.json b/extension/package.json index 26998ec9..59a8d9df 100644 --- a/extension/package.json +++ b/extension/package.json @@ -185,17 +185,17 @@ "scripts": { "vscode:prepublish": "npm run esbuild-base -- --minify", "esbuild-base": "rm -rf ./out && esbuild ./src/extension.ts --bundle --outfile=out/extension.js --external:vscode --format=cjs --platform=node", - "esbuild": "rm -rf ./out && node esbuild.mjs", + "esbuild": "npm run esbuild-base -- --sourcemap", "esbuild-watch": "npm run esbuild-base -- --sourcemap --watch", - "test-compile": "tsc -p ./", + "tsc": "tsc -p ./", + "tsc-watch": "tsc -watch -p ./", + "typegen": "node scripts/typegen.js", "clientgen": "rm -rf src/client/ && npx @openapitools/openapi-generator-cli generate -i ../schema/openapi.json -g typescript-fetch -o src/client/ --additional-properties=supportsES6=true,npmVersion=8.19.2,typescriptThreePlus=true", "rebuild": "electron-rebuild -v 19.1.8 node-pty", - "watch": "tsc -watch -p ./", - "pretest": "npm run compile && npm run lint", + "pretest": "npm run build && npm run lint", "lint": "eslint src --ext ts", "test": "node ./out/test/runTest.js", "jest": "jest --config ./jest.config.js", - "typegen": "node scripts/typegen.js", "package": "npm install && npm run typegen && npm run clientgen && cd react-app && npm install && npm run build && cd .. && mkdir -p ./build && vsce package --out ./build" }, "devDependencies": { @@ -244,4 +244,4 @@ "optionalDependencies": { "@esbuild/android-arm": "^0.18.17" } -} +} \ No newline at end of file diff --git a/extension/src/activation/environmentSetup.ts b/extension/src/activation/environmentSetup.ts index 7c18913a..c8e8b85f 100644 --- a/extension/src/activation/environmentSetup.ts +++ b/extension/src/activation/environmentSetup.ts @@ -10,7 +10,7 @@ import * as vscode from "vscode"; import * as os from "os"; import fkill from "fkill"; import { finished } from "stream/promises"; -import * as request from "request"; +import request = require("request"); const exec = promisify(execCb); -- cgit v1.2.3-70-g09d2