aboutsummaryrefslogtreecommitdiff
path: root/packages/bun-vscode/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/bun-vscode/src')
-rw-r--r--packages/bun-vscode/src/adapter.ts38
-rw-r--r--packages/bun-vscode/src/extension.ts16
-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.ts5
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() {}