@Override
    public void paint(@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);
    }
@Override
    public void paint(@NotNull Editor editor, @NotNull RangeHighlighter highlighter, @NotNull Graphics g)