类com.intellij.psi.ResolveState源码实例Demo

下面列出了怎么用com.intellij.psi.ResolveState的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: BashSupport   文件: DumbFunctionReference.java
@Nullable
@Override
public PsiElement resolveInner() {
    final String referencedName = cmd.getReferencedCommandName();
    if (referencedName == null) {
        return null;
    }


    // in dumb mode the current is the only one searched for function definitions
    List<BashFunctionDef> functionDefs = cmd.getContainingFile().allFunctionDefinitions();

    ResolveState initial = ResolveState.initial();

    ResolveProcessor processor = new BashFunctionProcessor(referencedName);
    for (BashFunctionDef functionDef : functionDefs) {
        processor.execute(functionDef, initial);
    }

    processor.prepareResults();

    return processor.hasResults() ? processor.getBestResult(true, cmd) : null;
}
 
源代码2 项目: consulo-csharp   文件: CSharpFixedStatementImpl.java
@Override
public boolean processDeclarations(@Nonnull PsiScopeProcessor processor, @Nonnull ResolveState state, PsiElement lastParent,
		@Nonnull PsiElement place)
{
	if(lastParent == null || !PsiTreeUtil.isAncestor(this, lastParent, false))
	{
		return true;
	}

	for(DotNetVariable dotNetVariable : getVariables())
	{
		if(!processor.execute(dotNetVariable, state))
		{
			return false;
		}
	}
	return true;
}
 
@Override
@RequiredReadAction
public boolean processDeclarations(@Nonnull PsiScopeProcessor processor, @Nonnull ResolveState state, PsiElement lastParent, @Nonnull PsiElement place)
{
	DotNetVariable variable = getVariable();
	if(!processor.execute(variable, state))
	{
		return false;
	}

	DotNetExpression whenExpression = getWhenExpression();
	if(whenExpression != null && !whenExpression.processDeclarations(processor, state, lastParent, place))
	{
		return false;
	}
	return super.processDeclarations(processor, state, lastParent, place);
}
 
源代码4 项目: glsl4idea   文件: GLSLCompoundStatement.java
@Override
public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state,
                                   @Nullable PsiElement lastParent, @NotNull PsiElement place) {
    if (lastParent == null) {
        // Do not show declarations of nested variables to outside scopes
        return true;
    }

    for (GLSLStatement statement : getStatements()) {
        if (statement == null)
            continue;
        if (!statement.processDeclarations(processor, state, lastParent, place)) return false;
    }

    return true;
}
 
源代码5 项目: consulo-csharp   文件: CSharpLinqJoinClauseImpl.java
@Override
public boolean processDeclarations(@Nonnull PsiScopeProcessor processor,
		@Nonnull ResolveState state,
		PsiElement lastParent,
		@Nonnull PsiElement place)
{
	CSharpLinqVariableImpl variable = getVariable();
	if(variable != null)
	{
		if(!processor.execute(variable, state))
		{
			return false;
		}
	}

	CSharpLinqIntoClauseImpl intoClause = getIntoClause();
	if(intoClause != null)
	{
		if(!intoClause.processDeclarations(processor, state, lastParent, place))
		{
			return false;
		}
	}
	return true;
}
 
源代码6 项目: glsl4idea   文件: GLSLFunctionDefinitionImpl.java
@Override
public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, @Nullable PsiElement lastParent, @NotNull PsiElement place) {
    if (lastParent == null) {
        // Do not show declarations of parameters to outside scopes
        return true;
    }

    for (GLSLParameterDeclaration parameter : getParameters()) {
        if (parameter == lastParent) // TODO(jp): sloppy, parameter is probably not direct child, so this will fail
            continue;

        if (!parameter.processDeclarations(processor, state, lastParent, place)) return false;
    }

    return true;
}
 
@RequiredReadAction
@Override
public void process(@Nonnull CSharpResolveOptions options,
		@Nonnull DotNetGenericExtractor defaultExtractor,
		@Nullable PsiElement forceQualifierElement,
		@Nonnull Processor<ResolveResult> processor)
{
	PsiElement element = options.getElement();

	DotNetParameterListOwner parameterListOwner = CSharpReferenceExpressionImplUtil.findParentOrNextIfDoc(element, DotNetParameterListOwner
			.class);
	if(parameterListOwner == null)
	{
		return;
	}

	SimpleNamedScopeProcessor scopeProcessor = new SimpleNamedScopeProcessor(processor, options.isCompletion(),
			ExecuteTarget.LOCAL_VARIABLE_OR_PARAMETER_OR_LOCAL_METHOD);
	ResolveState state = ResolveState.initial();
	state = state.put(CSharpResolveUtil.SELECTOR, options.getSelector());

	parameterListOwner.processDeclarations(scopeProcessor, state, null, element);
}
 
