Java 类com.intellij.lang.parameterInfo.UpdateParameterInfoContext 实例源码

项目:consulo-csharp    文件:CSharpParameterInfoHandler.java   
@Nullable
@Override
@RequiredReadAction
public PsiElement findElementForUpdatingParameterInfo(UpdateParameterInfoContext context)
{
    return context.getFile().findElementAt(context.getEditor().getCaretModel().getOffset());
}
项目:consulo-csharp    文件:CSharpParameterInfoHandler.java   
@Override
public void updateParameterInfo(@NotNull PsiElement place, UpdateParameterInfoContext context)
{
    CSharpCallArgumentListOwner owner = resolveCallArgumentListOwner(place);
    int parameterIndex = -1;
    CSharpCallArgumentList callArgumentList = owner == null ? null : owner.getParameterList();
    if(callArgumentList != null)
    {
        IElementType delimiter = CSharpTokens.COMMA;
        if(callArgumentList instanceof CSharpDictionaryInitializerImpl)
        {
            delimiter = CSharpTokens.EQ;
        }
        parameterIndex = ParameterInfoUtils.getCurrentParameterIndex(callArgumentList.getNode(), context.getOffset(), delimiter);
    }

    context.setCurrentParameter(parameterIndex);

    if(context.getParameterOwner() == null)
    {
        context.setParameterOwner(place);
    }
    else if(context.getParameterOwner() != owner)
    {
        context.removeHint();
        return;
    }
    final Object[] objects = context.getObjectsToView();

    for(int i = 0; i < objects.length; i++)
    {
        context.setUIComponentEnabled(i, true);
    }
}
项目:consulo-csharp    文件:CSharpGenericParameterInfoHandler.java   
@Override
public void updateParameterInfo(@NotNull PsiElement place, UpdateParameterInfoContext context)
{
    int parameterIndex = -1;
    DotNetTypeList typeList = PsiTreeUtil.getParentOfType(place, DotNetTypeList.class, false);

    if(typeList == null)
    {
        context.removeHint();
        return;
    }
    if(!(typeList.getParent() instanceof CSharpReferenceExpression))
    {
        context.removeHint();
        return;
    }

    parameterIndex = ParameterInfoUtils.getCurrentParameterIndex(typeList.getNode(), context.getOffset(), CSharpTokens.COMMA);

    context.setCurrentParameter(parameterIndex);

    if(context.getParameterOwner() == null)
    {
        context.setParameterOwner(place);
    }
    else if(context.getParameterOwner() != PsiTreeUtil.getParentOfType(place, CSharpReferenceExpression.class, false))
    {
        context.removeHint();
        return;
    }
    final Object[] objects = context.getObjectsToView();

    for(int i = 0; i < objects.length; i++)
    {
        context.setUIComponentEnabled(i, true);
    }
}
项目:consulo-javascript    文件:JSParameterInfoHandler.java   
@Override
public void updateParameterInfo(@NotNull final JSArgumentList o, final UpdateParameterInfoContext context)
{
    if(context.getParameterOwner() != o)
    {
        context.removeHint();
        return;
    }
    final int currentParameterIndex = ParameterInfoUtils.getCurrentParameterIndex(o.getNode(), context.getOffset(), JSTokenTypes.COMMA);
    context.setCurrentParameter(currentParameterIndex);
}
项目:consulo-apache-velocity    文件:VtlParameterInfoHandler.java   
public void updateParameterInfo(@NotNull final VtlArgumentList argumentList, final UpdateParameterInfoContext context) {
    assert argumentList.isValid();
    PsiElement prevOwner = context.getParameterOwner();
    int prevOwnerTextOffset = prevOwner == null ? 0 : prevOwner.getTextOffset();

    context.setParameterOwner(argumentList);
    if (prevOwnerTextOffset != 0 && prevOwnerTextOffset != argumentList.getTextOffset()) {
        context.removeHint();
        context.setCurrentParameter(-1);
        return;
    }
    int offset = context.getEditor().getCaretModel().getOffset() - argumentList.getTextRange().getStartOffset();
    if (offset < 0) {
        context.setCurrentParameter(-1);
        return;
    }
    int index = 0;
    for (final ASTNode child : argumentList.getNode().getChildren(null)) {
        final PsiElement psiChild = child.getPsi();
        offset -= child.getTextLength();
        if (!(psiChild instanceof VtlExpression)) {
            continue;
        }
        if (offset <= 0) {
            break;
        }
        index++;
    }
    context.setCurrentParameter(index);
}
项目:consulo-csharp    文件:CSharpGenericParameterInfoHandler.java   
@Nullable
@Override
public PsiElement findElementForUpdatingParameterInfo(UpdateParameterInfoContext context)
{
    return context.getFile().findElementAt(context.getEditor().getCaretModel().getOffset());
}
项目:intellij-xquery    文件:XQueryParameterInfoHandler.java   
@Nullable
@Override
public XQueryArgumentList findElementForUpdatingParameterInfo(UpdateParameterInfoContext context) {
    return getArgumentList(context);
}
项目:intellij-xquery    文件:XQueryParameterInfoHandler.java   
@Override
public void updateParameterInfo(@NotNull XQueryArgumentList place, UpdateParameterInfoContext context) {
    context.setCurrentParameter(ParameterInfoUtils.getCurrentParameterIndex(place.getNode(), context.getOffset(),
            XQueryTypes.COMMA));
}
项目:consulo-javascript    文件:JSParameterInfoHandler.java   
@Override
public JSArgumentList findElementForUpdatingParameterInfo(final UpdateParameterInfoContext context)
{
    return findArgumentList(context.getFile(), context.getOffset());
}
项目:consulo-apache-velocity    文件:VtlParameterInfoHandler.java   
public VtlArgumentList findElementForUpdatingParameterInfo(final UpdateParameterInfoContext context) {
    return findArgumentList(context);
}
项目:consulo-java    文件:MethodParameterInfoHandler.java   
@Override
public PsiExpressionList findElementForUpdatingParameterInfo(@NotNull final UpdateParameterInfoContext context)
{
    return findArgumentList(context.getFile(), context.getOffset(), context.getParameterListStart());
}