@NotNull
  static PsiElement formatElement(@NotNull PsiElement elementToFormat,
                                  @NotNull TextRange range,
                                  boolean canChangeWhiteSpacesOnly) {
    final PsiFile file = elementToFormat.getContainingFile();
    final Document document = file.getViewProvider().getDocument();
    if (document != null) {
      final TextRange rangeAfterFormat = formatRangeInFile(file, range, canChangeWhiteSpacesOnly, false);
      if (rangeAfterFormat != null) {
        PsiDocumentManager.getInstance(file.getProject()).commitDocument(document);
        if (!elementToFormat.isValid()) {
          PsiElement elementAtStart = file.findElementAt(rangeAfterFormat.getStartOffset());
          if (elementAtStart instanceof PsiWhiteSpace) {
              elementAtStart = PsiTreeUtil.nextLeaf(elementAtStart);
          }
          if (elementAtStart != null) {
            PsiElement parent = PsiTreeUtil.getParentOfType(elementAtStart, elementToFormat.getClass());
            if (parent != null) {
              return parent;
            }
            return elementAtStart;
          }
        }
      }
    }
    return elementToFormat;
  }
@NotNull
  static PsiElement formatElement(@NotNull PsiElement elementToFormat,
                                  @NotNull TextRange range,
                                  boolean canChangeWhiteSpacesOnly)