Полагаю, вам нужно переписать SyntaxNode
, вызывая Microsoft.CodeAnalysis.SyntaxNodeExtensions.WithoutTrivia(...)
, который удалит все пустяки вместо попытки переписать SyntaxtTrivia
.
Upd. @Emiswelt правильно упомянул, что в комментарии следует переопределить метод Visit
и дополнительно переопределить VisitTrivia
, что позволяет убрать непривязанные пустяки из SyntaxTree
Вы можете использовать его внутри переписанного синтаксиса, и он будет выглядеть так:
public class WhitespaceRemover : CSharpSyntaxRewriter
{
public override SyntaxNode Visit(SyntaxNode node) => base.Visit(node).WithoutTrivia();
public override SyntaxTrivia VisitTrivia(SyntaxTrivia trivia) => default;
}