Roslyn - 如何可靠地为一个类格式化空格

DGr*_*een 5 c# roslyn

我需要格式化一个类,以确保它易于人类阅读.我有语法树,根CompilationUnitSyntax和ClassDeclarationSyntax.我按如下方式格式化空白.

root = root.ReplaceNode(classSyntax, classSyntax.NormalizeWhitespace(elasticTrivia: true));
syntaxTree = syntaxTree.WithRootAndOptions(root, syntaxTree.Options);
Run Code Online (Sandbox Code Playgroud)

之前:

#region MyRegion
public class MyClass
{

    // Info about MyClass

}
#endregion
Run Code Online (Sandbox Code Playgroud)

后:

#region MyRegion
public class MyClass
{
// Info about MyClass    
}#endregion
Run Code Online (Sandbox Code Playgroud)

为什么班级的闭幕式猛烈撞击#endregion?

如果我在'After'文本上再次运行NormalizeWhitespace,则#endregion将向下移动到其自己的行上.然后再调用NormalizeWhitespace再次将其重新启动.到底是怎么回事?

Kev*_*lch 1

这听起来像是一个错误,可能与https://github.com/dotnet/roslyn/issues/1066有关。