コード例 #1
0
        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));
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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));
        }