private TreeNodeKinds ConvertTreeNodeKinds(DefineKinds value, bool isEnumMember = false) { var result = TreeNodeKinds.None; switch (value) { case DefineKinds.Class: result = TreeNodeKinds.Class; break; case DefineKinds.Struct: result = TreeNodeKinds.Struct; break; case DefineKinds.Interface: result = TreeNodeKinds.Interface; break; case DefineKinds.Module: result = TreeNodeKinds.Module; break; case DefineKinds.Enum: result = TreeNodeKinds.Enum; break; case DefineKinds.Event: result = TreeNodeKinds.Event; break; case DefineKinds.Delegate: result = TreeNodeKinds.Delegate; break; case DefineKinds.Field: result = TreeNodeKinds.Field; break; case DefineKinds.Property: result = TreeNodeKinds.Property; break; case DefineKinds.Indexer: result = TreeNodeKinds.Property; break; case DefineKinds.Constructor: result = TreeNodeKinds.Method; break; case DefineKinds.Operator: result = TreeNodeKinds.Operator; break; case DefineKinds.WindowsAPI: result = TreeNodeKinds.Method; break; case DefineKinds.EventHandler: result = TreeNodeKinds.Method; break; case DefineKinds.Method: result = TreeNodeKinds.Method; break; } if (isEnumMember) { result = TreeNodeKinds.EnumItem; } return(result); }
private string GetNamespace(DefineKinds kinds, int startLength, int endLength) { var result = string.Empty; switch (kinds) { case DefineKinds.Namespace: // 直近の Namespace for (var i = UserDefinitions.Count - 1; i >= 0; i--) { var item = UserDefinitions[i]; switch (item.DefineKinds) { case DefineKinds.Namespace: if (item.StartLength <= startLength && endLength <= item.EndLength) { result = item.DefineFullName; } break; } if (!string.IsNullOrEmpty(result)) { break; } } break; default: // Class, Struct, Interface, Module, Enum / Field, Property, Method, Delegate, Event // 直近の Namespace, Class, Struct, Interface, Module for (var i = UserDefinitions.Count - 1; i >= 0; i--) { var item = UserDefinitions[i]; switch (item.DefineKinds) { case DefineKinds.Namespace: case DefineKinds.Class: case DefineKinds.Struct: case DefineKinds.Interface: case DefineKinds.Module: if (item.StartLength <= startLength && endLength <= item.EndLength) { result = item.DefineFullName; } break; } if (!string.IsNullOrEmpty(result)) { break; } } break; } return(result); }