diff --git a/platform/diff-api/src/com/intellij/diff/fragments/LineFragmentImpl.java b/platform/diff-api/src/com/intellij/diff/fragments/LineFragmentImpl.java index ae06edf5481e..4072266fe5f3 100644 --- a/platform/diff-api/src/com/intellij/diff/fragments/LineFragmentImpl.java +++ b/platform/diff-api/src/com/intellij/diff/fragments/LineFragmentImpl.java @@ -64,9 +64,7 @@ public class LineFragmentImpl implements LineFragment { myInnerFragments = dropWholeChangedFragments(innerFragments, endOffset1 - startOffset1, endOffset2 - startOffset2); if (myStartLine1 == myEndLine1 && - myStartLine2 == myEndLine2 && - myStartOffset1 == myEndOffset1 && - myStartOffset2 == myEndOffset2) { + myStartLine2 == myEndLine2) { LOG.error("LineFragmentImpl should not be empty: " + toString()); } if (myStartLine1 > myEndLine1 || diff --git a/platform/diff-impl/src/com/intellij/diff/tools/fragmented/ChangedBlock.java b/platform/diff-impl/src/com/intellij/diff/tools/fragmented/ChangedBlock.java index fca102eb0313..58ffe80b86e7 100644 --- a/platform/diff-impl/src/com/intellij/diff/tools/fragmented/ChangedBlock.java +++ b/platform/diff-impl/src/com/intellij/diff/tools/fragmented/ChangedBlock.java @@ -46,18 +46,6 @@ class ChangedBlock { myLineFragment = lineFragment; } - @NotNull - public static ChangedBlock createInserted(int length, int lines) { - LineFragmentImpl lineFragment = new LineFragmentImpl(0, 0, 0, lines, 0, 0, 0, length); - return new ChangedBlock(0, 0, 0, length, 0, lines, lineFragment); - } - - @NotNull - public static ChangedBlock createDeleted(int length, int lines) { - LineFragmentImpl lineFragment = new LineFragmentImpl(0, lines, 0, 0, 0, length, 0, 0); - return new ChangedBlock(0, length, 0, 0, 0, lines, lineFragment); - } - public int getStartOffset1() { return myStartOffset1; } diff --git a/platform/diff-impl/src/com/intellij/diff/tools/fragmented/UnifiedDiffViewer.java b/platform/diff-impl/src/com/intellij/diff/tools/fragmented/UnifiedDiffViewer.java index 793dda10dedd..5f463b8feaf0 100644 --- a/platform/diff-impl/src/com/intellij/diff/tools/fragmented/UnifiedDiffViewer.java +++ b/platform/diff-impl/src/com/intellij/diff/tools/fragmented/UnifiedDiffViewer.java @@ -62,6 +62,7 @@ import javax.swing.*; import java.util.*; import static com.intellij.diff.util.DiffUtil.getLineCount; +import static com.intellij.diff.util.DiffUtil.getLinesContent; public class UnifiedDiffViewer extends ListenerDiffViewerBase { public static final Logger LOG = Logger.getInstance(UnifiedDiffViewer.class); @@ -1182,9 +1183,8 @@ public class UnifiedDiffViewer extends ListenerDiffViewerBase { LineFragment lineFragment = change.getLineFragment(); - int insertedStart = lineFragment.getStartOffset2(); - int insertedEnd = lineFragment.getEndOffset2(); - CharSequence insertedText = getContent(mySide).getDocument().getCharsSequence().subSequence(insertedStart, insertedEnd); + Document document = getContent(mySide).getDocument(); + CharSequence insertedText = getLinesContent(document, lineFragment.getStartLine2(), lineFragment.getEndLine2()); int lineNumber = lineFragment.getStartLine2(); diff --git a/platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java b/platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java index 398b7b49495b..facd82456a15 100644 --- a/platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java +++ b/platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java @@ -793,8 +793,8 @@ public class DiffUtil { @NotNull public static TextDiffType getLineDiffType(@NotNull LineFragment fragment) { - boolean left = fragment.getEndOffset1() != fragment.getStartOffset1() || fragment.getStartLine1() != fragment.getEndLine1(); - boolean right = fragment.getEndOffset2() != fragment.getStartOffset2() || fragment.getStartLine2() != fragment.getEndLine2(); + boolean left = fragment.getStartLine1() != fragment.getEndLine1(); + boolean right = fragment.getStartLine2() != fragment.getEndLine2(); return getType(left, right); }