代码镜像 - 更新选择

CodeMirror - Updating selections

本文关键字:选择 更新 镜像 代码      更新时间:2023-09-26

所以在CodeMirror中,你可以通过调用getCursor((来获取选择:

cm.getCursor(true) // start selection
cm.getCursor(false) // end selection

这为您提供了一个对象,该对象保存光标的行和通道位置。有了它,您可以标记文本:

cm.markText(startPos, endPos, options)

标记文本后,是否可以更新它?(无需实际删除并添加新标记(
前任:

var t = cm.markText({ line:0, ch:0 }, { line:0, ch:10 });
t.setEnd({ line:0, ch:5 });

编辑因为有些人可能会寻找它。以下是修改标记文本的方式:

var t = editor.markText({ line:0, ch:0 }, { line:0, ch:10 }, {className: someClass});
t.clear();
t = editor.markText({ line:0, ch:0 }, { line:0, ch:5 }, {className: someClass});

No.标记的工作方式实际上与您可能认为的相反 - 线条指向并记住它们的标记,反之亦然。

请参阅源代码中有关 TextMarker 的文档。

以下是相关引述:

线对象包含包含{from, to, marker}的数组(markedSpans( 对象指向这样的标记对象,并指示这样的 标记出现在该行上。