Skip to content

Commit 87d53d4

Browse files
author
SqlRush
committed
Accept DOM editing action aliases
1 parent f0e744a commit 87d53d4

4 files changed

Lines changed: 8 additions & 4 deletions

File tree

docs/claude-code-go-rewrite-plan.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ test/parity/ # golden tests against TS/official behavior
347347
- 本轮补充:keybinding config、keymap 解析和 interaction script named-key 输入接受 `ctrl-h`/`ctrl-i`/`ctrl-j`/`ctrl-m`、`ctrl-[`、`ctrl-?`、对应 `control-*` 以及 compact/camel 形式;terminal parser 支持 CSI-u/kitty keyboard protocol 的 ctrl/alt/shift-enter/shift-tab 序列;image hint parser 支持 OSC ST terminator 和 base64 `name=` filename;keybinding JSON loader 支持 wrapper object-map、`shortcuts`、object action 字段、string-array key sequence/chord 和 `null`/`false` unbind;mouse parser 支持 legacy X10/normal tracking 序列;interaction script 支持结构化 mouse/mouse_event 步骤,button 接受 `buttonMask`/`button_mask`/`btn`/`code`/`mask`,坐标接受 `mouseX`/`mouse_x`/`clientX`/`screenX`/`pageX`/`offsetX`/`viewportX` 和对应 Y/row/line 别名,release 接受 `mouseUp`/`isRelease`/`mouseRelease`/`releaseEvent` 等字段别名;interaction script 还支持字符串 `keys` 和 `input`/`input_text`/`keys_text`/`raw_key`/`paste_text` 字段别名,并允许 status/snapshot/viewport/pasted-content contains 断言使用单字符串或字符串数组,`keybindings`、`expectEvents`、`expectDialogResults`、`expectPrompt.pastedContents` 和 `expectTasks.contains` 使用单对象或对象数组。
348348
- 本轮补充:keybinding config 的 page/navigation/editing key name 现在接受 `pgup`/`pg-up`/`prior`/`pageUpKey``pgdn`/`pg-down`/`next`/`pageDownKey``homeKey`/`endKey``deleteForward`/`forwardDelete``deleteBackward`,覆盖常见终端、DOM 和配置别名。
349349
- 本轮补充:keybinding config 和脚本 named-key 输入接受 DOM-style arrow key aliases,包括 `arrowLeft`/`arrowRight`/`arrowUp`/`arrowDown` 以及 ctrl/alt/meta/option arrow variants。
350-
- 本轮补充:keybinding action parser 接受更多 editor/global-style action aliases,包括 `cursorLeft`/`cursorRight``lineStart`/`lineEnd``deletePreviousChar`/`deleteNextChar``killLine``pasteKillRing`/`yankPrevious``clearScreen``openExternalEditor``toggleTasks``cancelAgents``focusPrev``acceptSelection``search`
350+
- 本轮补充:keybinding action parser 接受更多 editor/global-style action aliases,包括 `cursorLeft`/`cursorRight``lineStart`/`lineEnd``deletePreviousChar`/`deleteNextChar``backwardDelete`/`forwardDelete``killLine``pasteKillRing`/`yankPrevious``clearScreen``openExternalEditor``toggleTasks``cancelAgents``focusPrev``acceptSelection``search`
351351
- 本轮补充:keybinding config 和脚本 named-key 输入接受短修饰符别名,包括 `c-`/`m-`/`a-`/`opt-`/`s-` 以及 compact/camel 形式,可覆盖 control、meta、alt、option 和 shift key names。
352352
- 本轮补充:keybinding config 和脚本 named-key 输入现在接受 `backtab`/`back-tab`/`btab` 等 Shift-Tab terminfo/fixture 别名,并映射到既有 focus-previous key surface。
353353
- 本轮补充:keybinding JSON loader 现在递归解包 `data`/`payload`/`settings`/`config`/`keyboard`/`keymap` 等外层 wrapper,嵌套 preference export 中的 `bindings`/`shortcuts` 不需要手工扁平化。

