From 06eecc5a6dc584ad3ba1102adfbb06cbe16653b9 Mon Sep 17 00:00:00 2001 From: Simon Klee Date: Wed, 3 Jun 2026 11:54:24 +0200 Subject: [PATCH] tui: truncate sidebar file paths (#30531) --- .../src/cli/cmd/tui/feature-plugins/sidebar/files.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/cli/cmd/tui/feature-plugins/sidebar/files.tsx b/packages/opencode/src/cli/cmd/tui/feature-plugins/sidebar/files.tsx index 8951bdcab..5fd5f322b 100644 --- a/packages/opencode/src/cli/cmd/tui/feature-plugins/sidebar/files.tsx +++ b/packages/opencode/src/cli/cmd/tui/feature-plugins/sidebar/files.tsx @@ -1,9 +1,16 @@ import type { TuiPlugin, TuiPluginApi } from "@opencode-ai/plugin/tui" import type { InternalTuiPlugin } from "../../plugin/internal" import { createMemo, For, Show, createSignal } from "solid-js" +import { Locale } from "@/util/locale" const id = "internal:sidebar-files" +function changeCountWidth(item: { additions: number; deletions: number }) { + return [item.additions ? `+${item.additions}` : "", item.deletions ? `-${item.deletions}` : ""] + .filter(Boolean) + .join(" ").length +} + function View(props: { api: TuiPluginApi; session_id: string }) { const [open, setOpen] = createSignal(true) const theme = () => props.api.theme.current @@ -25,7 +32,7 @@ function View(props: { api: TuiPluginApi; session_id: string }) { {(item) => ( - {item.file} + {Locale.truncateLeft(item.file, Math.max(2, 36 - changeCountWidth(item)))}