Fix obvious issues in cba
This commit is contained in:
@@ -135,6 +135,7 @@ define([
|
|||||||
// in the comments, "I" am "first"
|
// in the comments, "I" am "first"
|
||||||
var fixMarks = function (first, last, content, toKeepEnd) {
|
var fixMarks = function (first, last, content, toKeepEnd) {
|
||||||
var toKeep = [];
|
var toKeep = [];
|
||||||
|
console.log(first, last, JSON.stringify(toKeepEnd));
|
||||||
|
|
||||||
// Get their start position compared to the authDoc
|
// Get their start position compared to the authDoc
|
||||||
var lastAuthOffset = last.offset + last.total;
|
var lastAuthOffset = last.offset + last.total;
|
||||||
@@ -175,6 +176,10 @@ define([
|
|||||||
toJoin = parseMark(toJoinMark);
|
toJoin = parseMark(toJoinMark);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('to keep, to join');
|
||||||
|
console.warn(JSON.stringify(toKeep));
|
||||||
|
console.warn(JSON.stringify(toJoin));
|
||||||
|
|
||||||
// Add the new markers to the result
|
// Add the new markers to the result
|
||||||
Array.prototype.unshift.apply(toKeepEnd, toKeep);
|
Array.prototype.unshift.apply(toKeepEnd, toKeep);
|
||||||
|
|
||||||
@@ -199,12 +204,13 @@ define([
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (toKeep.length && toJoin) {
|
if (toKeep.length && toJoin && toJoin.endLine && toJoin.startLine) {
|
||||||
// Make sure the marks are joined correctly:
|
// Make sure the marks are joined correctly:
|
||||||
// fix the start position of the marks to keep
|
// fix the start position of the marks to keep
|
||||||
toKeepEnd[0][1] = toJoin.endLine;
|
toKeepEnd[0][1] = toJoin.endLine;
|
||||||
toKeepEnd[0][2] = toJoin.endCh;
|
toKeepEnd[0][2] = toJoin.endCh;
|
||||||
}
|
}
|
||||||
|
console.warn(JSON.stringify(toKeepEnd));
|
||||||
};
|
};
|
||||||
|
|
||||||
var checkMarks = function (Env, userDoc) {
|
var checkMarks = function (Env, userDoc) {
|
||||||
@@ -212,10 +218,11 @@ define([
|
|||||||
var chainpad = Env.framework._.cpNfInner.chainpad;
|
var chainpad = Env.framework._.cpNfInner.chainpad;
|
||||||
var editor = Env.editor;
|
var editor = Env.editor;
|
||||||
var CodeMirror = Env.CodeMirror;
|
var CodeMirror = Env.CodeMirror;
|
||||||
var oldMarks = Env.oldMarks;
|
|
||||||
|
|
||||||
setAuthorMarks(Env, userDoc.authormarks);
|
setAuthorMarks(Env, userDoc.authormarks);
|
||||||
|
|
||||||
|
var oldMarks = Env.oldMarks;
|
||||||
|
|
||||||
if (!Env.enabled) { return; }
|
if (!Env.enabled) { return; }
|
||||||
|
|
||||||
var authDoc = JSON.parse(chainpad.getAuthDoc() || '{}');
|
var authDoc = JSON.parse(chainpad.getAuthDoc() || '{}');
|
||||||
@@ -229,7 +236,13 @@ define([
|
|||||||
var commonParent = chainpad.getAuthBlock().getParent().getContent().doc;
|
var commonParent = chainpad.getAuthBlock().getParent().getContent().doc;
|
||||||
var content = JSON.parse(commonParent || '{}').content || '';
|
var content = JSON.parse(commonParent || '{}').content || '';
|
||||||
|
|
||||||
|
console.error("BEGIN");
|
||||||
|
console.log(JSON.stringify(oldMarks.marks));
|
||||||
|
console.log(JSON.stringify(authDoc.authormarks.marks));
|
||||||
|
|
||||||
|
|
||||||
var theirOps = ChainPad.Diff.diff(content, authDoc.content);
|
var theirOps = ChainPad.Diff.diff(content, authDoc.content);
|
||||||
|
console.warn(theirOps, chainpad.getAuthBlock().getPatch().operations);
|
||||||
var myOps = ChainPad.Diff.diff(content, localDoc);
|
var myOps = ChainPad.Diff.diff(content, localDoc);
|
||||||
|
|
||||||
if (!myOps.length || !theirOps.length) { return; }
|
if (!myOps.length || !theirOps.length) { return; }
|
||||||
@@ -263,7 +276,8 @@ define([
|
|||||||
theirOps.forEach(parseOp(false));
|
theirOps.forEach(parseOp(false));
|
||||||
|
|
||||||
var sorted = Object.keys(ops).map(Number);
|
var sorted = Object.keys(ops).map(Number);
|
||||||
sorted.sort().reverse();
|
sorted.sort(function (a, b) { return a-b; }).reverse();
|
||||||
|
console.warn(ops, sorted);
|
||||||
|
|
||||||
// We start from the end so that we don't have to fix the offsets everytime
|
// We start from the end so that we don't have to fix the offsets everytime
|
||||||
var prev;
|
var prev;
|
||||||
@@ -289,6 +303,10 @@ define([
|
|||||||
// Prepend the markers placed before this operation
|
// Prepend the markers placed before this operation
|
||||||
var first = ops[sorted[sorted.length - 1]];
|
var first = ops[sorted[sorted.length - 1]];
|
||||||
if (first) { Array.prototype.unshift.apply(toKeepEnd, first.marks); }
|
if (first) { Array.prototype.unshift.apply(toKeepEnd, first.marks); }
|
||||||
|
console.error(JSON.stringify(first.marks));
|
||||||
|
console.error(JSON.stringify(toKeepEnd));
|
||||||
|
|
||||||
|
console.error("END");
|
||||||
|
|
||||||
// Commit our new markers
|
// Commit our new markers
|
||||||
Env.authormarks.marks = toKeepEnd;
|
Env.authormarks.marks = toKeepEnd;
|
||||||
@@ -329,6 +347,8 @@ define([
|
|||||||
mark.clear();
|
mark.clear();
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
console.warn(mark, JSON.stringify(authormarks.marks));
|
||||||
|
console.error(from, to);
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -515,7 +535,12 @@ define([
|
|||||||
if (Env.ready) { Env.framework.localChange(); }
|
if (Env.ready) { Env.framework.localChange(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Env.enabled) { return; }
|
// If the markers are disabled or if I haven't pushed content since the last reset,
|
||||||
|
// don't update my data
|
||||||
|
if (!Env.enabled || !Env.myAuthorId || !Env.authormarks.authors[Env.myAuthorId]) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Update my data
|
// Update my data
|
||||||
var changed = setMyData(Env);
|
var changed = setMyData(Env);
|
||||||
if (changed) {
|
if (changed) {
|
||||||
|
|||||||
Reference in New Issue
Block a user