User:Cacycle/diff.js: Difference between revisions

Content deleted Content added
1.0.17 (September 13, 2014) newline symbol on block hovering, darker blank-only blocks, unlink not followed by calculate diff but bubbling
1.0.18 (September 13, 2014) split around newlines, fixes bubbling
Line 3:
// ==UserScript==
// @name wDiff
// @version 1.0.1718
// @date September 13, 2014
// @description improved word-based diff library with block move detection
Line 143:
wDiff.regExpSplit = {
 
// paragraphs: before and after newline
paragraph: /(.|\n)+?(?=(\n|$))/g,
 
// sentences: after .spaces or before newline
sentence: /\n|.*?\.( +|(?=\n))|.s+?(?=\n)/g,
 
// inline chunks
Line 984:
var front = gapStart;
var back = i;
var backTestfrontPrev = backnull;
var frontTestbackPrev = frontnull;
while (
(front !== null) && (back !== null) &&
Line 992 ⟶ 994:
textLinked.tokens[ text.tokens[front].link ].link = front;
text.tokens[back].link = null;
frontPrev = front;
backPrev = back;
front = text.tokens[front].next;
back = text.tokens[back].next;
Line 998 ⟶ 1,002:
// test baloon up, remember last line break or closing text
var frontStop = null;
var frontTest = frontPrev;
if ( (front !== null) && (back !== null) ) {
var backTest = backPrev;
front = text.tokens[front].prev;
while (
back = text.tokens[back].prev;
if ( (frontfrontTest !== null) && (backbackTest !== null) ) {&&
 
(text.tokens[frontTest].link !== null) && (text.tokens[backTest].link === null) &&
var frontTest = front;
(text.tokens[frontTest].token == text.tokens[backTest].token)
var backTest = back;
while) ({
if (wDiff.regExpBubbleStop.test(text.tokens[frontTest].token) !== null) && (backTest !== nulltrue) &&{
frontStop = frontTest;
(text.tokens[frontTest].link !== null) && (text.tokens[backTest].link === null) &&
break;
(text.tokens[frontTest].token == text.tokens[backTest].token)
) {}
else if ( (frontStop === null) && (wDiff.regExpBubbleStopregExpBubbleClosing.test(text.tokens[frontTest].token) === true) ) {
frontStop = frontTest;
break;
}
else if ( (frontStop === null) && (wDiff.regExpBubbleClosing.test(text.tokens[frontTest].token) === true) ) {
frontStop = frontTest;
}
frontTest = text.tokens[frontTest].prev;
backTest = text.tokens[backTest].prev;
}
backfrontTest = text.tokens[backfrontTest].prev;
frontbackTest = text.tokens[frontbackTest].prev;
}