From ba1fb9252959a6f83bfdf470bda3114ddfb632fa Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Tue, 8 Jul 2014 14:32:04 +0400 Subject: [PATCH] diff: better highlighting for fragmented diff near shoene gutter --- .../editor/highlighter/FragmentedEditorHighlighter.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/platform/platform-api/src/com/intellij/openapi/editor/highlighter/FragmentedEditorHighlighter.java b/platform/platform-api/src/com/intellij/openapi/editor/highlighter/FragmentedEditorHighlighter.java index 6152bf2ec00b..13b2c43faa7b 100644 --- a/platform/platform-api/src/com/intellij/openapi/editor/highlighter/FragmentedEditorHighlighter.java +++ b/platform/platform-api/src/com/intellij/openapi/editor/highlighter/FragmentedEditorHighlighter.java @@ -69,7 +69,7 @@ public class FragmentedEditorHighlighter implements EditorHighlighter { if (range.getEndOffset() >= iterator.getStart()) { int relativeStart = Math.max(iterator.getStart() - range.getStartOffset(), 0); - int relativeEnd = Math.min(iterator.getEnd() - range.getStartOffset(), range.getLength()); + int relativeEnd = Math.min(iterator.getEnd() - range.getStartOffset(), range.getLength() + 1); boolean merged = false; if (myMergeByTextAttributes && !myPieces.isEmpty()) { Element element = myPieces.get(myPieces.size() - 1); @@ -93,6 +93,8 @@ public class FragmentedEditorHighlighter implements EditorHighlighter { if (range.getEndOffset() < iterator.getEnd()) { offset += range.getLength() + 1 + myAdditionalOffset; // myAdditionalOffset because of extra line - for shoene separators + int lastEnd = myPieces.isEmpty() ? -1 : myPieces.get(myPieces.size() - 1).getEnd(); + myPieces.add(new Element(Math.max(offset - 1 - myAdditionalOffset, lastEnd), offset, null, TextAttributes.ERASE_MARKER)); index++; continue; }