docs/first-second-parity-audit.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ M7 progress now includes:
343343
- `internal/tui`: keybinding config, keymap resolution, and interaction script named-key input now accept terminal aliases for `ctrl-h`/`ctrl-i`/`ctrl-j`/`ctrl-m`, `ctrl-[`, and `ctrl-?`, including `control-*` and compact/camel variants.
344344
- `internal/tui`: keybinding config now accepts page/navigation/editing aliases such as `pgup`, `pg-up`, `prior`, `pageUpKey`, `pgdn`, `pg-down`, `next`, `pageDownKey`, `homeKey`, `endKey`, `deleteForward`, `forwardDelete`, and `deleteBackward`.
345345
- `internal/tui`: keybinding config and named-key script input now accept DOM-style arrow key aliases such as `arrowLeft`, `arrowRight`, `arrowUp`, `arrowDown`, and modifier-arrow variants.
346-
- `internal/tui`: keybinding action parsing now accepts broader editor/global-style aliases such as `cursorLeft`, `lineStart`, `deletePreviousChar`, `killLine`, `pasteKillRing`, `clearScreen`, `openExternalEditor`, `toggleTasks`, `cancelAgents`, `focusPrev`, `acceptSelection`, and `search`.
346+
- `internal/tui`: keybinding action parsing now accepts broader editor/global-style aliases such as `cursorLeft`, `lineStart`, `deletePreviousChar`, `deleteNextChar`, `backwardDelete`, `forwardDelete`, `killLine`, `pasteKillRing`, `clearScreen`, `openExternalEditor`, `toggleTasks`, `cancelAgents`, `focusPrev`, `acceptSelection`, and `search`.
347347
- `internal/tui`: keybinding config and named-key script input now accept short modifier aliases such as `c-left`, `cA`, `m-b`, `a-right`, `optF`, `s-tab`, and `sEnter`.
348348
- `internal/tui`: keybinding config and named-key script input now accept Shift-Tab terminfo aliases such as `backtab`, `back-tab`, and `btab`, mapping them to the existing focus-previous key surface.
349349
- `internal/tui`: scripted interaction `keys` entries now accept printable text chunks and whitespace-separated named key sequences such as `ctrl-x ctrl-k`.

internal/tui/keybinding_config.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,9 +398,9 @@ func ParseActionName(raw string) (Action, error) {
398398
return ActionMoveStart, nil
399399
case "end", "line_end", "move_to_end":
400400
return ActionMoveEnd, nil
401-
case "backspace", "delete_back", "delete_backward", "delete_previous", "delete_previous_char":
401+
case "backspace", "delete_back", "delete_backward", "backward_delete", "delete_previous", "delete_previous_char", "delete_backward_char", "backward_delete_char":
402402
return ActionDeleteBackward, nil
403-
case "delete", "del", "delete_forward", "delete_next", "delete_next_char":
403+
case "delete", "del", "delete_forward", "forward_delete", "delete_next", "delete_next_char", "delete_forward_char", "forward_delete_char":
404404
return ActionDeleteForward, nil
405405
case "delete_start", "delete_line_start", "delete_to_beginning", "delete_to_line_start":
406406
return ActionDeleteToStart, nil

internal/tui/tui_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1425,7 +1425,11 @@ func TestKeymapFromSpecsOverridesAndRemovesBindings(t *testing.T) {
14251425
{name: "lineStart", want: ActionMoveStart},
14261426
{name: "lineEnd", want: ActionMoveEnd},
14271427
{name: "deletePreviousChar", want: ActionDeleteBackward},
1428+
{name: "backwardDelete", want: ActionDeleteBackward},
1429+
{name: "backwardDeleteChar", want: ActionDeleteBackward},
14281430
{name: "deleteNextChar", want: ActionDeleteForward},
1431+
{name: "forwardDelete", want: ActionDeleteForward},
1432+
{name: "forwardDeleteChar", want: ActionDeleteForward},
14291433
{name: "deleteToBeginning", want: ActionDeleteToStart},
14301434
{name: "killLine", want: ActionDeleteToEnd},
14311435
{name: "backwardKillWord", want: ActionDeleteWordBack},

0 commit comments

Comments
 (0)