diff options
| author | Ariane Emory <[email protected]> | 2025-11-26 00:34:58 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-11-25 23:34:58 -0600 |
| commit | 57644a4be8bdf65eb0563724a16ae384720459c6 (patch) | |
| tree | 41969e0aa54cb7478dae030df354ffe4f80f63ee | |
| parent | da2099137a12a20bdaa5c37989613e69c38518bc (diff) | |
| download | opencode-57644a4be8bdf65eb0563724a16ae384720459c6.tar.gz opencode-57644a4be8bdf65eb0563724a16ae384720459c6.zip | |
feat: add a diff_style option to allow disabling columnar diffs (resolve #4677) (#4756)
Co-authored-by: Dax Raad <[email protected]>
Co-authored-by: GitHub Action <[email protected]>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <[email protected]>
| -rw-r--r-- | packages/opencode/src/cli/cmd/tui/routes/session/index.tsx | 9 | ||||
| -rw-r--r-- | packages/opencode/src/config/config.ts | 4 | ||||
| -rw-r--r-- | packages/sdk/js/src/gen/types.gen.ts | 4 |
3 files changed, 16 insertions, 1 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx index 74874f669..c0d173421 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -80,6 +80,7 @@ const context = createContext<{ conceal: () => boolean showThinking: () => boolean showTimestamps: () => boolean + sync: ReturnType<typeof useSync> }>() function use() { @@ -732,6 +733,7 @@ export function Session() { conceal, showThinking, showTimestamps, + sync, }} > <box flexDirection="row" paddingBottom={1} paddingTop={1} paddingLeft={2} paddingRight={2} gap={2}> @@ -1482,7 +1484,12 @@ ToolRegistry.register<typeof EditTool>({ const ctx = use() const { theme, syntax } = useTheme() - const style = createMemo(() => (ctx.width > 120 ? "split" : "stacked")) + const style = createMemo(() => { + const diffStyle = ctx.sync.data.config.tui?.diff_style + if (diffStyle === "stacked") return "stacked" + // Default to "auto" behavior + return ctx.width > 120 ? "split" : "stacked" + }) const diff = createMemo(() => { const diff = props.metadata.diff ?? props.permission["diff"] diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index 0ea0e8fa2..383a47566 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -456,6 +456,10 @@ export namespace Config { }) .optional() .describe("Scroll acceleration settings"), + diff_style: z + .enum(["auto", "stacked"]) + .optional() + .describe("Control diff rendering style: 'auto' adapts to terminal width, 'stacked' always shows single column"), }) export const Layout = z.enum(["auto", "stretch"]).meta({ diff --git a/packages/sdk/js/src/gen/types.gen.ts b/packages/sdk/js/src/gen/types.gen.ts index 7e211148f..4ec6b15df 100644 --- a/packages/sdk/js/src/gen/types.gen.ts +++ b/packages/sdk/js/src/gen/types.gen.ts @@ -1003,6 +1003,10 @@ export type Config = { */ enabled: boolean } + /** + * Control diff rendering style: 'auto' adapts to terminal width, 'stacked' always shows single column + */ + diff_style?: "auto" | "stacked" } /** * Command configuration, see https://opencode.ai/docs/commands |
