private IList <ICSharpExpression> CollectUsages(IElement scope) { var elementsWithUnresolvedReferences = CollectElementsWithUnresolvedReferences( scope, _myReference.GetName()); return(FilterUsages(elementsWithUnresolvedReferences.Cast <ICSharpExpression>())); }
private static IDeclaredElement GetFieldDeclaredElement([NotNull] IReference reference, [NotNull] FSharpUnionCase unionCase, [NotNull] IFSharpReferenceOwner referenceOwner) { var field = unionCase.UnionCaseFields.FirstOrDefault(f => f.Name == reference.GetName()); return(field?.GetDeclaredElement(referenceOwner.GetPsiModule(), referenceOwner)); }
protected override Action <ITextControl> ExecutePsiTransaction(ISolution solution, IProgressIndicator progress) { var addStub = new AddRhinoStub(_myReference.GetName(), _myReferenceExpression, _anchor); addStub.Execute(); return(tc => { }); }
public static string UpwardsDebugTraceRecursive(IReference reference, int depth, string value = "") { value += depth + ": " + reference.GetTypeName() + ": " + reference.GetName() + "\n"; if (reference.GetParentReference() != null) { value = UpwardsDebugTraceRecursive(reference.GetParentReference(), --depth, value); } return(value); }
// I(Reference)Qualifier.GetSymbolTable - returns the symbol table of items available from the resolved // reference, when being used as a qualifier. Not used to resolve this reference, but can be used to resolve // another reference, when this instance is used as a qualifier. E.g. if this reference is a namespace, // return all applicable items available in the namespace. // Contrast with IReference.GetReferenceSymbolTable, which returns the symbol table used to resolve a // reference. For a qualified reference, this will call GetQualifier.GetSymbolTable(mode). If there is no // qualifier, it gets a symbol table based on current scope public ISymbolTable GetSymbolTable(SymbolTableMode mode, IReference reference, bool useReferenceName) { if (!(Resolve().DeclaredElement is INamespace @namespace)) { return(EmptySymbolTable.INSTANCE); } var module = myOwner.GetPsiModule(); var symbolTable = ResolveUtil.GetSymbolTableByNamespace(@namespace, module, true); return(useReferenceName ? symbolTable.Filter(new ExactNameFilter(reference.GetName())) : symbolTable); }
static string GetPathString(IReference reference, string path = null) { if (reference == null) { return("null"); } if (path == null) { path = reference.GetName(); } else { path = reference.GetName() + " / " + path; } if (reference.GetParentReference() != null) { path = GetPathString(reference.GetParentReference(), path); } return(path); }
public void MakeCallExtension(IReference reference) { var treeNode = reference.GetTreeNode(); if (!treeNode.IsVB9Supported()) return; var referenceExpression = treeNode as IReferenceExpression; if (referenceExpression == null) return; IIndexExpression byExpression = IndexExpressionNavigator.GetByExpression(referenceExpression); if (byExpression == null) return; IVBArgument vbArgument = null; int index = 0; using (var enumerator = byExpression.ArgumentList.Arguments.GetEnumerator()) { while (enumerator.MoveNext()) { var current = enumerator.Current; var matchingParameter = current.GetMatchingParameter(); if (matchingParameter != null && matchingParameter.Element.IndexOf() == 0) { vbArgument = current; break; } ++index; } } if (vbArgument == null) return; IVBExpression vbExpression = null; var expressionArgument = vbArgument as IExpressionArgument; if (expressionArgument != null) vbExpression = expressionArgument.Expression; if (vbExpression == null) return; var indexExpression1 = (IIndexExpression) VBElementFactory.GetInstance(treeNode.GetPsiModule()) .CreateExpression("$0." + reference.GetName() + "()", new object[] { vbExpression }); indexExpression1.SetArgumentList(byExpression.ArgumentList); indexExpression1.RemoveArgument(indexExpression1.Arguments[index]); byExpression.ReplaceBy(indexExpression1); }
private bool ReferenceNamePredicate(IReference reference) { if (myReferenceNameContainer == null) { return(true); } if (reference.HasMultipleNames) { foreach (var name in reference.GetAllNames()) { if (myReferenceNameContainer.Contains(name)) { return(true); } } return(false); } return(myReferenceNameContainer.Contains(reference.GetName())); }
public bool IsLive(IReference reference) { return liveLocalVariableNames.Contains(reference.GetName()); }
public bool IsLive(IReference reference) { return(liveLocalVariableNames.Contains(reference.GetName())); }
public void MakeCallExtension(IReference reference) { var treeNode = reference.GetTreeNode(); if (!treeNode.IsVB9Supported()) { return; } var referenceExpression = treeNode as IReferenceExpression; if (referenceExpression == null) { return; } IIndexExpression byExpression = IndexExpressionNavigator.GetByExpression(referenceExpression); if (byExpression == null) { return; } IVBArgument vbArgument = null; int index = 0; using (var enumerator = byExpression.ArgumentList.Arguments.GetEnumerator()) { while (enumerator.MoveNext()) { var current = enumerator.Current; var matchingParameter = current.GetMatchingParameter(); if (matchingParameter != null && matchingParameter.Element.IndexOf() == 0) { vbArgument = current; break; } ++index; } } if (vbArgument == null) { return; } IVBExpression vbExpression = null; var expressionArgument = vbArgument as IExpressionArgument; if (expressionArgument != null) { vbExpression = expressionArgument.Expression; } if (vbExpression == null) { return; } var indexExpression1 = (IIndexExpression)VBElementFactory.GetInstance(treeNode.GetPsiModule()) .CreateExpression("$0." + reference.GetName() + "()", new object[] { vbExpression }); indexExpression1.SetArgumentList(byExpression.ArgumentList); indexExpression1.RemoveArgument(indexExpression1.Arguments[index]); byExpression.ReplaceBy(indexExpression1); }