因此,在CodeMirror中,您可以通过调用getCursor()执行以下操作来进行选择:
cm.getCursor(true) // start selection
cm.getCursor(false) // end selection
这为您提供了一个保持光标的行和ch位置的对象。有了这个,你可以mark text:
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});
答案 0 :(得分:1)
没有。标记的工作方式实际上与您的想法相反 - 线条指向并记住它们的标记,反之亦然。
See the documentation about TextMarker from the source code
以下是相关引用:
线对象包含包含
markedSpans
的数组({from, to, marker}
) 对象指向这样的标记对象,并指示这样的 标记出现在该行上。