From d6781cec72f83fbab15de45127bbc22ab447f1e4 Mon Sep 17 00:00:00 2001 From: Adam Berry Date: Fri, 28 Feb 2025 21:23:36 -0600 Subject: [PATCH 1/3] Add additional remote ssh extension support for vscodium/windsurf et al --- src/extension.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index 565af251..fa521894 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -19,10 +19,13 @@ export async function activate(ctx: vscode.ExtensionContext): Promise { // This is janky, but that's alright since it provides such minimal // functionality to the extension. // - // Prefer the anysphere.open-remote-ssh extension if it exists. This makes - // our extension compatible with Cursor. Otherwise fall back to the official - // SSH extension. + // The jeanp413 extension is available for vscodium and all bundled from there, + // so we check for that first. If it's not available, we check for the windsurf, then + // anysphere extension which is the cursor fork of the first one. If that's not + // available, we check for the official ms remote-ssh extension. const remoteSSHExtension = + vscode.extensions.getExtension("jeanp413.open-remote-ssh") || + vscode.extensions.getExtension("codeium.windsurf-remote-openssh") || vscode.extensions.getExtension("anysphere.open-remote-ssh") || vscode.extensions.getExtension("ms-vscode-remote.remote-ssh") if (!remoteSSHExtension) { From fecc8281349aa73f5acb9d68a61815afdc10adec Mon Sep 17 00:00:00 2001 From: Adam Berry Date: Fri, 28 Feb 2025 22:17:34 -0600 Subject: [PATCH 2/3] Move remote ssh extension from dep to activation --- package.json | 3 --- src/extension.ts | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/package.json b/package.json index bcb3e354..4e509233 100644 --- a/package.json +++ b/package.json @@ -29,9 +29,6 @@ "onCommand:coder.connect", "onUri" ], - "extensionDependencies": [ - "ms-vscode-remote.remote-ssh" - ], "main": "./dist/extension.js", "contributes": { "configuration": { diff --git a/src/extension.ts b/src/extension.ts index fa521894..04a1b995 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -29,6 +29,7 @@ export async function activate(ctx: vscode.ExtensionContext): Promise { vscode.extensions.getExtension("anysphere.open-remote-ssh") || vscode.extensions.getExtension("ms-vscode-remote.remote-ssh") if (!remoteSSHExtension) { + vscode.window.showErrorMessage("Remote SSH extension not found, cannot activate Coder extension") throw new Error("Remote SSH extension not found") } // eslint-disable-next-line @typescript-eslint/no-explicit-any From 5769d3fb249b5c651b16c92fa94498a691c1f5d2 Mon Sep 17 00:00:00 2001 From: Adam Berry Date: Wed, 5 Mar 2025 21:29:24 -0600 Subject: [PATCH 3/3] Use extension pack for optional dep --- package.json | 3 +++ src/extension.ts | 8 ++------ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 4e509233..5c415436 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,9 @@ "categories": [ "Other" ], + "extensionPack": [ + "ms-vscode-remote.remote-ssh" + ], "activationEvents": [ "onResolveRemoteAuthority:ssh-remote", "onCommand:coder.connect", diff --git a/src/extension.ts b/src/extension.ts index 04a1b995..e5e2799a 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -19,14 +19,10 @@ export async function activate(ctx: vscode.ExtensionContext): Promise { // This is janky, but that's alright since it provides such minimal // functionality to the extension. // - // The jeanp413 extension is available for vscodium and all bundled from there, - // so we check for that first. If it's not available, we check for the windsurf, then - // anysphere extension which is the cursor fork of the first one. If that's not - // available, we check for the official ms remote-ssh extension. + // Cursor and VSCode are covered by ms remote, and the only other is windsurf for now + // Means that vscodium is not supported by this for now const remoteSSHExtension = - vscode.extensions.getExtension("jeanp413.open-remote-ssh") || vscode.extensions.getExtension("codeium.windsurf-remote-openssh") || - vscode.extensions.getExtension("anysphere.open-remote-ssh") || vscode.extensions.getExtension("ms-vscode-remote.remote-ssh") if (!remoteSSHExtension) { vscode.window.showErrorMessage("Remote SSH extension not found, cannot activate Coder extension")