@NotNull private Collection<VirtualFile> resolveVirtualFileCollection(@NotNull String path, @NotNull String basename, @NotNull GlobalSearchScope scope) { List<VirtualFile> suffixedVirtualFiles = new ArrayList<>(); PsiFile[] projectFilesWithBaseName = FilenameIndex.getFilesByName(myProject, basename, scope); for (PsiFile projectFileWithBaseName : projectFilesWithBaseName) { VirtualFile virtualFile = projectFileWithBaseName.getVirtualFile(); String virtualFilePath = virtualFile.getPath(); if (virtualFilePath.endsWith(path)) { suffixedVirtualFiles.add(virtualFile); } } return suffixedVirtualFiles; } }
@Nullable private VirtualFile findSingleFile(@NotNull String fileName) { if (PathUtil.isValidFileName(fileName)) { Collection<VirtualFile> files = FilenameIndex.getVirtualFilesByName(myProject, fileName, GlobalSearchScope.allScope(myProject)); if (files.size() == 1) { return ContainerUtil.getFirstItem(files); } } return null; }
private static void visitEnvironment(@NotNull Project project, @NotNull Consumer<Pair<String, PsiElement>> consumer) { for (VirtualFile virtualFile : FilenameIndex.getAllFilesByExt(project, "env", GlobalSearchScope.allScope(project))) { Properties variables = new Properties(); try { for (PsiFile psiFile : FilenameIndex.getFilesByName(project, "docker-compose.yml", GlobalSearchScope.allScope(project))) { if(!(psiFile instanceof YAMLFile)) { continue; for (PsiFile psiFile : FilenameIndex.getFilesByName(project, file, GlobalSearchScope.allScope(project))) { Matcher matcher = Pattern.compile("ENV\\s+([^\\s]*)\\s+").matcher(psiFile.getText()); while(matcher.find()){
for (String file : FilenameIndex.getAllFilenames(project)) { if (file != null && file.contains(fileName)) { for (PsiFileSystemItem fileItem : FilenameIndex.getFilesByName(project, file, GlobalSearchScope.allScope(project))) { String canonicalPath = fileItem.getVirtualFile().getCanonicalPath(); if (canonicalPath != null) { for (PsiFileSystemItem fileItem : FilenameIndex.getFilesByName(project, file, GlobalSearchScope.allScope(project), true)) { String canonicalPath = fileItem.getVirtualFile().getCanonicalPath(); if (canonicalPath != null) {
private Collection<VirtualFile> queryNeededFiles(ProgressIndicator indicator) { String ext = SoyFileType.INSTANCE.getDefaultExtension(); return FilenameIndex.getAllFilesByExt(project, ext); }
private Set<VirtualFile> getAllXSFiles(@NotNull Project project) { List<VirtualFile> classesRoots = PerlProjectManager.getInstance(project).getAllLibraryRoots(); if (classesRoots.isEmpty()) { return Collections.emptySet(); } GlobalSearchScope classRootsScope = GlobalSearchScopesCore.directoriesScope(myProject, true, classesRoots.toArray(new VirtualFile[classesRoots.size()])); Set<VirtualFile> result = new THashSet<>(); for (VirtualFile virtualFile : FilenameIndex.getAllFilesByExt(project, getXSBinaryExtension(), classRootsScope)) { if (virtualFile.isValid() && !virtualFile.isDirectory() && !(virtualFile instanceof LightVirtualFile)) { String path = virtualFile.getCanonicalPath(); if (path != null && StringUtil.contains(path, "/auto/")) { result.add(virtualFile); } } } return result; }
@Override public void moduleAdded() { if (!myModuleInitialized) { myConnection.subscribe(ProjectTopics.PROJECT_ROOTS, new ModuleRootAdapter() { @Override public void rootsChanged(ModuleRootEvent event) { scheduleUpdate(); } }); myConnection.subscribe(GoLibrariesService.LIBRARIES_TOPIC, newRootUrls -> scheduleUpdate()); Project project = myModule.getProject(); StartupManager.getInstance(project).runWhenProjectIsInitialized(() -> { if (!project.isDisposed() && !myModule.isDisposed()) { for (PsiFileSystemItem vendor : FilenameIndex.getFilesByName(project, GoConstants.VENDOR, GoUtil.moduleScope(myModule), true)) { if (vendor.isDirectory()) { showVendoringNotification(); break; } } } }); VirtualFileManager.getInstance().addVirtualFileListener(myFilesListener); } scheduleUpdate(0); myModuleInitialized = true; }
@Nullable private VirtualFile findSingleFile(@NotNull String fileName) { if (PathUtil.isValidFileName(fileName)) { Collection<VirtualFile> files = FilenameIndex.getVirtualFilesByName(myProject, fileName, GlobalSearchScope.allScope(myProject)); if (files.size() == 1) { return ContainerUtil.getFirstItem(files); } if (!files.isEmpty()) { GlobalSearchScope goPathScope = GoPathResolveScope.create(myProject, myModule, null); files = ContainerUtil.filter(files, goPathScope::accept); if (files.size() == 1) { return ContainerUtil.getFirstItem(files); } } if (!files.isEmpty()) { GlobalSearchScope smallerScope = GoUtil.moduleScopeWithoutLibraries(myProject, myModule); files = ContainerUtil.filter(files, smallerScope::accept); if (files.size() == 1) { return ContainerUtil.getFirstItem(files); } } } return null; }
FilenameIndex.getAllFilesByExt(project, "xml", GlobalSearchScope.allScope(project)).stream() .filter(file -> file.getName().endsWith(HybrisConstants.HYBRIS_ITEMS_XML_FILE_ENDING)) .collect(Collectors.toList());
@NotNull private Collection<TwigPath> getNamespacesInner(@NotNull TwigNamespaceExtensionParameter parameter) { Collection<TwigPath> twigPaths = new ArrayList<>(); for (final PsiFile psiFile : FilenameIndex.getFilesByName(parameter.getProject(), "ide-twig.json", GlobalSearchScope.allScope(parameter.getProject()))) { Collection<TwigPath> cachedValue = CachedValuesManager.getCachedValue(psiFile, new MyJsonCachedValueProvider(psiFile)); if(cachedValue != null) { twigPaths.addAll(cachedValue); } } return twigPaths; }
final String name = fileOrDir.getName(); if (MatcherUtil.matchAnyPart(parts, name)) { for (VirtualFile file : FilenameIndex.getVirtualFilesByName(project, name, scope)) { if (file.isValid() && MatcherUtil.matchAllParts(parts, file.getPath())) { files.add(file);
for (PsiFile psiFile : FilenameIndex.getFilesByName(project, files, GlobalSearchScope.getScopeRestrictedByFileTypes(GlobalSearchScope.allScope(project), YAMLFileType.YML))) { if(!(psiFile instanceof YAMLFile)) { continue;
protected static GlobalSearchScope createFileScope(@NotNull Project project, String fileName) { Collection<VirtualFile> files = FilenameIndex.getVirtualFilesByName(project, fileName, GlobalSearchScope.allScope(project)); if (!files.isEmpty()) { return GlobalSearchScope.filesScope(project, files); } return GlobalSearchScope.EMPTY_SCOPE; } }
protected static PodCompositeElement searchPodElementInFile(Project project, String fileName, PodDocumentPattern pattern) { PsiFile[] psiFiles = FilenameIndex.getFilesByName(project, fileName, GlobalSearchScope.allScope(project)); if (psiFiles.length > 0) { return searchPodElement(psiFiles[0], pattern); } return null; }
private static boolean findInProject(@NotNull Project project, boolean forceDir, List<File> result, String... urls) { List<String> roots = ContainerUtil.newArrayList(); for (String url : urls) { String fileName = url.substring(url.lastIndexOf("/") + 1); for (VirtualFile file : FilenameIndex.getVirtualFilesByName(project, fileName, ProjectScope.getAllScope(project))) { String fileUrl = file.getUrl(); if (forceDir) { int idx = url.indexOf("/master/"); if (idx <= -1) continue; if (!StringUtil.endsWithIgnoreCase(fileUrl, url.substring(idx + "/master/".length()))) continue; } roots.add(fileUrl); } } return collectFiles(result, roots, urls); }
@NotNull synchronized private static Collection<JsonConfigFile> getJsonConfigsInner(@NotNull Project project, @NotNull PhpToolboxApplicationService phpToolboxApplicationService) { Collection<JsonConfigFile> jsonConfigFiles = new ArrayList<>(); for (final PsiFile psiFile : FilenameIndex.getFilesByName(project, ".ide-toolbox.metadata.json", GlobalSearchScope.allScope(project))) { JsonConfigFile cachedValue = CachedValuesManager.getCachedValue(psiFile, () -> new CachedValueProvider.Result<>( JsonParseUtil.getDeserializeConfig(psiFile.getText()), psiFile, psiFile.getVirtualFile() )); if(cachedValue != null) { jsonConfigFiles.add(cachedValue); } } synchronized (APPLICATION_CACHE) { jsonConfigFiles.addAll(APPLICATION_CACHE.get(new HashSet<>(Arrays.asList(phpToolboxApplicationService.getApplicationJsonFiles())))); } // resources files by plugins jsonConfigFiles.addAll(getResourceFiles()); // @TODO: solve object and cache issue ProviderStorageInterface providerStorage = RemoteStorage.getInstance(project).get("php-toolbox-json"); if(providerStorage != null) { Object data = providerStorage.getData(); if(data instanceof JsonConfigFile) { jsonConfigFiles.add((JsonConfigFile) data); } } return jsonConfigFiles; }
@Nullable @Override public XmlFile loadAppEngineStandardWebXml( @NotNull Project project, @NotNull Collection<Module> modules) { List<VirtualFile> appEngineWebXmls = new ArrayList<>(); for (Module module : modules) { appEngineWebXmls.addAll( FilenameIndex.getVirtualFilesByName( project, "appengine-web.xml", module.getModuleContentScope())); } VirtualFile appEngineWebXml = findHighestPriorityAppEngineWebXml(appEngineWebXmls); if (appEngineWebXml != null) { PsiFile psiFile = PsiManager.getInstance(project).findFile(appEngineWebXml); if (psiFile instanceof XmlFile) { return (XmlFile) psiFile; } else { logger.error( String.format( "appengine-web.xml PSI File %s with name %s is not an XmlFile. " + "It was chosen from the following appengine-web.xml's that were found: %s", psiFile, psiFile != null ? psiFile.getName() : null, appEngineWebXmls)); } } return null; }
@Nullable @Override public PsiElement resolveInner() { final String referencedName = cmd.getReferencedCommandName(); if (referencedName == null) { return null; } String fileName = PathUtil.getFileName(referencedName); GlobalSearchScope scope = BashSearchScopes.moduleScope(cmd.getContainingFile()); PsiFileSystemItem[] files = FilenameIndex.getFilesByName(cmd.getProject(), fileName, scope, false); if (files.length == 0) { return null; } PsiFile currentFile = cmd.getContainingFile(); return BashPsiFileUtils.findRelativeFile(currentFile, referencedName); }
if (targetFile != null) { List<VirtualFile> files = new ArrayList<>(FilenameIndex.getVirtualFilesByName(project, targetFile, ProjectScope.getProjectScope(project))); Collections.sort(files, (f1, f2) -> { boolean b1 = fileIndex.isInSource(f1);
void updateMethodMarker(@NotNull VirtualFile file) { DumbService.getInstance(myProject).runWhenSmart(() -> { PsiFile[] psiFiles = FilenameIndex.getFilesByName( myProject, file.getName(), GlobalSearchScope.fileScope(myProject, file)); if (psiFiles.length != 1) { return; } PsiFile psiFile = psiFiles[0]; Document document = psiFile.getViewProvider().getDocument(); if (document == null) { return; } updateMethodMarker(psiFile, document); }); }