csharp
public class SyntaxRewriterRewrites a syntax tree by visiting every node and rebuilding only the parts that changed. The per-node Visit* overrides are generated from Syntax.xml; this partial supplies list handling, which the generator cannot express generically.
No guide page documents this yet — the page shows what the code says about itself.
Methods (81)
public SyntaxList<TNode> VisitList<TNode>(SyntaxList<TNode> list) where TNode : SyntaxNodeVisits each element of . Returns the original list when nothing changed, so unchanged subtrees keep their identity and callers can use a reference comparison to detect "no edit".
public override SyntaxNode VisitIdentifierName(IdentifierNameSyntax node)public override SyntaxNode VisitQualifiedName(QualifiedNameSyntax node)public override SyntaxNode VisitGenericName(GenericNameSyntax node)public override SyntaxNode VisitTypeArgumentList(TypeArgumentListSyntax node)public override SyntaxNode VisitNameColon(NameColonSyntax node)public override SyntaxNode VisitSelfExpression(SelfExpressionSyntax node)public override SyntaxNode VisitBaseExpression(BaseExpressionSyntax node)public override SyntaxNode VisitArrowExpressionClause(ArrowExpressionClauseSyntax node)public override SyntaxNode VisitParenthesizedExpression(ParenthesizedExpressionSyntax node)public override SyntaxNode VisitTupleExpression(TupleExpressionSyntax node)public override SyntaxNode VisitPrefixUnaryExpression(PrefixUnaryExpressionSyntax node)public override SyntaxNode VisitPostfixUnaryExpression(PostfixUnaryExpressionSyntax node)public override SyntaxNode VisitDefaultExpression(DefaultExpressionSyntax node)public override SyntaxNode VisitCastExpression(CastExpressionSyntax node)public override SyntaxNode VisitPredefinedType(PredefinedTypeSyntax node)public override SyntaxNode VisitArrayType(ArrayTypeSyntax node)public override SyntaxNode VisitArrayRankSpecifier(ArrayRankSpecifierSyntax node)public override SyntaxNode VisitTupleElement(TupleElementSyntax node)public override SyntaxNode VisitTupleType(TupleTypeSyntax node)public override SyntaxNode VisitCompilationUnit(CompilationUnitSyntax node)public override SyntaxNode VisitPackageDirective(PackageDirectiveSyntax node)public override SyntaxNode VisitImportDirective(ImportDirectiveSyntax node)public override SyntaxNode VisitFieldDeclaration(FieldDeclarationSyntax node)public override SyntaxNode VisitTypeParameterList(TypeParameterListSyntax node)public override SyntaxNode VisitAttributeList(AttributeListSyntax node)public override SyntaxNode VisitAttribute(AttributeSyntax node)public override SyntaxNode VisitAttributeArgumentList(AttributeArgumentListSyntax node)public override SyntaxNode VisitAttributeArgument(AttributeArgumentSyntax node)public override SyntaxNode VisitSimpleBaseType(SimpleBaseTypeSyntax node)public override SyntaxNode VisitEqualsValueClause(EqualsValueClauseSyntax node)public override SyntaxNode VisitInvocationExpression(InvocationExpressionSyntax node)public override SyntaxNode VisitElementAccessExpression(ElementAccessExpressionSyntax node)public override SyntaxNode VisitConditionalExpression(ConditionalExpressionSyntax node)public override SyntaxNode VisitMemberAccessExpression(MemberAccessExpressionSyntax node)public override SyntaxNode VisitBinaryExpression(BinaryExpressionSyntax node)public override SyntaxNode VisitAssignmentExpression(AssignmentExpressionSyntax node)public override SyntaxNode VisitLiteralExpression(LiteralExpressionSyntax node)public override SyntaxNode VisitParameter(ParameterSyntax node)public override SyntaxNode VisitParameterList(ParameterListSyntax node)public override SyntaxNode VisitArgumentList(ArgumentListSyntax node)public override SyntaxNode VisitBracketedArgumentList(BracketedArgumentListSyntax node)public override SyntaxNode VisitArgument(ArgumentSyntax node)public override SyntaxNode VisitBlock(BlockSyntax node)public override SyntaxNode VisitBreakStatement(BreakStatementSyntax node)public override SyntaxNode VisitContinueStatement(ContinueStatementSyntax node)public override SyntaxNode VisitDiscardStatement(DiscardStatementSyntax node)public override SyntaxNode VisitRepeatStatement(RepeatStatementSyntax node)public override SyntaxNode VisitEmptyStatement(EmptyStatementSyntax node)public override SyntaxNode VisitExpressionStatement(ExpressionStatementSyntax node)public override SyntaxNode VisitForStatement(ForStatementSyntax node)public override SyntaxNode VisitIfStatement(IfStatementSyntax node)public override SyntaxNode VisitElseClause(ElseClauseSyntax node)public override SyntaxNode VisitReturnStatement(ReturnStatementSyntax node)public override SyntaxNode VisitLocalDeclarationStatement(LocalDeclarationStatementSyntax node)public override SyntaxNode VisitWhileStatement(WhileStatementSyntax node)public override SyntaxNode VisitRangeExpression(RangeExpressionSyntax node)public override SyntaxNode VisitSwitchStatement(SwitchStatementSyntax node)public override SyntaxNode VisitSwitchSection(SwitchSectionSyntax node)public override SyntaxNode VisitCaseSwitchLabel(CaseSwitchLabelSyntax node)public override SyntaxNode VisitDefaultSwitchLabel(DefaultSwitchLabelSyntax node)public override SyntaxNode VisitVariableDeclaration(VariableDeclarationSyntax node)public override SyntaxNode VisitTypeParameter(TypeParameterSyntax node)public override SyntaxNode VisitBaseList(BaseListSyntax node)public override SyntaxNode VisitCollectionExpression(CollectionExpressionSyntax node)public override SyntaxNode VisitExpressionElement(ExpressionElementSyntax node)public override SyntaxNode VisitSpreadElement(SpreadElementSyntax node)public override SyntaxNode VisitTypeConstraint(TypeConstraintSyntax node)public override SyntaxNode VisitDefaultConstraint(DefaultConstraintSyntax node)public override SyntaxNode VisitShaderDeclaration(ShaderDeclarationSyntax node)public override SyntaxNode VisitStructDeclaration(StructDeclarationSyntax node)public override SyntaxNode VisitProtocolDeclaration(ProtocolDeclarationSyntax node)public override SyntaxNode VisitEnumDeclaration(EnumDeclarationSyntax node)public override SyntaxNode VisitEnumMemberDeclaration(EnumMemberDeclarationSyntax node)public override SyntaxNode VisitPropertyDeclaration(PropertyDeclarationSyntax node)public override SyntaxNode VisitAccessorList(AccessorListSyntax node)public override SyntaxNode VisitAccessorDeclaration(AccessorDeclarationSyntax node)public override SyntaxNode VisitConstructorDeclaration(ConstructorDeclarationSyntax node)public override SyntaxNode VisitOperatorDeclaration(OperatorDeclarationSyntax node)public override SyntaxNode VisitMethodDeclaration(MethodDeclarationSyntax node)public override SyntaxNode VisitTypeParameterConstraintClause(TypeParameterConstraintClauseSyntax node)