|
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 |
|
} |