Beispiel #1
0
        public static CodeElements GetCodeElementMembers(CodeElement codeElement)
        {
            if (codeElement.Kind == vsCMElement.vsCMElementClass)
            {
                CodeClass2 codeClass = (CodeClass2)codeElement;
                return(codeClass.Members);
            }
            else if (codeElement.Kind == vsCMElement.vsCMElementInterface)
            {
                CodeInterface2 codeInterface = (CodeInterface2)codeElement;
                return(codeInterface.Members);
            }
            else if (codeElement.Kind == vsCMElement.vsCMElementStruct)
            {
                CodeStruct2 codeStruct = (CodeStruct2)codeElement;
                return(codeStruct.Members);
            }
            else if (codeElement.Kind == vsCMElement.vsCMElementEnum)
            {
                CodeEnum codeEnum = (CodeEnum)codeElement;
                return(codeEnum.Members);
            }
            else if (codeElement.Kind == vsCMElement.vsCMElementNamespace)
            {
                CodeNamespace codeNamespace = (CodeNamespace)codeElement;
                return(codeNamespace.Members);
            }

            return(null);
        }
Beispiel #2
0
        public List <TableRecord> ParseFileCodeModel()
        {
            Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread();

            List <TableRecord> tableList = new List <TableRecord>();

            foreach (CodeElement2 codeElement in sourceItem.CodeElements)
            {
                /*Class*/
                if (codeElement.Kind == vsCMElement.vsCMElementClass)
                {
                    CodeClass2 classItem = codeElement as CodeClass2 ?? throw new ArgumentNullException();

                    List <TableRecord> classTRec = parseClass(classItem);
                    tableList.AddRange(classTRec);
                }
                /*Parse struct functions*/
                else if (codeElement.Kind == vsCMElement.vsCMElementStruct)
                {
                    CodeStruct2 structItem = codeElement as CodeStruct2 ?? throw new ArgumentNullException();

                    debugPane.OutputString("Struct methods: " + structItem.FullName + "\n");
                    foreach (CodeElement2 field in structItem.Members)
                    {
                        if (field.Kind == vsCMElement.vsCMElementFunction)
                        {
                            TableRecord structTRec = parseFuntion(field as CodeFunction2);
                            tableList.Add(structTRec);
                        }
                    }
                }
                /*Parse single functions*/
                else if (codeElement.Kind == vsCMElement.vsCMElementFunction)
                {
                    TableRecord funRec = parseFuntion(codeElement as CodeFunction2);
                    tableList.Add(funRec);
                }
            }

            return(tableList);
        }
Beispiel #3
0
 internal ShellCodeStruct(CodeStruct2 @struct) : base(@struct as CodeElement2)
 {
     _struct = @struct;
 }
 public CodeStructNodeFactory(CodeStruct2 element) : base(element as CodeElement)
 {
     _struct = element;
 }
Beispiel #5
0
 internal ShellCodeStruct(CodeStruct2 @struct) : base(@struct as CodeElement2)
 {
     _struct = @struct;
 }
Beispiel #6
0
        public static bool IsCodeElementPrivate(CodeElement codeElement)
        {
            switch (codeElement.Kind)
            {
            case vsCMElement.vsCMElementVariable:
                CodeVariable2 codeVariable = (CodeVariable2)codeElement;
                if (codeVariable.Access == vsCMAccess.vsCMAccessPrivate)
                {
                    return(true);
                }
                break;

            case vsCMElement.vsCMElementFunction:
                CodeFunction2 codeFunction = (CodeFunction2)codeElement;
                if (codeFunction.Access == vsCMAccess.vsCMAccessPrivate)
                {
                    return(true);
                }
                break;

            case vsCMElement.vsCMElementProperty:
                CodeProperty codeProperty = (CodeProperty)codeElement;
                if (codeProperty.Access == vsCMAccess.vsCMAccessPrivate)
                {
                    return(true);
                }
                break;

            case vsCMElement.vsCMElementClass:
                CodeClass2 codeClass = (CodeClass2)codeElement;
                if (codeClass.Access == vsCMAccess.vsCMAccessPrivate)
                {
                    return(true);
                }
                break;

            case vsCMElement.vsCMElementDelegate:
                CodeDelegate2 codeDelegate = (CodeDelegate2)codeElement;
                if (codeDelegate.Access == vsCMAccess.vsCMAccessPrivate)
                {
                    return(true);
                }
                break;

            case vsCMElement.vsCMElementEvent:
                CodeEvent codeEvent = (CodeEvent)codeElement;
                if (codeEvent.Access == vsCMAccess.vsCMAccessPrivate)
                {
                    return(true);
                }
                break;

            case vsCMElement.vsCMElementInterface:
                CodeInterface2 codeInterface = (CodeInterface2)codeElement;
                if (codeInterface.Access == vsCMAccess.vsCMAccessPrivate)
                {
                    return(true);
                }
                break;

            case vsCMElement.vsCMElementStruct:
                CodeStruct2 codeStruct = (CodeStruct2)codeElement;
                if (codeStruct.Access == vsCMAccess.vsCMAccessPrivate)
                {
                    return(true);
                }
                break;
            }

            return(false);
        }
 public CodeStructNodeFactory(CodeStruct2 element) : base(element as CodeElement)
 {
     _struct = element;
 }