feat: add selectTextblockStart and selectTextblockEnd commands
This commit is contained in:
5
docs/api/commands/select-textblock-end.md
Normal file
5
docs/api/commands/select-textblock-end.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# selectTextblockEnd
|
||||
|
||||
:::warning
|
||||
Oops, we didn’t find time to fill this page. Writing documentation needs attention to detail, a great understanding of the project and time to write. Though Tiptap is used by thousands of developers all around the world, it’s still a side project for us. Let’s change that and make open source our full-time job! [Become a sponsor!](https://github.com/sponsors/ueberdosis)
|
||||
:::
|
||||
5
docs/api/commands/select-textblock-start.md
Normal file
5
docs/api/commands/select-textblock-start.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# selectTextblockStart
|
||||
|
||||
:::warning
|
||||
Oops, we didn’t find time to fill this page. Writing documentation needs attention to detail, a great understanding of the project and time to write. Though Tiptap is used by thousands of developers all around the world, it’s still a side project for us. Let’s change that and make open source our full-time job! [Become a sponsor!](https://github.com/sponsors/ueberdosis)
|
||||
:::
|
||||
@@ -223,6 +223,12 @@
|
||||
- title: selectParentNode
|
||||
link: /api/commands/select-parent-node
|
||||
type: draft
|
||||
- title: selectTextblockEnd
|
||||
link: /api/commands/select-textblock-end
|
||||
type: draft
|
||||
- title: selectTextblockStart
|
||||
link: /api/commands/select-textblock-start
|
||||
type: draft
|
||||
- title: setContent
|
||||
link: /api/commands/set-content
|
||||
- title: setMark
|
||||
|
||||
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