예제 #1
0
        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));
        }
예제 #2
0
    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));
    }
예제 #3
0
        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);
            }
        }