Esempio n. 1
0
 private void AddCodeMembers(IListMembers Provider, IMethodInfo Info)
 {
     this.AddCodeMembers(Info.Params, Provider);
     if (Info is IHasLocalVars)
     {
         this.AddCodeMembers(((IHasLocalVars)Info).LocalVars, Provider);
     }
 }
Esempio n. 2
0
        private void AddCodeMembers(IListMembers Provider, Type type, bool IsStatic)
        {
            BindingFlags flags1 = IsStatic ? (BindingFlags.Public | BindingFlags.Static) : (BindingFlags.Public | BindingFlags.Instance);

            this.AddCodeMembers(type.GetProperties(flags1), Provider);
            this.AddCodeMembers(type.GetMethods(flags1), Provider);
            this.AddCodeMembers(type.GetEvents(flags1), Provider);
            this.AddCodeMembers(type.GetFields(flags1), Provider);
        }
Esempio n. 3
0
 private void AddCodeMembers(IListMembers Provider, IInterfaceInfo Info, bool IsStatic)
 {
     this.AddCodeMembers(Info.Properties, Provider);
     this.AddCodeMembers(Info.Methods, Provider);
     this.AddCodeMembers(Info.Events, Provider);
     if (Info is IClassInfo)
     {
         IClassInfo info1 = (IClassInfo)Info;
         this.AddCodeMembers(info1.Fields, Provider);
         this.AddCodeMembers(info1.Enums, Provider);
         this.AddCodeMembers(info1.Delegates, Provider);
     }
 }
Esempio n. 4
0
        private void AddCodeMembers(ISyntaxInfos Elements, IListMembers Provider)
        {
            SortedList list1 = new SortedList(new CaseInsensitiveComparer());

            foreach (ISyntaxInfo info1 in Elements)
            {
                if (list1.IndexOfKey(info1.Name) < 0)
                {
                    list1.Add(info1.Name, info1);
                }
            }
            foreach (DictionaryEntry entry1 in list1)
            {
                ISyntaxInfo info2   = (ISyntaxInfo)entry1.Value;
                IListMember member1 = Provider.AddMember();
                member1.ImageIndex  = base.UnitInfo.GetImageIndex(info2);
                member1.Name        = info2.Name;
                member1.Description = info2.Description;
            }
        }
Esempio n. 5
0
        private void AddCodeMembers(MemberInfo[] Elements, IListMembers Provider)
        {
            SortedList list1 = new SortedList(new CaseInsensitiveComparer());

            MemberInfo[] infoArray1 = Elements;
            for (int num1 = 0; num1 < infoArray1.Length; num1++)
            {
                MemberInfo info1 = infoArray1[num1];
                if (list1.IndexOfKey(info1.Name) < 0)
                {
                    list1.Add(info1.Name, info1);
                }
            }
            foreach (DictionaryEntry entry1 in list1)
            {
                MemberInfo  info2   = (MemberInfo)entry1.Value;
                IListMember member1 = Provider.AddMember();
                member1.ImageIndex = base.UnitInfo.GetImageIndex(info2);
                member1.Name       = info2.Name;
            }
        }
