boolean (Document document, @NotNull PsiFile copyFile, @NotNull PsiFile originalFile) { if (!copyFile.getClass().equals(originalFile.getClass()) || !copyFile.isValid() || !copyFile.getName().equals(originalFile.getName())) { return false; } // the psi file cache might have been cleared by some external activity, // in which case PSI-document sync may stop working PsiFile current = PsiDocumentManager.getInstance(copyFile.getProject()).getPsiFile(document); return current != null && current.getViewProvider().getPsi(copyFile.getLanguage()) == copyFile; }