Beispiel #1
0
        private bool CheckInheritsFrom(CodeElementEx codeClass)
        {
            string classFullName = NormalizeName(codeClass.RealObject.FullName);

            if (classFullName.Equals(this.inheritsFromClassName, StringComparison.InvariantCultureIgnoreCase))
            {
                return(true);
            }
            if (codeClass.Bases == null)
            {
                return(false);
            }
            foreach (CodeElement codeBase in codeClass.Bases)
            {
                string fullBaseName = NormalizeName(codeBase.FullName);
                if (fullBaseName.Equals(this.inheritsFromClassName, StringComparison.InvariantCultureIgnoreCase))
                {
                    return(true);
                }
                else if (CheckInheritsFrom(new CodeElementEx(codeBase)))
                {
                    return(true);
                }
            }
            return(false);
        }
Beispiel #2
0
        bool ICodeModelEditorFilter.Filter(EnvDTE.CodeElement codeElement)
        {
            AttributeTargets target = GetTarget(codeElement);

            if ((target & this.attributeUsage) != 0)
            {
                CodeElements attributes = new CodeElementEx(codeElement).Attributes;
                foreach (CodeElement attribute in attributes)
                {
                    try
                    {
                        if (attribute.FullName.Equals(
                                this.attributeType.FullName,
                                StringComparison.InvariantCultureIgnoreCase))
                        {
                            return(false);
                        }
                    }
                    catch
                    {
                    }
                }
                return(true);
            }
            return(false);
        }
Beispiel #3
0
        /// <summary>
        /// Searches for the <see cref="CodeElement"/>
        /// </summary>
        public override void Execute()
        {
            CodeElements elements = new CodeElementEx(this.ParentElement).Members;

            foreach (CodeElement codeElement in elements)
            {
                if (codeElement.Name.Equals(this.ElementName, StringComparison.InvariantCultureIgnoreCase))
                {
                    this.CodeElement = codeElement;
                    return;
                }
            }
        }
Beispiel #4
0
        bool ICodeModelEditorFilter.Filter(EnvDTE.CodeElement codeElement)
        {
            CodeElementEx codeElementEx = new CodeElementEx(codeElement);

            if (codeElementEx.Bases != null)
            {
                return(!CheckInheritsFrom(codeElementEx));
            }
            else if (codeElement is CodeNamespace)
            {
                return(!HasClassInheritFrom((CodeNamespace)codeElement));
            }
            // Filter everything else
            return(true);
        }
Beispiel #5
0
 private bool HasClassInheritFrom(CodeNamespace codeNamespace)
 {
     foreach (CodeElement codeElement in codeNamespace.Members)
     {
         CodeElementEx codeElementEx = new CodeElementEx(codeElement);
         if (codeElementEx.Bases != null)
         {
             if (CheckInheritsFrom(codeElementEx))
             {
                 return(true);
             }
         }
         else if (codeElement is CodeNamespace)
         {
             if (HasClassInheritFrom((CodeNamespace)codeElement))
             {
                 return(true);
             }
         }
     }
     return(false);
 }