Commit Graph

139 Commits

Author SHA1 Message Date
Valdemar Lorenzen 1df9e66cd5 fix: retain semantic colors across editable diff updates 2026-10-16 18:52:50 +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 39fd3a669b fix: avoid repeated scope labels within diff excerpts
Compare each side with its preceding source row within the same excerpt,
not the adjacent aligned pair: alignment holes must not restart labels.
Retain sticky context independently on each side, including leading holes.

Regression: merged Python insert/delete hunks emitted five labels instead
of one. Verify deduplication, folded excerpt restart, and sticky-gap context.

Verified: cargo test (950 passed), cargo build, and real PTY smoke covering
split/unified, wrap, sticky gaps, and a short horizontal pane source caret.
2026-10-16 18:52:47 +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 de62467208 fix: highlight all search matches before word navigation 2026-10-15 12:16:14 +02:00
Valdemar Lorenzen 08db1801eb fix: increase LSP hover window height 2026-10-15 11:53:07 +02:00
Valdemar Lorenzen 5396968b08 fix: clarify conflict pane roles and status indicators
Use Resolution and Other version borders, omit branch/path metadata,
and show unsaved output state only on the writable pane. Track native
explorer conflict C from authoritative jj state across draft/check/error
transitions and clear it only after confirmed resolution.

Focused resolver and save tests pass; live terminal labels and explorer
verified without saving the mock conflicts. Full library run: 795 pass,
one unrelated async plugin fixture_barrier startup failure.
2026-10-15 11:19:50 +02:00
Valdemar Lorenzen 168e12160a refactor: route conflict resolution through the diff workspace
Use the active DiffState, native FilePicker and existing diff input,
layout, focus, source navigation and scrolling paths for Resolution.
Delete separate resolver filtering, file-list rendering and scroll APIs.
Keep projections, source choices, History and guarded jj saves distinct.

Verify native parity for picker remaps, current-file selection, excerpt
initialization, folded search, wheel focus, layouts, buffer transitions
and per-file viewports. All 932 tests pass; actual terminal smoke covers
Space-e explorer, Down/Enter file selection and guarded confirmed save.
Clippy completes with existing warnings only.

Size exception: 1197 implementation added/deleted lines excluding tests
and docs; input routing, native buffer lifecycle and rendering are kept
as one coherent cutover, without a parallel legacy resolver path.
2026-10-15 10:21:10 +02:00
hl-valdemar 4aff22377f fix: focus After when opening a diff file 2026-10-14 21:47:23 +02:00
Valdemar Lorenzen ef4c38d8a7 feat: resolve conflicts through focused two-way drafts
Replace the marker-filled three-pane resolver with a marker-free native
Draft versus frozen Alternative projected from current working text.
Preserve preexisting outside edits, native undo, dirty-save guards, all
sides/bases, and draft caret/viewports across separate History views.
Reuse DiffState alignment/highlighting/excerpts for Resolution and merge
its base-aligned rows for readonly three-way History. Hide explorer and
source-selector chrome by default.

Verified 926 tests plus actual terminal projection, History highlighting,
hunk choice, optional explorer, and guarded jj-confirmed save workflows.
Clippy completes with pre-existing warnings only. Smoke fixtures stay
unresolved in this ancestry; remove that ancestry before publication.

Size exception: approximately 1650 implementation added/deleted lines,
excluding tests/docs, kept coherent because native draft lifecycle and
aligned rendering must change together without parallel legacy modes.
2026-10-14 17:01:45 +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 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 5243de66fe fix: resolve SSH aliases for forge discovery 2026-10-14 13:51:49 +02:00
Valdemar Lorenzen af6496bd5a feat: browse GitHub GitLab and Gitea pull requests 2026-10-14 13:40:43 +02:00
Valdemar Lorenzen 15968a328c fix: preserve diff backgrounds and align file markers 2026-10-14 13:40:41 +02:00
hl-valdemar 11b31d2621 feat: dim whitespace markers and configure scope and newlines 2026-10-13 23:33:42 +02:00
hl-valdemar adcc4f2656 fix: preserve literal whitespace inside strings 2026-10-13 23:12:57 +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 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 e90d1c3945 fix: add spacing between line numbers and repository markers 2026-10-13 21:04:51 +02:00
hl-valdemar fd59c05f80 fix: separate gutter bars visually from line numbers 2026-10-13 20:50:50 +02:00
hl-valdemar 55cdee1a13 feat: add Git and Jujutsu gutter indicators 2026-10-13 20:46:44 +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
hl-valdemar 33942b2671 fix: place current buffer marker before its ID 2026-10-13 16:38:14 +02:00
hl-valdemar 0eec3fc3b9 fix: refine buffer picker markers and paths 2026-10-13 16:31:53 +02:00
hl-valdemar 9d6a0eaeca feat: align buffer picker with editor UI 2026-10-13 16:31:53 +02:00
Valdemar Lorenzen f5ba61624f feat: add a searchable buffer picker 2026-10-13 14:30:36 +02:00
Valdemar Lorenzen 38fcf86195 feat: mark diff files as reviewed 2026-10-13 13:16:57 +02:00
Valdemar Lorenzen c4f72a45ba fix: center LSP definition destinations in the viewport 2026-10-13 12:56:52 +02:00
Valdemar Lorenzen e36c28c981 perf: cache file attribution for instant blame navigation 2026-10-13 12:41:46 +02:00
Valdemar Lorenzen 7a3c27c30e feat: show current-line git blame by default 2026-10-13 12:29:21 +02:00
Valdemar Lorenzen 002f071b0f fix: lead the bottom position indicator with one margin column 2026-10-13 12:12:44 +02:00
Valdemar Lorenzen 9f33104cb2 feat: add bar element margins and space LSP indicators 2026-10-13 11:23:51 +02:00
Valdemar Lorenzen 8c5d218c11 fix: dim etched diff areas to match gutter text 2026-10-13 11:03:58 +02:00
Valdemar Lorenzen 6c254f9b0d feat: default diffs to branch changes 2026-10-13 10:48:24 +02:00
hl-valdemar d1855dbdb7 feat: add configurable diff modes and split orientation 2026-10-13 08:45:43 +02:00
hl-valdemar c35abe0f03 fix: retain alternate screen across executable restart 2026-10-12 23:40:51 +02:00
hl-valdemar bb5c247ab2 style: shorten default bar fade decorations 2026-10-12 22:21:19 +02:00
hl-valdemar 2260817fc0 feat: support macOS modified backspace deletion 2026-10-12 22:09:43 +02:00
Valdemar Lorenzen 1fd5f98256 feat: close focused docked file lists with pane actions 2026-10-12 16:17:50 +02:00
Valdemar Lorenzen 9f1ea04f4d style: move diff metadata into pane borders 2026-10-12 15:23:30 +02:00
Valdemar Lorenzen 054225686e fix: restore tab and diff context through jump history 2026-10-12 15:04:44 +02:00