void (@NotNull DiffChange change, @NotNull Side side) { List<? extends LineFragment> fragments = change.getFragments(); assert fragments != null; EditorEx editor = getEditor(side); DocumentEx document = editor.getDocument(); int changeStartLine = change.getStartLine(side); for (LineFragment fragment : fragments) { List<DiffFragment> innerFragments = fragment.getInnerFragments(); int startLine = side.getStartLine(fragment) + changeStartLine; int endLine = side.getEndLine(fragment) + changeStartLine; int start = document.getLineStartOffset(startLine); TextDiffType type = DiffUtil.getLineDiffType(fragment); DiffDrawUtil.createHighlighter(editor, startLine, endLine, type, innerFragments != null); // TODO: we can paint LineMarker here, but it looks ugly for small editors if (innerFragments != null) { for (DiffFragment innerFragment : innerFragments) { int innerStart = side.getStartOffset(innerFragment); int innerEnd = side.getEndOffset(innerFragment); TextDiffType innerType = DiffUtil.getDiffType(innerFragment); innerStart += start; innerEnd += start; DiffDrawUtil.createInlineHighlighter(editor, innerStart, innerEnd, innerType); } } } }