do not group annotations by rows since whole array is replaced every time

This commit is contained in:
nightwing 2012-09-06 18:55:11 +04:00
commit 82550104db
2 changed files with 20 additions and 31 deletions

View file

@ -752,15 +752,7 @@ var EditSession = function(text, mode) {
* Sets annotations for the `EditSession`. This functions emits the `'changeAnnotation'` event. * Sets annotations for the `EditSession`. This functions emits the `'changeAnnotation'` event.
**/ **/
this.setAnnotations = function(annotations) { this.setAnnotations = function(annotations) {
this.$annotations = {}; this.$annotations = annotations;
for (var i=0; i<annotations.length; i++) {
var annotation = annotations[i];
var row = annotation.row;
if (this.$annotations[row])
this.$annotations[row].push(annotation);
else
this.$annotations[row] = [annotation];
}
this._emit("changeAnnotation", {}); this._emit("changeAnnotation", {});
}; };

View file

@ -72,18 +72,16 @@ var Gutter = function(parentEl) {
this.setAnnotations = function(annotations) { this.setAnnotations = function(annotations) {
// iterate over sparse array // iterate over sparse array
this.$annotations = []; this.$annotations = []
for (var row in annotations) if (annotations.hasOwnProperty(row)) { var rowInfo, row;
var rowAnnotations = annotations[row]; for (var i = 0; i < annotations.length; i++) {
if (!rowAnnotations) var annotation = annotations[i];
continue; var row = annotation.row;
var rowInfo = this.$annotations[row];
var rowInfo = this.$annotations[row] = { if (!rowInfo) {
text: [] rowInfo = this.$annotations[row] = {text: []};
}; }
for (var i=0; i<rowAnnotations.length; i++) { var annoText = annotation.text.replace(/"/g, "&quot;").replace(/'/g, "&#8217;").replace(/</g, "&lt;");
var annotation = rowAnnotations[i];
var annoText = annotation.text.replace(/"/g, "&quot;").replace(/'/g, "&#8217;").replace(/</, "&lt;");
if (rowInfo.text.indexOf(annoText) === -1) if (rowInfo.text.indexOf(annoText) === -1)
rowInfo.text.push(annoText); rowInfo.text.push(annoText);
var type = annotation.type; var type = annotation.type;
@ -94,7 +92,6 @@ var Gutter = function(parentEl) {
else if (type == "info" && (!rowInfo.className)) else if (type == "info" && (!rowInfo.className))
rowInfo.className = " ace_info"; rowInfo.className = " ace_info";
} }
}
}; };
this.$updateAnnotations = function (e) { this.$updateAnnotations = function (e) {