@Override
  public final @NotNull ModCommand surroundElements(@NotNull ActionContext context, @NotNull PsiElement @NotNull [] elements) {
    PsiElement container = elements[0].getParent();
    if (container == null) return ModCommand.nop();
    return ModCommand.psiUpdate(context, updater -> surroundStatements(
      context, updater.getWritable(container),
      ContainerUtil.map2Array(elements, PsiElement.EMPTY_ARRAY, updater::getWritable),
      updater));
  }
@Override
  public final @NotNull ModCommand surroundElements(@NotNull ActionContext context, @NotNull PsiElement @NotNull [] elements)