diff options
| author | Paige Bailey <[email protected]> | 2025-07-31 15:46:04 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-31 22:46:04 +0000 |
| commit | 37a3f1e6b61b74b124a0573c408447aa00a62467 (patch) | |
| tree | b43f2273701bf6c93fb45d51351ed8dd97d23bc0 /packages/core/src/utils/editor.ts | |
| parent | 574015edd91a651b0a4770e595be7ff10d67e5ab (diff) | |
Add emacs support, as per user requests. :) (#1633)
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: N. Taylor Mullen <[email protected]>
Co-authored-by: Jacob Richman <[email protected]>
Co-authored-by: matt korwel <[email protected]>
Co-authored-by: matt korwel <[email protected]>
Diffstat (limited to 'packages/core/src/utils/editor.ts')
| -rw-r--r-- | packages/core/src/utils/editor.ts | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/packages/core/src/utils/editor.ts b/packages/core/src/utils/editor.ts index 2d65d525..704d1cbb 100644 --- a/packages/core/src/utils/editor.ts +++ b/packages/core/src/utils/editor.ts @@ -13,7 +13,8 @@ export type EditorType = | 'cursor' | 'vim' | 'neovim' - | 'zed'; + | 'zed' + | 'emacs'; function isValidEditorType(editor: string): editor is EditorType { return [ @@ -24,6 +25,7 @@ function isValidEditorType(editor: string): editor is EditorType { 'vim', 'neovim', 'zed', + 'emacs', ].includes(editor); } @@ -59,6 +61,7 @@ const editorCommands: Record< vim: { win32: ['vim'], default: ['vim'] }, neovim: { win32: ['nvim'], default: ['nvim'] }, zed: { win32: ['zed'], default: ['zed', 'zeditor'] }, + emacs: { win32: ['emacs.exe'], default: ['emacs'] }, }; export function checkHasEditorType(editor: EditorType): boolean { @@ -73,6 +76,7 @@ export function allowEditorTypeInSandbox(editor: EditorType): boolean { if (['vscode', 'vscodium', 'windsurf', 'cursor', 'zed'].includes(editor)) { return notUsingSandbox; } + // For terminal-based editors like vim and emacs, allow in sandbox. return true; } @@ -141,6 +145,11 @@ export function getDiffCommand( newPath, ], }; + case 'emacs': + return { + command: 'emacs', + args: ['--eval', `(ediff "${oldPath}" "${newPath}")`], + }; default: return null; } @@ -190,6 +199,7 @@ export async function openDiff( }); case 'vim': + case 'emacs': case 'neovim': { // Use execSync for terminal-based editors const command = |
