feat: add selectTextblockStart and selectTextblockEnd commands
This commit is contained in:
19
packages/core/src/commands/selectTextblockEnd.ts
Normal file
19
packages/core/src/commands/selectTextblockEnd.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
// @ts-ignore
|
||||
// TODO: add types to @types/prosemirror-commands
|
||||
import { selectTextblockEnd as originalSelectTextblockEnd } from 'prosemirror-commands'
|
||||
import { RawCommands } from '../types'
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface Commands<ReturnType> {
|
||||
selectTextblockEnd: {
|
||||
/**
|
||||
* Moves the cursor to the end of current text block.
|
||||
*/
|
||||
selectTextblockEnd: () => ReturnType,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const selectTextblockEnd: RawCommands['selectTextblockEnd'] = () => ({ state, dispatch }) => {
|
||||
return originalSelectTextblockEnd(state, dispatch)
|
||||
}
|
||||
19
packages/core/src/commands/selectTextblockStart.ts
Normal file
19
packages/core/src/commands/selectTextblockStart.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
// @ts-ignore
|
||||
// TODO: add types to @types/prosemirror-commands
|
||||
import { selectTextblockStart as originalSelectTextblockStart } from 'prosemirror-commands'
|
||||
import { RawCommands } from '../types'
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface Commands<ReturnType> {
|
||||
selectTextblockStart: {
|
||||
/**
|
||||
* Moves the cursor to the start of current text block.
|
||||
*/
|
||||
selectTextblockStart: () => ReturnType,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const selectTextblockStart: RawCommands['selectTextblockStart'] = () => ({ state, dispatch }) => {
|
||||
return originalSelectTextblockStart(state, dispatch)
|
||||
}
|
||||
@@ -28,6 +28,8 @@ import * as selectAll from '../commands/selectAll'
|
||||
import * as selectNodeBackward from '../commands/selectNodeBackward'
|
||||
import * as selectNodeForward from '../commands/selectNodeForward'
|
||||
import * as selectParentNode from '../commands/selectParentNode'
|
||||
import * as selectTextblockEnd from '../commands/selectTextblockEnd'
|
||||
import * as selectTextblockStart from '../commands/selectTextblockStart'
|
||||
import * as setContent from '../commands/setContent'
|
||||
import * as setMark from '../commands/setMark'
|
||||
import * as setMeta from '../commands/setMeta'
|
||||
@@ -77,6 +79,8 @@ export { selectAll }
|
||||
export { selectNodeBackward }
|
||||
export { selectNodeForward }
|
||||
export { selectParentNode }
|
||||
export { selectTextblockEnd }
|
||||
export { selectTextblockStart }
|
||||
export { setContent }
|
||||
export { setMark }
|
||||
export { setMeta }
|
||||
@@ -131,6 +135,8 @@ export const Commands = Extension.create({
|
||||
...selectNodeBackward,
|
||||
...selectNodeForward,
|
||||
...selectParentNode,
|
||||
...selectTextblockEnd,
|
||||
...selectTextblockStart,
|
||||
...setContent,
|
||||
...setMark,
|
||||
...setMeta,
|
||||
|
||||
@@ -52,6 +52,10 @@ export const Keymap = Extension.create({
|
||||
Delete: handleDelete,
|
||||
'Mod-Delete': handleDelete,
|
||||
'Mod-a': () => this.editor.commands.selectAll(),
|
||||
'Ctrl-a': () => this.editor.commands.selectTextblockStart(),
|
||||
'Ctrl-e': () => this.editor.commands.selectTextblockEnd(),
|
||||
Home: () => this.editor.commands.selectTextblockStart(),
|
||||
End: () => this.editor.commands.selectTextblockStart(),
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user