authorcolor storage optimizations
This commit is contained in:
@@ -382,23 +382,29 @@ define([
|
|||||||
|
|
||||||
// get author marks
|
// get author marks
|
||||||
var authormarks = [];
|
var authormarks = [];
|
||||||
|
var colorlist = [];
|
||||||
editor.getAllMarks().forEach(function (mark) {
|
editor.getAllMarks().forEach(function (mark) {
|
||||||
var pos = mark.find();
|
var pos = mark.find();
|
||||||
var css = mark.css;
|
var css = mark.css;
|
||||||
if (pos !== undefined && css !== undefined) {
|
if (pos !== undefined && css !== undefined) {
|
||||||
var color = css.replace("background-color:", "").trim();
|
var color = css.replace("background-color:", "").trim();
|
||||||
|
var colorIndex = colorlist.indexOf(color);
|
||||||
|
if (colorIndex === -1) {
|
||||||
|
colorlist.push(color);
|
||||||
|
colorIndex = colorlist.length-1;
|
||||||
|
}
|
||||||
if (pos.from.line === pos.to.line) {
|
if (pos.from.line === pos.to.line) {
|
||||||
if ((pos.from.ch + 1) === pos.to.ch) {
|
if ((pos.from.ch + 1) === pos.to.ch) {
|
||||||
authormarks.push([pos.from.line, pos.from.ch, color]);
|
authormarks.push([colorIndex, pos.from.line, pos.from.ch]);
|
||||||
} else {
|
} else {
|
||||||
authormarks.push([pos.from.line, pos.from.ch, pos.to.ch, color]);
|
authormarks.push([colorIndex, pos.from.line, pos.from.ch, pos.to.ch]);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
authormarks.push([pos.from.line, pos.from.ch, pos.to.line, pos.to.ch, color]);
|
authormarks.push([colorIndex, pos.from.line, pos.from.ch, pos.to.line, pos.to.ch]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
content.authormarks = authormarks;
|
content.authormarks = {marks: authormarks, colorlist: colorlist};
|
||||||
authormarksLocal = authormarks.slice();
|
authormarksLocal = authormarks.slice();
|
||||||
|
|
||||||
return content;
|
return content;
|
||||||
@@ -484,32 +490,31 @@ define([
|
|||||||
editor.getAllMarks().forEach(function (marker) {
|
editor.getAllMarks().forEach(function (marker) {
|
||||||
marker.clear();
|
marker.clear();
|
||||||
});
|
});
|
||||||
authormarksUpdate.forEach(function (mark) {
|
authormarksUpdate.marks.forEach(function (mark) {
|
||||||
var from_line;
|
var from_line;
|
||||||
var to_line;
|
var to_line;
|
||||||
var from_ch;
|
var from_ch;
|
||||||
var to_ch;
|
var to_ch;
|
||||||
var mark_color;
|
var colorIndex = mark[0];
|
||||||
|
if (authormarksUpdate.colorlist === undefined || (authormarksUpdate.colorlist.length < (colorIndex+1))) { return; }
|
||||||
|
var color = authormarksUpdate.colorlist[colorIndex];
|
||||||
if (mark.length === 3) {
|
if (mark.length === 3) {
|
||||||
from_line = mark[0];
|
from_line = mark[1];
|
||||||
to_line = mark[0];
|
to_line = mark[1];
|
||||||
from_ch = mark[1];
|
from_ch = mark[2];
|
||||||
to_ch = mark[1]+1;
|
to_ch = mark[2]+1;
|
||||||
mark_color = mark[2];
|
|
||||||
} else if (mark.length === 4) {
|
} else if (mark.length === 4) {
|
||||||
from_line = mark[0];
|
from_line = mark[1];
|
||||||
to_line = mark[0];
|
to_line = mark[1];
|
||||||
from_ch = mark[1];
|
from_ch = mark[2];
|
||||||
to_ch = mark[2];
|
|
||||||
mark_color = mark[3];
|
|
||||||
} else if (mark.length === 5) {
|
|
||||||
from_line = mark[0];
|
|
||||||
to_line = mark[2];
|
|
||||||
from_ch = mark[1];
|
|
||||||
to_ch = mark[3];
|
to_ch = mark[3];
|
||||||
mark_color = mark[4];
|
} else if (mark.length === 5) {
|
||||||
|
from_line = mark[1];
|
||||||
|
to_line = mark[3];
|
||||||
|
from_ch = mark[2];
|
||||||
|
to_ch = mark[4];
|
||||||
}
|
}
|
||||||
editor.markText({line: from_line, ch: from_ch}, {line: to_line, ch: to_ch}, {css: "background-color: " + mark_color});
|
editor.markText({line: from_line, ch: from_ch}, {line: to_line, ch: to_ch}, {css: "background-color: " + color});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
framework.localChange();
|
framework.localChange();
|
||||||
|
|||||||
Reference in New Issue
Block a user