summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPyush Sinha <[email protected]>2025-06-28 10:44:31 -0700
committerGitHub <[email protected]>2025-06-28 17:44:31 +0000
commit3518ff766345ba98d90495b46c84439e6fc1a61c (patch)
tree4617977516276a40942aea637420658325278b49
parent0d51e4b4b7fdc732d4388ee04f3270061d85f0b1 (diff)
feat: add VSCodium editor support (#2299)
Co-authored-by: Scott Densmore <[email protected]> Co-authored-by: Allen Hutchison <[email protected]>
-rw-r--r--packages/cli/src/ui/editors/editorSettingsManager.ts2
-rw-r--r--packages/core/src/utils/editor.test.ts18
-rw-r--r--packages/core/src/utils/editor.ts17
3 files changed, 32 insertions, 5 deletions
diff --git a/packages/cli/src/ui/editors/editorSettingsManager.ts b/packages/cli/src/ui/editors/editorSettingsManager.ts
index 99d02a11..550569c4 100644
--- a/packages/cli/src/ui/editors/editorSettingsManager.ts
+++ b/packages/cli/src/ui/editors/editorSettingsManager.ts
@@ -19,6 +19,7 @@ export interface EditorDisplay {
export const EDITOR_DISPLAY_NAMES: Record<EditorType, string> = {
zed: 'Zed',
vscode: 'VS Code',
+ vscodium: 'VSCodium',
windsurf: 'Windsurf',
cursor: 'Cursor',
vim: 'Vim',
@@ -31,6 +32,7 @@ class EditorSettingsManager {
const editorTypes: EditorType[] = [
'zed',
'vscode',
+ 'vscodium',
'windsurf',
'cursor',
'vim',
diff --git a/packages/core/src/utils/editor.test.ts b/packages/core/src/utils/editor.test.ts
index 85b54333..09bd496f 100644
--- a/packages/core/src/utils/editor.test.ts
+++ b/packages/core/src/utils/editor.test.ts
@@ -56,6 +56,7 @@ describe('editor utils', () => {
win32Command: string;
}> = [
{ editor: 'vscode', command: 'code', win32Command: 'code.cmd' },
+ { editor: 'vscodium', command: 'codium', win32Command: 'codium.cmd' },
{ editor: 'windsurf', command: 'windsurf', win32Command: 'windsurf' },
{ editor: 'cursor', command: 'cursor', win32Command: 'cursor' },
{ editor: 'vim', command: 'vim', win32Command: 'vim' },
@@ -112,6 +113,7 @@ describe('editor utils', () => {
win32Command: string;
}> = [
{ editor: 'vscode', command: 'code', win32Command: 'code.cmd' },
+ { editor: 'vscodium', command: 'codium', win32Command: 'codium.cmd' },
{ editor: 'windsurf', command: 'windsurf', win32Command: 'windsurf' },
{ editor: 'cursor', command: 'cursor', win32Command: 'cursor' },
{ editor: 'zed', command: 'zed', win32Command: 'zed' },
@@ -171,7 +173,13 @@ describe('editor utils', () => {
});
describe('openDiff', () => {
- const spawnEditors: EditorType[] = ['vscode', 'windsurf', 'cursor', 'zed'];
+ const spawnEditors: EditorType[] = [
+ 'vscode',
+ 'vscodium',
+ 'windsurf',
+ 'cursor',
+ 'zed',
+ ];
for (const editor of spawnEditors) {
it(`should call spawn for ${editor}`, async () => {
const mockSpawn = {
@@ -285,7 +293,13 @@ describe('editor utils', () => {
expect(allowEditorTypeInSandbox('vim')).toBe(true);
});
- const guiEditors: EditorType[] = ['vscode', 'windsurf', 'cursor', 'zed'];
+ const guiEditors: EditorType[] = [
+ 'vscode',
+ 'vscodium',
+ 'windsurf',
+ 'cursor',
+ 'zed',
+ ];
for (const editor of guiEditors) {
it(`should not allow ${editor} in sandbox mode`, () => {
process.env.SANDBOX = 'sandbox';
diff --git a/packages/core/src/utils/editor.ts b/packages/core/src/utils/editor.ts
index 36533e2c..174dae3e 100644
--- a/packages/core/src/utils/editor.ts
+++ b/packages/core/src/utils/editor.ts
@@ -6,10 +6,18 @@
import { execSync, spawn } from 'child_process';
-export type EditorType = 'vscode' | 'windsurf' | 'cursor' | 'vim' | 'zed';
+export type EditorType =
+ | 'vscode'
+ | 'vscodium'
+ | 'windsurf'
+ | 'cursor'
+ | 'vim'
+ | 'zed';
function isValidEditorType(editor: string): editor is EditorType {
- return ['vscode', 'windsurf', 'cursor', 'vim', 'zed'].includes(editor);
+ return ['vscode', 'vscodium', 'windsurf', 'cursor', 'vim', 'zed'].includes(
+ editor,
+ );
}
interface DiffCommand {
@@ -31,6 +39,7 @@ function commandExists(cmd: string): boolean {
const editorCommands: Record<EditorType, { win32: string; default: string }> = {
vscode: { win32: 'code.cmd', default: 'code' },
+ vscodium: { win32: 'codium.cmd', default: 'codium' },
windsurf: { win32: 'windsurf', default: 'windsurf' },
cursor: { win32: 'cursor', default: 'cursor' },
vim: { win32: 'vim', default: 'vim' },
@@ -46,7 +55,7 @@ export function checkHasEditorType(editor: EditorType): boolean {
export function allowEditorTypeInSandbox(editor: EditorType): boolean {
const notUsingSandbox = !process.env.SANDBOX;
- if (['vscode', 'windsurf', 'cursor', 'zed'].includes(editor)) {
+ if (['vscode', 'vscodium', 'windsurf', 'cursor', 'zed'].includes(editor)) {
return notUsingSandbox;
}
return true;
@@ -82,6 +91,7 @@ export function getDiffCommand(
process.platform === 'win32' ? commandConfig.win32 : commandConfig.default;
switch (editor) {
case 'vscode':
+ case 'vscodium':
case 'windsurf':
case 'cursor':
case 'zed':
@@ -138,6 +148,7 @@ export async function openDiff(
try {
switch (editor) {
case 'vscode':
+ case 'vscodium':
case 'windsurf':
case 'cursor':
case 'zed':