@NotNull @Override public SearchScope getUseScope() { return GlobalSearchScope.allScope(getProject()); }
GlobalSearchScope scope = GlobalSearchScope.projectScope(project);
public static GlobalSearchScope create(@NotNull PsiElement declarationContext, boolean filterByImportList) { if (declarationContext instanceof GoNamedElement && ((GoNamedElement)declarationContext).isBlank()) { return GlobalSearchScope.EMPTY_SCOPE; } PsiFile declarationPsiFile = declarationContext.getContainingFile(); if (!(declarationPsiFile instanceof GoFile)) { return GlobalSearchScope.fileScope(declarationPsiFile); } if (GoPsiImplUtil.isBuiltinFile(declarationPsiFile)) { return GlobalSearchScope.allScope(declarationContext.getProject()); } VirtualFile declarationFile = declarationPsiFile.getVirtualFile(); if (declarationFile == null || declarationFile.getParent() == null) { return GlobalSearchScope.fileScope(declarationPsiFile); } return new GoPathUseScope(declarationPsiFile.getProject(), declarationFile, filterByImportList); }
@NotNull public static GlobalSearchScope moduleScopeWithoutLibraries(@NotNull Project project, @Nullable Module module) { return module != null ? GlobalSearchScope.moduleWithDependenciesScope(module).uniteWith(module.getModuleContentWithDependenciesScope()) : GlobalSearchScope.projectScope(project); }
/** * So support only some file types, so we can filter them and xml and yaml for now */ public static GlobalSearchScope getRestrictedFileTypesScope(@NotNull Project project) { return GlobalSearchScope.getScopeRestrictedByFileTypes(GlobalSearchScope.allScope(project), XmlFileType.INSTANCE, YAMLFileType.YML); }
@NotNull private GlobalSearchScope getSearchScope(Project project, boolean includeNonProjectItems) { if (includeNonProjectItems) { return GlobalSearchScope.allScope(project); } else { return GlobalSearchScope.projectScope(project); } }
@NotNull public static Collection<Route> getRoute(@NotNull Project project, @NotNull String routeName) { Map<String, Route> compiledRoutes = RouteHelper.getCompiledRoutes(project); if(compiledRoutes.containsKey(routeName)) { return Collections.singletonList(compiledRoutes.get(routeName)); } Collection<Route> routes = new ArrayList<>(); Collection<VirtualFile> routeFiles = FileBasedIndex.getInstance().getContainingFiles(RoutesStubIndex.KEY, routeName, GlobalSearchScope.allScope(project)); for(StubIndexedRoute route: FileBasedIndex.getInstance().getValues(RoutesStubIndex.KEY, routeName, GlobalSearchScope.filesScope(project, routeFiles))) { routes.add(new Route(route)); } return routes; }
if (currentFile == null) { return GlobalSearchScope.projectScope(project); searchedName, project, GlobalSearchScope.projectScope(project), //module scope isn't working as expected because it doesn't include non-src dirs BashCommand.class); if (commands != null) { return GlobalSearchScope.fileScope(currentFile); return GlobalSearchScope.fileScope(currentFile).union(GlobalSearchScope.filesScope(project, virtualFiles));
VirtualFile file = VirtualFileManager.getInstance().findFileByUrl(fileUrl); if (file != null) { return GlobalSearchScope.fileScope(project, file);
public static GlobalSearchScope getElementGlobalSearchScope(BashPsiElement element, Project project) { PsiFile psiFile = BashPsiUtils.findFileContext(element); GlobalSearchScope currentFileScope = GlobalSearchScope.fileScope(psiFile); Set<PsiFile> includedFiles = FileInclusionManager.findIncludedFiles(psiFile, true, true); Collection<VirtualFile> files = Collections2.transform(includedFiles, psiToVirtualFile()); return currentFileScope.uniteWith(GlobalSearchScope.filesScope(project, files)); }
public static GlobalSearchScope varDefSearchScope(BashVar reference, boolean withIncludedFiles) { PsiFile referenceFile = BashPsiUtils.findFileContext(reference); if (!withIncludedFiles) { return GlobalSearchScope.fileScope(referenceFile.getProject(), referenceFile.getVirtualFile()); } Set<VirtualFile> result = Sets.newLinkedHashSet(); result.add(referenceFile.getVirtualFile()); int referenceFileOffset = BashPsiUtils.getFileTextOffset(reference); BashFunctionDef referenceFunctionContainer = BashPsiUtils.findNextVarDefFunctionDefScope(reference); for (BashIncludeCommand command : BashPsiUtils.findIncludeCommands(referenceFile, null)) { boolean includeIsInFunction = BashPsiUtils.findNextVarDefFunctionDefScope(command) != null; //either one of var or include command is in a function or the var is used after the include command if (referenceFunctionContainer != null || includeIsInFunction || (referenceFileOffset > BashPsiUtils.getFileTextEndOffset(command))) { BashFileReference fileReference = command.getFileReference(); PsiFile includedFile = fileReference != null ? fileReference.findReferencedFile() : null; if (includedFile != null) { result.add(includedFile.getVirtualFile()); //also, add all files included in the valid include command's file for (PsiFile file : BashPsiUtils.findIncludedFiles(includedFile, true)) { result.add(file.getVirtualFile()); } } } } return GlobalSearchScope.filesScope(referenceFile.getProject(), result); }
/** * Returns {@link GlobalSearchScope#projectScope(Project)} instance united with additional files. * * @param project current project * @return extended instance of {@link GlobalSearchScope} */ @NotNull public static GlobalSearchScope get(@NotNull Project project) { final IgnoreSearchScope scope = new IgnoreSearchScope(project); final HashSet<VirtualFile> files = ExternalIndexableSetContributor.getAdditionalFiles(project); return scope.uniteWith(GlobalSearchScope.filesScope(project, files)); }
@NotNull @Override public NavigationItem[] getItemsByName(String packageName, String searchTerm, Project project, boolean includeNonProjectItems) { Collection<PerlNamespaceDefinitionElement> result = PerlPackageUtil.getNamespaceDefinitions( project, packageName, (includeNonProjectItems ? GlobalSearchScope.allScope(project) : GlobalSearchScope.projectScope(project)) ); //noinspection SuspiciousToArrayCall return result.toArray(new NavigationItem[result.size()]); } }
private static VirtualFile[] findServiceDefinitionFiles(@NotNull Project project, @NotNull String serviceName) { final List<VirtualFile> virtualFiles = new ArrayList<>(); FileBasedIndex.getInstance().getFilesWithKey(ServicesDefinitionStubIndex.KEY, new HashSet<>(Collections.singletonList(serviceName.toLowerCase())), virtualFile -> { virtualFiles.add(virtualFile); return true; }, GlobalSearchScope.getScopeRestrictedByFileTypes(GlobalSearchScope.allScope(project), XmlFileType.INSTANCE, YAMLFileType.YML)); return virtualFiles.toArray(new VirtualFile[virtualFiles.size()]); }
.getValues(TranslationStubIndex.KEY, domain, GlobalSearchScope.filesScope(project, Collections.singletonList(virtualFile))).stream() .filter(string -> string.contains(translationKey)).map(string -> psiFile) .collect(Collectors.toList()) }, GlobalSearchScope.allScope(project));
@NotNull public static Map<VirtualFile, Collection<String>> getBlockNamesForFiles(@NotNull Project project, @NotNull Collection<VirtualFile> virtualFiles) { Map<VirtualFile, Collection<String>> blocks = new HashMap<>(); for (VirtualFile virtualFile : virtualFiles) { FileBasedIndex.getInstance().getValues(TwigBlockIndexExtension.KEY, "block", GlobalSearchScope.fileScope(project, virtualFile)) .forEach(strings -> { blocks.putIfAbsent(virtualFile, new HashSet<>()); blocks.get(virtualFile).addAll(strings); }); } return blocks; }
/** * Check is every given file provides a block by name */ private static boolean hasBlockNamesForFiles(@NotNull Project project, @NotNull String blockName, @NotNull Collection<VirtualFile> virtualFiles) { return FileBasedIndex.getInstance() .getValues(TwigBlockIndexExtension.KEY, "block", GlobalSearchScope.filesScope(project, virtualFiles)) .stream() .anyMatch(block -> block.contains(blockName)); } }
@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; }
@NotNull @Override public NavigationItem[] getItemsByName(String name, String pattern, Project project, boolean includeNonProjectItems) { Collection<PerlSubDefinitionElement> result = PerlSubUtil.getSubDefinitions( project, name, (includeNonProjectItems ? GlobalSearchScope.allScope(project) : GlobalSearchScope.projectScope(project)) ); //noinspection SuspiciousToArrayCall return result.toArray(new NavigationItem[result.size()]); } }