void (@NotNull PsiTreeChangeEvent event, @NotNull DocSyncAction syncAction) { if (!toProcessPsiEvent()) return; PsiFile psiFile = event.getFile(); if (!(psiFile instanceof PsiFileEx) || !((PsiFileEx)psiFile).isContentsLoaded()) return; DocumentEx document = getCachedDocument(psiFile, true); if (document == null) return; performAtomically(psiFile, () -> syncAction.syncDocument(document, (PsiTreeChangeEventImpl)event)); boolean insideTransaction = myTransactionsMap.containsKey(document); if (!insideTransaction) { document.setModificationStamp(psiFile.getViewProvider().getModificationStamp()); } }