Beispiel #1
0
        private AttributeArgumentSyntax GetAttributeArgumentNodeToBeReplaced(SyntaxNode root, TextSpan diagnosticSpan)
        {
            SyntaxNode node = root?.FindNode(diagnosticSpan);

            return(node switch
            {
                LiteralExpressionSyntax literal
                when literal.Kind() == SyntaxKind.NumericLiteralExpression &&
                literal.Token.Value is int => literal.Parent <AttributeArgumentSyntax>(),
                IdentifierNameSyntax namedConstant => namedConstant.Parent <AttributeArgumentSyntax>(),
                MemberAccessExpressionSyntax memberAccess => memberAccess.Parent <AttributeArgumentSyntax>(),
                AttributeArgumentSyntax attributeArgument => attributeArgument,
                AttributeSyntax attribute => SearchForAttributeArgumentToBeReplaced(attribute),
                _ => null,
            });