Skip to content

rbx ui: faster navigation (half-page, page, vim count prefixes) #549

@rsalesc

Description

@rsalesc

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions