private void paintTextEffect(float xFrom,
                                 float xTo,
                                 int y,
                                 @Nullable Color effectColor,
                                 @Nullable EffectType effectType,
                                 boolean allowBorder) {
      if (effectColor == null) {
        return;
      }
      myGraphics.setColor(effectColor);
      int xStart = (int)xFrom;
      int xEnd = (int)xTo;
      if (effectType == EffectType.LINE_UNDERSCORE) {
        EffectPainter.LINE_UNDERSCORE.paint(myGraphics, xStart, y, xEnd - xStart, myDescent,
                                            myEditor.getColorsScheme().getFont(EditorFontType.PLAIN));
      }
      else if (effectType == EffectType.BOLD_LINE_UNDERSCORE) {
        EffectPainter.BOLD_LINE_UNDERSCORE.paint(myGraphics, xStart, y, xEnd - xStart, myDescent,
                                                 myEditor.getColorsScheme().getFont(EditorFontType.PLAIN));
      }
      else if (effectType == EffectType.STRIKEOUT) {
        EffectPainter.STRIKE_THROUGH.paint(myGraphics, xStart, y, xEnd - xStart, myView.getCharHeight(),
                                           myEditor.getColorsScheme().getFont(EditorFontType.PLAIN));
      }
      else if (effectType == EffectType.WAVE_UNDERSCORE) {
        EffectPainter.WAVE_UNDERSCORE.paint(myGraphics, xStart, y, xEnd - xStart, myDescent,
                                            myEditor.getColorsScheme().getFont(EditorFontType.PLAIN));
      }
      else if (effectType == EffectType.BOLD_DOTTED_LINE) {
        EffectPainter.BOLD_DOTTED_UNDERSCORE.paint(myGraphics, xStart, y, xEnd - xStart, myDescent,
                                                   myEditor.getColorsScheme().getFont(EditorFontType.PLAIN));
      }
      else if (allowBorder && (effectType == EffectType.BOXED || effectType == EffectType.ROUNDED_BOX)) {
        drawSimpleBorder(xFrom, xTo, y - myAscent, effectType == EffectType.ROUNDED_BOX);
      }
    }
private void paintTextEffect(float xFrom,
                                 float xTo,
                                 int y,
                                 @Nullable Color effectColor,
                                 @Nullable EffectType effectType,
                                 boolean allowBorder)