authorcolor storage optimizations

pull/1/head
stoppegp 5 years ago
parent 56031a5c14
commit 272c1007db

@ -382,23 +382,29 @@ define([
// get author marks
var authormarks = [];
var colorlist = [];
editor.getAllMarks().forEach(function (mark) {
var pos = mark.find();
var css = mark.css;
if (pos !== undefined && css !== undefined) {
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.ch + 1) === pos.to.ch) {
authormarks.push([pos.from.line, pos.from.ch, color]);
authormarks.push([colorIndex, pos.from.line, pos.from.ch]);
} 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 {
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();
return content;
@ -484,32 +490,31 @@ define([
editor.getAllMarks().forEach(function (marker) {
marker.clear();
});
authormarksUpdate.forEach(function (mark) {
authormarksUpdate.marks.forEach(function (mark) {
var from_line;
var to_line;
var from_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) {
from_line = mark[0];
to_line = mark[0];
from_ch = mark[1];
to_ch = mark[1]+1;
mark_color = mark[2];
from_line = mark[1];
to_line = mark[1];
from_ch = mark[2];
to_ch = mark[2]+1;
} else if (mark.length === 4) {
from_line = mark[0];
to_line = mark[0];
from_ch = mark[1];
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];
from_line = mark[1];
to_line = mark[1];
from_ch = mark[2];
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();

Loading…
Cancel
Save