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); }
VirtualFile file = VirtualFileManager.getInstance().findFileByUrl(fileUrl); if (file != null) { return GlobalSearchScope.fileScope(project, file);
@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; }
private boolean isDomainAndKeyInPsi(@NotNull PsiFile psiFile, @NotNull String key, @NotNull String domain) { List<Set<String>> values = FileBasedIndex.getInstance() .getValues(TranslationStubIndex.KEY, domain, GlobalSearchScope.fileScope(psiFile)); for (Set<String> value : values) { if(value.contains(key)) { return true; } } return false; } }
/** * Get all macros inside file * * {% macro foobar %}{% endmacro %} * {% macro input(name, value, type, size) %}{% endmacro %} */ @NotNull public static Collection<TwigMacroTagInterface> getMacros(@NotNull PsiFile file) { Collection<TwigMacroTagInterface> macros = new ArrayList<>(); Collection<String> keys = new ArrayList<>(); FileBasedIndex fileBasedIndex = FileBasedIndex.getInstance(); fileBasedIndex.processAllKeys(TwigMacroFunctionStubIndex.KEY, s -> { keys.add(s); return true; }, GlobalSearchScope.fileScope(file), null); for (String key : keys) { macros.addAll(fileBasedIndex.getValues(TwigMacroFunctionStubIndex.KEY, key, GlobalSearchScope.fileScope(file))); } return macros; }
.getValues(TwigBlockIndexExtension.KEY, s, GlobalSearchScope.fileScope(file)) .forEach(templates::addAll);
/** * Returns the commands of file which include the other file. * * @param file * @param filterByFile * @return The list of commands, may be empty but wont be null */ public static List<BashIncludeCommand> findIncludeCommands(PsiFile file, @Nullable final PsiFile filterByFile) { String filePath = file.getVirtualFile().getPath(); List<BashIncludeCommand> result = Lists.newLinkedList(); Collection<BashIncludeCommand> commands = StubIndex.getElements(BashIncludeCommandIndex.KEY, filePath, file.getProject(), GlobalSearchScope.fileScope(file), BashIncludeCommand.class); for (BashIncludeCommand command : commands) { if (filterByFile == null || filterByFile.equals(findIncludedFile(command))) { result.add(command); } } return result; }
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 void collectIncludedFiles(PsiFile file, Set<PsiFile> files, boolean followNestedFiles) { String filePath = file.getVirtualFile().getPath(); Collection<BashIncludeCommand> commands = StubIndex.getElements(BashIncludeCommandIndex.KEY, filePath, file.getProject(), GlobalSearchScope.fileScope(file), BashIncludeCommand.class); for (BashIncludeCommand command : commands) { PsiFile includedFile = findIncludedFile(command); if (includedFile != null) { boolean followFile = followNestedFiles && !files.contains(includedFile); files.add(includedFile); if (followFile) { collectIncludedFiles(includedFile, files, true); } } } }
ReferencesSearch.SearchParameters parameters = new ReferencesSearch.SearchParameters( target, GlobalSearchScope.fileScope(target.getContainingFile()), true, null);
public static GlobalSearchScope moduleScope(PsiFile file) { VirtualFile virtualFile = file.getVirtualFile(); if (virtualFile == null) { return GlobalSearchScope.EMPTY_SCOPE; } Module module = ProjectRootManager.getInstance(file.getProject()).getFileIndex().getModuleForFile(virtualFile); if (module == null) { return GlobalSearchScope.fileScope(file); } //the module scope returned by getModuleScope() just contains the files in the configured source and test source directories, //module content scope includes all files in the module directory return module.getModuleContentScope(); }
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); }); }
scopes.add(GlobalSearchScope.fileScope(file));
public synchronized void removeAllIcons(@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; } removeInvalidMethods(getMarkupModel(document, myProject)); removeAllIcons(psiFile, document); }); }
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); }
GlobalSearchScope fileScope = GlobalSearchScope.fileScope(file);
GlobalSearchScope fileScope = GlobalSearchScope.fileScope(psiFile);
Collection<BashVarDef> allDefs = StubIndex.getElements(BashVarDefIndex.KEY, bashVar.getReferenceName(), bashVar.getProject(), GlobalSearchScope.fileScope(psiFile), BashVarDef.class); for (BashVarDef candidateDef : allDefs) {