IClass GetClass(ResolveResult currentSymbol)
        {
            if (currentSymbol == null || currentSymbol.ResolvedType == null)
            {
                return(null);
            }
            IClass c = currentSymbol.ResolvedType.GetUnderlyingClass();

            if (c == null)
            {
                return(null);
            }
            c = c.ProjectContent.GetClass(c.FullyQualifiedName, c.TypeParameters.Count, c.ProjectContent.Language, GetClassOptions.LookForInnerClass);
            return(ClassBookmarkSubmenuBuilder.GetCurrentPart(c));
        }
        public System.Windows.Forms.ToolStripItem[] BuildSubmenu(Codon codon, object owner)
        {
            List <ToolStripItem> resultItems = new List <ToolStripItem>();

            IClass c = ClassBookmarkSubmenuBuilder.GetClass(owner);

            if (c == null)
            {
                return(new ToolStripMenuItem[0]);
            }
            LanguageProperties language = c.ProjectContent.Language;

            if (!FindReferencesAndRenameHelper.IsReadOnly(c))
            {
                AddRenameCommand(c, resultItems);

                if (language.RefactoringProvider.SupportsExtractInterface)
                {
                    AddExtractInterfaceCommand(c, resultItems);
                }
            }

            return(resultItems.ToArray());
        }