我正在尝试通过替换 CodeMirror v3 中选择的令牌
var obj = editor.getTokenAt(currLine);
var currLine = editor.getCursor(true);
但似乎唯一的选择是
replaceRange
它考虑了新字符串和起始位置,但是当新字符串比原始字符串短或长时会发生奇怪的事情。
有什么更好的方法呢?
currLinereplace
似乎对我不起作用。
谢谢!
我正在尝试通过替换 CodeMirror v3 中选择的令牌
var obj = editor.getTokenAt(currLine);
var currLine = editor.getCursor(true);
但似乎唯一的选择是
replaceRange
它考虑了新字符串和起始位置,但是当新字符串比原始字符串短或长时会发生奇怪的事情。
有什么更好的方法呢?
currLinereplace
似乎对我不起作用。
谢谢!
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});
我必须显示自定义提示列表以替换选择时的加入令牌。用正确的参数调用 replaceRange 方法是不够的。它粘贴了新标记,但在初始标记内部,具体取决于光标位置。如果我们有自定义提示选项,我们还需要在提示选项中指定 from 和 to 位置,以使 replaceRange 正常工作,例如:
const options = {
hint: () => ({
from: token.start, // without this replaceRange didn't work not correctly
to: token.end, // without this replaceRange didn't work not correctly
list: ['left join', 'right join', 'inner join', 'outer join'] // custom list of options
})
};
cm.showHint(options); // this is to show custom hint