Esempio n. 6
0
        public override void CodeCompletion(string Text, Point Position, CodeCompletionArgs e)
        {
            string text2;

            if (((e.CompletionType == CodeCompletionType.ListMembers) || (e.CompletionType == CodeCompletionType.CompleteWord)) || ((e.CompletionType == CodeCompletionType.None) && (e.KeyChar == '.')))
            {
                string text1;
                int    num1;
                if (this.GetNameAndTypeFromCode(Text, Position.X, out text1, out text2, out num1))
                {
                    object obj1  = base.UnitInfo.GetObjectClass((text1 == string.Empty) ? base.UnitInfo.SelfName : text1, Position);
                    bool   flag1 = false;
                    if ((obj1 == null) && (text1 != string.Empty))
                    {
                        obj1  = base.UnitInfo.GetClassByName(text1);
                        flag1 = true;
                    }
                    IListMembers members1 = null;
                    if (obj1 != null)
                    {
                        members1 = new ListMembers();
                        if (obj1 is IInterfaceInfo)
                        {
                            this.AddCodeMembers(members1, (IInterfaceInfo)obj1, flag1);
                        }
                        else if (obj1 is Type)
                        {
                            this.AddCodeMembers(members1, (Type)obj1, flag1);
                        }
                    }
                    if (text1 == string.Empty)
                    {
                        ArrayList list1 = new ArrayList();
                        base.UnitInfo.Sections.GetRanges(list1, Position);
                        for (int num2 = list1.Count - 1; num2 >= 0; num2--)
                        {
                            if (list1[num2] is IHasParams)
                            {
                                if (members1 == null)
                                {
                                    members1 = new ListMembers();
                                }
                                this.AddCodeMembers(((IHasParams)list1[num2]).Params, members1);
                            }
                            if (list1[num2] is IHasLocalVars)
                            {
                                if (members1 == null)
                                {
                                    members1 = new ListMembers();
                                }
                                this.AddCodeMembers(((IHasLocalVars)list1[num2]).LocalVars, members1);
                            }
                        }
                    }
                    e.Provider = members1;
                }
                if (e.Provider != null)
                {
                    e.Provider.ShowDescriptions = true;
                    e.StartPosition             = new Point(num1, Position.Y);
                    int num3 = 0;
                    if (this.FindCodeText(text2, e.Provider, out num3) && (e.CompletionType == CodeCompletionType.CompleteWord))
                    {
                        e.SelIndex = num3;
                    }
                    e.Provider.SelIndex = Math.Max(num3, 0);
                    e.Provider.Images   = base.UnitInfo.Images;
                }
            }
            else
            {
                int num4;
                int num5;
                if (((e.CompletionType == CodeCompletionType.ParameterInfo) || ((e.CompletionType == CodeCompletionType.None) && (e.KeyChar == '('))) && this.GetMethodNameFromCode(Text, Position.X, out text2, out num5, out num4))
                {
                    ArrayList list2 = new ArrayList();
                    base.UnitInfo.GetMethods(text2, Position, list2);
                    if (list2.Count > 0)
                    {
                        IParameterInfo info1 = new River.Orqa.Editor.Syntax.ParameterInfo();
                        info1.ShowParams     = true;
                        info1.ShowQualifiers = false;
                        foreach (object obj2 in list2)
                        {
                            IListMember member1 = info1.AddMember();
                            if (obj2 is IMethodInfo)
                            {
                                IMethodInfo info2 = (IMethodInfo)obj2;
                                member1.Qualifier = base.UnitInfo.GetMethodQualifier(info2);
                                member1.Name      = info2.Name;
                                member1.DataType  = info2.DataType;
                                member1.ParamText = base.UnitInfo.GetParamText(info2.Params);
                                continue;
                            }
                            if (obj2 is System.Reflection.MethodInfo)
                            {
                                System.Reflection.MethodInfo info3 = (System.Reflection.MethodInfo)obj2;
                                member1.Qualifier = base.UnitInfo.GetMethodQualifier(info3);
                                member1.DataType  = (info3.ReturnType != null) ? info3.ReturnType.Name : string.Empty;
                                member1.Name      = info3.Name;
                                member1.ParamText = base.UnitInfo.GetParamText(info3.GetParameters());
                            }
                        }
                        e.Provider = info1;
                    }
                    e.StartPosition = new Point(num5, Position.Y);
                    e.EndPosition   = new Point(num4, Position.Y);
                    e.ToolTip       = true;
                }
            }
            e.NeedShow = (e.Provider != null) && (e.Provider.Count > 0);
            if (e.CompletionType == CodeCompletionType.None)
            {
                e.Interval = Consts.DefaultHintDelay;
            }
        }