鉴于我使用 SymbolFactory.CreateProperty 创建了一个符号,我将如何添加空格。目前,在写出文档时,我将可访问性、修饰符、名称、类型等全部串在一起。也许我写错了,或者我需要添加额外的步骤来添加空格?我使用 document.GetText() 将其写出到控制台。
问问题
2651 次
2 回答
14
不,这就是你所期望的。生成的节点没有空格,目的是在完成后处理它。
有两种选择:
- 在节点上调用 .NormalizeWhitespace()。这是一个激进的格式化程序,只有在您生成不打算被人类使用的代码时才真正有用——它使输出“有效”,但会消除任何现有的格式化。
Microsoft.CodeAnalysis.Formatting
从(Microsoft.CodeAnalysis.Workspaces.Common
包的一部分)调用 Formatter.Format( )。这是一个花哨的格式化程序,它将尝试保留现有的空白等,并且只会更新需要修复的节点。如果您正在更新用户代码并且不想踩踏它,这是最好的选择。
于 2013-10-31T16:57:15.513 回答
2
我有同样的问题,我发现这个效果最好:
node.WithTrailingTrivia(SyntaxFactory.Space)
其中节点是SyntaxToken
任何类型的。
于 2016-08-09T11:53:18.753 回答