Beispiel #1
0
        public static bool TryParseGenericName(
            this SyntaxToken genericIdentifier,
            CancellationToken cancellationToken,
            [NotNullWhen(true)] out GenericNameSyntax?genericName
            )
        {
            if (
                genericIdentifier.GetNextToken(includeSkipped: true).Kind()
                == SyntaxKind.LessThanToken
                )
            {
                var lastToken = genericIdentifier.FindLastTokenOfPartialGenericName();

                var syntaxTree = genericIdentifier.SyntaxTree !;
                var name       = SyntaxFactory.ParseName(
                    syntaxTree
                    .GetText(cancellationToken)
                    .ToString(
                        TextSpan.FromBounds(genericIdentifier.SpanStart, lastToken.Span.End)
                        )
                    );

                genericName = name as GenericNameSyntax;
                return(genericName != null);
            }

            genericName = null;
            return(false);
        }
 protected override TextSpan GetTextSpan(SyntaxToken genericIdentifier, SyntaxToken lessThanToken)
 {
     var lastToken = genericIdentifier.FindLastTokenOfPartialGenericName();
     var nextToken = lastToken.GetNextNonZeroWidthTokenOrEndOfFile();
     Contract.ThrowIfTrue(nextToken.Kind() == 0);
     return TextSpan.FromBounds(genericIdentifier.SpanStart, nextToken.SpanStart);
 }
Beispiel #3
0
        protected override TextSpan GetTextSpan(SyntaxToken genericIdentifier, SyntaxToken lessThanToken)
        {
            var lastToken = genericIdentifier.FindLastTokenOfPartialGenericName();
            var nextToken = lastToken.GetNextNonZeroWidthTokenOrEndOfFile();

            Contract.ThrowIfTrue(nextToken.Kind() == 0);
            return(TextSpan.FromBounds(genericIdentifier.SpanStart, nextToken.SpanStart));
        }