@Override
          public void paintBeforeLineStart(TextAttributes attributes, boolean hasSoftWrap, int columnEnd, float xEnd, int y) {
            if (dryRun) return;
            if (visualLine == 0) xEnd -= myView.getPrefixTextWidthInPixels();
            paintBackground(attributes, startX, y, xEnd);
            if (!hasSoftWrap) return;
            paintSelectionOnSecondSoftWrapLineIfNecessary(visualLine, columnEnd, xEnd, y, primarySelectionStart, primarySelectionEnd);
            if (paintSoftWraps) {
              int x = (int)xEnd;
              myTextDrawingTasks.add(g -> {
                SoftWrapModelImpl softWrapModel = myEditor.getSoftWrapModel();
                int symbolWidth = softWrapModel.getMinDrawingWidthInPixels(SoftWrapDrawingType.AFTER_SOFT_WRAP);
                softWrapModel.doPaint(g, SoftWrapDrawingType.AFTER_SOFT_WRAP, x - symbolWidth, y, myLineHeight);
              });
            }
          }
@Override
          public void paintBeforeLineStart(TextAttributes attributes, boolean hasSoftWrap, int columnEnd, float xEnd, int y)