kshitij
2be183142c
refactor: extract _install_paired helper, fix misleading comment, isolate test fixture
...
Apply findings from /simplify-code 3-agent review:
1. Extract _install_paired() inner helper — the Ctrl, Alt, and Shift
sections all repeated the same mok+csiu sequence generation pattern
(~30 lines of duplication). Now each section builds a dict and
delegates to _install_paired(modifier, mapping).
2. Replace 10 hardcoded Ctrl+digit lines with a loop matching the
Ctrl+letter pattern above it.
3. Fix misleading comment: claimed 'Ctrl+0 doesn't produce a control
byte' but chr(ord('0') & 0x1F) = 0x10 = ControlP. The code was
correct (maps directly to Keys.Control0..9); only the comment was
wrong.
4. Add comment explaining why Shift+letter maps both lowercase and
uppercase codepoints (some terminals send the already-shifted
codepoint with modifier=2).
5. Test fixture: snapshot/restore ANSI_SEQUENCES in teardown so 294
mappings don't leak into sibling test files (global mutable state).
2026-08-16 13:02:27 +05:30
..
2026-07-29 19:53:17 -07:00
2026-07-31 21:21:20 -07:00
2026-07-29 13:10:23 -07:00
2026-08-08 17:37:26 -07:00
2026-07-29 13:10:23 -07:00
2026-07-08 07:59:24 -07:00
2026-06-19 16:59:43 -07:00
2026-07-29 13:10:23 -07:00
2026-07-14 22:14:10 -07:00
2026-07-31 22:35:12 -07:00
2026-07-29 13:10:23 -07:00
2026-05-28 22:26:25 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 23:16:18 -07:00
2026-07-30 03:39:26 -05:00
2026-07-21 04:29:34 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-06-25 19:57:58 -05:00
2026-07-29 13:10:23 -07:00
2026-08-09 22:09:49 -04:00
2026-08-01 15:34:16 -07:00
2026-08-14 13:09:37 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 23:16:18 -07:00
2026-08-15 01:05:39 -07:00
2026-08-14 21:41:26 -07:00
2026-08-15 01:04:19 -07:00
2026-07-01 00:12:32 -07:00
2026-07-17 20:55:24 +00:00
2026-08-08 19:22:53 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-06-20 14:18:33 -05:00
2026-07-29 13:10:23 -07:00
2026-08-10 10:40:19 -07:00
2026-07-29 13:10:23 -07:00
2026-07-31 12:04:59 -04:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-05-25 01:20:33 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-14 13:09:37 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-05-29 00:31:44 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 15:12:28 -07:00
2026-08-02 20:30:06 -07:00
2026-07-29 21:30:53 -07:00
2026-07-29 13:10:23 -07:00
2026-07-23 08:19:14 -07:00
2026-07-23 07:24:46 -07:00
2026-08-09 22:09:49 -04:00
2026-07-29 13:10:23 -07:00
2026-08-15 01:05:39 -07:00
2026-05-28 22:26:25 -07:00
2026-07-29 13:10:23 -07:00
2026-05-24 16:13:03 -07:00
2026-07-29 13:10:23 -07:00
2026-05-25 01:41:54 -07:00
2026-07-29 13:10:23 -07:00
2026-08-13 11:07:37 -07:00
2026-08-15 01:04:19 -07:00
2026-07-31 22:33:16 -07:00
2026-08-14 13:09:37 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-16 13:02:27 +05:30
2026-07-29 13:10:23 -07:00
2026-08-09 10:33:58 -07:00
2026-06-03 23:51:44 -06:00
2026-07-29 13:10:23 -07:00
2026-07-31 21:21:16 -07:00
2026-07-31 21:21:16 -07:00
2026-06-19 01:53:32 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-13 23:45:21 +05:30
2026-08-14 14:39:08 +05:30
2026-05-28 22:26:25 -07:00
2026-08-15 02:04:49 -07:00
2026-07-27 21:10:51 -07:00
2026-07-29 13:10:23 -07:00
2026-05-28 22:26:25 -07:00
2026-08-09 22:09:49 -04:00
2026-05-29 19:04:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-28 23:53:16 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-06-28 01:08:09 -07:00
2026-08-13 14:22:14 -07:00
2026-07-29 15:12:28 -07:00
2026-08-08 14:06:30 +05:30
2026-07-29 13:10:23 -07:00
2026-07-22 16:51:01 -04:00
2026-06-05 18:05:05 -07:00
2026-07-29 23:16:18 -07:00
2026-07-29 15:34:53 -07:00
2026-08-15 04:02:07 -07:00