# 附加模块
# 撤销重做
- 功能
即通常所说的 undo
和 redo
。
撤销会将编辑器的状态(内容和选区)恢复到上一步,重做是对“撤销”的“撤销”。
提示
- 1000ms 内的操作将会合并,这意味着连续输入的时候撤销会导致多个新输入的文本都会被移除。
- 撤销重做基于操作变换,而非快照,所以性能非常高。最大支持深度为 100 步。
- 协同过程中,撤销仅对当前用户有效,不影响其他用户协同编辑的数据。
- 定义
history: {
undo()
redo()
}
# undo()
- 说明
撤销。
# redo()
- 说明
重做。
# 查找替换
- 功能
在编辑器中查找并高亮指定的字符串。支持对查找结果进行替换,支持单个替换和全部替换。
查找准确地说,是一种状态。开启查找后,编辑器中所有匹配到的字符串进入高亮状态。高亮状态会随着编辑行为而动态变更。
在高亮的基础上,还有激活状态。激活仅对单个匹配结果有效,可通过接口切换。
- 定义
find: {
find(text: string)
getResults(): {
count: number
active: number
}
activePrev()
activeNext()
replace(newText: string, isAll: boolean = false)
exit()
}
# find()
- 说明
开启查找状态,高亮所有匹配结果。
- 参数
text
: 关键词。
# getResults()
- 说明
获取匹配结果的信息。可多次调用,每次调用会获取最新的结果。
- 返回
count
: 匹配结果数量。active
: 当前激活匹配结果的索引。
# activePrev()
- 说明
激活上一个匹配结果。当前是第一个匹配结果时,激活最后一个匹配结果。
# activeNext()
- 说明
激活下一个匹配结果。当前是最后一个匹配结果时,激活第一个匹配结果。
# replace()
- 说明
将匹配结果替换为新的字符串,支持全部替换。
- 参数
newText
: 新的字符串。isAll
: 是否批量替换。
# exit()
- 说明
退出查找状态,移除所有高亮。
# 格式刷
- 功能
提供格式刷、清除格式等功能。
- 定义
painter: {
active(actived: boolean = true)
clear()
}
# active()
- 说明
激活或取消格式刷。
- 参数
actived
:true
: 激活格式刷。false
: 取消激活格式刷。
# clear()
- 说明
清除选中区域所有格式。
# 提及(@)
支持提及用户,提及文档正在开发中。
//TODO:
待完善
# 迭代器
- 功能
对编辑器全部内容或者指定内容按句子进行迭代,每次迭代返回句子的文本内容和选区范围。
可用于 TTS 功能,实现按句朗读并高亮对应句子的功能。
- 定义
/** 迭代器,按块级元素或句子迭代。 */
iterator: {
/**
* 初始化,支持指定选区内容进行迭代
* @param index 起始位置,默认 0(开始位置)
* @param length 内容长度,默认剩余长度
*/
setup(index: number = 0, length: number = remaining)
/** 是否有下一句 */
hasNext(): boolean
/**
* 获取下一句
* @param dryrun 为 true 时仅返回内容,不移动索引
*/
next(dryrun: boolean = false): { text: string; range: Range } | null
/**
* 高亮包含指定范围的句子,实际会高亮包含选区的一个或多个句子。
* @param range 待高亮的范围
* @param highlighted 是否高亮,false 时取消高亮。
*/
highlight(range: Range, highlighted: boolean = true)
}
# setup()
- 说明
初始化或重设迭代器,从指定选区的开头开始重新迭代。
参数
index
: 选区起始位置,默认 0。length
: 选区长度,默认剩余长度。
返回
无。
# hasNext()
- 说明
获取迭代是否到末尾。
- 参数
无。
- 返回
true
: 还没到末尾。false
: 已到末尾。
# next()
- 说明
进行一次迭代,并返回该次迭代的结果。
参数
dryrun
: 为 true 时仅返回内容,不移动索引。
返回
text
: 句子文本内容。range
: 句子对应的选区,可根据需求调用高亮。
# highlight()
- 说明
对包含给定选区的句子进行高亮。
参数
range
: 选区。highlighted
:true
: 设置高亮。false
: 取消高亮。
返回
无。