diff --git a/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/normalizeAccelerator.test.ts b/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/normalizeAccelerator.test.ts index 23b584838f0..bb930de2ecd 100644 --- a/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/normalizeAccelerator.test.ts +++ b/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/normalizeAccelerator.test.ts @@ -6,7 +6,7 @@ describe('normalizeAccelerator', () => { ['Z', { v6: 'z', v5: 'Z' }], ['Alt+A', { v6: 'Alt-a', v5: 'Alt-A' }], ['Shift+A', { v6: 'Shift-a', v5: 'Shift-A' }], - ['Shift+Up', { v6: 'Shift-Up', v5: 'Shift-Up' }], + ['Shift+Up', { v6: 'Shift-ArrowUp', v5: 'Shift-Up' }], ])( 'should convert single-letter key names to lowercase for CM6, keep case unchanged for CM5 (%j)', (original, expected) => { diff --git a/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/normalizeAccelerator.ts b/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/normalizeAccelerator.ts index a42ad3248d1..490664a30cc 100644 --- a/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/normalizeAccelerator.ts +++ b/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/normalizeAccelerator.ts @@ -12,11 +12,17 @@ const normalizeAccelerator = (accelerator: string, editorVersion: CodeMirrorVers const parts = command.split(/-(?!$)/); let name = parts[parts.length - 1]; - // In CodeMirror 6, an uppercase single-letter key name makes the editor - // require the shift key to activate the shortcut. If a key name like `Up`, - // however, `.toLowerCase` breaks the shortcut. - if (editorVersion === CodeMirrorVersion.CodeMirror6 && name.length === 1) { - name = name.toLowerCase(); + if (editorVersion === CodeMirrorVersion.CodeMirror6) { + // In CodeMirror 6, an uppercase single-letter key name makes the editor + // require the shift key to activate the shortcut. If a key name like `Up`, + // however, `.toLowerCase` breaks the shortcut. + if (name.length === 1) { + name = name.toLowerCase(); + } + + if (['Up', 'Down', 'Left', 'Right'].includes(name)) { + name = `Arrow${name}`; + } } let alt, ctrl, shift, cmd;