Commit Graph

100 Commits

Author SHA1 Message Date
hl-valdemar a5f92452b3 feat: run shell commands asynchronously from command mode 2026-10-18 00:38:37 +02:00
hl-valdemar f942f881e6 fix: document config-local Ruby lint policy 2026-10-18 00:30:02 +02:00
hl-valdemar 5d75964ee2 feat: cycle command completions with Tab 2026-10-17 18:20:04 +02:00
hl-valdemar 5697a08c0a feat: navigate command and search input history 2026-10-17 01:56:02 +02:00
hl-valdemar 2cb3736b92 fix: save review comments only on explicit write 2026-10-17 01:50:22 +02:00
hl-valdemar e9a757adc5 feat: wrap diff review comments by default 2026-10-17 01:36:41 +02:00
hl-valdemar d8be35e3bd fix: route normal-mode cuts through clipboard pipeline 2026-10-17 00:50:00 +02:00
hl-valdemar b9f29d258c fix: support large files in comparisons
Replace the 16 MiB comparison rejection with independent bounded per-side loading and frozen Working blobs. Bound diff computation, defer large inline highlighting, index source-row navigation, and expose actual load failures. Verified the real 52.3 MB parser through repository/session APIs and terminal rendering with EOF/start navigation.
2026-10-17 00:46:15 +02:00
hl-valdemar 02d1422a04 feat: add Honey syntax highlighting 2026-10-16 20:51:17 +02:00
Valdemar Lorenzen 53c37e6209 docs: keep Rust tests under tests directory 2026-10-16 18:53:02 +02:00
Valdemar Lorenzen 2772e6878a refactor: move embedded tests into dedicated test directory 2026-10-16 18:53:02 +02:00
Valdemar Lorenzen de6a57e67d feat: add configurable three-pane conflict views 2026-10-16 18:53:01 +02:00
Valdemar Lorenzen a6310594c5 feat: expose read-only local review CLI 2026-10-16 18:53:01 +02:00
Valdemar Lorenzen b558f82094 feat: persist local reviews automatically in SQLite 2026-10-16 18:53:01 +02:00
Valdemar Lorenzen 0c7abc17fe docs: establish pre-alpha clean-cutover policy 2026-10-16 18:53:00 +02:00
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