From 0ba1081cf1a1cadaedb56f9e2731941c65288b07 Mon Sep 17 00:00:00 2001 From: James Long Date: Tue, 26 May 2026 16:53:13 -0400 Subject: [PATCH] fix(tui): accelerate diff viewer scrolling (#29453) --- .../src/cli/cmd/tui/feature-plugins/system/diff-viewer.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/opencode/src/cli/cmd/tui/feature-plugins/system/diff-viewer.tsx b/packages/opencode/src/cli/cmd/tui/feature-plugins/system/diff-viewer.tsx index 924bbd7eb3..614408bcec 100644 --- a/packages/opencode/src/cli/cmd/tui/feature-plugins/system/diff-viewer.tsx +++ b/packages/opencode/src/cli/cmd/tui/feature-plugins/system/diff-viewer.tsx @@ -11,6 +11,7 @@ import { createEffect, createMemo, createResource, createSignal, For, Match, onC import { DiffViewerFileTree } from "./diff-viewer-file-tree" import { Panel, PanelGroup, Separator } from "./diff-viewer-ui" import { DialogSelect } from "@tui/ui/dialog-select" +import { getScrollAcceleration } from "@tui/util/scroll" import { allExpandedFileTreeDirectories, buildFileTree, @@ -133,6 +134,7 @@ function DiffViewer(props: { api: TuiPluginApi }) { const [activePatchFileIndex, setActivePatchFileIndex] = createSignal() const [selectedFileIndex, setSelectedFileIndex] = createSignal() const [reviewedFileNames, setReviewedFileNames] = createSignal>(new Set()) + const patchScrollAcceleration = createMemo(() => getScrollAcceleration(props.api.tuiConfig)) const fileRows = createMemo(() => flattenFileTree(fileTree(), expandedFileNodes())) const patchFileIndexes = createMemo(() => orderedPatchFileIndexes(flattenFileTree(fileTree()))) const focusRunner = (input: Record void>) => () => input[focus()]() @@ -713,6 +715,7 @@ function DiffViewer(props: { api: TuiPluginApi }) { ref={(element: ScrollBoxRenderable) => (scroll = element)} flexGrow={1} minHeight={0} + scrollAcceleration={patchScrollAcceleration()} verticalScrollbarOptions={{ visible: false }} horizontalScrollbarOptions={{ visible: false }} >