什么';这是在内存中格式化SyntaxTree的最佳方法

本文关键字:格式化 SyntaxTree 方法 最佳 内存 什么 | 更新日期: 2023-09-27 18:26:52

现有的Roslyn文档非常单薄,所以我希望有人知道如何做到这一点,或者至少为我指明正确的方向。我尝试了很多方法,包括以下方法来格式化源代码,但都不起作用:

var tree = CSharpSyntaxTree.ParseText(soureCode);
var root = (CSharpSyntaxNode)tree.GetRoot();
return root.ToFullString();

如能在这方面提供任何帮助,我们将不胜感激。。。。

什么';这是在内存中格式化SyntaxTree的最佳方法

如果您只是想获得SyntaxTree的漂亮打印版本,可以调用root.NormalizeWhitespace().ToFullString();

NormalizeWhitespace()是一种扩展方法,因此您必须添加:

using Microsoft.CodeAnalysis;

如果您希望格式化内存中的树,那么您可能正在寻找Formatter类。这个类有一些不同的重载,这取决于您是要格式化整个文档还是只格式化某些跨度。

不幸的是,它需要DocumentWorkspace来格式化空白。如果有一个重载只是将通用格式规则应用于树,那可能会很好。