Выделите строки, которые были изменены - PullRequest
3 голосов
/ 19 марта 2012

В моем сайте интегрирован редактор ace.У меня есть некоторый код, и я хочу выделить изменения в некоторых строках.

Обнаружил, что

var range = new Range(rowStart, columnStart, rowEnd, columnEnd);
var marker = editor.getSession().addMarker(range,"ace_active_line","background");

должен выделять строки, но я получаю ошибку конструктора при создании Rangeобъект.Есть идеи?

Есть ли способ добавить желтый фон к конкретным линиям?

Спасибо

Ответы [ 3 ]

6 голосов
/ 26 марта 2012

Проблема здесь в том, что Range указывает на функцию внутреннего диапазона браузеров, а не на туз Ace.Так что вы, вероятно, не импортируете его.Попробуйте сделать что-то вроде:

// taken from kitchen-sink.js
var Range = require("./range").Range;
2 голосов
/ 09 декабря 2015

Если вы хотите отобразить измененные строки, вы можете сделать отметку на желобе вместо выделения.

var modified = 'ace-changed'; // css class
editor.on('change', function(e) {
    var activeLine = e.start.row;
    if (e.action == "insert") {
        while (activeLine < (e.end.row+1)) {
            editor.session.removeGutterDecoration(activeLine, modified);
            editor.session.addGutterDecoration(activeLine, modified);
            activeLine++;
        }
    } else if (e.action == "remove") {
        while (activeLine < (e.end.row+1)) {
            editor.session.removeGutterDecoration(activeLine, modified);
            activeLine++;
        }
        editor.session.addGutterDecoration(e.start.row, modified);
    }
});

JSFiddle: http://jsfiddle.net/u9e31pdm/1/

Снимок экрана: http://rghost.ru/6h4kMBM5z/image.png

Извините, если мой код не так хорош - я начал изучать javascript всего два дня назад.

1 голос
/ 21 марта 2014

Если вы хотите пометить строки ошибками / предупреждениями, вы можете использовать этот API:

    editor.getSession().setAnnotations([{
      row: 1,
      column: 10,
      text: "Strange error"
      type: "error" // also warning and information
    }]);

Подробности здесь: https://groups.google.com/d/msg/ace-discuss/joAFrXwWLX8/jejWFyGiMTwJ

...