SyntaxTree tree = CSharpSyntaxTree.ParseText("int x = 1; // initialize x with 1"); SyntaxNode root = tree.GetRoot(); var statement = root.DescendantNodes().OfType().First(); var trailingComments = statement.GetTrailingTrivia().Where(t => t.IsKind(SyntaxKind.SingleLineCommentTrivia)); foreach (var comment in trailingComments) { Console.WriteLine(comment.ToString()); }
SyntaxTree tree = CSharpSyntaxTree.ParseText("int y = 2; \n"); SyntaxNode root = tree.GetRoot(); var statement = root.DescendantNodes().OfTypeIn this example, we use the ParseText method to create a syntax tree from a code snippet that declares a variable 'y' and has trailing whitespace on its line. We use the GetTrailingTrivia method to obtain the trailing trivia of the statement, and check if the last trivia is whitespace. If it is, we remove the last trivia and create a new statement with the updated trailing trivia using the WithTrailingTrivia method. We then replace the old statement with the new statement in the syntax tree and update our variable 'tree' with the new syntax tree. Package/Library: Microsoft.CodeAnalysis.CSharp Overall, the package/library for these examples is Microsoft.CodeAnalysis.CSharp, which is a part of the .NET Compiler Platform (Roslyn). This library provides a suite of APIs for C# and Visual Basic .NET (VB.NET) code analysis, refactoring, and transformation.().First(); var trailingTrivia = statement.GetTrailingTrivia(); if (trailingTrivia.Count > 0) { var whitespaceTrivia = trailingTrivia.Last(); if (whitespaceTrivia.IsKind(SyntaxKind.WhitespaceTrivia)) { // remove trailing whitespace and update the syntax tree var newStatement = statement.WithTrailingTrivia(trailingTrivia.Remove(trailingTrivia.Last())); var newRoot = root.ReplaceNode(statement, newStatement); tree = newRoot.SyntaxTree; } }