Compare commits
2 Commits
4a8395abb6
...
abce8b65cd
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
abce8b65cd | ||
|
|
3d7175006e |
@@ -95,14 +95,21 @@ function onKeydown(e: KeyboardEvent) {
|
|||||||
if (e.key !== 'Escape') justEscaped = false
|
if (e.key !== 'Escape') justEscaped = false
|
||||||
const ctx = completion.value
|
const ctx = completion.value
|
||||||
if (!ctx) return
|
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) {
|
switch (e.key) {
|
||||||
case 'ArrowDown':
|
case 'ArrowDown':
|
||||||
e.preventDefault()
|
move(1)
|
||||||
selected.value = (selected.value + 1) % ctx.items.length
|
|
||||||
break
|
break
|
||||||
case 'ArrowUp':
|
case 'ArrowUp':
|
||||||
e.preventDefault()
|
move(-1)
|
||||||
selected.value = (selected.value - 1 + ctx.items.length) % ctx.items.length
|
|
||||||
break
|
break
|
||||||
case 'Enter':
|
case 'Enter':
|
||||||
case 'Tab':
|
case 'Tab':
|
||||||
@@ -258,8 +265,8 @@ function syncScroll() {
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0.25rem;
|
padding: 0.25rem;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
min-width: 13rem;
|
min-width: 16rem;
|
||||||
max-width: 22rem;
|
max-width: 30rem;
|
||||||
max-height: 14rem;
|
max-height: 14rem;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
background: var(--color-base-100);
|
background: var(--color-base-100);
|
||||||
|
|||||||
Reference in New Issue
Block a user