private QuickFixResponse GetTypeResponse(ITypeResolveContext rctx, ITypeDefinition typeDefinition)
        {
            var types      = GetAllTypes(rctx);
            var quickFixes = from type in types where type != null &&
                             type != typeDefinition &&
                             type.IsDerivedFrom(typeDefinition)
                             select QuickFix.ForFirstLineInRegion
                                 (type.Region
                                 , _solution.GetFile(type.Region.FileName));

            return(new QuickFixResponse(quickFixes));
        }
Example #2
0
        GetFileRegions(Request request)
        {
            var context = new BufferContext(request, this._parser);

            var declarationCollector = new GetDirectivesAstVisitor();

            context.ParsedContent.SyntaxTree
            .AcceptVisitor(declarationCollector);

            var regions = declarationCollector.Directives
                          .Where(d => d.Type == PreProcessorDirectiveType.Region ||
                                 d.Type == PreProcessorDirectiveType.Endregion)
                          .Select(d => QuickFix.ForFirstLineInRegion
                                      (d.GetRegion(), context.Document));

            return(new QuickFixResponse(regions));
        }
        private QuickFixResponse GetMemberResponse(ITypeResolveContext rctx, MemberResolveResult resolveResult)
        {
            var quickFixes = new List <QuickFix>();

            //TODO: we don't need to scan all types in all projects
            foreach (ITypeDefinition type in GetAllTypes(rctx))
            {
                if (type != null)
                {
                    IMember member =
                        InheritanceHelper.GetDerivedMember(resolveResult.Member, type);
                    if (member != null)
                    {
                        var quickFix = QuickFix.ForFirstLineInRegion
                                           (member.MemberDefinition.Region
                                           , _solution.GetFile(type.Region.FileName));
                        quickFixes.Add(quickFix);
                    }
                }
            }
            return(new QuickFixResponse(quickFixes));
        }