Пример #1
0
        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);
        }
Пример #2
0
        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);
        }