Пример #1
0
        public void SetFormat(CodeFormatDescription description, T settings)
        {
            this.description             = description;
            this.settings                = settings;
            options.ShowLineNumberMargin = false;
            options.ShowFoldMargin       = false;
            options.ShowIconMargin       = false;
            options.ShowInvalidLines     = false;
            options.ShowSpaces           = options.ShowTabs = options.ShowEolMarkers = false;
            options.ColorScheme          = PropertyService.Get("ColorScheme", "Default");
            options.Zoom                  = 0.8;
            texteditor1.Options           = options;
            texteditor1.Document.ReadOnly = true;
            texteditor1.Document.MimeType = description.MimeType;
            store.Clear();

            if (description != null)
            {
                foreach (CodeFormatCategory category in description.SubCategories)
                {
                    AppendCategory(store, TreeIter.Zero, category);
                }
            }
            TreeviewCategories.ShowAll();
        }
Пример #2
0
        public static void SetFormatOptions(CSharpOutputVisitor outputVisitor, PolicyContainer policyParent)
        {
            IEnumerable <string> types         = DesktopService.GetMimeTypeInheritanceChain(MimeType);
            TextStylePolicy      currentPolicy = policyParent != null?policyParent.Get <TextStylePolicy> (types) : MonoDevelop.Projects.Policies.PolicyService.GetDefaultPolicy <TextStylePolicy> (types);

            CSharpFormattingPolicy codePolicy = policyParent != null?policyParent.Get <CSharpFormattingPolicy> (types) : MonoDevelop.Projects.Policies.PolicyService.GetDefaultPolicy <CSharpFormattingPolicy> (types);

            outputVisitor.Options.IndentationChar = currentPolicy.TabsToSpaces ? ' ' : '\t';
            outputVisitor.Options.TabSize         = currentPolicy.TabWidth;
            outputVisitor.Options.IndentSize      = currentPolicy.TabWidth;
            outputVisitor.Options.EolMarker       = TextStylePolicy.GetEolMarker(currentPolicy.EolMarker);

            CodeFormatDescription descr = CSharpFormattingPolicyPanel.CodeFormatDescription;
            Type optionType             = outputVisitor.Options.GetType();

            foreach (CodeFormatOption option in descr.AllOptions)
            {
                KeyValuePair <string, string> val = descr.GetValue(codePolicy, option);
                PropertyInfo info = optionType.GetProperty(option.Name);
                if (info == null)
                {
                    System.Console.WriteLine("option : " + option.Name + " not found.");
                    continue;
                }
                object cval = null;
                if (info.PropertyType.IsEnum)
                {
                    cval = Enum.Parse(info.PropertyType, val.Key);
                }
                else if (info.PropertyType == typeof(bool))
                {
                    cval = Convert.ToBoolean(val.Key);
                }
                else
                {
                    cval = Convert.ChangeType(val.Key, info.PropertyType);
                }
                //System.Console.WriteLine("set " + option.Name + " to " + cval);
                info.SetValue(outputVisitor.Options, cval, null);
            }
        }