Skip to content

Commit

Permalink
Output diff stats instead of similarity score
Browse files Browse the repository at this point in the history
  • Loading branch information
sergeche committed Dec 12, 2021
1 parent 308bf8f commit 36174d5
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 6 deletions.
10 changes: 5 additions & 5 deletions src/diff.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ export default function diff(from: ParsedModel, to: ParsedModel, options: Option
let fromOffset = 0;
const del = options.invert ? 'ins' : 'del';
const ins = options.invert ? 'del' : 'ins';
const updateStats = {
const diffStats = {
ins: 0,
del: 0,
eq: 0
Expand Down Expand Up @@ -83,7 +83,7 @@ export default function diff(from: ParsedModel, to: ParsedModel, options: Option
const chunk = fragment(from, fromOffset, fromOffset + value.length, fragmentOpt);
state.push(chunk.toDiffToken(del, value, pos));

updateStats.del += value.length;
diffStats.del += value.length;
}
fromOffset += value.length;
} else if (d[0] === DIFF_INSERT) {
Expand All @@ -97,15 +97,15 @@ export default function diff(from: ParsedModel, to: ParsedModel, options: Option
if (!shouldSkipIns(value, toOffset, state, options)) {
const tagName = options.skipSpace && isWhitespace(value) ? '' : ins;
moveSlice(to, toOffset, toOffset + value.length, tagName, state);
updateStats.ins += value.length;
diffStats.ins += value.length;
}

toOffset += value.length;
} else if (d[0] === DIFF_EQUAL) {
// Unmodified content
toOffset += value.length;
fromOffset += value.length;
updateStats.eq += value.length;
diffStats.eq += value.length;

// Move all tokens of destination document to output result
while (state.hasNext()) {
Expand Down Expand Up @@ -150,7 +150,7 @@ export default function diff(from: ParsedModel, to: ParsedModel, options: Option
return {
tokens: state.output.concat(state.input.slice(state.ptr)),
content: to.content,
similarity: updateStats.eq / (updateStats.ins + updateStats.del + updateStats.eq)
stats: diffStats
};
}

Expand Down
8 changes: 7 additions & 1 deletion src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,13 @@ import { ElementType } from '@emmetio/html-matcher';
export interface ParsedModel {
tokens: Token[];
content: string;
similarity?: number;
stats?: DiffStats;
}

export interface DiffStats {
ins: number;
del: number;
eq: number;
}

export const enum ElementTypeAddon {
Expand Down

0 comments on commit 36174d5

Please sign in to comment.