| import { keymap } from 'prosemirror-keymap' | |
| import type { Schema } from 'prosemirror-model' | |
| import { history } from 'prosemirror-history' | |
| import { baseKeymap } from 'prosemirror-commands' | |
| import { dropCursor } from 'prosemirror-dropcursor' | |
| import { gapCursor } from 'prosemirror-gapcursor' | |
| import { buildKeymap } from './keymap' | |
| import { buildInputRules } from './inputrules' | |
| import { placeholderPlugin } from './placeholder' | |
| export interface PluginOptions { | |
| placeholder?: string | |
| } | |
| export const buildPlugins = (schema: Schema, options?: PluginOptions) => { | |
| const placeholder = options?.placeholder | |
| const plugins = [ | |
| buildInputRules(schema), | |
| keymap(buildKeymap(schema)), | |
| keymap(baseKeymap), | |
| dropCursor(), | |
| gapCursor(), | |
| history(), | |
| ] | |
| if (placeholder) plugins.push(placeholderPlugin(placeholder)) | |
| return plugins | |
| } |