예제 #1
0
        //IClass lastClassInMembersComboBox;

        void GetGlobalUnitMembers(ArrayList items)
        {
            foreach (SymScope ss in currentCompilationUnit.members)
            {
                if (ss.si.kind == SymbolKind.Method || ss.si.kind == SymbolKind.Constant || ss.si.kind == SymbolKind.Variable || ss.si.kind == SymbolKind.Event || ss.si.kind == SymbolKind.Field ||
                    ss.si.kind == SymbolKind.Parameter || ss.si.kind == SymbolKind.Property)
                {
                    items.Add(new ComboBoxItem(ss, ss.GetDescriptionWithoutDoc(), CodeCompletionProvider.ImagesProvider.GetPictureNum(ss.si), true, false));
                }
            }
            int ind = items.Count;

            items.Sort(0, items.Count, new Comparer(System.Globalization.CultureInfo.InvariantCulture));

            if ((currentCompilationUnit as InterfaceUnitScope).impl_scope != null)
            {
                ImplementationUnitScope us = (currentCompilationUnit as InterfaceUnitScope).impl_scope;
                //items.Add(new ComboBoxItem(us,"implementation",CodeCompletionProvider.ImagesProvider.GetPictureNum(us.si),true));
                foreach (SymScope ss in us.members)
                {
                    if (ss.si.kind == SymbolKind.Method || ss.si.kind == SymbolKind.Constant || ss.si.kind == SymbolKind.Variable || ss.si.kind == SymbolKind.Event || ss.si.kind == SymbolKind.Field ||
                        ss.si.kind == SymbolKind.Parameter || ss.si.kind == SymbolKind.Property)
                    {
                        items.Add(new ComboBoxItem(ss, ss.GetDescriptionWithoutDoc(), CodeCompletionProvider.ImagesProvider.GetPictureNum(ss.si), true, false));
                    }
                }
                items.Sort(ind, items.Count - ind, new Comparer(System.Globalization.CultureInfo.InvariantCulture));
            }
        }
예제 #2
0
        void AddClasses(ArrayList items)
        {
            ImplementationUnitScope impl = null;
            int ind = 0;

            if (currentCompilationUnit == null)
            {
                //items.Add(new ComboBoxItem(currentCompilationUnit,PascalABCCompiler.StringResources.Get("CODE_COMPLETION_GLOBAL"),CodeCompletionProvider.ImagesProvider.IconNumberUnitNamespace,true,true));
                return;
            }
            if ((currentCompilationUnit as InterfaceUnitScope).impl_scope != null)
            {
                items.Add(new ComboBoxItem(currentCompilationUnit, PascalABCCompiler.StringResources.Get("CODE_COMPLETION_INTERFACE"), CodeCompletionProvider.ImagesProvider.GetPictureNum(currentCompilationUnit.si), true, false));
                impl = (currentCompilationUnit as InterfaceUnitScope).impl_scope;
                items.Add(new ComboBoxItem(impl, PascalABCCompiler.StringResources.Get("CODE_COMPLETION_IMPLEMENTATION"), CodeCompletionProvider.ImagesProvider.GetPictureNum(impl.si), true, false));
                ind = 2;
            }
            else
            {
                items.Add(new ComboBoxItem(currentCompilationUnit, PascalABCCompiler.StringResources.Get("CODE_COMPLETION_GLOBAL"), CodeCompletionProvider.ImagesProvider.IconNumberUnitNamespace, true, true));
                ind = 1;
            }
            foreach (SymScope ss in currentCompilationUnit.members)
            {
                if (ss.si.kind == SymbolKind.Class || ss.si.kind == SymbolKind.Struct || ss.si.kind == SymbolKind.Type || ss.si.kind == SymbolKind.Interface || ss.si.kind == SymbolKind.Enum || ss.si.kind == SymbolKind.Delegate)
                {
                    if (ss.GetPosition().file_name != null && !ss.si.name.Contains("$"))
                    {
                        items.Add(new ComboBoxItem(ss, ss.si.name, CodeCompletionProvider.ImagesProvider.GetPictureNum(ss.si), true, false));
                    }
                }
            }
            if (impl != null)
            {
                foreach (SymScope ss in impl.members)
                {
                    if (ss.si.kind == SymbolKind.Class || ss.si.kind == SymbolKind.Struct || ss.si.kind == SymbolKind.Type || ss.si.kind == SymbolKind.Interface || ss.si.kind == SymbolKind.Enum || ss.si.kind == SymbolKind.Delegate)
                    {
                        if (!ss.si.name.Contains("$"))
                        {
                            items.Add(new ComboBoxItem(ss, ss.si.name, CodeCompletionProvider.ImagesProvider.GetPictureNum(ss.si), true, false));
                        }
                    }
                }
            }
            items.Sort(ind, items.Count - ind, new Comparer(System.Globalization.CultureInfo.InvariantCulture));
        }