mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-10 22:21:22 -07:00
Improve keyboard code parsing (#13307)
This commit is contained in:
committed by
GitHub
parent
36b0a86c69
commit
b916d79fe2
@@ -406,6 +406,7 @@ describe('KeypressContext', () => {
|
||||
describe('Parameterized functional keys', () => {
|
||||
it.each([
|
||||
// Parameterized
|
||||
{ sequence: `\x1b[1;129A`, expected: { name: 'up' } },
|
||||
{ sequence: `\x1b[1;2H`, expected: { name: 'home', shift: true } },
|
||||
{ sequence: `\x1b[1;5F`, expected: { name: 'end', ctrl: true } },
|
||||
{ sequence: `\x1b[1;1P`, expected: { name: 'f1' } },
|
||||
@@ -449,6 +450,10 @@ describe('KeypressContext', () => {
|
||||
sequence: `\x1b[F`,
|
||||
expected: { name: 'end', ctrl: false, meta: false, shift: false },
|
||||
},
|
||||
{
|
||||
sequence: `\x1b[5H`,
|
||||
expected: { name: 'home', ctrl: true, meta: false, shift: false },
|
||||
},
|
||||
])(
|
||||
'should recognize sequence "$sequence" as $expected.name',
|
||||
({ sequence, expected }) => {
|
||||
|
||||
@@ -405,9 +405,9 @@ function* emitKeys(
|
||||
code += match[1] + match[3];
|
||||
// Defaults to '1' if no modifier exists, resulting in a 0 modifier value
|
||||
modifier = parseInt(match[2] ?? '1', 10) - 1;
|
||||
} else if ((match = /^((\d;)?(\d))?([A-Za-z])$/.exec(cmd))) {
|
||||
code += match[4];
|
||||
modifier = parseInt(match[3] ?? '1', 10) - 1;
|
||||
} else if ((match = /^(\d+)?(?:;(\d+))?([A-Za-z])$/.exec(cmd))) {
|
||||
code += match[3];
|
||||
modifier = parseInt(match[2] ?? match[1] ?? '1', 10) - 1;
|
||||
} else {
|
||||
code += cmd;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user