void FindDerivedClasses(object sender, EventArgs e)
        {
            MenuCommand   item           = (MenuCommand)sender;
            IClass        c              = (IClass)item.Tag;
            List <IClass> derivedClasses = RefactoringService.FindDerivedClasses(c, ParserService.AllProjectContents, false);

            List <SearchResult> results = new List <SearchResult>();

            foreach (IClass derivedClass in derivedClasses)
            {
                if (derivedClass.CompilationUnit == null)
                {
                    continue;
                }
                if (derivedClass.CompilationUnit.FileName == null)
                {
                    continue;
                }

                SearchResult res = new SimpleSearchResult(derivedClass.FullyQualifiedName, new Point(derivedClass.Region.BeginColumn - 1, derivedClass.Region.BeginLine - 1));
                res.ProvidedDocumentInformation = FindReferencesAndRenameHelper.GetDocumentInformation(derivedClass.CompilationUnit.FileName);
                results.Add(res);
            }
            SearchInFilesManager.ShowSearchResults(StringParser.Parse("${res:SharpDevelop.Refactoring.ClassesDerivingFrom}", new string[, ] {
                { "Name", c.Name }
            }),
                                                   results);
        }
        void FindOverrides(object sender, EventArgs e)
        {
            MenuCommand         item           = (MenuCommand)sender;
            IMember             member         = (IMember)item.Tag;
            List <IClass>       derivedClasses = RefactoringService.FindDerivedClasses(member.DeclaringType, ParserService.AllProjectContents, false);
            List <SearchResult> results        = new List <SearchResult>();

            foreach (IClass derivedClass in derivedClasses)
            {
                if (derivedClass.CompilationUnit == null)
                {
                    continue;
                }
                if (derivedClass.CompilationUnit.FileName == null)
                {
                    continue;
                }
                IMember m = RefactoringService.FindSimilarMember(derivedClass, member);
                if (m != null && !m.Region.IsEmpty)
                {
                    SearchResult res = new SimpleSearchResult(m.FullyQualifiedName, new Point(m.Region.BeginColumn - 1, m.Region.BeginLine - 1));
                    res.ProvidedDocumentInformation = FindReferencesAndRenameHelper.GetDocumentInformation(derivedClass.CompilationUnit.FileName);
                    results.Add(res);
                }
            }
            SearchInFilesManager.ShowSearchResults(StringParser.Parse("${res:SharpDevelop.Refactoring.OverridesOf}",
                                                                      new string[, ] {
                { "Name", member.Name }
            }),
                                                   results);
        }
Beispiel #3
0
        public static void ShowAsSearchResults(string pattern, List <Reference> list)
        {
            if (list == null)
            {
                return;
            }
            List <SearchResult> results = new List <SearchResult>(list.Count);

            foreach (Reference r in list)
            {
                SearchResult res = new SearchResult(r.Offset, r.Length);
                res.ProvidedDocumentInformation = GetDocumentInformation(r.FileName);
                results.Add(res);
            }
            SearchInFilesManager.ShowSearchResults(pattern, results);
        }