@RequiredReadAction
@Override
public void process(@Nonnull CSharpResolveOptions options,
		@Nonnull DotNetGenericExtractor defaultExtractor,
		@Nullable PsiElement forceQualifierElement,
		@Nonnull Processor<ResolveResult> processor)
{
	PsiElement element = options.getElement();

	DotNetGenericParameterListOwner genericParameterListOwner = CSharpReferenceExpressionImplUtil.findParentOrNextIfDoc(element,
			DotNetGenericParameterListOwner.class);
	if(genericParameterListOwner == null)
	{
		return;
	}

	SimpleNamedScopeProcessor scopeProcessor = new SimpleNamedScopeProcessor(processor, options.isCompletion(), ExecuteTarget.GENERIC_PARAMETER);
	ResolveState state = ResolveState.initial();
	state = state.put(CSharpResolveUtil.SELECTOR, options.getSelector());
	genericParameterListOwner.processDeclarations(scopeProcessor, state, null, element);
}
 
源代码9 项目: consulo-csharp   文件: CSharpSearchUtil.java
@Nullable
@RequiredReadAction
public static DotNetPropertyDeclaration findPropertyByName(@Nonnull final String name, @Nonnull PsiElement owner, @Nullable String parentQName, @Nonnull DotNetGenericExtractor extractor)
{
	AsPsiElementProcessor psiElementProcessor = new AsPsiElementProcessor();
	MemberResolveScopeProcessor memberResolveScopeProcessor = new MemberResolveScopeProcessor(owner, psiElementProcessor, new ExecuteTarget[]{ExecuteTarget.PROPERTY},
			OverrideProcessor.ALWAYS_TRUE);

	ResolveState state = ResolveState.initial();
	state = state.put(CSharpResolveUtil.EXTRACTOR, extractor);
	state = state.put(CSharpResolveUtil.SELECTOR, new MemberByNameSelector(name));

	CSharpResolveUtil.walkChildren(memberResolveScopeProcessor, owner, false, true, state);
	for(PsiElement element : psiElementProcessor.getElements())
	{
		if(isMyElement(element, parentQName))
		{
			return (DotNetPropertyDeclaration) element;
		}
	}
	return null;
}
 
源代码10 项目: consulo-csharp   文件: CSharpLinqExpressionImpl.java
@Override
public boolean processDeclarations(@Nonnull PsiScopeProcessor processor,
		@Nonnull ResolveState state,
		PsiElement lastParent,
		@Nonnull PsiElement place)
{
	if(lastParent == null || !PsiTreeUtil.isAncestor(this, lastParent, false))
	{
		return true;
	}

	for(PsiElement psiElement : getChildren())
	{
		if(!psiElement.processDeclarations(processor, state, lastParent, place))
		{
			return false;
		}
	}
	return super.processDeclarations(processor, state, lastParent, place);
}
 
@Override
public boolean processDeclarations(@Nonnull PsiScopeProcessor processor, @Nonnull ResolveState state, PsiElement lastParent,
		@Nonnull PsiElement place)
{
	if(lastParent == null || !PsiTreeUtil.isAncestor(this, lastParent, false))
	{
		return true;
	}
	CSharpLocalVariable variable = getVariable();
	if(variable != null)
	{
		if(!processor.execute(variable, state))
		{
			return false;
		}
	}
	return true;
}
 
源代码12 项目: consulo-csharp   文件: CSharpLinqQueryBodyImpl.java
@Override
public boolean processDeclarations(@Nonnull PsiScopeProcessor processor,
		@Nonnull ResolveState state,
		PsiElement lastParent,
		@Nonnull PsiElement place)
{
	if(lastParent == null || !PsiTreeUtil.isAncestor(this, lastParent, false))
	{
		return true;
	}

	for(PsiElement psiElement : getChildren())
	{
		if(!psiElement.processDeclarations(processor, state, lastParent, place))
		{
			return false;
		}
	}
	return super.processDeclarations(processor, state, lastParent, place);
}
 
@Override
public boolean processDeclarations(@Nonnull PsiScopeProcessor processor, @Nonnull ResolveState state, PsiElement lastParent, @Nonnull PsiElement place)
{
	DotNetExpression leftExpression = getLeftExpression();
	if(leftExpression != null && !leftExpression.processDeclarations(processor, state, lastParent, place))
	{
		return false;
	}

	DotNetExpression rightExpression = getRightExpression();
	if(rightExpression != null && !rightExpression.processDeclarations(processor, state, lastParent, place))
	{
		return false;
	}
	return super.processDeclarations(processor, state, lastParent, place);
}
 
