有没有办法用 ExpressionToCode 生成的换行符和缩进来格式化代码
Is there way to format code with line-breaks and indentation produced by ExpressionToCode
有没有办法格式化 ExpressionToCode 生成的代码?特别是添加换行符和缩进如下:
var code = ExpressionToCode.ToCode(() => new A(new B(), new C()));
结果代码为:
() =>
new A(
new B(),
new C())
不是真的。您可以采用 Roslyn SyntaxTree
(使用 ToSyntaxTree
而不是 ToCode
)并使用它以您想要的任何方式格式化输出。
使用 Roslyn 处理代码格式实际上非常容易 - 您只需从 SyntaxRewriter
继承您自己的 class。有关详细信息,请参阅 http://www.christophdebaene.com/blog/2011/10/26/roslyn-formatting-code/。
代码格式化的问题其实比较复杂,需要多加思考
有没有办法格式化 ExpressionToCode 生成的代码?特别是添加换行符和缩进如下:
var code = ExpressionToCode.ToCode(() => new A(new B(), new C()));
结果代码为:
() =>
new A(
new B(),
new C())
不是真的。您可以采用 Roslyn SyntaxTree
(使用 ToSyntaxTree
而不是 ToCode
)并使用它以您想要的任何方式格式化输出。
使用 Roslyn 处理代码格式实际上非常容易 - 您只需从 SyntaxRewriter
继承您自己的 class。有关详细信息,请参阅 http://www.christophdebaene.com/blog/2011/10/26/roslyn-formatting-code/。
代码格式化的问题其实比较复杂,需要多加思考