private ICandidate[] GetCandidates(IRuleNameUsage ruleNameUsage) { var ruleName = ruleNameUsage.Name; var ruleDeclaration = ruleName.RuleNameReference.Resolve().DeclaredElement as IRuleDeclaration; if (ruleDeclaration != null) { var psiRuleSignature = new PsiRuleSignature(ruleDeclaration); var candidates = new ICandidate[1]; candidates[0] = new PsiParameterInfoCandidate(psiRuleSignature); return(candidates); } return(null); }
public PsiParameterInfoContext(IRuleNameUsage ruleNameUsage, int argumentIndex) { myCandidates = GetCandidates(ruleNameUsage); NamedArguments = EmptyArray <string> .Instance; Argument = argumentIndex; if (ruleNameUsage.Parameters.FirstChild != null) { myTextRange = ruleNameUsage.Parameters.FirstChild.GetNavigationRange().TextRange; } else { myTextRange = TextRange.InvalidRange; } }