Skip to content

Add a Files panel and read-only file tabs with diffs and highlighting - #2

Merged
KieranP merged 1 commit into
mainfrom
files-panel
Oct 17, 2026
Merged

KieranP merged 1 commit into
mainfrom
files-panel

Conversation

@KieranP

@KieranP KieranP commented Oct 16, 2026

Copy link
Copy Markdown
Owner

A worktree's changes could only be read as totals on its sidebar badge. The panel lists every file, ignored ones greyed, from one per-file list that every status read now produces, so the panel, the badge, its tooltip, the removal dialog and the command line count alike. A file opens read-only in a tab beside the terminals, its changes against HEAD drawn unified or split in a TextKit 2 view whose row geometry is forced, as plain TextKit 2 drifted split sides thousands of rows apart.

  • Highlight 22 languages through tree-sitter grammar packages, copying only the three scanners whose packages build without them
  • Save Unified or Split as one setting every tab follows, a file only added to or removed from staying Unified
  • Paint find matches with the line tints, which redraw as a search is typed where TextKit 2 rendering attributes did not
  • Keep a panel's listing while only counts move, and only for the worktree it shows
  • Report file tabs, with kind, path and isDeleted, in tabs list and tabs show, and their text in debug memory

What this does

What I ran

  • make format
  • make lint
  • make test
  • make build

What I could not verify:

Docs

  • A design note under Docs/design/ if this changes a decision, or the
    reason it does not need one.
  • An entry in BUGS.md if this leaves a gap rather than closing it, tagged
    [Unconfirmed] if nobody has watched it go either way.

@KieranP KieranP self-assigned this Oct 16, 2026
@KieranP
KieranP force-pushed the files-panel branch 4 times, most recently from 4387bdf to 573f848 Compare October 17, 2026 03:47
A worktree's changes could only be read as totals on its sidebar badge.
The panel lists every file, and a file opens read-only in a tab beside
the terminals, its changes against HEAD drawn unified or split.

- Highlight 22 languages through tree-sitter, and mark the words a
  changed line changed, as GitHub does
- Give file tabs their own font and size, and the UI its own font
- Keep each tab's scroll position, Unified or Split, and the panel's All
  or Modified choice across relaunches
- Drop a hidden tab's rows and layout, reading the file again when the
  tab is shown, so only the tab on screen holds its text

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@KieranP
KieranP merged commit afee009 into main Oct 17, 2026
4 checks passed
@KieranP
KieranP deleted the files-panel branch October 17, 2026 03:49
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.

1 participant