Merge pull request #315 from mitsuhiko/model-switcher

Reverse model switching and binding for dialog
This commit is contained in:
Mario Zechner 2025-12-25 18:33:42 +01:00 committed by GitHub
commit 4edfff41a7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 57 additions and 12 deletions

View file

@ -36,6 +36,7 @@ export {
isCtrlE,
isCtrlG,
isCtrlK,
isCtrlL,
isCtrlLeft,
isCtrlO,
isCtrlP,
@ -49,6 +50,7 @@ export {
isEnter,
isEscape,
isHome,
isShiftCtrlP,
isShiftEnter,
isShiftTab,
isTab,

View file

@ -30,6 +30,7 @@ const CODEPOINTS = {
e: 101,
g: 103,
k: 107,
l: 108,
o: 111,
p: 112,
t: 116,
@ -164,6 +165,7 @@ export const Keys = {
CTRL_E: kittySequence(CODEPOINTS.e, MODIFIERS.ctrl),
CTRL_G: kittySequence(CODEPOINTS.g, MODIFIERS.ctrl),
CTRL_K: kittySequence(CODEPOINTS.k, MODIFIERS.ctrl),
CTRL_L: kittySequence(CODEPOINTS.l, MODIFIERS.ctrl),
CTRL_O: kittySequence(CODEPOINTS.o, MODIFIERS.ctrl),
CTRL_P: kittySequence(CODEPOINTS.p, MODIFIERS.ctrl),
CTRL_T: kittySequence(CODEPOINTS.t, MODIFIERS.ctrl),
@ -220,6 +222,7 @@ const RAW = {
CTRL_E: "\x05",
CTRL_G: "\x07",
CTRL_K: "\x0b",
CTRL_L: "\x0c",
CTRL_O: "\x0f",
CTRL_P: "\x10",
CTRL_T: "\x14",
@ -285,6 +288,14 @@ export function isCtrlK(data: string): boolean {
);
}
/**
* Check if input matches Ctrl+L (raw byte or Kitty protocol).
* Ignores lock key bits.
*/
export function isCtrlL(data: string): boolean {
return data === RAW.CTRL_L || data === Keys.CTRL_L || matchesKittySequence(data, CODEPOINTS.l, MODIFIERS.ctrl);
}
/**
* Check if input matches Ctrl+O (raw byte or Kitty protocol).
* Ignores lock key bits.
@ -301,6 +312,14 @@ export function isCtrlP(data: string): boolean {
return data === RAW.CTRL_P || data === Keys.CTRL_P || matchesKittySequence(data, CODEPOINTS.p, MODIFIERS.ctrl);
}
/**
* Check if input matches Shift+Ctrl+P (Kitty protocol only).
* Ignores lock key bits.
*/
export function isShiftCtrlP(data: string): boolean {
return matchesKittySequence(data, CODEPOINTS.p, MODIFIERS.shift + MODIFIERS.ctrl);
}
/**
* Check if input matches Ctrl+T (raw byte or Kitty protocol).
* Ignores lock key bits.