@Override
  public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException {
    final PsiModifierListOwner modifierListOwner = getElement(editor, file);
    if (modifierListOwner == null) throw new IncorrectOperationException();

    BaseListPopupStep<Nls.Capitalization> step =
      new BaseListPopupStep<>(null, Nls.Capitalization.Title, Nls.Capitalization.Sentence) {
        @Override
        public PopupStep<?> onChosen(final Nls.Capitalization selectedValue, boolean finalChoice) {
          WriteCommandAction.writeCommandAction(project).run(() -> {
            String nls = Nls.class.getName();
            PsiAnnotation annotation = JavaPsiFacade.getInstance(project).getElementFactory()
              .createAnnotationFromText("@" + nls + "(capitalization = " +
                                        nls + ".Capitalization." + selectedValue.toString() + ")",
                                        modifierListOwner);
            new AddAnnotationFix(Nls.class.getName(), modifierListOwner, annotation.getParameterList().getAttributes()).applyFix();
          });
          return FINAL_CHOICE;
        }
      };
    JBPopupFactory.getInstance().createListPopup(step).showInBestPositionFor(editor);
  }
@Override
  public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file)