com.intellij.psi.search.GlobalSearchScope#filesScope ( )源码实例Demo

下面列出了com.intellij.psi.search.GlobalSearchScope#filesScope ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: BashSupport   文件: FileInclusionManager.java
public static GlobalSearchScope includedFilesUnionScope(PsiFile source) {
    List<VirtualFile> scopes = Lists.newLinkedList();
    scopes.add(source.getVirtualFile());

    Set<PsiFile> includedFiles = findIncludedFiles(source, true, true);
    for (PsiFile file : includedFiles) {
        scopes.add(file.getVirtualFile());
    }

    return GlobalSearchScope.filesScope(source.getProject(), scopes);
}
 
源代码2 项目: BashSupport   文件: BashResolveUtil.java
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);
}