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

Keymap conflicts with CodeMirror and Glide built-in keys; shortcut handling minors

Aperta
#41 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
react, rust, tauri, typescript
Ambito
desktop, devtools

Direzione di ricerca

Start with src/lib/shortcuts.ts and src/lib/keymap*.ts to trace modifier parsing and conflict checks, then inspect the named palette and tab switcher files and the linked follow-up plans for scope. Add or update focused tests for the listed shortcut and palette cases; done means the acceptance criteria pass, with Rust checks required if Rust files change.

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

Descrizione

area:frontend size:M status:ready type:task

Context

conflictFor ignores CodeMirror's built-in keys (Mod+F, Mod+Z, Mod+D...) and Glide's own keys (Ctrl+C / Ctrl+A). A custom binding wins (Prec.highest / capture), so nothing breaks silently, but the built-in stops working with no warning. Related shortcut and command palette minors from plan 4 are grouped here.

To do

  • Add the built-in editor and grid keys to the conflict check, and warn (or refuse) in the Keyboard section of Settings when a binding shadows one.
  • shortcuts.ts silently ignores unknown modifier names (typo Cmd+K is read as K): reject them.
  • Auto-repeat Ctrl+Tab while the switcher is open falls through without preventDefault; add tests for switcher blur-cancel, empty-MRU positional close fallback and a modal opening mid-hold.
  • useShortcut assigns a ref during render; Mod+T / Mod+W tests check counts only.
  • Palette: scorer lacks a word-boundary bonus and space/underscore normalization (user acc does not match user_account); fuzzy.ts has no unit test; actions are filtered but not ranked; Enter-key selection and slow sub-list overwrite are untested; unused strings.palette.loadSubFailed; databases-list error shown raw; split CommandPalette (re-renders on every workspaces change while closed).

Acceptance criteria

  • Binding Mod+F in the editor scope shows a conflict with the built-in find.
  • Unknown modifier names are rejected with a message.
  • Fuzzy scorer has unit tests including user acc vs user_account.
  • pnpm test && pnpm lint green (plus cargo clippy --all-targets -- -D warnings and pnpm test:rust when Rust changes)

Likely files touched

  • src/lib/shortcuts.ts, src/lib/keymap*.ts
  • src/features/settings/ (Keyboard section)
  • src/features/palette/ (fuzzy.ts, CommandPalette.tsx)
  • src/features/workspace/TabSwitcher.tsx

Linked docs

  • docs/notes/plan-05-followups.md ("Open" under Task 6 Phase B)
  • docs/notes/plan-04-followups.md (Task 3 and Task 6 minors)
Lingua principale
TypeScript
Stelle
0
Fork
0
Merge medio
1h 2m
PR unite (30g)
41

Preparare l'ambiente

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 Cemoche/tablemax

Tutte le issue di Cemoche/tablemax

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.