Commit Graph

85 Commits

Author SHA1 Message Date
Valdemar Lorenzen 5b8f8c3f07 refactor: remove legacy review JSON migration 2026-10-16 18:52:59 +02:00
Valdemar Lorenzen 2259d61633 feat: anchor review comments to precise text ranges 2026-10-16 18:52:59 +02:00
Valdemar Lorenzen 9a24302b4e docs: plan precise text-range review anchors 2026-10-16 18:52:59 +02:00
Valdemar Lorenzen 2376a37e5d docs: specify SQLite-backed local review persistence 2026-10-16 18:52:58 +02:00
Valdemar Lorenzen 4cc0453344 fix: retain selections and float local review editors 2026-10-16 18:52:58 +02:00
Valdemar Lorenzen d67b874b87 fix: preserve Visual selections through command entry 2026-10-16 18:52:57 +02:00
Valdemar Lorenzen 0446ec86c7 feat: add local diff review workflow 2026-10-16 18:52:57 +02:00
Valdemar Lorenzen 930735c537 fix: distinguish Ctrl+I from Tab in comparisons 2026-10-16 18:52:57 +02:00
Valdemar Lorenzen 92e1e6e8fd docs: split local review UX from GitHub publishing 2026-10-16 18:52:57 +02:00
Valdemar Lorenzen a664b807b3 feat: show line change counts in diff tabs 2026-10-16 18:52:56 +02:00
Valdemar Lorenzen c689d9e782 fix: retain numbered declarations in reserved sticky rows 2026-10-16 18:52:56 +02:00
Valdemar Lorenzen 7b950210b8 fix: preserve visible declaration names under scope overlays 2026-10-16 18:52:55 +02:00
Valdemar Lorenzen d654522ad4 fix: hide clipped scope labels at the pane top 2026-10-16 18:52:55 +02:00
Valdemar Lorenzen 682427324d fix: overlay clipped scope labels without reflow 2026-10-16 18:52:54 +02:00
Valdemar Lorenzen e37fa509c9 feat: reuse fuzzy search in the file picker 2026-10-16 18:52:53 +02:00
Valdemar Lorenzen d1048df345 refactor: name configurable viewport scroll steps accurately 2026-10-16 18:52:53 +02:00
Valdemar Lorenzen 284ddd3713 feat: configure half-page viewport scroll distance 2026-10-16 18:52:52 +02:00
Valdemar Lorenzen 08fdf2bd0f feat: scroll viewport independently of the cursor 2026-10-16 18:52:50 +02:00
Valdemar Lorenzen 60a12110fa perf: bound diff label projection during caret scrolling
The label lag came from repeatedly projecting full viewports while walking backwards from the caret. Skip only candidates whose maximum possible source/wrap and label height cannot reach the target, then retain the original first-target search. Reuse already resolved scope contexts. The conservative bound preserves non-monotonic unified declaration visibility and independent sticky labels. Added regressions for split declaration-visibility ties and unified height changes; architecture updated. Verification: 10,176 differential projections matched; all 964 release tests pass; release binary built. Reduced repro p95: 3.9572ms -> 1.4467ms. Live 160x100 function-dense 360-key burst median catch-up: 22.895ms -> 9.611ms, with final cursor/viewport asserted. Full and no-dependency Clippy checks are blocked by existing repository warnings, including vendored Crossterm, blame, LSP, Markdown, syntax and existing TUI code. Temporary harnesses removed. No remote changes.
2026-10-16 18:52:50 +02:00
Valdemar Lorenzen c32d4a7590 feat: refresh diffs when selected jj bookmarks move 2026-10-16 18:52:49 +02:00
Valdemar Lorenzen 1a02502488 feat: mark fully checked collapsed diff folders 2026-10-16 18:52:48 +02:00
Valdemar Lorenzen a93afc7d16 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.
2026-10-16 18:52:48 +02:00
Valdemar Lorenzen a43094dda3 feat: show diff hunk scope labels
Show per-side Tree-sitter scope paths inline and as sticky continuation labels.
Keep presentation rows out of source coordinates, selections, and edits.

Verified: cargo test (949 passed), cargo build, and real PTY smoke covering
split/unified, wrapping, both split axes, sticky scrolling, live rename and undo.

