Ejemplo n.º 1
0
        private TextSpan GetTextSpan(ExpressionSyntax expression, SyntaxToken openBracket)
        {
            if (openBracket.Parent is BracketedArgumentListSyntax)
            {
                return(CompleteElementAccessExpression.GetTextSpan(expression, openBracket));
            }
            else if (openBracket.Parent is ArrayRankSpecifierSyntax)
            {
                return(IncompleteElementAccessExpression.GetTextSpan(expression, openBracket));
            }

            throw ExceptionUtilities.Unreachable;
        }
Ejemplo n.º 2
0
        private TextSpan GetTextSpan(ExpressionSyntax expression, SyntaxToken openBracket)
        {
            if (openBracket.Parent is BracketedArgumentListSyntax)
            {
                if (expression.Parent is ConditionalAccessExpressionSyntax conditional)
                {
                    return(TextSpan.FromBounds(conditional.Span.Start, openBracket.FullSpan.End));
                }
                else
                {
                    return(CompleteElementAccessExpression.GetTextSpan(expression, openBracket));
                }
            }
            else if (openBracket.Parent is ArrayRankSpecifierSyntax)
            {
                return(IncompleteElementAccessExpression.GetTextSpan(expression, openBracket));
            }

            throw ExceptionUtilities.Unreachable;
        }
 private static bool TryGetElementAccessExpression(
     SyntaxNode root,
     int position,
     ISyntaxFactsService syntaxFacts,
     SignatureHelpTriggerReason triggerReason,
     CancellationToken cancellationToken,
     [NotNullWhen(true)] out ExpressionSyntax?identifier,
     out SyntaxToken openBrace
     )
 {
     return(CompleteElementAccessExpression.TryGetSyntax(
                root,
                position,
                syntaxFacts,
                triggerReason,
                cancellationToken,
                out identifier,
                out openBrace
                ) ||
            IncompleteElementAccessExpression.TryGetSyntax(
                root,
                position,
                syntaxFacts,
                triggerReason,
                cancellationToken,
                out identifier,
                out openBrace
                ) ||
            ConditionalAccessExpression.TryGetSyntax(
                root,
                position,
                syntaxFacts,
                triggerReason,
                cancellationToken,
                out identifier,
                out openBrace
                ));
 }