Skip to content

IMPLEMENT: fix open-in-editor spawning new VS Code window (issue #245)#246

Merged
DaveHudson merged 2 commits intomainfrom
sandcastle/issue-245-in-desktop-app-open-in-vs-code-kills-existing-vs-code-window
May 1, 2026
Merged

IMPLEMENT: fix open-in-editor spawning new VS Code window (issue #245)#246
DaveHudson merged 2 commits intomainfrom
sandcastle/issue-245-in-desktop-app-open-in-vs-code-kills-existing-vs-code-window

Conversation

@DaveHudson
Copy link
Copy Markdown
Collaborator

Summary

Closes #245

DaveHudson added 2 commits May 1, 2026 14:47
Previously used vscode://file<path> URL scheme which reuses the existing
VS Code window. Now spawns `code --new-window <path>` via child_process so
a new window is always opened. Falls back to the URL scheme if the CLI is
unavailable (e.g. code not in PATH on macOS without shell integration).

Extracted openInEditor(path, runCli) with an injected CliRunner so the
new-window behaviour is directly verifiable without Electron or child_process
mocks.

Files changed:
- apps/desktop/src/main/ipc/shell.ts
- apps/desktop/tests/main/shell-ipc.test.ts (new)

No blockers.
spawnCode resolved the promise on any close event, including non-zero
exit codes, so a failed `code` CLI invocation would never trigger the
shell.openExternal fallback. Fix it to reject on non-zero or signal
termination so the fallback fires as intended.

Add three new tests: no-fallback on success, fallback on CLI error, and
path-with-spaces passthrough. Mock electron at the system boundary so
the fallback path is actually exercisable.
@DaveHudson DaveHudson merged commit 6f27e0b into main May 1, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

In desktop app, open in VSCode kills existing VSCode window

1 participant