use of org.eclipse.jgit.diff.Edit in project gerrit by GerritCodeReview.
the class DiffInfoCreator method calculateDiffContentEntries.
private static List<ContentEntry> calculateDiffContentEntries(PatchScript ps) {
ContentCollector contentCollector = new ContentCollector(ps);
Set<Edit> editsDueToRebase = ps.getEditsDueToRebase();
for (Edit edit : ps.getEdits()) {
logger.atFine().log("next edit = %s", edit);
if (edit.getType() == Edit.Type.EMPTY) {
logger.atFine().log("skip empty edit");
continue;
}
contentCollector.addCommon(edit.getBeginA());
checkState(contentCollector.nextA == edit.getBeginA(), "nextA = %s; want %s", contentCollector.nextA, edit.getBeginA());
checkState(contentCollector.nextB == edit.getBeginB(), "nextB = %s; want %s", contentCollector.nextB, edit.getBeginB());
switch(edit.getType()) {
case DELETE:
case INSERT:
case REPLACE:
List<Edit> internalEdit = edit instanceof ReplaceEdit ? ((ReplaceEdit) edit).getInternalEdits() : null;
boolean dueToRebase = editsDueToRebase.contains(edit);
contentCollector.addDiff(edit.getEndA(), edit.getEndB(), internalEdit, dueToRebase);
break;
case EMPTY:
default:
throw new IllegalStateException();
}
}
contentCollector.addCommon(ps.getA().getSize());
return contentCollector.lines;
}
use of org.eclipse.jgit.diff.Edit in project gerrit by GerritCodeReview.
the class OneLineContentWithEOLTest method replaceWithSingleLineNoEOLInTheMiddle.
@Test
public void replaceWithSingleLineNoEOLInTheMiddle() throws Exception {
FixResult fixResult = FixCalculatorVariousTest.calculateFixSingleReplacement("First line\n", 1, 3, 1, 5, "Abc");
assertThat(fixResult).text().isEqualTo("FirAbc line\n");
assertThat(fixResult).edits().hasSize(1);
Edit edit = fixResult.edits.get(0);
assertThat(edit).isReplace(0, 1, 0, 1);
assertThat(edit).internalEdits().onlyElement().isReplace(3, 2, 3, 3);
}
use of org.eclipse.jgit.diff.Edit in project gerrit by GerritCodeReview.
the class OneLineContentWithEOLTest method deleteAtStart.
@Test
public void deleteAtStart() throws Exception {
FixResult fixResult = FixCalculatorVariousTest.calculateFixSingleReplacement("First line\n", 1, 0, 1, 4, "");
assertThat(fixResult).text().isEqualTo("t line\n");
assertThat(fixResult).edits().hasSize(1);
Edit edit = fixResult.edits.get(0);
assertThat(edit).isReplace(0, 1, 0, 1);
assertThat(edit).internalEdits().onlyElement().isDelete(0, 4, 0);
}
use of org.eclipse.jgit.diff.Edit in project gerrit by GerritCodeReview.
the class OneLineContentWithEOLTest method insertSingleLineWithEOLInTheMiddle.
@Test
public void insertSingleLineWithEOLInTheMiddle() throws Exception {
FixResult fixResult = FixCalculatorVariousTest.calculateFixSingleReplacement("First line\n", 1, 5, 1, 5, "Abc\n");
assertThat(fixResult).text().isEqualTo("FirstAbc\n line\n");
assertThat(fixResult).edits().hasSize(1);
Edit edit = fixResult.edits.get(0);
assertThat(edit).isReplace(0, 1, 0, 2);
assertThat(edit).internalEdits().onlyElement().isInsert(5, 5, 4);
}
use of org.eclipse.jgit.diff.Edit in project gerrit by GerritCodeReview.
the class OneLineContentWithEOLTest method insertSingleLineWithEOLAtStart.
@Test
public void insertSingleLineWithEOLAtStart() throws Exception {
FixResult fixResult = FixCalculatorVariousTest.calculateFixSingleReplacement("First line\n", 1, 0, 1, 0, "Abc\n");
assertThat(fixResult).text().isEqualTo("Abc\nFirst line\n");
assertThat(fixResult).edits().hasSize(1);
Edit edit = fixResult.edits.get(0);
assertThat(edit).isInsert(0, 0, 1);
assertThat(edit).internalEdits().onlyElement().isInsert(0, 0, 4);
}
Aggregations