this.onChange = function()

in public/src/sense_editor/mode/worker.js [1016:1077]


    this.onChange = function (e) {
      var delta = e.data;
      var range = delta.range;

      if (range.start.row == range.end.row && range.start.row != this.row)
        return;

      if (range.start.row > this.row)
        return;

      if (range.start.row == this.row && range.start.column > this.column)
        return;

      var row = this.row;
      var column = this.column;
      var start = range.start;
      var end = range.end;

      if (delta.action === "insertText") {
        if (start.row === row && start.column <= column) {
          if (start.column === column && this.$insertRight) {
          } else if (start.row === end.row) {
            column += end.column - start.column;
          } else {
            column -= start.column;
            row += end.row - start.row;
          }
        } else if (start.row !== end.row && start.row < row) {
          row += end.row - start.row;
        }
      } else if (delta.action === "insertLines") {
        if (start.row <= row) {
          row += end.row - start.row;
        }
      } else if (delta.action === "removeText") {
        if (start.row === row && start.column < column) {
          if (end.column >= column)
            column = start.column;
          else
            column = Math.max(0, column - (end.column - start.column));

        } else if (start.row !== end.row && start.row < row) {
          if (end.row === row)
            column = Math.max(0, column - end.column) + start.column;
          row -= (end.row - start.row);
        } else if (end.row === row) {
          row -= end.row - start.row;
          column = Math.max(0, column - end.column) + start.column;
        }
      } else if (delta.action == "removeLines") {
        if (start.row <= row) {
          if (end.row <= row)
            row -= end.row - start.row;
          else {
            row = start.row;
            column = 0;
          }
        }
      }

      this.setPosition(row, column, true);
    };