boolean (@NotNull PsiElement dependency) { if (!dependency.isValid()) { return false; } if (!dependency.isPhysical()) { return false; } // injected files are physical but can sometimes (look at you, completion) // be inexplicably injected into non-physical element, in which case PSI_MODIFICATION_COUNT doesn't change and thus can't be relied upon InjectedLanguageManager manager = InjectedLanguageManager.getInstance(myManager.getProject()); PsiFile topLevelFile = manager.getTopLevelFile(dependency); return topLevelFile != null && topLevelFile.isPhysical(); }