我刚刚将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函数已经被移除了。现在它们的等价物是什么?
发布于 2012-12-23 07:47:22
CodeMirror站点上的Upgrading to version 3页面中介绍了这些更改以及其他许多更改。
由于移动到多个边沟,标记功能发生了变化:
在CodeMirror 2.x中,只有一条间隔线,使用setMarker创建的线标记必须以某种方式与线号共存(如果存在)。版本3允许您指定一个边沟数组,by class name,使用setGutterMarker在单个边沟中添加或删除标记,并使用clearGutter清除整个边沟。现在,间隔标记被指定为DOM节点,而不是HTML代码段。
栏间距不再随内容水平滚动。删除了fixedGutter选项(因为它现在是唯一的行为)。
line类的更改更简单:
setLineClass方法已被addLineClass和removeLineClass所取代,它们允许对附加到行的类进行更多模块化控制。
https://stackoverflow.com/questions/14007482
复制相似问题