aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Scripting/Tango.Scripting.Test/MainWindow.xaml
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Scripting/Tango.Scripting.Test/MainWindow.xaml')
0 files changed, 0 insertions, 0 deletions
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Formatting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tango.Scripting.Formatting
{
    public static class CodeFormatter
    {
        public static String Format(String code)
        {
            SyntaxTree tree = CSharpSyntaxTree.ParseText(code);
            CompilationUnitSyntax root = tree.GetCompilationUnitRoot();

            //var node = ApplyBraceNewLineRule(root);
            //node = ApplyCopyrightHeaderRule(node);
            //node = ApplyNewLineAboveRule(node);
            //node = ApplyUsingLocationRule(node);

            //Just to make VS copy the dll to output folder.
            Microsoft.CodeAnalysis.CSharp.Formatting.BinaryOperatorSpacingOptions a = Microsoft.CodeAnalysis.CSharp.Formatting.BinaryOperatorSpacingOptions.Ignore;

            var node = Formatter.Format(root, new AdhocWorkspace()); 

            return node.ToString();
        }

        //private static SyntaxNode ApplyUsingLocationRule(SyntaxNode node)
        //{
        //    UsingLocationRule rule = new UsingLocationRule();
        //    return rule.Process(node, "CSharp");
        //}

        //private static SyntaxNode ApplyBraceNewLineRule(SyntaxNode node)
        //{
        //    BraceNewLineRule rule = new BraceNewLineRule();
        //    return rule.Process(node, "CSharp");
        //}

        //private static SyntaxNode ApplyNewLineAboveRule(SyntaxNode node)
        //{
        //    NewLineAboveRule rule = new NewLineAboveRule();
        //    return rule.Process(node, "CSharp");
        //}

        //private static SyntaxNode ApplyCopyrightHeaderRule(SyntaxNode node)
        //{
        //    CopyrightHeaderRule rule = new CopyrightHeaderRule(new Microsoft.DotNet.CodeFormatting.Options()
        //    {

        //    });

        //    return rule.ProcessCSharp(node);
        //}
    }
}