AnalysisScope (@NotNull Project defaultProject) { final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(defaultProject).getFileIndex(); if (myType == FILE) { if (myElement instanceof PsiJavaFile psiJavaFile && !FileTypeUtils.isInServerPageFile(myElement)) { final PsiClass[] classes = psiJavaFile.getClasses(); boolean onlyPackLocalClasses = true; for (final PsiClass aClass : classes) { if (aClass.hasModifierProperty(PsiModifier.PUBLIC)) { onlyPackLocalClasses = false; break; } } if (onlyPackLocalClasses) { final PsiDirectory psiDirectory = psiJavaFile.getContainingDirectory(); if (psiDirectory != null) { return new JavaAnalysisScope(JavaDirectoryService.getInstance().getPackage(psiDirectory), null); } } } } else if (myType == PACKAGE) { final PsiDirectory[] directories = ((PsiPackage)myElement).getDirectories(); final HashSet<Module> modules = new HashSet<>(); for (PsiDirectory directory : directories) { modules.addAll(getAllInterestingModules(fileIndex, directory.getVirtualFile())); } return collectScopes(defaultProject, modules); } return super.getNarrowedComplementaryScope(defaultProject); }