Part of #326 (umbrella). Effort: Medium (~1.5–2 days) · Risk: Medium (count-prefix state machine) · Depends on: Issue B (operates on the filtered list).
Add fast keyboard movement over the (now filterable) test list and any cursor widget.
Design
Extend VimNavMixin (rbx/box/ui/vim_nav.py, mixed into rbxBaseApp) with:
Ctrl-D / Ctrl-U — half-page down/up.
PageDown / PageUp — full page (where not already provided by the widget).
- Vim count prefixes: typing
5j moves down 5. Needs a small pending-count state in the mixin, reset on any non-digit / on timeout / on motion. This is the trickiest part and the main risk — it must not interfere with the ? help toggle, the / search, or digit input inside Input/TextArea (the mixin already disables itself there via check_action).
Jumps must skip disabled rows (group headers) and dividers so a "down 5" lands on the 5th real test, consistent with goto in Issue B. Surface the new bindings in the help panel under the existing Global group.
Tests
- Count prefix:
5j moves 5, G/gg honored, non-digit resets the count.
- Half-page / page jumps clamp at list ends and skip headers/dividers.
- Count state does not leak into
Input/TextArea typing.
Design: docs/plans/2026-06-08-rbx-ui-qol-design.md.
Part of #326 (umbrella). Effort: Medium (~1.5–2 days) · Risk: Medium (count-prefix state machine) · Depends on: Issue B (operates on the filtered list).
Add fast keyboard movement over the (now filterable) test list and any cursor widget.
Design
Extend
VimNavMixin(rbx/box/ui/vim_nav.py, mixed intorbxBaseApp) with:Ctrl-D/Ctrl-U— half-page down/up.PageDown/PageUp— full page (where not already provided by the widget).5jmoves down 5. Needs a small pending-count state in the mixin, reset on any non-digit / on timeout / on motion. This is the trickiest part and the main risk — it must not interfere with the?help toggle, the/search, or digit input insideInput/TextArea(the mixin already disables itself there viacheck_action).Jumps must skip disabled rows (group headers) and dividers so a "down 5" lands on the 5th real test, consistent with goto in Issue B. Surface the new bindings in the help panel under the existing
Globalgroup.Tests
5jmoves 5,G/gghonored, non-digit resets the count.Input/TextAreatyping.Design:
docs/plans/2026-06-08-rbx-ui-qol-design.md.