Support wrap-around arrow-key navigation in the vp run / vpr task selector
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 76/100
Research direction
Start in crates/vt_select/src/interactive.rs at State::move_up and State::move_down, then run the provided vpr or vp run reproduction with the sample package.json. Done means Up and Down wrap within filtered selectable tasks, skip headings, scroll the new selection into view, and remain safe for empty or single-result lists.
Written by the indexing model from the issue text.
Description
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(orvp run) in an interactive terminal. - With
alphahighlighted, press Up. It remains onalpha; the requested behavior is to selectgamma. - Press Down until
gammais highlighted, then press Down once more. It remains ongamma; the requested behavior is to selectalpha. - 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
- Read the contributing guidelines.
- Searched existing issues and PRs in both
vite-plusandvite-taskand did not find the same request. - This concerns the Vite+ task-selection workflow.
- Dominant language
- Rust
- Stars
- 6k
- Forks
- 271
- Avg merge
- 19h 23m
- Merged PRs (30d)
- 139
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from voidzero-dev/vite-plus
-
pending triage
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
voidzero-dev/vite-plus#2882 · 2 comments ·
Maintainers usually reply within 1 day
-
documentation pending triage
Difficulty 1/5 Under an hour Newbie friendliness 78/100
voidzero-dev/vite-plus#2875 · 2 comments ·
Maintainers usually reply within 1 day
-
`vite-plus/test/browser-playwright` types import `playwright`, which vite-plus does not declare, so provider options go unchecked under pnpmPossibly taken @liangmiQwQ claimed this 3 days ago. Openpending triage
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
voidzero-dev/vite-plus#2854 · 1 assignee ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
voidzero-dev/vite-plus#2849 ·
Maintainers usually reply within 1 day
-
`vp migrate` fails when there is no `package.json`Possibly taken @TheAlexLichter claimed this 10 days ago. Openpending triage
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
voidzero-dev/vite-plus#2801 · 1 reaction ·
Maintainers usually reply within 1 day
All issues in voidzero-dev/vite-plus
Similar issues
-
review-drift
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
oxidecomputer/hansei#14 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
rubys/roundhouse#444 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
install: root SSH tmpfiles.d drop-in is labeled etc_runtime_t instead of etc_tPossibly taken @andrewdunndev claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day