diff --git a/packages/text-editor/src/components/CollaboratorEditor.svelte b/packages/text-editor/src/components/CollaboratorEditor.svelte index e95628b21e..c3f95cccad 100644 --- a/packages/text-editor/src/components/CollaboratorEditor.svelte +++ b/packages/text-editor/src/components/CollaboratorEditor.svelte @@ -161,6 +161,25 @@ }) } + export function selectRange (from: number, to: number) { + if (!editor) { + return + } + + const { doc, tr } = editor.view.state + const [$start, $end] = [doc.resolve(from), doc.resolve(to)] + editor.view.dispatch(tr.setSelection(new TextSelection($start, $end))) + needFocus = true + } + + export function setNodeUuid (nodeId: string): boolean { + if (!editor || editor.view.state.selection.empty || !nodeId) { + return false + } + + return editor.chain().setNodeUuid(nodeId).run() + } + export function takeSnapshot (snapshotId: string) { copyDocumentContent(documentId, snapshotId, { provider }, initialContentId) } diff --git a/packages/text-editor/src/index.ts b/packages/text-editor/src/index.ts index d0e0b90ab7..bc39f36b4b 100644 --- a/packages/text-editor/src/index.ts +++ b/packages/text-editor/src/index.ts @@ -35,6 +35,7 @@ export { default } from './plugin' export * from './types' export * from './utils' +export { FocusExtension, type FocusOptions, type FocusStorage } from './components/extension/focus' export { HeadingsExtension, type HeadingsOptions, type HeadingsStorage } from './components/extension/headings' export { IsEmptyContentExtension,