mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-05-05 15:31:27 +00:00
feat: add support for printable CSI-u keys in KeypressContext
Add handling for printable CSI-u keys (including space) to ensure they behave like regular character input. This allows downstream text inputs to receive the literal character when using Kitty protocol. - Parse CSI-u space as space key with literal sequence - Parse CSI-u printable letters as literal input - Handle keyCode range 32-0x10ffff (excluding 127 DEL) Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
aefea076b0
commit
cdcdf85dcd
2 changed files with 64 additions and 0 deletions
|
|
@ -330,6 +330,36 @@ export function KeypressProvider({
|
|||
};
|
||||
}
|
||||
|
||||
// Printable CSI-u keys (including space) should behave like regular
|
||||
// character input so downstream text inputs receive the literal char.
|
||||
if (
|
||||
terminator === 'u' &&
|
||||
!ctrl &&
|
||||
keyCode >= 32 &&
|
||||
keyCode !== 127 &&
|
||||
keyCode <= 0x10ffff
|
||||
) {
|
||||
const char = String.fromCodePoint(keyCode);
|
||||
const printableName =
|
||||
char === ' '
|
||||
? 'space'
|
||||
: /^[A-Za-z]$/.test(char)
|
||||
? char.toLowerCase()
|
||||
: char;
|
||||
return {
|
||||
key: {
|
||||
name: printableName,
|
||||
ctrl: false,
|
||||
meta: alt,
|
||||
shift,
|
||||
paste: false,
|
||||
sequence: char,
|
||||
kittyProtocol: true,
|
||||
},
|
||||
length: m[0].length,
|
||||
};
|
||||
}
|
||||
|
||||
// Ctrl+letters
|
||||
if (
|
||||
ctrl &&
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue