diff --git a/src/ink/parse-keypress.ts b/src/ink/parse-keypress.ts index a54c8a9..a7e43ad 100644 --- a/src/ink/parse-keypress.ts +++ b/src/ink/parse-keypress.ts @@ -210,10 +210,6 @@ function inputToString(input: Buffer | string): string { } } -function splitTextToken(value: string): string[] { - return value.match(/\r\n|[\r\n]|[^\r\n]+/g) ?? [] -} - export function parseMultipleKeypresses( prevState: KeyParseState, input: Buffer | string | null = '', @@ -282,9 +278,7 @@ export function parseMultipleKeypresses( const mouse = parseMouseEvent(resynthesized) keys.push(mouse ?? parseKeypress(resynthesized)) } else { - for (const chunk of splitTextToken(token.value)) { - keys.push(parseKeypress(chunk)) - } + keys.push(parseKeypress(token.value)) } } } @@ -704,9 +698,11 @@ function parseKeypress(s: string = ''): ParsedKey { return createNavKey(s, 'mouse', false) } - if (s === '\r' || s === '\n' || s === '\r\n') { + if (s === '\r') { key.raw = undefined key.name = 'return' + } else if (s === '\n') { + key.name = 'enter' } else if (s === '\t') { key.name = 'tab' } else if (s === '\b' || s === '\x1b\b') {