源代码14 项目: consulo-csharp   文件: CSharpForStatementImpl.java
@Override
public boolean processDeclarations(@Nonnull PsiScopeProcessor processor, @Nonnull ResolveState state, PsiElement lastParent, @Nonnull PsiElement
		place)
{
	if(lastParent == null || !PsiTreeUtil.isAncestor(this, lastParent, false))
	{
		return true;
	}

	for(DotNetVariable dotNetVariable : getVariables())
	{
		if(!processor.execute(dotNetVariable, state))
		{
			return false;
		}
	}
	return true;
}
 
源代码15 项目: intellij   文件: BlazeGoPackageTest.java
@Nullable
@Override
public Collection<GoPackage> resolve(
    String importPath,
    Project project,
    @Nullable Module module,
    @Nullable ResolveState resolveState) {
  GoPackage goPackage = map.get(importPath);
  return goPackage != null ? ImmutableList.of(goPackage) : null;
}
 
源代码16 项目: intellij-haxe   文件: HaxeResolver.java
private List<? extends PsiElement> checkByTreeWalk(HaxeReference reference) {
  final List<PsiElement> result = new ArrayList<>();
  PsiTreeUtil.treeWalkUp(new ResolveScopeProcessor(result, reference.getText()), reference, null, new ResolveState());
  if (result.isEmpty()) return null;
  LogResolution(reference, "via tree walk.");
  return result;
}
 
源代码17 项目: BashSupport   文件: BashResolveUtil.java
public static boolean processContainerDeclarations(BashPsiElement thisElement, @NotNull final PsiScopeProcessor processor, @NotNull final ResolveState state, final PsiElement lastParent, @NotNull final PsiElement place) {
    if (thisElement == lastParent) {
        return true;
    }

    if (!processor.execute(thisElement, state)) {
        return false;
    }

    //process the current's elements children from first until lastParent is reached, a definition has to be before the use
    List<PsiElement> functions = Lists.newLinkedList();

    //fixme use stubs
    for (PsiElement child = thisElement.getFirstChild(); child != null && child != lastParent; child = child.getNextSibling()) {
        if (child instanceof BashFunctionDef) {
            functions.add(child);
        } else if (!child.processDeclarations(processor, state, lastParent, place)) {
            return false;
        }
    }

    for (PsiElement function : functions) {
        if (!function.processDeclarations(processor, state, lastParent, place)) {
            return false;
        }
    }

    //fixme this is very slow atm
    if (lastParent != null && lastParent.getParent().isEquivalentTo(thisElement) && BashPsiUtils.findNextVarDefFunctionDefScope(place) != null) {
        for (PsiElement sibling = lastParent.getNextSibling(); sibling != null; sibling = sibling.getNextSibling()) {
            if (!sibling.processDeclarations(processor, state, null, place)) {
                return false;
            }
        }
    }

    return true;
}
 
源代码18 项目: BashSupport   文件: BashBaseStubElementImpl.java
@Override
public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) {
    if (!processor.execute(this, state)) {
        return false;
    }

    return BashElementSharedImpl.walkDefinitionScope(this, processor, state, lastParent, place);
}
 
源代码19 项目: intellij-haxe   文件: HaxeResolver.java
@Override
public boolean execute(@NotNull PsiElement element, ResolveState state) {
  HaxeComponentName componentName = null;
  if (element instanceof HaxeNamedComponent) {
    componentName = ((HaxeNamedComponent)element).getComponentName();
  } else if (element instanceof HaxeOpenParameterList) {
    componentName = ((HaxeOpenParameterList)element).getComponentName();
  }
  if (componentName != null && name.equals(componentName.getText())) {
    result.add(componentName);
    return false;
  }
  return true;
}
 
源代码20 项目: consulo-csharp   文件: CSharpLinqFromClauseImpl.java
@Override
public boolean processDeclarations(@Nonnull PsiScopeProcessor processor, @Nonnull ResolveState state, PsiElement lastParent,
		@Nonnull PsiElement place)
{
	CSharpLinqVariableImpl variable = getVariable();
	if(variable != null)
	{
		if(!processor.execute(variable, state))
		{
			return false;
		}
	}
	return true;
}
 
@Override
public boolean processDeclarations(@Nonnull PsiScopeProcessor processor, @Nonnull ResolveState state, PsiElement lastParent, @Nonnull PsiElement place)
{
	for(CSharpLambdaParameter parameter : getParameters())
	{
		if(!processor.execute(parameter, state))
		{
			return false;
		}
	}
	return true;
}
 
