【问题标题】:Show line errors in codemirror?在 codemirror 中显示行错误?
【发布时间】:2012-12-22 23:33:24
【问题描述】:

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

【问题讨论】:

    标签: javascript codemirror


    【解决方案1】:

    CodeMirror 网站上的Upgrading to version 3 页面介绍了这些更改以及许多其他更改。

    由于移动到多个装订线,标记功能发生了变化:

    Gutter model

    在 CodeMirror 2.x 中,只有一个装订线和一条线 使用setMarker 创建的标记必须以某种方式与 行号(如果存在)。版本 3 允许您指定一个数组 排水沟,by class name,使用 setGutterMarker 添加或删除标记 在单个排水沟中,并使用clearGutter 清除整个排水沟。 装订线标记现在指定为 DOM 节点,而不是 HTML sn-ps。

    装订线不再随内容水平滚动。这 fixedGutter 选项已被移除(因为它现在是唯一的行为)。

    线类变化更直接:

    Line CSS classes

    setLineClass 方法已被替换为 addLineClassremoveLineClass,允许更多的模块化控制 在附加到一行的类上。

    【讨论】:

    • 太好了,谢谢。我没见过,但它很有意义。
    猜你喜欢
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多