2012-11-21 164 views
1

我试图通过替换CodeMirror标记?

var obj = editor.getTokenAt(currLine); 
var currLine = editor.getCursor(true); 

替换CodeMirror V3选择一个令牌,但它似乎是唯一的选择是做

replaceRange 

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

什么是更好的方法来做到这一点?

currLinereplace 

似乎不适合我。

谢谢!

+0

作为附录,editor.replaceRange(newString,{行:currLine.line,CH:obj.start},{行:currLine.line,CH:obj.end});如果newString的大小小于或等于原始字符串,则工作。否则奇怪的事情发生。 – Rio

回答

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});