在codemirror中显示行错误?

时间:2012-12-22 23:33:24

标签: javascript codemirror

我刚刚将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函数。现在他们的等价物是什么?

1 个答案:

答案 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方法已被替换为   addLineClassremoveLineClass,允许更多模块化控制   在附加到一条线的类上。