@pierre/diffs
Version:
34 lines (32 loc) • 907 B
JavaScript
import "diff";
//#region src/utils/parseDiffDecorations.ts
function createDiffSpanDecoration({ line, spanStart, spanLength }) {
return {
start: {
line,
character: spanStart
},
end: {
line,
character: spanStart + spanLength
},
properties: { "data-diff-span": "" },
alwaysWrap: true
};
}
function pushOrJoinSpan({ item, arr, enableJoin, isNeutral = false, isLastItem = false }) {
const lastItem = arr[arr.length - 1];
if (lastItem == null || isLastItem || !enableJoin) {
arr.push([isNeutral ? 0 : 1, item.value]);
return;
}
const isLastItemNeutral = lastItem[0] === 0;
if (isNeutral === isLastItemNeutral || isNeutral && item.value.length === 1 && !isLastItemNeutral) {
lastItem[1] += item.value;
return;
}
arr.push([isNeutral ? 0 : 1, item.value]);
}
//#endregion
export { createDiffSpanDecoration, pushOrJoinSpan };
//# sourceMappingURL=parseDiffDecorations.js.map