2
// CSharpFormattingPolicyPanelWidget.cs
5
// Mike Krüger <mkrueger@novell.com>
7
// Copyright (c) 2010 Novell, Inc (http://www.novell.com)
9
// Permission is hereby granted, free of charge, to any person obtaining a copy
10
// of this software and associated documentation files (the "Software"), to deal
11
// in the Software without restriction, including without limitation the rights
12
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
// copies of the Software, and to permit persons to whom the Software is
14
// furnished to do so, subject to the following conditions:
16
// The above copyright notice and this permission notice shall be included in
17
// all copies or substantial portions of the Software.
19
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
27
using MonoDevelop.Components;
28
using MonoDevelop.Core;
29
using MonoDevelop.Ide;
30
using System.Collections.Generic;
31
using MonoDevelop.Ide.CodeFormatting;
32
namespace MonoDevelop.CSharp.Formatting
34
[System.ComponentModel.ToolboxItem(true)]
35
public partial class CSharpFormattingPolicyPanelWidget : Gtk.Bin
37
Mono.TextEditor.TextEditor texteditor = new Mono.TextEditor.TextEditor ();
38
// Gtk.ListStore model = new Gtk.ListStore (typeof(string));
39
// List<CSharpFormattingPolicy> policies = new List<CSharpFormattingPolicy> ();
40
const string example = @"using System;
44
public static void Main (string[] args)
46
for (int i = 0; i < 10; i++) {
47
Console.WriteLine (""{0}: Test"", i);
52
CSharpFormattingPolicy policy;
53
public CSharpFormattingPolicy Policy {
63
public CSharpFormattingPolicyPanelWidget ()
66
policy = new CSharpFormattingPolicy ();
67
buttonEdit.Clicked += HandleButtonEditClicked;
69
var options = MonoDevelop.SourceEditor.DefaultSourceEditorOptions.Instance;
70
texteditor.Options.FontName = options.FontName;
71
texteditor.Options.ColorScheme = options.ColorScheme;
72
texteditor.Options.ShowFoldMargin = false;
73
texteditor.Options.ShowIconMargin = false;
74
texteditor.Options.ShowLineNumberMargin = false;
75
texteditor.Options.ShowInvalidLines = false;
76
texteditor.Document.ReadOnly = true;
77
texteditor.Document.MimeType = CSharpFormatter.MimeType;
78
scrolledwindow1.Child = texteditor;
82
public void FormatSample ()
84
var formatter = CodeFormatterService.GetFormatter (CSharpFormatter.MimeType);
85
var parent = new MonoDevelop.Projects.DotNetAssemblyProject ();
86
parent.Policies.Set<CSharpFormattingPolicy> (policy, CSharpFormatter.MimeType);
87
texteditor.Document.Text = formatter.FormatText (parent.Policies, example);
90
void HandleButtonEditClicked (object sender, EventArgs e)
92
var editDialog = new CSharpFormattingProfileDialog (policy);
93
MessageService.ShowCustomDialog (editDialog);
94
editDialog.Destroy ();