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); }
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); }
internal ShellCodeStruct(CodeStruct2 @struct) : base(@struct as CodeElement2) { _struct = @struct; }
public CodeStructNodeFactory(CodeStruct2 element) : base(element as CodeElement) { _struct = element; }
internal ShellCodeStruct(CodeStruct2 @struct) : base(@struct as CodeElement2) { _struct = @struct; }
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; }