public static Task <Document> RefactorAsync( Document document, PropertyDeclarationSyntax propertyDeclaration, CancellationToken cancellationToken) { TextSpan span = TextSpan.FromBounds((propertyDeclaration.Initializer).FullSpan.Start, propertyDeclaration.FullSpan.End); PropertyDeclarationSyntax newNode = propertyDeclaration .WithInitializer(null) .WithSemicolonToken(default(SyntaxToken)) .WithTrailingTrivia(propertyDeclaration.DescendantTrivia(span)) .WithFormatterAnnotation(); return(document.ReplaceNodeAsync(propertyDeclaration, newNode, cancellationToken)); }
private static bool CheckTrivia( PropertyDeclarationSyntax property, VariableDeclaratorSyntax declarator, CancellationToken cancellationToken) { if (property .DescendantTrivia(TextSpan.FromBounds(property.Identifier.Span.Start, property.Span.End)) .Any(f => !f.IsWhitespaceOrEndOfLine())) { return(false); } var variableDeclaration = (VariableDeclarationSyntax)declarator.Parent; if (variableDeclaration.Variables.Count == 1) { if (variableDeclaration .Parent .DescendantTrivia(variableDeclaration.Span) .Any(f => !f.IsWhitespaceOrEndOfLine())) { return(false); } } else if (declarator .DescendantTrivia(declarator.Span) .Any(f => !f.IsWhitespaceOrEndOfLine())) { return(false); } if (declarator.Initializer != null) { foreach (SyntaxTrivia trivia in property.GetTrailingTrivia()) { if (trivia.IsKind(SyntaxKind.EndOfLineTrivia)) { return(true); } else if (!trivia.IsKind(SyntaxKind.WhitespaceTrivia)) { return(false); } } } return(true); }