Size exception: 549 implementation lines added plus deleted, excluding tests
and docs. Keep syntax extraction and coordinate-safe rendering together as one
working behavior.
2026-10-16 18:52:46 +02:00
Valdemar Lorenzen 16490942d6 fix: coalesce fragmented word-diff highlights 2026-10-16 18:52:45 +02:00
Valdemar Lorenzen 7b3b3866fd feat: add Vim-style word search 2026-10-15 12:12:11 +02:00
Valdemar Lorenzen 2fd240aca8 feat: add Zig syntax highlighting 2026-10-15 11:56:54 +02:00
Valdemar Lorenzen 08db1801eb fix: increase LSP hover window height 2026-10-15 11:53:07 +02:00
hl-valdemar 4aff22377f fix: focus After when opening a diff file 2026-10-14 21:47:23 +02:00
Valdemar Lorenzen a3aef713e2 feat: resolve current jj working-copy conflicts
Add a dedicated native resolver workspace with all side/base inputs,
shared editable Results, region choices, retained per-file status,
responsive rendering, and explicit nontext file choices.

Guard writes with jj working-copy locking, frozen checkout identity,
exact disk baselines, native dirty-buffer protection, and asynchronous
jj snapshot/status confirmation. Historical comparisons remain readonly.

Verified all 916 tests and live isolated terminal workflows covering text
regions, narrow layouts, binary bytes and symlink targets/types.
Clippy completes with pre-existing warnings only.

Size exception: 2614 implementation additions/deletions excluding tests
and docs. Native workspace integration, explicit file choices and the
safe save/check operation are retained as one complete behavioral slice.
2026-10-14 16:04:15 +02:00
Valdemar Lorenzen dcfa50319c fix: preserve lazy snapshots for conflicted jj revisions
Conflicted revisions read every file through jj file show, which returns
empty output for symlinks and causes repository-wide subprocess fanout.
Keep ordinary Git blob sources and immutable identities; render only
selected conflicted paths through jj.

Verified all 905 tests and the original local bookmark comparison with
25 correct paths in 0.522s, plus actual terminal conflict viewing.
Strict Clippy is blocked by existing diagnostics outside this change.
2026-10-14 15:49:26 +02:00
Valdemar Lorenzen f26237af78 perf: batch queued cursor navigation events 2026-10-14 15:32:52 +02:00
Valdemar Lorenzen 1cb9a0ddfc fix: retain repository status between picker openings 2026-10-14 14:56:55 +02:00
Valdemar Lorenzen 77a9111f45 fix: align diff picker review checkmarks 2026-10-14 14:36:15 +02:00
Valdemar Lorenzen 0000089f42 feat: stream newest pull requests by category 2026-10-14 14:26:22 +02:00
Valdemar Lorenzen af6496bd5a feat: browse GitHub GitLab and Gitea pull requests 2026-10-14 13:40:43 +02:00
Valdemar Lorenzen 5580d6fbd4 refactor: share language IDs with indentation configuration 2026-10-14 13:12:50 +02:00
Valdemar Lorenzen 6a43fb9e0c feat: configure spaces on Tab per language 2026-10-14 13:12:46 +02:00
hl-valdemar 86718221c4 docs: update todo and backup current config.rb 2026-10-14 00:27:54 +02:00
hl-valdemar 11b31d2621 feat: dim whitespace markers and configure scope and newlines 2026-10-13 23:33:42 +02:00
hl-valdemar 2357b5be46 feat: add configurable whitespace markers 2026-10-13 22:58:18 +02:00
hl-valdemar e2f33519d1 feat: add opt-in trailing whitespace highlighting 2026-10-13 22:53:32 +02:00
hl-valdemar b58fb085a3 feat: configure cursor distance from viewport edges 2026-10-13 22:42:23 +02:00
hl-valdemar 00628e0efd fix: stop hiding cached gutter markers while edits refresh 2026-10-13 22:10:03 +02:00
hl-valdemar 142b00118a fix: prioritize diagnostics over repository number colors 2026-10-13 21:54:10 +02:00
hl-valdemar 9526876b04 feat: show repository changes in normal file pickers 2026-10-13 21:46:53 +02:00
hl-valdemar 55cdee1a13 feat: add Git and Jujutsu gutter indicators 2026-10-13 20:46:44 +02:00
hl-valdemar e84d70463f feat: add counted word change actions
Add cw/cb and configurable core actions using the same line-local spans as dw/db. Enter Insert with grouped replacement undo and native dot repeat.
2026-10-13 17:43:13 +02:00
hl-valdemar 983f43e710 fix: keep counted word deletions within the current line
Word deletion reused cross-line word motion destinations. Constrain token traversal and boundary fallbacks to each caret’s current row while preserving cross-line navigation.
2026-10-13 17:35:09 +02:00
hl-valdemar 99fa5a2aff feat: track checkout identity for pinned diff editability 2026-10-13 17:28:59 +02:00
hl-valdemar e3e087f16f fix: use two columns between buffer IDs and filenames 2026-10-13 17:03:57 +02:00