我刚刚将CodeMirror升级到最新版本,现在有以下代码:
// clear previous errors from editor window
for (var i = 0; i < layoutCodeEditor.lineCount(); i++) {
layoutCodeEditor.clearMarker(i);
layoutCodeEditor.setLineClass(i, null, null);
}
var valid = JSLINT(code);
var jsLintError = "";
if (!valid) {
jsLintError = JSLINT.error_report(JSLINT.data());
_.chain(JSLINT.errors).compact().each(function(e){
// show markers in the code edit window against lines with Jslint errors
layoutCodeEditor.setMarker((+e.line) - 1, "●", "errors");
layoutCodeEditor.setLineClass(+(e.line) - 1, null, "errorLine");
})
}
似乎已删除了setMarker / clearMarker和setLineClass函数。现在他们的等价物是什么?
答案 0 :(得分:5)
CodeMirror站点上的Upgrading to version 3页面介绍了许多其他更改。
由于移动到多个排水沟,标记功能已发生变化:
Gutter model
在CodeMirror 2.x中,有一个装订线和一条线 用
setMarker
创建的标记必须以某种方式与其共存 行号(如果存在)。版本3允许您指定数组 排水沟by class name,使用setGutterMarker
添加或删除标记 在单个排水沟中,清除整个排水沟clearGutter
。 现在,天沟标记被指定为DOM节点,而不是HTML 片段。排水沟不再与内容一起水平滚动。该 fixedGutter选项已被删除(因为它现在是唯一的行为)。
线类更改更直接:
Line CSS classes
setLineClass
方法已被替换为addLineClass
和removeLineClass
,允许更多模块化控制 在附加到一条线的类上。