Description
Please support wrap-around arrow-key navigation in the interactive task selector opened by vp run / vpr without a task name.
Currently, pressing Up on the first task leaves the selection on the first task, and pressing Down on the last task leaves it on the last task. nr from @antfu/ni already allows moving directly between the first and last entries this way. Matching that behavior would make it quicker to reach tasks near the end of a long list and preserve familiar keyboard navigation when switching from nr to vpr.
I intend to submit a small implementation PR to the shared vt_select component in voidzero-dev/vite-task and link it here.
Suggested solution
- Up on the first selectable task selects the last selectable task.
- Down on the last selectable task selects the first selectable task.
- Wrap within the current search results, not the unfiltered list.
- Skip non-selectable workspace/group headings and scroll the newly selected task into view.
- Empty results and a single result remain safe no-ops.
Reproduction
Create a directory containing only this package.json (no dependency installation is needed):
{
"name": "task-picker-wrap-repro",
"private": true,
"scripts": {
"alpha": "echo alpha",
"beta": "echo beta",
"gamma": "echo gamma"
}
}
- Run
vpr (or vp run) in an interactive terminal.
- With
alpha highlighted, press Up. It remains on alpha; the requested behavior is to select gamma.
- Press Down until
gamma is highlighted, then press Down once more. It remains on gamma; the requested behavior is to select alpha.
- Press Ctrl+C to exit without running a task.
Alternative
Repeated arrow presses or typing a search query work, but require more input than wrapping directly at the list boundary.
Additional context
Reproduced with Vite+ 0.3.1 on Linux x86_64 in a real pseudo-terminal. The comparison command is @antfu/ni 30.5.0.
The boundary checks are in State::move_up and State::move_down in vt_select. This request concerns the vp run task selector, not Vite, Vitest, tsdown, Rolldown, or Oxc.
Validations
Description
Please support wrap-around arrow-key navigation in the interactive task selector opened by
vp run/vprwithout a task name.Currently, pressing Up on the first task leaves the selection on the first task, and pressing Down on the last task leaves it on the last task.
nrfrom@antfu/nialready allows moving directly between the first and last entries this way. Matching that behavior would make it quicker to reach tasks near the end of a long list and preserve familiar keyboard navigation when switching fromnrtovpr.I intend to submit a small implementation PR to the shared
vt_selectcomponent invoidzero-dev/vite-taskand link it here.Suggested solution
Reproduction
Create a directory containing only this
package.json(no dependency installation is needed):{ "name": "task-picker-wrap-repro", "private": true, "scripts": { "alpha": "echo alpha", "beta": "echo beta", "gamma": "echo gamma" } }vpr(orvp run) in an interactive terminal.alphahighlighted, press Up. It remains onalpha; the requested behavior is to selectgamma.gammais highlighted, then press Down once more. It remains ongamma; the requested behavior is to selectalpha.Alternative
Repeated arrow presses or typing a search query work, but require more input than wrapping directly at the list boundary.
Additional context
Reproduced with Vite+
0.3.1on Linux x86_64 in a real pseudo-terminal. The comparison command is@antfu/ni30.5.0.The boundary checks are in
State::move_upandState::move_downinvt_select. This request concerns thevp runtask selector, not Vite, Vitest, tsdown, Rolldown, or Oxc.Validations
vite-plusandvite-taskand did not find the same request.