diff options
Diffstat (limited to 'packages/bun-vscode/src')
-rw-r--r-- | packages/bun-vscode/src/adapter.ts | 38 | ||||
-rw-r--r-- | packages/bun-vscode/src/extension.ts | 16 | ||||
-rw-r--r-- | packages/bun-vscode/src/features/debug.ts (renamed from packages/bun-vscode/src/activate.ts) | 62 | ||||
-rw-r--r-- | packages/bun-vscode/src/features/lockfile.ts (renamed from packages/bun-vscode/src/lockfile.ts) | 0 | ||||
-rw-r--r-- | packages/bun-vscode/src/web-extension.ts | 5 |
5 files changed, 49 insertions, 72 deletions
diff --git a/packages/bun-vscode/src/adapter.ts b/packages/bun-vscode/src/adapter.ts deleted file mode 100644 index e3233d567..000000000 --- a/packages/bun-vscode/src/adapter.ts +++ /dev/null @@ -1,38 +0,0 @@ -import * as vscode from "vscode"; -import type { DAP } from "../../bun-debug-adapter-protocol"; -import { DebugAdapter } from "../../bun-debug-adapter-protocol"; -import { DebugSession } from "@vscode/debugadapter"; - -export class VSCodeAdapter extends DebugSession { - #adapter: DebugAdapter; - - constructor(session: vscode.DebugSession) { - super(); - console.log("[dap] --- start"); - this.#adapter = new DebugAdapter({ - sendToAdapter: this.sendMessage.bind(this), - }); - } - - sendMessage(message: DAP.Request | DAP.Response | DAP.Event): void { - console.log("[dap] -->", message); - const { type } = message; - if (type === "response") { - this.sendResponse(message); - } else if (type === "event") { - this.sendEvent(message); - } else { - throw new Error(`Not supported: ${type}`); - } - } - - handleMessage(message: DAP.Event | DAP.Request | DAP.Response): void { - console.log("[dap] <--", message); - this.#adapter.accept(message); - } - - dispose() { - console.log("[dap] --- close"); - this.#adapter.close(); - } -} diff --git a/packages/bun-vscode/src/extension.ts b/packages/bun-vscode/src/extension.ts index f840dd7a9..e333aedd7 100644 --- a/packages/bun-vscode/src/extension.ts +++ b/packages/bun-vscode/src/extension.ts @@ -1,16 +1,10 @@ import * as vscode from "vscode"; -import { activateBunDebug } from "./activate"; - -const runMode: "external" | "server" | "namedPipeServer" | "inline" = "inline"; +import activateLockfile from "./features/lockfile"; +import activateDebug from "./features/debug"; export function activate(context: vscode.ExtensionContext) { - if (runMode === "inline") { - activateBunDebug(context); - return; - } - throw new Error(`This extension does not support '${runMode}' mode.`); + activateLockfile(context); + activateDebug(context); } -export function deactivate() { - // No-op -} +export function deactivate() {} diff --git a/packages/bun-vscode/src/activate.ts b/packages/bun-vscode/src/features/debug.ts index 025515cc1..2a8ac587e 100644 --- a/packages/bun-vscode/src/activate.ts +++ b/packages/bun-vscode/src/features/debug.ts @@ -1,7 +1,8 @@ import * as vscode from "vscode"; -import { CancellationToken, DebugConfiguration, ProviderResult, WorkspaceFolder } from "vscode"; -import lockfile from "./lockfile"; -import { VSCodeAdapter } from "./adapter"; +import type { CancellationToken, DebugConfiguration, ProviderResult, WorkspaceFolder } from "vscode"; +import type { DAP } from "../../../bun-debug-adapter-protocol"; +import { DebugAdapter } from "../../../bun-debug-adapter-protocol"; +import { DebugSession } from "@vscode/debugadapter"; const debugConfiguration: vscode.DebugConfiguration = { type: "bun", @@ -21,17 +22,14 @@ const attachConfiguration: vscode.DebugConfiguration = { type: "bun", request: "attach", name: "Attach to Bun", - hostname: "localhost", - port: 6499, + url: "ws://localhost:6499/", }; const debugConfigurations: vscode.DebugConfiguration[] = [debugConfiguration, attachConfiguration]; -export function activateBunDebug(context: vscode.ExtensionContext, factory?: vscode.DebugAdapterDescriptorFactory) { - lockfile(context); - +export default function (context: vscode.ExtensionContext, factory?: vscode.DebugAdapterDescriptorFactory) { context.subscriptions.push( - vscode.commands.registerCommand("extension.bun.runEditorContents", (resource: vscode.Uri) => { + vscode.commands.registerCommand("extension.bun.runFile", (resource: vscode.Uri) => { let targetResource = resource; if (!targetResource && vscode.window.activeTextEditor) { targetResource = vscode.window.activeTextEditor.document.uri; @@ -42,7 +40,7 @@ export function activateBunDebug(context: vscode.ExtensionContext, factory?: vsc }); } }), - vscode.commands.registerCommand("extension.bun.debugEditorContents", (resource: vscode.Uri) => { + vscode.commands.registerCommand("extension.bun.debugFile", (resource: vscode.Uri) => { let targetResource = resource; if (!targetResource && vscode.window.activeTextEditor) { targetResource = vscode.window.activeTextEditor.document.uri; @@ -56,15 +54,6 @@ export function activateBunDebug(context: vscode.ExtensionContext, factory?: vsc }), ); - context.subscriptions.push( - vscode.commands.registerCommand("extension.bun.getProgramName", config => { - return vscode.window.showInputBox({ - placeHolder: "Please enter the name of a file in the workspace folder", - value: "src/index.js", - }); - }), - ); - const provider = new BunConfigurationProvider(); context.subscriptions.push(vscode.debug.registerDebugConfigurationProvider("bun", provider)); @@ -121,3 +110,38 @@ function isJavaScript(languageId: string): boolean { languageId === "typescriptreact" ); } + +export class VSCodeAdapter extends DebugSession { + #adapter: DebugAdapter; + #dap: vscode.OutputChannel; + + constructor(session: vscode.DebugSession) { + super(); + this.#dap = vscode.window.createOutputChannel("Debug Adapter Protocol"); + this.#adapter = new DebugAdapter({ + sendToAdapter: this.sendMessage.bind(this), + }); + } + + sendMessage(message: DAP.Request | DAP.Response | DAP.Event): void { + this.#dap.appendLine("--> " + JSON.stringify(message)); + const { type } = message; + if (type === "response") { + this.sendResponse(message); + } else if (type === "event") { + this.sendEvent(message); + } else { + throw new Error(`Not supported: ${type}`); + } + } + + handleMessage(message: DAP.Event | DAP.Request | DAP.Response): void { + this.#dap.appendLine("<-- " + JSON.stringify(message)); + this.#adapter.accept(message); + } + + dispose() { + this.#adapter.close(); + this.#dap.dispose(); + } +} diff --git a/packages/bun-vscode/src/lockfile.ts b/packages/bun-vscode/src/features/lockfile.ts index 81adf5b9e..81adf5b9e 100644 --- a/packages/bun-vscode/src/lockfile.ts +++ b/packages/bun-vscode/src/features/lockfile.ts diff --git a/packages/bun-vscode/src/web-extension.ts b/packages/bun-vscode/src/web-extension.ts index a30073e2e..cd2e2623e 100644 --- a/packages/bun-vscode/src/web-extension.ts +++ b/packages/bun-vscode/src/web-extension.ts @@ -1,8 +1,5 @@ import * as vscode from "vscode"; -import { activateBunDebug } from "./activate"; -export function activate(context: vscode.ExtensionContext) { - activateBunDebug(context); -} +export function activate(context: vscode.ExtensionContext) {} export function deactivate() {} |