39 lines
1.5 KiB
JavaScript
39 lines
1.5 KiB
JavaScript
requireJAR('diffutils-1.3.0.jar');
|
|
|
|
var DiffUtils = Packages.difflib.DiffUtils;
|
|
var DeleteDelta = Packages.difflib.DeleteDelta;
|
|
var ChangeDelta = Packages.difflib.ChangeDelta;
|
|
var InsertDelta = Packages.difflib.InsertDelta;
|
|
|
|
exports.diff2List = (left, right) => {
|
|
var patch = DiffUtils.diff(left, right);
|
|
var result = [];
|
|
$EACH(patch.getDeltas(), (delta) => {
|
|
if (delta instanceof DeleteDelta) {
|
|
result.push("@@deleted @" + delta.getOriginal().getPosition()
|
|
+ " #" + delta.getOriginal().getLines().size());
|
|
$EACH(delta.getOriginal().getLines(), (line) => {
|
|
result.push("-- " + line);
|
|
})
|
|
}
|
|
if (delta instanceof ChangeDelta) {
|
|
result.push("@@modified @" + delta.getOriginal().getPosition()
|
|
+ " #" + delta.getOriginal().getLines().size() + '-' + delta.getRevised().getLines().size());
|
|
$EACH(delta.getOriginal().getLines(), (line) => {
|
|
result.push("-- " + line);
|
|
});
|
|
$EACH(delta.getRevised().getLines(), (line) => {
|
|
result.push("++ " + line);
|
|
});
|
|
}
|
|
if (delta instanceof InsertDelta) {
|
|
result.push("@@inserted @" + delta.getOriginal().getPosition()
|
|
+ " #" + delta.getRevised().getLines().size());
|
|
$EACH(delta.getRevised().getLines(), (line) => {
|
|
result.push("++ " + line);
|
|
});
|
|
}
|
|
});
|
|
return result;
|
|
};
|