替换CodeMirror令牌?

时间:2012-11-21 05:58:56

标签: javascript codemirror

我正在尝试通过

替换在CodeMirror v3中选择的令牌
var obj = editor.getTokenAt(currLine);
var currLine = editor.getCursor(true);  

但似乎唯一的选择是

replaceRange

将新字符串和起始位置考虑在内,但是当新字符串比原始字符串更短或更长时,会发生奇怪的事情。

有什么更好的方法呢?

currLinereplace 

似乎不适合我。

谢谢!

2 个答案:

答案 0 :(得分:3)

var pos = editor.getCursor() // or {line , ch };
var tok = editor.getTokenAt(pos);
editor.replaceRange("string", {line: pos.line , ch:tok.start},{line:pos.line , ch:tok.end});

答案 1 :(得分:0)

我必须显示自定义提示列表才能替换选择时的加入令牌。 用正确的参数调用replaceRange方法不够。它粘贴了新令牌,但是在初始令牌的内部取决于光标位置。如果我们有自定义提示选项,则需要在提示选项中同时指定位置和位置,以使replaceRange正常工作,例如:

JAR's