blob: c933f7e0998e0a53f8fbc7b73ce23b6ccf3552b0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
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);
//}
}
}
|