void (final Graphics2D g, final Rectangle clip) { if (ExperimentalUI.isNewUI()) { return; } boolean shown = isFoldingOutlineShown(); double x = getFoldingMarkerCenterOffset2D(); if ((shown || myEditor.isInDistractionFreeMode() && Registry.is("editor.distraction.gutter.separator")) && myPaintBackground) { g.setColor(getOutlineColor(false)); LinePainter2D.paint(g, x, clip.y, x, clip.y + clip.height, StrokeType.CENTERED, getStrokeWidth()); } if (!shown) return; myActiveFoldRegions.forEach(region -> { if (region.isValid() && region.isExpanded()) { int foldStart = myEditor.offsetToVisualLine(region.getStartOffset()); int foldEnd = myEditor.offsetToVisualLine(region.getEndOffset()); if (foldStart < foldEnd) { int startY = getLineCenterY(foldStart); int endY = getLineCenterY(foldEnd); if (startY <= clip.y + clip.height && endY + 1 + myEditor.getDescent() >= clip.y) { g.setColor(getOutlineColor(true)); LinePainter2D.paint(g, x, startY, x, endY, StrokeType.CENTERED, getStrokeWidth()); } } } }); }