From 3d7175006e175d93a66477fb432e28b49763433f Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Fri, 19 Jun 2026 10:39:49 +0200 Subject: [PATCH] feat(editor): navigate completions with Ctrl+N/Ctrl+P --- src/components/PlanEditor.vue | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/components/PlanEditor.vue b/src/components/PlanEditor.vue index 18242a7..47bb0f4 100644 --- a/src/components/PlanEditor.vue +++ b/src/components/PlanEditor.vue @@ -95,14 +95,21 @@ function onKeydown(e: KeyboardEvent) { if (e.key !== 'Escape') justEscaped = false const ctx = completion.value if (!ctx) return + const move = (delta: number) => { + e.preventDefault() + selected.value = (selected.value + delta + ctx.items.length) % ctx.items.length + } + // Ctrl+N / Ctrl+P mirror ArrowDown / ArrowUp (readline-style navigation). + if (e.ctrlKey && (e.key === 'n' || e.key === 'p')) { + move(e.key === 'n' ? 1 : -1) + return + } switch (e.key) { case 'ArrowDown': - e.preventDefault() - selected.value = (selected.value + 1) % ctx.items.length + move(1) break case 'ArrowUp': - e.preventDefault() - selected.value = (selected.value - 1 + ctx.items.length) % ctx.items.length + move(-1) break case 'Enter': case 'Tab':