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
| Name | Description |
|---|---|
| JsonSyntaxRewriter() |
JsonSyntaxRewriter()
public JsonSyntaxRewriter()No documentation is available.
Methods
| Name | Description |
|---|---|
| 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.cspublic override SyntaxNode? VisitJsonArray(JsonArraySyntax node)No documentation is available.
VisitJsonDocument(JsonDocumentSyntax)
JsonSyntaxRewriter.cspublic override SyntaxNode? VisitJsonDocument(JsonDocumentSyntax node)No documentation is available.
VisitJsonLiteral(JsonLiteralSyntax)
JsonSyntaxRewriter.cspublic override SyntaxNode? VisitJsonLiteral(JsonLiteralSyntax node)No documentation is available.
VisitJsonMember(JsonMemberSyntax)
JsonSyntaxRewriter.cspublic override SyntaxNode? VisitJsonMember(JsonMemberSyntax node)No documentation is available.
VisitJsonNumber(JsonNumberSyntax)
JsonSyntaxRewriter.cspublic override SyntaxNode? VisitJsonNumber(JsonNumberSyntax node)No documentation is available.
VisitJsonObject(JsonObjectSyntax)
JsonSyntaxRewriter.cspublic override SyntaxNode? VisitJsonObject(JsonObjectSyntax node)No documentation is available.
VisitJsonSkippedText(JsonSkippedTextSyntax)
JsonSyntaxRewriter.cspublic override SyntaxNode? VisitJsonSkippedText(JsonSkippedTextSyntax node)No documentation is available.
VisitJsonString(JsonStringSyntax)
JsonSyntaxRewriter.cspublic override SyntaxNode? VisitJsonString(JsonStringSyntax node)No documentation is available.
VisitList overloads
VisitList(SyntaxTokenList)
JsonSyntaxRewriter.cspublic virtual SyntaxTokenList VisitList(SyntaxTokenList list)No documentation is available.
VisitList(SyntaxTriviaList)
JsonSyntaxRewriter.csRewrites each trivium of a list, dropping the ones a rewrite turned into the default trivium.
public virtual SyntaxTriviaList VisitList(SyntaxTriviaList list)VisitList<TNode>(SeparatedSyntaxList<TNode>)
JsonSyntaxRewriter.csRewrites the elements of a separated list, keeping its separators in place.
public virtual SeparatedSyntaxList<TNode> VisitList<TNode>(SeparatedSyntaxList<TNode> list) where TNode : JsonSyntaxNodeVisitList<TNode>(SyntaxList<TNode>)
JsonSyntaxRewriter.cspublic virtual SyntaxList<TNode> VisitList<TNode>(SyntaxList<TNode> list) where TNode : JsonSyntaxNodeNo documentation is available.
VisitToken(SyntaxToken)
JsonSyntaxRewriter.csRewrites a token, putting the trivia around it through JsonSyntaxRewriter.VisitTrivia.
public virtual SyntaxToken VisitToken(SyntaxToken token)Parameters
tokenSyntaxToken
Returns
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.cspublic virtual SyntaxTrivia VisitTrivia(SyntaxTrivia trivia)No documentation is available.