fix: hide diff scope labels for visible declarations

The visible declaration already provides scope context. Cache the actual
identifier point separately from the declaration extent/decorators and hide
labels when it is visible in that side of the projected viewport.

Refill reclaimed rows and anchor carets against the resulting layout.
Retain sticky context when the symbol scrolls or wraps out of view.

Verified: 951 tests passed, cargo build, and real PTY smoke for declaration
visibility/scroll restoration, wrapping, horizontal clipping, unified view,
and short horizontal-pane caret reflow.
This commit is contained in:
Valdemar Lorenzen
2026-10-15 14:47:51 +02:00
parent 39fd3a669b
commit a93afc7d16
5 changed files with 228 additions and 99 deletions
+1 -1
View File
@@ -8,8 +8,8 @@
- [x] diff view: show the function/class context that a change hunk belongs to.
- inline scope labels with sticky continuation, chosen before implementation
- each side uses its own syntax tree; scope changes within a hunk get separate labels
- [ ] diff view: automatically detect changes and update the view when relevant bookmarks move change ids (regards bookmark-based diff view; i.e., user selected at least one bookmark in the before/after picker)
- [ ] diff view: annotate folder with checkmark if all items under given folder has been checked AND the folder is collapsed.
- [ ] diff view: automatically detect changes and update the view when relevant bookmarks move change ids (regards bookmark-based diff view; i.e., user selected at least one bookmark in the before/after picker)
- [ ] diff view: github integration (code review) - add comments on a pr, add review comments at specific lines of files, request changes, approve pr, etc.
- [ ] diff view: local review comments (same features as for github reviews) that allows review of local changes to deliver specific reviews to ai agents used for coding.
- design question: would this require a server that the agent can interact with, or would local review files be fine? don't want to use server client stuff, if it would be easier and better to just use local files.