cmux/cmuxTests
Lawrence Chen 044a3dbb64
Vi mode: half-page scroll, visible cursor, gg fix (#851)
* Vi mode P0 improvements: half-page scroll, visible cursor, gg fix

Three changes to keyboard copy mode (vi mode):

1. Ctrl+U/D now scroll half-page (was full-page). Ctrl+B/F remain
   full-page. Uses Ghostty's scroll_page_fractional binding.

2. Entering copy mode now creates a 1-cell selection at the terminal
   cursor via select_cursor_cell, giving the user a visible cursor
   indicator. Visual mode (v) is tracked separately from Ghostty's
   has_selection so the cursor selection doesn't make every motion
   behave as visual. Exiting visual mode (v again) collapses back
   to the cursor cell.

3. Single 'g' is now a prefix key requiring 'gg' to scroll to top,
   matching standard vim behavior. Uses the same pendingG state
   machine pattern as pendingYankLine for 'yy'.

Part of https://github.com/manaflow-ai/cmux/issues/846

* Fix viewport row refresh with persistent cursor selection

The 1-cell cursor selection made refreshKeyboardCopyModeViewportRowFromVisibleAnchor
always bail (has_selection was always true). Guard on keyboardCopyModeVisualActive
instead so viewport row updates work after scrolling in non-visual mode. Also
re-creates the cursor cell after refresh to preserve visibility.

Additionally: use performBindingAction(_:repeatCount:) for scrollHalfPage,
add state-reset assertion to testGGWithSelectionAdjustsToHome.

Addresses review feedback from CodeRabbit, Cubic, Codex, and Greptile.
2026-03-03 23:56:01 -08:00
..
AppDelegateShortcutRoutingTests.swift Add keyboard copy mode for terminal scrollback (#792) 2026-03-03 19:01:21 -08:00
CJKIMEInputTests.swift Fix Shift+backquote input regression in Ghostty key path (#815) 2026-03-03 15:57:36 -08:00
CmuxWebViewKeyEquivalentTests.swift Vi mode: half-page scroll, visible cursor, gg fix (#851) 2026-03-03 23:56:01 -08:00
GhosttyConfigTests.swift Fix Ghostty theme loading in debug builds (#830) 2026-03-03 19:14:55 -08:00
SessionPersistenceTests.swift Reduce unchanged autosave snapshot churn 2026-02-25 16:28:09 -08:00
SocketControlPasswordStoreTests.swift Add command palette entries to install/uninstall cmux CLI in PATH (#626) 2026-02-27 01:53:13 -08:00
UpdatePillReleaseVisibilityTests.swift Fix notification bell hover crash by conditionally tracking hover (#574) 2026-02-26 14:26:28 -08:00
WorkspaceContentViewVisibilityTests.swift Fix tab drag blank state and preserve non-custom titles across window drops 2026-02-24 14:36:12 -08:00
WorkspaceManualUnreadTests.swift Add command palette (Cmd+Shift+P) (#358) 2026-02-23 03:26:36 -08:00