示例#1
0
        private int PositionToInterfaceOrBaseIndex(object Position, bool toInterface)
        {
            ICodeDomElement icde     = Position as ICodeDomElement;
            int             position = Int32.MaxValue;

            if (icde == null)
            {
                if (Position != System.Reflection.Missing.Value)
                {
                    position = (int)Position;
                }
            }

            int index = 0, realIndex = 0;

            foreach (CodeTypeReference baseType in CodeObject.BaseTypes)
            {
                CodeElement ce = (CodeElement)baseType.UserData[CodeKey];
                if ((icde != null && ce == icde) || position == index + 1)
                {
                    return(realIndex);
                }
                if (ce is CodeInterface == toInterface)
                {
                    index++;
                }
                realIndex++;
            }

            return(realIndex);
        }
示例#2
0
        /// <summary>
        /// Gets parent element of ICodeDomElement.
        /// </summary>
        /// <param name="element">The element.</param>
        /// <returns></returns>
        public static CodeElement GetParentElement(ICodeDomElement element)
        {
            if (element.ParentElement is LuaCodeFunction || element.ParentElement is LuaCodeClass)
            {
                return(element.ParentElement);
            }
            CodeElement parent = GetParent(element.ParentElement as ICodeDomElement);

            return(parent);
        }
示例#3
0
        /// <summary>
        /// Gets parent of the specified element.
        /// </summary>
        /// <param name="element">The element.</param>
        /// <returns></returns>
        private static CodeElement GetParent(ICodeDomElement element)
        {
            if (element == null)
            {
                return(null);
            }
            if (element.ParentElement is LuaCodeFunction ||
                element.ParentElement is LuaCodeClass || element.ParentElement == null)
            {
                return(element.ParentElement);
            }
            CodeElement parent = GetParent(element.ParentElement as ICodeDomElement);

            return(parent);
        }
        private static int AttributePositionToIndex(CodeAttributeDeclarationCollection collection, object Position)
        {
            ICodeDomElement icde = Position as ICodeDomElement;

            if (icde != null)
            {
                return(collection.IndexOf((CodeAttributeDeclaration)icde.UntypedCodeObject) + 1);
            }

            if (Position == System.Reflection.Missing.Value)
            {
                return(collection.Count);
            }

            int pos = (int)Position;

            if (pos == -1)
            {
                return(collection.Count);
            }
            return(pos - 1);
        }
示例#5
0
        protected int PositionToIndex(object position)
        {
            ICodeDomElement icde = position as ICodeDomElement;

            if (icde != null)
            {
                return(CodeObject.Members.IndexOf((CodeTypeMember)icde.UntypedCodeObject) + 1);
            }

            if (position == System.Reflection.Missing.Value)
            {
                return(CodeObject.Members.Count);
            }

            int pos = (int)position;

            if (pos == -1)
            {
                return(CodeObject.Members.Count);
            }
            return(pos);
        }
示例#6
0
 /// <summary>
 /// Gets parent of the specified element.
 /// </summary>
 /// <param name="element">The element.</param>
 /// <returns></returns>
 private static CodeElement GetParent(ICodeDomElement element)
 {
     if (element == null) return null;
     if (element.ParentElement is LuaCodeFunction
     || element.ParentElement is LuaCodeClass || element.ParentElement == null)
     {
         return element.ParentElement;
     }
     CodeElement parent = GetParent(element.ParentElement as ICodeDomElement);
     return parent;
 }
示例#7
0
 /// <summary>
 /// Gets parent element of ICodeDomElement.
 /// </summary>
 /// <param name="element">The element.</param>
 /// <returns></returns>
 public static CodeElement GetParentElement(ICodeDomElement element)
 {
     if (element.ParentElement is LuaCodeFunction || element.ParentElement is LuaCodeClass)
     {
         return element.ParentElement;
     }
     CodeElement parent = GetParent(element.ParentElement as ICodeDomElement);
     return parent;
 }