14

鉴于我使用 SymbolFactory.CreateProperty 创建了一个符号,我将如何添加空格。目前,在写出文档时,我将可访问性、修饰符、名称、类型等全部串在一起。也许我写错了,或者我需要添加额外的步骤来添加空格?我使用 document.GetText() 将其写出到控制台。

4

2 回答 2

14

不,这就是你所期望的。生成的节点没有空格,目的是在完成后处理它。

有两种选择:

  1. 在节点上调用 .NormalizeWhitespace()。这是一个激进的格式化程序,只有在您生成不打算被人类使用的代码时才真正有用——它使输出“有效”,但会消除任何现有的格式化。
  2. 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 回答