diff --git a/packages/core/src/extensions/baseKeymap.ts b/packages/core/src/extensions/baseKeymap.ts index 95508a4e..5411d87c 100644 --- a/packages/core/src/extensions/baseKeymap.ts +++ b/packages/core/src/extensions/baseKeymap.ts @@ -1,9 +1,51 @@ -import { baseKeymap } from 'prosemirror-commands' +import { + chainCommands, + newlineInCode, + createParagraphNear, + liftEmptyBlock, + splitBlockKeepMarks, + exitCode, + deleteSelection, + joinForward, + joinBackward, + selectNodeForward, + selectNodeBackward, +} from 'prosemirror-commands' +import { undoInputRule } from 'prosemirror-inputrules' import { createExtension } from '../Extension' export const BaseKeymap = createExtension({ addKeyboardShortcuts() { - return baseKeymap + const enter = chainCommands( + newlineInCode, + createParagraphNear, + liftEmptyBlock, + splitBlockKeepMarks, + ) + + const backspace = chainCommands( + undoInputRule, + deleteSelection, + joinBackward, + selectNodeBackward, + ) + + const del = chainCommands( + deleteSelection, + joinForward, + selectNodeForward, + ) + + return { + Enter: enter, + 'Mod-Enter': exitCode, + Backspace: backspace, + 'Mod-Backspace': backspace, + Delete: del, + 'Mod-Delete': del, + // we don’t need a custom `selectAll` for now + // 'Mod-a': () => this.editor.selectAll(), + } }, }) diff --git a/packages/core/src/extensions/index.ts b/packages/core/src/extensions/index.ts index 463db8c5..3670658d 100644 --- a/packages/core/src/extensions/index.ts +++ b/packages/core/src/extensions/index.ts @@ -5,7 +5,6 @@ export { DeleteSelection } from './deleteSelection' export { Editable } from './editable' export { Focus } from './focus' export { FocusEvents } from './focusEvents' -export { InputRules } from './inputRules' export { InsertHTML } from './insertHTML' export { InsertText } from './insertText' export { BaseKeymap } from './baseKeymap' diff --git a/packages/core/src/extensions/inputRules.ts b/packages/core/src/extensions/inputRules.ts deleted file mode 100644 index c9e09d66..00000000 --- a/packages/core/src/extensions/inputRules.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { undoInputRule } from 'prosemirror-inputrules' -import { createExtension } from '../Extension' - -export const InputRules = createExtension({ - addKeyboardShortcuts() { - return { - Backspace: undoInputRule, - } - }, -}) - -declare module '../Editor' { - interface AllExtensions { - InputRules: typeof InputRules, - } -}