private static NamespaceDeclarationSyntax FormatLeadingWhitespace(NamespaceDeclarationSyntax namespaceNode) { SyntaxTriviaList leadingTrivia = namespaceNode.GetLeadingTrivia(); string trimmedLeadingTrivia = leadingTrivia.ToString().TrimEnd(); SyntaxTrivia desiredNewlines = GetNewlinesForNamespaceLeadingTrivia(namespaceNode); SyntaxTrivia newLeadingTrivia = SyntaxFactory.SyntaxTrivia(SyntaxKind.SingleLineCommentTrivia, trimmedLeadingTrivia); SyntaxTriviaList updatedLeadingTrivia = SyntaxFactory.TriviaList(newLeadingTrivia, desiredNewlines); return(namespaceNode.WithLeadingTrivia(updatedLeadingTrivia)); }
private NamespaceDeclarationSyntax AddComment(NamespaceDeclarationSyntax node) { var existingTrivia = node.GetLeadingTrivia(); var newTrivia = existingTrivia.Prepend(SyntaxFactory.Comment( $"// {_message}" + $"{(existingTrivia.ToString().EndsWith("\n") ? "" : Environment.NewLine)}")); return(node.WithLeadingTrivia(newTrivia)); }
private static SyntaxNode PutUsingsInRightPlace(SyntaxNode rootNode, IList <UsingDirectiveSyntax> usingsThatNeedToBeMoved) { try { ICollection <UsingDirectiveSyntax> clonedNodes = FormatUsings(usingsThatNeedToBeMoved); SyntaxNode intermediateRootNode = rootNode.RemoveNodes(usingsThatNeedToBeMoved, SyntaxRemoveOptions.KeepNoTrivia); var namespaceNode = intermediateRootNode.ChildNodes().First(x => x is NamespaceDeclarationSyntax) as NamespaceDeclarationSyntax; NamespaceDeclarationSyntax newNamespaceNode = namespaceNode.AddUsings(clonedNodes.ToArray()); SyntaxTriviaList firstUsingLeadingTrivia = usingsThatNeedToBeMoved[0].GetLeadingTrivia(); SyntaxTriviaList newNamespaceLeadingTrivia = firstUsingLeadingTrivia.AddRange(newNamespaceNode.GetLeadingTrivia()); newNamespaceNode = newNamespaceNode.WithLeadingTrivia(newNamespaceLeadingTrivia); SyntaxNode newRootNode = intermediateRootNode.ReplaceNode(namespaceNode, newNamespaceNode); return(newRootNode); } catch (Exception) { return(rootNode); } }