0

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関数が削除されたようです。今、それらに相当するものは何ですか?

4

1 に答える 1

5

これらの変更点は、CodeMirror サイトのバージョン 3 へのアップグレードのページで説明されています。

複数のガターに移動した結果、マーカー機能が変更されました。

ガターモデル

CodeMirror 2.x では、ガターが 1 つしかなく、 で作成された行マーカーsetMarkerは行番号 (存在する場合) と何とか共存する必要がありました。バージョン 3 では、ガターの配列をクラス名で指定し、 を使用setGutterMarkerして個々のガターにマーカーを追加または削除し、 でガター全体をクリアできclearGutterます。ガター マーカーは、HTML スニペットではなく、DOM ノードとして指定されるようになりました。

ガターがコンテンツとともに水平方向にスクロールしなくなりました。fixedGutter オプションが削除されました (これが唯一の動作になったため)。

ライン クラスの変更はより簡単です。

線の CSS クラス

メソッドはとsetLineClassに置き換えられ 、ラインに接続されたクラスをよりモジュラーに制御できるようになりました。addLineClassremoveLineClass

于 2012-12-22T23:47:22.307 に答える