Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Support wrap-around arrow-key navigation in the vp run / vpr task selector

Aperta
#2,638 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
76/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
rust
Ambito
cli

Direzione di ricerca

Inizia in crates/vt_select/src/interactive.rs, in State::move_up e State::move_down, quindi esegui la riproduzione fornita con vpr o vp run usando il package.json di esempio. Il lavoro è completato quando Up e Down fanno il giro ciclico tra le attività selezionabili filtrate, saltano le intestazioni, scorrono la nuova selezione nella vista e rimangono sicuri per gli elenchi vuoti o con un solo risultato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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"
  }
}
  1. Run vpr (or vp run) in an interactive terminal.
  2. With alpha highlighted, press Up. It remains on alpha; the requested behavior is to select gamma.
  3. Press Down until gamma is highlighted, then press Down once more. It remains on gamma; the requested behavior is to select alpha.
  4. 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-plus and vite-task and did not find the same request.
  • This concerns the Vite+ task-selection workflow.
Lingua principale
Rust
Stelle
6k
Fork
274
Merge medio
1g 11h
PR unite (30g)
196

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di voidzero-dev/vite-plus

Tutte le issue di voidzero-dev/vite-plus

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.