int (@NotNull Graphics g, @NotNull SoftWrapDrawingType drawingType, int x, int y, int lineHeight) { myHeightProvider.myHeight = lineHeight / 2; int start; int end; int result; switch (drawingType) { case BEFORE_SOFT_WRAP_LINE_FEED -> { start = x; end = myEditor.getScrollingModel().getVisibleArea().width; result = end - start; } case AFTER_SOFT_WRAP -> { start = 0; end = x; result = 0; } default -> throw new IllegalStateException("Soft wrap arrow painting is not set up for drawing type " + drawingType); } myArrowPainter.paint(g, y + lineHeight - g.getFontMetrics().getDescent(), start, end); return result; }