使用Slatejs (v0.47),我如何扩展当前选择(从折叠开始)来包含当前单词?
因此(假设[]表示当前部分)
如果我从
this is some te[]xt如何以编程方式将所选内容扩展为
this is some [text]发布于 2019-07-03 19:17:17
最终让它工作起来了。
export const word_selection = (editor) => {
const {value} = editor
const {selection, startText} = value
const {start, isExpanded} = selection
if (isExpanded) {
return value.fragment.text
}
const {text} = startText
const {offset} = start
let left = text.slice(0, offset).search(/\S+$/)
if (left === -1) {
// character before the cursor is a space, selection starts at the cursor
left = offset
}
let right = text.slice(offset).search(/\s/)
if (right < 0) {
// character after teh cursor is a space, selection ends at the cursor
right = text.length
} else {
right = right + offset
}
if (left === right) {
// nothing to select
return ''
}
editor.moveAnchorBackward(offset - left).moveFocusForward(right - offset)
return value.fragment.text
}https://stackoverflow.com/questions/56868423
复制相似问题