public static SyntaxNode RemoveInitializer(SyntaxNode root, ConstructorDeclarationSyntax constructor) { var annotation = new SyntaxAnnotation(); var ctor = constructor; var newRoot = root; newRoot = newRoot.ReplaceNode(ctor, ctor.WithAdditionalAnnotations(annotation)); ctor = GetConstructor(newRoot, annotation); var initializer = ctor.Initializer; if (RedundantInheritanceListCodeFixProvider.HasLineEnding(constructor.ParameterList)) { newRoot = newRoot.RemoveNode(initializer, SyntaxRemoveOptions.KeepNoTrivia); ctor = GetConstructor(newRoot, annotation); if (ctor.Body != null && ctor.Body.HasLeadingTrivia) { var lastTrivia = ctor.Body.GetLeadingTrivia().Last(); var newBody = lastTrivia.IsKind(SyntaxKind.EndOfLineTrivia) ? ctor.Body.WithoutLeadingTrivia() : ctor.Body.WithLeadingTrivia(lastTrivia); newRoot = newRoot.ReplaceNode(ctor.Body, newBody); } } else { var trailingTrivia = SyntaxFactory.TriviaList(); if (initializer.HasTrailingTrivia) { trailingTrivia = initializer.GetTrailingTrivia(); } newRoot = newRoot.RemoveNode(initializer, SyntaxRemoveOptions.KeepNoTrivia); ctor = GetConstructor(newRoot, annotation); if (ctor.Body != null && ctor.Body.HasLeadingTrivia) { var lastTrivia = ctor.Body.GetLeadingTrivia().Last(); newRoot = newRoot.ReplaceNode( ctor.Body, ctor.Body.WithLeadingTrivia(trailingTrivia.Add(lastTrivia))); } else { if (initializer.HasTrailingTrivia) { newRoot = newRoot.ReplaceNode(ctor, ctor.WithTrailingTrivia(trailingTrivia)); } } } ctor = GetConstructor(newRoot, annotation); return(newRoot.ReplaceNode(ctor, ctor.WithoutAnnotations(annotation))); }
private static SyntaxNode RemoveInitializer(SyntaxNode root, ConstructorDeclarationSyntax constructor) { var annotation = new SyntaxAnnotation(); var ctor = constructor; var newRoot = root; newRoot = newRoot.ReplaceNode(ctor, ctor.WithAdditionalAnnotations(annotation)); ctor = GetConstructor(newRoot, annotation); var initializer = ctor.Initializer; if (RedundantInheritanceListCodeFixProvider.HasLineEnding(constructor.ParameterList)) { newRoot = newRoot.RemoveNode(initializer, SyntaxRemoveOptions.KeepNoTrivia); ctor = GetConstructor(newRoot, annotation); if (ctor.Body is { HasLeadingTrivia : true })