Fix: Ensure equalities processed via new processEqualities hook (Fixes #219) by tusharsoni52 · Pull Request #224 · java-diff-utils/java-diff-utils
private final boolean showInlineDiffs; private final boolean replaceOriginalLinefeedInChangesWithSpaces;
replaceOriginalLinefeedInChangesWithSpaces = builder.replaceOriginalLinefeedInChangesWithSpaces;
// Copy the final matching chunk if any. for (String line : original.subList(endPos, original.size())) { diffRows.add(buildDiffRow(Tag.EQUAL, line, line)); String processed = processEqualities(line); diffRows.add(buildDiffRow(Tag.EQUAL, processed, processed)); } return diffRows; }
for (String line : original.subList(endPos, orig.getPosition())) { diffRows.add(buildDiffRow(Tag.EQUAL, line, line)); String processed = processEqualities(line); diffRows.add(buildDiffRow(Tag.EQUAL, processed, processed)); }
switch (delta.getType()) {
/** * Hook for processing equal (unchanged) text segments. * Delegates to the builder-configured equalityProcessor if present. * * @author tusharsoni52 * @param text * @return * */ protected String processEqualities(final String text) { return equalityProcessor != null ? equalityProcessor.apply(text) : text; }
/** * This class used for building the DiffRowGenerator. *
private Builder() {}
/** * Processor for equal (unchanged) text parts. * Allows applying the same escaping/transformation as for diffs. * * @author tusharsoni52 * @param equalityProcessor * @return * */ public Builder processEqualities(Function<String, String> equalityProcessor) { this.equalityProcessor = equalityProcessor; return this; }
/** * Set the column width of generated lines of original and revised * texts.