在codemirror中显示行错误?

Geo*_*uer 0 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");                    
            })
        }
Run Code Online (Sandbox Code Playgroud)

似乎已删除了setMarker/clearMarker和setLineClass函数.现在他们的等价物是什么?

Joh*_*ess 5

这些更改以及许多其他更改都包含在CodeMirror站点的" 升级到版本3"页面中.

由于移动到多个排水沟,标记功能已发生变化:

天沟模型

在CodeMirror 2.x中,只有一个装订线,并且创建的线标记setMarker必须以某种方式与行号(如果存在)共存.版本3允许您按类名指定一排排水沟,用于setGutterMarker在单个排水沟中添加或移除标记,以及清除整个排水沟clearGutter.现在,天沟标记被指定为DOM节点,而不是HTML片段.

排水沟不再与内容一起水平滚动.已删除fixedGutter选项(因为它现在是唯一的行为).

线类更改更直接:

行CSS类

setLineClass方法已被替换为 addLineClassremoveLineClass,它允许对连接到线路的类进行更多模块化控制.