From f2220ba1b0272de098efa87f5548e0cb69a8e80d Mon Sep 17 00:00:00 2001 From: koehr 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) } }