diff --git a/src/hooks/appCommandDispatcher.test.ts b/src/hooks/appCommandDispatcher.test.ts index aeb64537..632f44bf 100644 --- a/src/hooks/appCommandDispatcher.test.ts +++ b/src/hooks/appCommandDispatcher.test.ts @@ -138,6 +138,7 @@ describe('appCommandDispatcher', () => { expect(findShortcutCommandId('command-or-ctrl', 'z', 'KeyZ')).toBe(APP_COMMAND_IDS.editUndo) expect(findShortcutCommandId('command-or-ctrl-shift', 'z', 'KeyZ')).toBe(APP_COMMAND_IDS.editRedo) expect(findShortcutCommandId('command-or-ctrl', '\\')).toBe(APP_COMMAND_IDS.editToggleRawEditor) + expect(findShortcutCommandId('command-or-ctrl', '§', 'Backslash')).toBe(APP_COMMAND_IDS.editToggleRawEditor) expect(findShortcutCommandId('command-or-ctrl-shift', '¬', 'KeyL')).toBe(APP_COMMAND_IDS.viewToggleAiChat) expect(findShortcutCommandId('command-or-ctrl-shift', 'T', 'KeyT')).toBe(APP_COMMAND_IDS.viewToggleTableOfContents) expect(findShortcutCommandId('command-or-ctrl-shift', 'v', 'KeyV')).toBe(APP_COMMAND_IDS.editPastePlainText) @@ -197,6 +198,7 @@ describe('appCommandDispatcher', () => { it('resolves event modifiers through the shared shortcut catalog', () => { expectShortcutEventCommand({ key: 'o', code: 'KeyO', metaKey: true }, APP_COMMAND_IDS.fileQuickOpen) + expectShortcutEventCommand({ key: '§', code: 'Backslash', metaKey: true }, APP_COMMAND_IDS.editToggleRawEditor) expectShortcutEventCommand({ key: '¬', code: 'KeyL', metaKey: true, shiftKey: true }, APP_COMMAND_IDS.viewToggleAiChat) expectShortcutEventCommand({ key: 'I', code: 'KeyI', metaKey: true, shiftKey: true }, APP_COMMAND_IDS.viewToggleProperties) expectShortcutEventCommand({ key: 'ArrowLeft', code: 'ArrowLeft', metaKey: true }, APP_COMMAND_IDS.viewGoBack) diff --git a/src/shared/appCommandManifest.json b/src/shared/appCommandManifest.json index 72fcb6b6..ae4522ed 100644 --- a/src/shared/appCommandManifest.json +++ b/src/shared/appCommandManifest.json @@ -142,6 +142,7 @@ "shortcut": { "combo": "command-or-ctrl", "key": "\\", + "code": "Backslash", "display": "⌘\\", "accelerator": "CmdOrCtrl+\\" } diff --git a/tests/smoke/keyboard-command-routing.spec.ts b/tests/smoke/keyboard-command-routing.spec.ts index 36e53aa3..e96b982c 100644 --- a/tests/smoke/keyboard-command-routing.spec.ts +++ b/tests/smoke/keyboard-command-routing.spec.ts @@ -225,7 +225,16 @@ test.describe('keyboard command routing', () => { await openAlphaProjectInEditor(page) - await triggerShortcutCommand(page, APP_COMMAND_IDS.editToggleRawEditor) + await dispatchShortcutEvent(page, { + key: '§', + code: 'Backslash', + ctrlKey: false, + metaKey: true, + shiftKey: false, + altKey: false, + bubbles: true, + cancelable: true, + }) await expect(page.getByTestId('raw-editor-codemirror')).toBeVisible({ timeout: 5_000 }) await expectRuntimeStyleNonce(page)