RangeDifference rdi = rd[i]; log.debug( rdi.kindString() + " left " + rdi.leftStart() + "," + rdi.leftLength() + " right " + rdi.rightStart() + "," + rdi.rightLength() );
public double getMatchRatio(StringComparator other) { LCSSettings settings = new LCSSettings(); settings.setUseGreedyMethod(true); settings.setPowLimit(1.5); settings.setTooLong(150 * 150); RangeDifference[] differences = RangeDifferencer.findDifferences( settings, other, this); int distanceOther = 0; for (RangeDifference d : differences) { distanceOther += d.leftLength(); } int distanceThis = 0; for (RangeDifference d : differences) { distanceThis += d.rightLength(); } return ((0.0 + distanceOther) / other.getRangeCount() + (0.0 + distanceThis) / getRangeCount()) / 2; } }
toRangeString( left, rd[x].leftStart(), rd[x].leftLength(), true ) + rd[x].kindString() + toRangeString( right, rd[x].rightStart(), rd[x].rightLength(), true ) ); i<(rd[x].rightStart()+rd[x].rightLength()); i++) {
output.addRemovedPart(leftString); if (pdifferences.get(i).rightLength() > 0) output.addAddedPart(rightString);
for (int i= 0; i < differences.length; i++) { RangeDifference curr= differences[i]; if (curr.kind() == RangeDifference.CHANGE && curr.rightLength() > 0) { int startLine= curr.rightStart(); int endLine= curr.rightEnd() - 1;
for (int i= 0; i < differences.length; i++) { RangeDifference curr= differences[i]; if (curr.kind() == RangeDifference.CHANGE && curr.rightLength() > 0) { int startLine= curr.rightStart(); int endLine= curr.rightEnd() - 1;
.get(j).leftEnd())); if (pdifferences2.get(j).rightLength() > 0) { output.addAddedPart(rightComparator2.substring( pdifferences2.get(j).rightStart(),
public double getMatchRatio(StringComparator other) { LCSSettings settings = new LCSSettings(); settings.setUseGreedyMethod(true); settings.setPowLimit(1.5); settings.setTooLong(150 * 150); RangeDifference[] differences = RangeDifferencer.findDifferences( settings, other, this); int distanceOther = 0; for (RangeDifference d : differences) { distanceOther += d.leftLength(); } int distanceThis = 0; for (RangeDifference d : differences) { distanceThis += d.rightLength(); } return ((0.0 + distanceOther) / other.getRangeCount() + (0.0 + distanceThis) / getRangeCount()) / 2; } }
public double getMatchRatio(TextOnlyComparator other) { LCSSettings settings = new LCSSettings(); settings.setUseGreedyMethod(true); settings.setPowLimit(1.5); settings.setTooLong(150 * 150); RangeDifference[] differences = RangeDifferencer.findDifferences( settings, other, this); int distanceOther = 0; for (RangeDifference d : differences) { distanceOther += d.leftLength(); } int distanceThis = 0; for (RangeDifference d : differences) { distanceThis += d.rightLength(); } return ((0.0 + distanceOther) / other.getRangeCount() + (0.0 + distanceThis) / getRangeCount()) / 2; } }
IRegion rRegion = rDoc.getLineInformation(diff.rightStart()); int rightEnd = sright.getTokenStart(diff.rightStart() + diff.rightLength()); String right = rDoc.get(rRegion.getOffset(), rightEnd - rRegion.getOffset());
private List<RangeDifference> preProcess(RangeDifference[] differences) { List<RangeDifference> newRanges = new LinkedList<RangeDifference>(); for (int i = 0; i < differences.length; i++) { int ancestorStart = differences[i].ancestorStart(); int ancestorEnd = differences[i].ancestorEnd(); int leftStart = differences[i].leftStart(); int leftEnd = differences[i].leftEnd(); int rightStart = differences[i].rightStart(); int rightEnd = differences[i].rightEnd(); int kind = differences[i].kind(); int ancestorLength = ancestorEnd - ancestorStart; int leftLength = leftEnd - leftStart; int rightLength = rightEnd - rightStart; while (i + 1 < differences.length && differences[i + 1].kind() == kind && score(leftLength, differences[i + 1].leftLength(), rightLength, differences[i + 1].rightLength()) > (differences[i + 1] .leftStart() - leftEnd)) { leftEnd = differences[i + 1].leftEnd(); rightEnd = differences[i + 1].rightEnd(); ancestorEnd = differences[i + 1].ancestorEnd(); leftLength = leftEnd - leftStart; rightLength = rightEnd - rightStart; ancestorLength = ancestorEnd - ancestorStart; i++; } newRanges.add(new RangeDifference(kind, rightStart, rightLength, leftStart, leftLength, ancestorStart, ancestorLength)); } return newRanges; }
int rightEnd= getTokenEnd2(sright, es.rightStart(), es.rightLength());
public TextChange createChange() throws Exception { TextChange change = oldFile == null ? new DocumentChange(label, oldDocument) : new TextFileChange(label, oldFile); // change.setSaveMode(TextFileChange.FORCE_SAVE); change.setEdit(new MultiTextEdit()); Object leftSide = new LineComparator(oldDocument); Object rightSide = new LineComparator(newDocument); RangeDifference[] differences = RangeDifferencer.findDifferences((IRangeComparator) leftSide, (IRangeComparator) rightSide); for(int i = 0; i < differences.length; i++ ) { RangeDifference curr = differences[i]; if(curr.leftLength() == 0 && curr.rightLength() == 0) continue; int rightOffset = newDocument.getLineOffset(curr.rightStart()); int rightLength = curr.rightLength() == 0 ? 0 : newDocument.getLineOffset(curr.rightEnd() - 1) - rightOffset + newDocument.getLineLength(curr.rightEnd() - 1); int leftOffset = oldDocument.getLineOffset(curr.leftStart()); int leftLength = curr.leftLength() == 0 ? 0 : oldDocument.getLineOffset(curr.leftEnd() - 1) - leftOffset + oldDocument.getLineLength(curr.leftEnd() - 1); String newText = newDocument.get(rightOffset, rightLength); addEdit(change, curr.leftStart(), new ReplaceEdit(leftOffset, leftLength, newText)); } return change; }
if (d.leftLength() + d.rightLength() > 1) { txt.addHtml("<ul class='changelist'>"); lvl1listopened = true;
int rightEnd2= rightStart + getTokenEnd(sm, es.rightStart(), es.rightLength());
int rightEnd2= rightStart + getTokenEnd(sm, es.rightStart(), es.rightLength());
int rightEnd= getTokenEnd2(sright, es.rightStart(), es.rightLength());
if (d.rightLength() > 0) { ancestorComparator.markAsDeleted(d.rightStart(), d.rightEnd(), rightComparator, d.ancestorStart(), d.ancestorEnd(), ModificationType.ADDED);
int rightEnd2= rightStart+getTokenEnd(sm, last.rightStart(), last.rightLength()); Diff diff= new Diff(baseDiff, first.kind(), ancestorDoc, null, ancestorStart2, ancestorEnd2,
int rightEnd2= rightStart+getTokenEnd(sm, last.rightStart(), last.rightLength()); Diff diff= new Diff(baseDiff, first.kind(), ancestorDoc, null, ancestorStart2, ancestorEnd2,