internal static TNode RemoveSingleLineDocumentationComment <TNode>(TNode node, DocumentationCommentTriviaSyntax documentationComment) where TNode : SyntaxNode { if (node == null) { throw new ArgumentNullException(nameof(node)); } if (!documentationComment.IsKind(SyntaxKind.SingleLineDocumentationCommentTrivia)) { throw new ArgumentException($"Documentation comment's kind must be '{nameof(SyntaxKind.SingleLineDocumentationCommentTrivia)}'.", nameof(documentationComment)); } SyntaxTrivia trivia = documentationComment.ParentTrivia; SyntaxToken token = trivia.Token; SyntaxTriviaList leadingTrivia = token.LeadingTrivia; int index = leadingTrivia.IndexOf(trivia); if (index >= 0 && index < leadingTrivia.Count - 1 && leadingTrivia[index + 1].IsWhitespaceTrivia()) { SyntaxTriviaList newLeadingTrivia = leadingTrivia.RemoveRange(index, 2); SyntaxToken newToken = token.WithLeadingTrivia(newLeadingTrivia); return(node.ReplaceToken(token, newToken)); } return(node.RemoveNode(documentationComment, SyntaxRemoveOptions.KeepNoTrivia)); }