diff --git a/ICSharpCode.NRefactory.Demo/MainForm.cs b/ICSharpCode.NRefactory.Demo/MainForm.cs
index 40bdeea98d..43627de732 100644
--- a/ICSharpCode.NRefactory.Demo/MainForm.cs
+++ b/ICSharpCode.NRefactory.Demo/MainForm.cs
@@ -125,7 +125,10 @@ namespace ICSharpCode.NRefactory.Demo
void CSharpGenerateCodeButtonClick(object sender, EventArgs e)
{
- throw new NotImplementedException();
+ StringWriter w = new StringWriter();
+ OutputVisitor output = new OutputVisitor(w, new CSharpFormattingPolicy());
+ compilationUnit.AcceptVisitor(output, null);
+ csharpCodeTextBox.Text = w.ToString();
}
int GetOffset(TextBox textBox, AstLocation location)
diff --git a/ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputFormatter.cs b/ICSharpCode.NRefactory/CSharp/OutputVisitor/IOutputFormatter.cs
similarity index 87%
rename from ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputFormatter.cs
rename to ICSharpCode.NRefactory/CSharp/OutputVisitor/IOutputFormatter.cs
index 5c43bb3d32..6e4e458c1e 100644
--- a/ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputFormatter.cs
+++ b/ICSharpCode.NRefactory/CSharp/OutputVisitor/IOutputFormatter.cs
@@ -6,9 +6,9 @@ using System;
namespace ICSharpCode.NRefactory.CSharp
{
///
- /// Output formatter for the output visitor.
+ /// Output formatter for the Output visitor.
///
- public class OutputFormatter
+ public interface IOutputFormatter
{
void WriteIdentifier(string ident);
void WriteKeyword(string keyword);
diff --git a/ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputVisitor.cs b/ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputVisitor.cs
index c638118243..91993857ad 100644
--- a/ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputVisitor.cs
+++ b/ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputVisitor.cs
@@ -5,9 +5,9 @@ using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
+using System.IO;
using System.Linq;
using System.Text;
-
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.NRefactory.CSharp
@@ -17,13 +17,24 @@ namespace ICSharpCode.NRefactory.CSharp
///
public class OutputVisitor : AstVisitor