diff --git a/packages/core/src/Editor.ts b/packages/core/src/Editor.ts index ec487eae..062418e2 100644 --- a/packages/core/src/Editor.ts +++ b/packages/core/src/Editor.ts @@ -237,7 +237,7 @@ export class Editor extends EventEmitter { */ private createExtensionManager() { const coreExtensions = Object.entries(extensions).map(([, extension]) => extension()) - const allExtensions = [...coreExtensions, ...this.options.extensions] + const allExtensions = [...this.options.extensions, ...coreExtensions] this.extensionManager = new ExtensionManager(allExtensions, this.proxy) } diff --git a/packages/core/src/extensions/baseKeymap.ts b/packages/core/src/extensions/baseKeymap.ts new file mode 100644 index 00000000..95508a4e --- /dev/null +++ b/packages/core/src/extensions/baseKeymap.ts @@ -0,0 +1,14 @@ +import { baseKeymap } from 'prosemirror-commands' +import { createExtension } from '../Extension' + +export const BaseKeymap = createExtension({ + addKeyboardShortcuts() { + return baseKeymap + }, +}) + +declare module '../Editor' { + interface AllExtensions { + BaseKeymap: typeof BaseKeymap, + } +} diff --git a/packages/core/src/extensions/index.ts b/packages/core/src/extensions/index.ts index c269e279..463db8c5 100644 --- a/packages/core/src/extensions/index.ts +++ b/packages/core/src/extensions/index.ts @@ -5,9 +5,10 @@ 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 { Keymap } from './keymap' +export { BaseKeymap } from './baseKeymap' export { LiftListItem } from './liftListItem' export { RemoveMark } from './removeMark' export { RemoveMarks } from './removeMarks' diff --git a/packages/core/src/extensions/inputRules.ts b/packages/core/src/extensions/inputRules.ts new file mode 100644 index 00000000..c9e09d66 --- /dev/null +++ b/packages/core/src/extensions/inputRules.ts @@ -0,0 +1,16 @@ +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, + } +} diff --git a/packages/core/src/extensions/keymap.ts b/packages/core/src/extensions/keymap.ts deleted file mode 100644 index c3a5963e..00000000 --- a/packages/core/src/extensions/keymap.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { keymap } from 'prosemirror-keymap' -import { baseKeymap } from 'prosemirror-commands' -import { undoInputRule } from 'prosemirror-inputrules' -import { createExtension } from '../Extension' - -export const Keymap = createExtension({ - addProseMirrorPlugins() { - return [ - keymap({ Backspace: undoInputRule }), - keymap(baseKeymap), - ] - }, -}) - -declare module '../Editor' { - interface AllExtensions { - Keymap: typeof Keymap, - } -} diff --git a/packages/core/src/extensions/splitBlock.ts b/packages/core/src/extensions/splitBlock.ts index 39b78241..98359fd2 100644 --- a/packages/core/src/extensions/splitBlock.ts +++ b/packages/core/src/extensions/splitBlock.ts @@ -26,7 +26,7 @@ export const SplitBlock = createExtension({ } if (dispatch) { - dispatch(tr.split($from.pos).scrollIntoView()) + tr.split($from.pos).scrollIntoView() } return true