void (@NotNull String name, @NotNull Processor<? super NavigationItem> processor, @NotNull FindSymbolParameters parameters) { boolean globalSearch = parameters.getSearchScope().isSearchInLibraries(); boolean directoriesOnly = isDirectoryOnlyPattern(parameters); boolean withFiles = !directoriesOnly; boolean withDirs = directoriesOnly || Registry.is("ide.goto.file.include.directories"); PsiManager psiManager = PsiManager.getInstance(parameters.getProject()); FilenameIndex.processFilesByNames( Set.of(name), true, parameters.getSearchScope(), parameters.getIdFilter(), file -> { if (!file.isValid()) return true; boolean isDir = file.isDirectory(); if (!withFiles && !isDir || !withDirs && isDir) return true; if (!globalSearch && ProjectUtil.isProjectOrWorkspaceFile(file)) { return true; } PsiFileSystemItem psi = isDir ? psiManager.findDirectory(file) : psiManager.findFile(file); if (psi == null) return true; return processor.process(psi); }); }