PsiElement (@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; }