void (@NotNull PsiFile file, @NotNull Runnable runnable) { PsiUtilCore.ensureValid(file); assert !isInsideAtomicChange(file); file.putUserData(PSI_DOCUMENT_ATOMIC_ACTION, Boolean.TRUE); try { runnable.run(); } finally { file.putUserData(PSI_DOCUMENT_ATOMIC_ACTION, null); } }