private List <AstNode> GetResolvedNodes(ResolveResultType type, AstNode node) { var resolvedNodes = new List <AstNode>(); ResolveResult resolveResult = _resolver.Resolve(node); if (resolveResult != null) { var findReferences = new FindReferences(); FoundReferenceCallback callback = delegate(AstNode matchNode, ResolveResult result) { resolvedNodes.Add(matchNode); }; if (type == ResolveResultType.Local) { var localResolveResult = resolveResult as LocalResolveResult; if (localResolveResult != null) { findReferences.FindLocalReferences(localResolveResult.Variable, _unresolvedFile, SyntaxTree, _compilation, callback, CancellationToken.None); } } else if (type == ResolveResultType.Member) { var memberResolveResult = resolveResult as MemberResolveResult; if (memberResolveResult != null) { var searchScopes = findReferences.GetSearchScopes(memberResolveResult.Member); findReferences.FindReferencesInFile(searchScopes, _unresolvedFile, SyntaxTree, _compilation, callback, CancellationToken.None); } } else if (type == ResolveResultType.Type) { var typeResolveResult = resolveResult as TypeResolveResult; if (typeResolveResult != null) { var searchScopes = findReferences.GetSearchScopes(typeResolveResult.Type.GetDefinition()); findReferences.FindReferencesInFile(searchScopes, _unresolvedFile, SyntaxTree, _compilation, callback, CancellationToken.None); } } } else { } return(resolvedNodes); }
private List<AstNode> GetResolvedNodes(ResolveResultType type, AstNode node) { var resolvedNodes = new List<AstNode>(); ResolveResult resolveResult = _resolver.Resolve(node); if (resolveResult != null) { var findReferences = new FindReferences(); FoundReferenceCallback callback = delegate (AstNode matchNode, ResolveResult result) { resolvedNodes.Add(matchNode); }; if (type == ResolveResultType.Local) { var localResolveResult = resolveResult as LocalResolveResult; if (localResolveResult != null) findReferences.FindLocalReferences(localResolveResult.Variable, _unresolvedFile, SyntaxTree, _compilation, callback, CancellationToken.None); } else if (type == ResolveResultType.Member) { var memberResolveResult = resolveResult as MemberResolveResult; if (memberResolveResult != null) { var searchScopes = findReferences.GetSearchScopes(memberResolveResult.Member); findReferences.FindReferencesInFile(searchScopes, _unresolvedFile, SyntaxTree, _compilation, callback, CancellationToken.None); } } else if (type == ResolveResultType.Type) { var typeResolveResult = resolveResult as TypeResolveResult; if (typeResolveResult != null) { var searchScopes = findReferences.GetSearchScopes(typeResolveResult.Type.GetDefinition()); findReferences.FindReferencesInFile(searchScopes, _unresolvedFile, SyntaxTree, _compilation, callback, CancellationToken.None); } } } else { } return resolvedNodes; }
private ResolveResult(ResolveResultType resultType, string relativeUrl) { _resultType = resultType; _relativeUrl = relativeUrl; }