public static Task <Document> RefactorAsync( Document document, FieldDeclarationSyntax fieldDeclaration, CancellationToken cancellationToken) { FieldDeclarationSyntax newNode = fieldDeclaration.InsertModifier(SyntaxKind.ReadOnlyKeyword, ModifierComparer.Instance); return(document.ReplaceNodeAsync(fieldDeclaration, newNode, cancellationToken)); }
public static FieldDeclarationSyntax AddStaticModifier(FieldDeclarationSyntax fieldDeclaration) { if (fieldDeclaration == null) { throw new ArgumentNullException(nameof(fieldDeclaration)); } SyntaxTokenList modifiers = fieldDeclaration.Modifiers; if (!modifiers.Contains(SyntaxKind.StaticKeyword)) { return(fieldDeclaration.InsertModifier(SyntaxKind.StaticKeyword, ModifierComparer.Instance)); } else { return(fieldDeclaration); } }
public static async Task <Document> RefactorAsync( Document document, FieldDeclarationSyntax field, CancellationToken cancellationToken = default(CancellationToken)) { FieldDeclarationSyntax newField = field .RemoveModifier(SyntaxKind.ConstKeyword) .InsertModifier(SyntaxKind.ReadOnlyKeyword); var containingDeclaration = (MemberDeclarationSyntax)field.Parent; SemanticModel semanticModel = await document.GetSemanticModelAsync(cancellationToken).ConfigureAwait(false); if (semanticModel.GetDeclaredSymbol(containingDeclaration, cancellationToken)?.IsStatic == true) { newField = newField.InsertModifier(SyntaxKind.StaticKeyword); } newField = newField.WithFormatterAnnotation(); return(await document.ReplaceNodeAsync(field, newField, cancellationToken).ConfigureAwait(false)); }