JsonSyntaxRewriter Class

Builds a new tree by visiting an old one and returning replacements.

public class JsonSyntaxRewriter : JsonSyntaxVisitor<SyntaxNode?>

Remarks

A node whose parts all come back unchanged is returned as it was, so rewriting a tree and changing nothing in it costs nothing and keeps every node.

Example

private sealed class RenameMembers : JsonSyntaxRewriter
{
    public override SyntaxNode? VisitJsonMember(JsonMemberSyntax node)
    {
        // Rewrite the value first, so the members of nested objects are renamed too
        var member = (JsonMemberSyntax)base.VisitJsonMember(node)!;

        return member.WithName(member.Name.ToUpperInvariant());
    }
}
Inheritance
JsonSyntaxVisitor<SyntaxNode?> JsonSyntaxRewriter

Constructors

NameDescription
JsonSyntaxRewriter()

JsonSyntaxRewriter()

public JsonSyntaxRewriter()

No documentation is available.

Methods

NameDescription
VisitJsonArray(JsonArraySyntax)
VisitJsonDocument(JsonDocumentSyntax)
VisitJsonLiteral(JsonLiteralSyntax)
VisitJsonMember(JsonMemberSyntax)
VisitJsonNumber(JsonNumberSyntax)
VisitJsonObject(JsonObjectSyntax)
VisitJsonSkippedText(JsonSkippedTextSyntax)
VisitJsonString(JsonStringSyntax)
VisitList(SyntaxTokenList)
VisitList(SyntaxTriviaList)Rewrites each trivium of a list, dropping the ones a rewrite turned into the default trivium.
VisitList<TNode>(SeparatedSyntaxList<TNode>)Rewrites the elements of a separated list, keeping its separators in place.
VisitList<TNode>(SyntaxList<TNode>)
VisitToken(SyntaxToken)Rewrites a token, putting the trivia around it through JsonSyntaxRewriter.VisitTrivia.
VisitTrivia(SyntaxTrivia)

VisitJsonArray(JsonArraySyntax)

JsonSyntaxRewriter.cs
public override SyntaxNode? VisitJsonArray(JsonArraySyntax node)

Parameters

node JsonArraySyntax

Returns

SyntaxNode?

No documentation is available.

VisitJsonDocument(JsonDocumentSyntax)

JsonSyntaxRewriter.cs
public override SyntaxNode? VisitJsonDocument(JsonDocumentSyntax node)

Parameters

node JsonDocumentSyntax

Returns

SyntaxNode?

No documentation is available.

VisitJsonLiteral(JsonLiteralSyntax)

JsonSyntaxRewriter.cs
public override SyntaxNode? VisitJsonLiteral(JsonLiteralSyntax node)

Parameters

node JsonLiteralSyntax

Returns

SyntaxNode?

No documentation is available.

VisitJsonMember(JsonMemberSyntax)

JsonSyntaxRewriter.cs
public override SyntaxNode? VisitJsonMember(JsonMemberSyntax node)

Parameters

node JsonMemberSyntax

Returns

SyntaxNode?

No documentation is available.

VisitJsonNumber(JsonNumberSyntax)

JsonSyntaxRewriter.cs
public override SyntaxNode? VisitJsonNumber(JsonNumberSyntax node)

Parameters

node JsonNumberSyntax

Returns

SyntaxNode?

No documentation is available.

VisitJsonObject(JsonObjectSyntax)

JsonSyntaxRewriter.cs
public override SyntaxNode? VisitJsonObject(JsonObjectSyntax node)

Parameters

node JsonObjectSyntax

Returns

SyntaxNode?

No documentation is available.

VisitJsonSkippedText(JsonSkippedTextSyntax)

JsonSyntaxRewriter.cs
public override SyntaxNode? VisitJsonSkippedText(JsonSkippedTextSyntax node)

Parameters

node JsonSkippedTextSyntax

Returns

SyntaxNode?

No documentation is available.

VisitJsonString(JsonStringSyntax)

JsonSyntaxRewriter.cs
public override SyntaxNode? VisitJsonString(JsonStringSyntax node)

Parameters

node JsonStringSyntax

Returns

SyntaxNode?

No documentation is available.

VisitList overloads

VisitList(SyntaxTokenList)

JsonSyntaxRewriter.cs
public virtual SyntaxTokenList VisitList(SyntaxTokenList list)
Parameters
list SyntaxTokenList
Returns

SyntaxTokenList

No documentation is available.

VisitList(SyntaxTriviaList)

JsonSyntaxRewriter.cs

Rewrites each trivium of a list, dropping the ones a rewrite turned into the default trivium.

public virtual SyntaxTriviaList VisitList(SyntaxTriviaList list)
Parameters
list SyntaxTriviaList
Returns

SyntaxTriviaList

VisitList<TNode>(SeparatedSyntaxList<TNode>)

JsonSyntaxRewriter.cs

Rewrites the elements of a separated list, keeping its separators in place.

public virtual SeparatedSyntaxList<TNode> VisitList<TNode>(SeparatedSyntaxList<TNode> list) where TNode : JsonSyntaxNode
Type parameters
TNode
Parameters
list SeparatedSyntaxList<TNode>
Returns

SeparatedSyntaxList<TNode>

VisitList<TNode>(SyntaxList<TNode>)

JsonSyntaxRewriter.cs
public virtual SyntaxList<TNode> VisitList<TNode>(SyntaxList<TNode> list) where TNode : JsonSyntaxNode
Type parameters
TNode
Parameters
list SyntaxList<TNode>
Returns

SyntaxList<TNode>

No documentation is available.

VisitToken(SyntaxToken)

JsonSyntaxRewriter.cs

Rewrites a token, putting the trivia around it through JsonSyntaxRewriter.VisitTrivia.

public virtual SyntaxToken VisitToken(SyntaxToken token)

Parameters

token SyntaxToken

Returns

SyntaxToken

Remarks

Nothing else reaches a token's trivia, so an override of JsonSyntaxRewriter.VisitTrivia would never be called if this returned the token untouched. A rewrite that returns the default trivium removes it.

VisitTrivia(SyntaxTrivia)

JsonSyntaxRewriter.cs
public virtual SyntaxTrivia VisitTrivia(SyntaxTrivia trivia)

Parameters

trivia SyntaxTrivia

Returns

SyntaxTrivia

No documentation is available.