private bool TryGetNavigationAPIRequiredArguments(ISymbol symbol, Solution solution, out IVsHierarchy hierarchy, out IVsSymbolicNavigationNotify navigationNotify, out string rqname)
        {
            hierarchy        = null;
            navigationNotify = null;
            rqname           = null;

            if (!symbol.Locations.Any() || !symbol.Locations[0].IsInSource)
            {
                return(false);
            }

            var document = solution.GetDocument(symbol.Locations[0].SourceTree);

            if (document == null)
            {
                return(false);
            }

            hierarchy = GetVsHierarchy(document.Project);

            navigationNotify = hierarchy as IVsSymbolicNavigationNotify;
            if (navigationNotify == null)
            {
                return(false);
            }

            return(RQNameService.TryBuild(symbol, out rqname));
        }
Esempio n. 2
0
        private bool TryGetRenamingRQNameForSymbol(ISymbol symbol, out string rqname)
        {
            if (symbol.Kind == SymbolKind.Method)
            {
                var methodSymbol = symbol as IMethodSymbol;

                if (methodSymbol.MethodKind == MethodKind.Constructor ||
                    methodSymbol.MethodKind == MethodKind.Destructor)
                {
                    symbol = symbol.ContainingType;
                }
            }

            return(RQNameService.TryBuild(symbol, out rqname));
        }