boolean paint(final Graphics g, final EditorActionPlan plan) {
    if (ENABLED.asBoolean() && canPaintImmediately(myEditor)) {
      if (plan.getCaretShift() != 1) return false;

      final List<EditorActionPlan.Replacement> replacements = plan.getReplacements();
      if (replacements.size() != 1) return false;

      final EditorActionPlan.Replacement replacement = replacements.get(0);
      if (replacement.getText().length() != 1) return false;

      final int caretOffset = replacement.getBegin();
      final char c = replacement.getText().charAt(0);
      try {
        paintImmediately((Graphics2D)g, caretOffset, c);
        return true;
      }
      catch (Exception e) {
        LOG.error(e);
      }
    }
    return false;
  }
boolean paint(final Graphics g, final EditorActionPlan plan)