void (@NotNull Editor editor, @NotNull RangeHighlighter highlighter, @NotNull Graphics g) { int indent = StringContentIndentUtil.getIndent(highlighter); if (indent <= 0) return; int startOffset = highlighter.getStartOffset(); int endOffset = highlighter.getEndOffset(); int startLine = editor.offsetToVisualLine(startOffset, false); int endLine = editor.offsetToVisualLine(endOffset, false); if (startLine == endLine && editor.getFoldingModel().isOffsetCollapsed(startOffset)) { return; } Point start = editor.visualPositionToXY(new VisualPosition(startLine, indent - 1)); Point end = editor.visualPositionToXY(new VisualPosition(endLine, indent - 1)); EditorColorsScheme scheme = editor.getColorsScheme(); g.setColor(scheme.getColor(EditorColors.STRING_CONTENT_INDENT_GUIDE_COLOR)); g.setFont(scheme.getFont(EditorFontType.PLAIN)); FontMetrics fontMetrics = g.getFontMetrics(); int ascent = fontMetrics.getAscent(); int descent = fontMetrics.getDescent(); float baseline = editor.getAscent(); float startY = start.y + baseline - ascent; float endY = end.y + baseline + descent; Point right = editor.visualPositionToXY(new VisualPosition(startLine, indent)); float x = (start.x + right.x) / 2f; LinePainter2D.paint((Graphics2D)g, x, startY, x, endY); }