Felipe Coury
1e85ca099e
Support two-stroke TUI key chords ( #36511 )
...
## What changed
- Accept two-stroke bindings such as `ctrl-x ctrl-s` in TUI keymap configuration while preserving arrays as alternative bindings.
- Route chords through the active TUI context, show pending and configured chord hints, and cancel pending chords on `esc`, context changes, or a one-second timeout.
- Extend `/keymap` to capture, add, replace, and display key chords.
- Reject chords that conflict with active single-key bindings, overlapping-context chords, or reserved terminal shortcuts.
## Testing
- Add coverage for chord parsing, validation, matching, timeout and cancellation behavior, context dispatch, key capture, and rendered shortcut hints.
GitOrigin-RevId: dfdede03f518d4936ad8621ebf5537026f2b282e
2026-08-01 17:43:03 +00:00
..
2026-07-29 13:53:15 +00:00
2026-07-23 19:19:35 +00:00
2026-07-21 22:44:43 +00:00
2026-07-31 20:34:41 +00:00
2026-07-29 13:53:15 +00:00
2026-08-01 01:17:26 +00:00
2026-08-01 00:38:10 +00:00
2026-07-21 08:50:21 +00:00
2026-08-01 01:17:26 +00:00
2026-07-30 19:47:30 +00:00
2026-08-01 00:38:10 +00:00
2026-07-29 18:29:26 +00:00
2026-07-22 02:19:45 +00:00
2026-07-21 08:59:41 +00:00
2026-07-30 21:49:53 +00:00
2026-07-23 01:00:35 +00:00
2026-07-31 18:26:04 +00:00
2026-07-30 21:49:53 +00:00
2026-07-29 14:01:31 +00:00
2026-07-21 08:28:51 +00:00
2026-07-30 20:24:29 +00:00
2026-07-30 20:24:29 +00:00
2026-07-30 20:24:29 +00:00
2026-07-31 18:32:28 +00:00
2026-08-01 01:17:26 +00:00
2026-07-30 21:49:53 +00:00
2026-07-31 17:18:08 +00:00
2026-08-01 17:43:03 +00:00
2026-07-23 01:00:35 +00:00
2026-07-26 23:36:33 +00:00
2026-08-01 17:43:03 +00:00
2026-07-31 20:17:25 +00:00
2026-08-01 14:42:11 +00:00
2026-07-31 17:12:10 +00:00
2026-07-31 18:26:04 +00:00
2026-08-01 06:02:48 +00:00
2026-07-30 19:23:33 +00:00
2026-07-20 06:13:29 +00:00
2026-07-31 17:12:10 +00:00
2026-07-31 16:40:53 +00:00
2026-07-30 20:24:29 +00:00
2026-07-28 17:51:37 +00:00
2026-07-31 21:37:56 +00:00
2026-07-23 23:35:29 +00:00
2026-07-22 02:19:45 +00:00
2026-07-27 18:07:31 +00:00
2026-07-28 19:58:25 +00:00
2026-07-31 04:20:56 +00:00
2026-07-27 18:07:31 +00:00
2026-07-22 04:17:34 +00:00
2026-07-30 21:49:53 +00:00
2026-07-31 14:40:40 +00:00
2026-07-30 11:52:38 +00:00
2026-07-17 20:52:42 +00:00
2026-07-23 19:32:26 +00:00
2026-07-23 00:02:15 +00:00
2026-07-31 15:40:52 +00:00
2026-07-27 18:07:31 +00:00
2026-07-30 04:26:36 +00:00
2026-07-29 23:58:10 +00:00
2026-07-24 23:36:11 +00:00
2026-07-22 19:14:11 +00:00
2026-08-01 17:36:39 +00:00
2026-07-31 11:23:46 +00:00
2026-07-29 18:29:26 +00:00
2026-07-30 21:09:15 +00:00
2026-07-30 22:45:04 +00:00
2026-07-23 21:50:17 +00:00
2026-07-29 19:49:01 +00:00
2026-07-31 19:08:45 +00:00
2026-07-24 00:10:22 +00:00
2026-07-31 20:49:08 +00:00
2026-07-31 17:24:33 +00:00
2026-08-01 17:43:03 +00:00
2026-07-31 21:37:56 +00:00
2026-07-22 16:18:08 +00:00
2026-07-24 00:16:42 +00:00
2026-07-27 18:37:11 +00:00
2026-07-31 17:12:10 +00:00
2026-07-30 20:24:29 +00:00
2026-07-28 20:49:22 +00:00
2026-07-29 13:53:15 +00:00
2026-07-30 04:26:36 +00:00