diff options
| author | AbigailJixiangyuyu <[email protected]> | 2026-03-17 06:11:02 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-03-17 08:11:02 +1000 |
| commit | e9a17e4480c8295ae3f72d4ea68c55ae07bfdc41 (patch) | |
| tree | 8e2f3c66a67570f35e07394208a8da0d0825c202 | |
| parent | 68809365dfe32dd13ad9b3a8c2f555b2e8fa049b (diff) | |
| download | opencode-e9a17e4480c8295ae3f72d4ea68c55ae07bfdc41.tar.gz opencode-e9a17e4480c8295ae3f72d4ea68c55ae07bfdc41.zip | |
fix(windows): restore /editor support on Windows (#17146)
| -rw-r--r-- | packages/opencode/src/cli/cmd/tui/util/editor.ts | 28 | ||||
| -rw-r--r-- | packages/opencode/src/util/process.ts | 3 |
2 files changed, 19 insertions, 12 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/util/editor.ts b/packages/opencode/src/cli/cmd/tui/util/editor.ts index 6d32c63c0..9eaae99fc 100644 --- a/packages/opencode/src/cli/cmd/tui/util/editor.ts +++ b/packages/opencode/src/cli/cmd/tui/util/editor.ts @@ -17,17 +17,21 @@ export namespace Editor { await Filesystem.write(filepath, opts.value) opts.renderer.suspend() opts.renderer.currentRenderBuffer.clear() - const parts = editor.split(" ") - const proc = Process.spawn([...parts, filepath], { - stdin: "inherit", - stdout: "inherit", - stderr: "inherit", - }) - await proc.exited - const content = await Filesystem.readText(filepath) - opts.renderer.currentRenderBuffer.clear() - opts.renderer.resume() - opts.renderer.requestRender() - return content || undefined + try { + const parts = editor.split(" ") + const proc = Process.spawn([...parts, filepath], { + stdin: "inherit", + stdout: "inherit", + stderr: "inherit", + shell: process.platform === "win32", + }) + await proc.exited + const content = await Filesystem.readText(filepath) + return content || undefined + } finally { + opts.renderer.currentRenderBuffer.clear() + opts.renderer.resume() + opts.renderer.requestRender() + } } } diff --git a/packages/opencode/src/util/process.ts b/packages/opencode/src/util/process.ts index 049096937..9b37432c3 100644 --- a/packages/opencode/src/util/process.ts +++ b/packages/opencode/src/util/process.ts @@ -3,6 +3,7 @@ import { buffer } from "node:stream/consumers" export namespace Process { export type Stdio = "inherit" | "pipe" | "ignore" + export type Shell = boolean | string export interface Options { cwd?: string @@ -10,6 +11,7 @@ export namespace Process { stdin?: Stdio stdout?: Stdio stderr?: Stdio + shell?: Shell abort?: AbortSignal kill?: NodeJS.Signals | number timeout?: number @@ -60,6 +62,7 @@ export namespace Process { cwd: opts.cwd, env: opts.env === null ? {} : opts.env ? { ...process.env, ...opts.env } : undefined, stdio: [opts.stdin ?? "ignore", opts.stdout ?? "ignore", opts.stderr ?? "ignore"], + shell: opts.shell, windowsHide: process.platform === "win32", }) |
