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(); }
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); } }