CodeMirror API 内容操作函数

内容操作函数用于操作文档内容。包含行操作和内容设置获取等。

doc.getValue(?separator: string) → string
获取当前编辑器的内容。可以传入可选参数来指定行分隔符(默认为 \n)。

doc.setValue(content: string)
设置编辑器的内容。

doc.getRange(from: {line, ch}, to: {line, ch}, ?separator: string) → string
获取编辑器内给定范围(fromto{line, ch}对象)内的文本。可选的第三个参数来指定行分隔符(默认为 \n)。

doc.replaceRange(replacement: string, from: {line, ch}, to: {line, ch}, ?origin: string)
使用给定字符串替换从fromto间的文本(fromto{line, ch}对象)。to为空时,会将指定的字符串插入到from的位置。当给了origin参数时,那么它会被传给change事件,并且其首字母决定了本次更改是否能和历史事件(参见doc.setSelection方法的origin参数描述)合并。

doc.getLine(n: integer) → string
获取第n行的内容。

doc.lineCount() → integer
获取编辑器中内容的行数。

doc.firstLine() → integer
获取编辑器的首行。通常情况下返回0,但是在链接子视图(参见doc.linkedDoc)或以非0方式初始化documents的时候,可能会返回其它值。

doc.lastLine() → integer
获取编辑器的最后一行。通常情况下返回doc.lineCount() – 1。但是在链接子视图(参见doc.linkedDoc)的时候,可能会返回其它值。

doc.getLineHandle(num: integer) → LineHandle
根据行号获取行句柄(LineHandle)。

doc.getLineNumber(handle: LineHandle) → integer
根据行句柄(LineHandle)获取当前行号。若行不存在了,返回 null

doc.eachLine(f: (line: LineHandle))
doc.eachLine(start: integer, end: integer, f: (line: LineHandle))
迭代整个文档(如果指定了行号startend,那么迭代从startend(不包含)的范围),并且执行函数f,此函数参数为行句柄(LineHandle)。这是一种比getLineHandle更快速访问指定范围内行句柄的方式。行句柄有一个包含行文本的text属性(字符串类型)。

doc.markClean()
“清洁”编辑器内容。在编辑前会一直保留一个标志,撤消编辑后会重置此标志。此功能在跟踪内容是否需要保存时很有用。此函数已经不赞成使用,现已经被允许多个子系统(multiple subsystems)跟踪而不会干扰各自清洁度的changeGeneration代替。

doc.changeGeneration(?closeEvent: boolean) → integer
返回一个数字,用于在后面传给isClean测试是否有编辑(并且未撤消)。如果closeEventtrue,那么当前的历史事件会变成closed,这意味着其不会绑定到后续的改变上(通常快速输入和删除是绑定上的)。

doc.isClean(?generation: integer) → boolean
返回文档当前是否是清洁的————如果没有传参数,那么在初始化或最后一次调用markClean后未修改;如果传了generation参数,那么在changeGeneration调用后未修改。