void (RangeHighlighter marker) { Color separatorColor = marker.getLineSeparatorColor(); LineSeparatorRenderer lineSeparatorRenderer = marker.getLineSeparatorRenderer(); if (separatorColor == null && lineSeparatorRenderer == null) { return; } boolean isTop = marker.getLineSeparatorPlacement() == SeparatorPlacement.TOP; int edgeOffset = isTop ? myDocument.getLineStartOffset(myDocument.getLineNumber(marker.getStartOffset())) : myDocument.getLineEndOffset(myDocument.getLineNumber(marker.getEndOffset())); int visualLine = myView.offsetToVisualLine(edgeOffset, !isTop); int y = (isTop ? EditorUtil.getVisualLineAreaStartY(myEditor, visualLine) : EditorUtil.getVisualLineAreaEndY(myEditor, visualLine)) - 1 + myYShift; int startX = myCorrector.lineSeparatorStart(myClip.x); int endX = myCorrector.lineSeparatorEnd(myClip.x + myClip.width); myGraphics.setColor(separatorColor); if (lineSeparatorRenderer != null) { lineSeparatorRenderer.drawLine(myGraphics, startX, endX, y); } else { LinePainter2D.paint(myGraphics, startX, y, endX, y); } }