Search in sources :

Example 91 with Edit

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;
}
Also used : ReplaceEdit(com.google.gerrit.jgit.diff.ReplaceEdit) Edit(org.eclipse.jgit.diff.Edit) ReplaceEdit(com.google.gerrit.jgit.diff.ReplaceEdit)

Example 92 with Edit

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);
}
Also used : FixResult(com.google.gerrit.server.fixes.FixCalculator.FixResult) Edit(org.eclipse.jgit.diff.Edit) Test(org.junit.Test)

Example 93 with Edit

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);
}
Also used : FixResult(com.google.gerrit.server.fixes.FixCalculator.FixResult) Edit(org.eclipse.jgit.diff.Edit) Test(org.junit.Test)

Example 94 with Edit

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);
}
Also used : FixResult(com.google.gerrit.server.fixes.FixCalculator.FixResult) Edit(org.eclipse.jgit.diff.Edit) Test(org.junit.Test)

Example 95 with Edit

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);
}
Also used : FixResult(com.google.gerrit.server.fixes.FixCalculator.FixResult) Edit(org.eclipse.jgit.diff.Edit) Test(org.junit.Test)

Aggregations

Edit (org.eclipse.jgit.diff.Edit)142 Test (org.junit.Test)117 FixResult (com.google.gerrit.server.fixes.FixCalculator.FixResult)112 ReplaceEdit (com.google.gerrit.jgit.diff.ReplaceEdit)9 ArrayList (java.util.ArrayList)5 RawText (org.eclipse.jgit.diff.RawText)5 Range (com.google.gerrit.entities.Comment.Range)4 FixReplacement (com.google.gerrit.entities.FixReplacement)4 Text (com.google.gerrit.server.patch.Text)4 EditList (org.eclipse.jgit.diff.EditList)4 PatchScript (com.google.gerrit.common.data.PatchScript)3 TaggedEdit (com.google.gerrit.server.patch.filediff.TaggedEdit)3 ByteArrayOutputStream (java.io.ByteArrayOutputStream)3 DiffFormatter (org.eclipse.jgit.diff.DiffFormatter)3 ReplaceEdit (org.eclipse.jgit.diff.ReplaceEdit)3 AbbreviatedObjectId (org.eclipse.jgit.lib.AbbreviatedObjectId)3 ObjectReader (org.eclipse.jgit.lib.ObjectReader)3 RevWalk (org.eclipse.jgit.revwalk.RevWalk)3 DiffPreferencesInfo (com.google.gerrit.extensions.client.DiffPreferencesInfo)2 SparseFileContent (com.google.gerrit.prettify.common.SparseFileContent)2