@Override
public boolean execute(@NotNull PsiElement element, ResolveState state) {
    boolean elementIsGoodCandidate = !element.equals(myElement) && element instanceof XQueryVarName &&
            !(element.getParent() instanceof XQueryVarRef);
    if (elementIsGoodCandidate) {
        XQueryQName<XQueryVarName> source = aXQueryQName(myElement.getVarName()).build();
        XQueryQName<XQueryVarName> checkedQName = aXQueryQName((XQueryVarName) element).build();
        if (source.equals(checkedQName)) {
            result = checkedQName.getNamedObject();
            return false;
        }
    }
    return true;
}
 
源代码23 项目: BashSupport   文件: BashFunctionProcessor.java
public boolean execute(@NotNull PsiElement element, @NotNull ResolveState resolveState) {
    ProgressManager.checkCanceled();

    if (element instanceof BashFunctionDef) {
        BashFunctionDef funcDef = (BashFunctionDef) element;

        if (symboleName.equals(funcDef.getName())) {
            storeResult(element, BashPsiUtils.blockNestingLevel(funcDef), null);
            return ignoreExecuteResult;
        }
    }

    return true;
}
 
源代码24 项目: intellij-xquery   文件: XQueryPsiElementImpl.java
@Override
public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state,
                                   PsiElement lastParent, @NotNull PsiElement place) {
    if (!processor.execute(this, state)) {
        return false;
    } else {
        return ResolveUtil.processChildren(this, processor, state, lastParent, place);
    }
}
 
源代码25 项目: BashSupport   文件: InjectionUtils.java
public static boolean walkInjection(PsiElement host, @NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place, boolean walkOn) {
    //fixme does this work on the escaped or unescpaed text?
    InjectedLanguageManager injectedLanguageManager = InjectedLanguageManager.getInstance(host.getProject());

    List<Pair<PsiElement, TextRange>> injectedPsiFiles = injectedLanguageManager.getInjectedPsiFiles(host);
    if (injectedPsiFiles != null) {
        for (Pair<PsiElement, TextRange> psi_range : injectedPsiFiles) {
            //fixme check lastParent ?
            walkOn &= psi_range.first.processDeclarations(processor, state, lastParent, place);
        }
    }

    return walkOn;
}
 
@Override
public boolean processDeclarations(@NotNull PsiScopeProcessor processor,
                                   @NotNull ResolveState state,
                                   PsiElement lastParent,
                                   @NotNull PsiElement place) {
  for (PsiElement element : getDeclarationElementToProcess(lastParent)) {
    if (!processor.execute(element, state)) {
      return false;
    }
  }
  return super.processDeclarations(processor, state, lastParent, place);
}
 
private int addCollectedVariables(PsiElement element, CompletionResultSet result, BashVarCollectorProcessor processor) {
    PsiTreeUtil.treeWalkUp(processor, element, BashPsiUtils.findFileContext(element), ResolveState.initial());

    Collection<LookupElement> items = CompletionProviderUtils.createFromPsiItems(processor.getVariables(), BashIcons.VAR_ICON, CompletionGrouping.NormalVar.ordinal());
    result.addAllElements(items);

    return items.size();
}
 
源代码28 项目: BashSupport   文件: ResolveIterationTest.java
/**
 * Checks that the file tree walking visits every element only once.
 *
 * @param processor
 * @throws Exception
 */
protected void checkTreeWalking(BashAbstractProcessor processor) throws Exception {
    PsiFile file = configure().getElement().getContainingFile();
    file.processDeclarations(processor, ResolveState.initial(), null, file);

    assertSingleVisitedElements(file);
}
 
源代码29 项目: BashSupport   文件: ResolveIterationTest.java
@Override
public boolean execute(@NotNull PsiElement element, @NotNull ResolveState state) {
    //executeCount[0]++;

    if (countKey.isIn(element)) {
        countKey.set(element, countKey.get(element) + 1);
    } else {
        countKey.set(element, 1);
    }

    return true;
}
 
源代码30 项目: glsl4idea   文件: GLSLFile.java
@Override
public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, @Nullable PsiElement lastParent, @NotNull PsiElement place) {
    if (lastParent == null) {
        return true;
    }
    PsiElement child = lastParent.getPrevSibling();
    while (child != null) {
        if (!child.processDeclarations(processor, state, lastParent, place)) return false;
        child = child.getPrevSibling();
    }
    return true;
}
 
 类所在包
 类方法
 同包方法