From 18814e06291471cd4bf5c335239cffa12f6ac486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Norman=20K=C3=B6hring?= Date: Mon, 11 Dec 2023 23:54:14 +0100 Subject: [PATCH] feat: better control of arrow keys --- .vitepress/theme/useTerminal.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.vitepress/theme/useTerminal.ts b/.vitepress/theme/useTerminal.ts index 0cfc845..ab873c7 100644 --- a/.vitepress/theme/useTerminal.ts +++ b/.vitepress/theme/useTerminal.ts @@ -32,6 +32,11 @@ export default function useTerminal(inputEl: HTMLTextAreaElement, commands: Simp inputEl.setSelectionRange(pos, pos) } + function cursorTouchesPrompt() { + const promptEnd = inputEl.value.lastIndexOf(prompt) + prompt.length + return inputEl.selectionStart === promptEnd + } + function setFocus() { inputEl.focus() } @@ -189,6 +194,15 @@ export default function useTerminal(inputEl: HTMLTextAreaElement, commands: Simp case 'Backspace': if (cursorAtPrompt()) ev.preventDefault() break + case 'ArrowUp': + // TODO: commandHistory(-1) + ev.preventDefault() + break + case 'ArrowLeft': + if (cursorTouchesPrompt()) ev.preventDefault() + break + default: + console.debug('key pressed:', ev.key, ev.keyCode) } }