@Override
  protected final @NotNull ModCommand perform(@NotNull ActionContext context, @NotNull E element) {
    try {
      return ModCommand.psiUpdate(element, (e, upd) -> invoke(context, e, upd));
    }
    catch (ProcessCanceledException e) {
      throw e;
    }
    catch (RuntimeException e) {
      throw new RuntimeException("When launching " + getFamilyName() + " (" + getClass().getName() + ")", e);
    }
  }
@Override
  protected final @NotNull ModCommand perform(@NotNull ActionContext context, @NotNull E element)