diff options
Diffstat (limited to 'packages/core/src/utils/editor.ts')
| -rw-r--r-- | packages/core/src/utils/editor.ts | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/packages/core/src/utils/editor.ts b/packages/core/src/utils/editor.ts index 447aa0d2..6be5cffb 100644 --- a/packages/core/src/utils/editor.ts +++ b/packages/core/src/utils/editor.ts @@ -15,7 +15,10 @@ interface DiffCommand { function commandExists(cmd: string): boolean { try { - execSync(`which ${cmd}`, { stdio: 'ignore' }); + execSync( + process.platform === 'win32' ? `where.exe ${cmd}` : `command -v ${cmd}`, + { stdio: 'ignore' }, + ); return true; } catch { return false; @@ -24,7 +27,9 @@ function commandExists(cmd: string): boolean { export function checkHasEditor(editor: EditorType): boolean { if (editor === 'vscode') { - return commandExists('code'); + return process.platform === 'win32' + ? commandExists('code.cmd') + : commandExists('code'); } else if (editor === 'vim') { return commandExists('vim'); } @@ -116,7 +121,10 @@ export async function openDiff( }); } else { // Use execSync for terminal-based editors like vim - const command = `${diffCommand.command} ${diffCommand.args.map((arg) => `"${arg}"`).join(' ')}`; + const command = + process.platform === 'win32' + ? `${diffCommand.command} ${diffCommand.args.join(' ')}` + : `${diffCommand.command} ${diffCommand.args.map((arg) => `"${arg}"`).join(' ')}`; execSync(command, { stdio: 'inherit', encoding: 'utf8', |
