Beispiel #1
0
        // NOTE: it would be nice to have constants for OmittedArraySizeException and OmittedTypeArgument,
        // but it's non-trivial to introduce such constants, since they would make this class take a dependency
        // on the static fields of SyntaxToken (specifically, TokensWithNoTrivia via SyntaxToken.Create).  That
        // could cause unpredictable behavior, since SyntaxToken's static constructor already depends on the
        // static fields of this class (specifically, ElasticZeroSpace).

        internal static SyntaxTrivia EndOfLine(string text, bool elastic = false)
        {
            SyntaxTrivia trivia = null;

            // use predefined trivia
            switch (text)
            {
            case "\r":
                trivia = elastic ? SyntaxFactory.ElasticCarriageReturn : SyntaxFactory.CarriageReturn;
                break;

            case "\n":
                trivia = elastic ? SyntaxFactory.ElasticLineFeed : SyntaxFactory.LineFeed;
                break;

            case "\r\n":
                trivia = elastic ? SyntaxFactory.ElasticCarriageReturnLineFeed : SyntaxFactory.CarriageReturnLineFeed;
                break;
            }

            // note: predefined trivia might not yet be defined during initialization
            if (trivia != null)
            {
                return(trivia);
            }

            trivia = SyntaxTrivia.Create(SyntaxKind.EndOfLineTrivia, text);
            if (!elastic)
            {
                return(trivia);
            }

            return(trivia.WithAnnotationsGreen(new[] { SyntaxAnnotation.ElasticAnnotation }));
        }
Beispiel #2
0
        internal static SyntaxTrivia Whitespace(string text, bool elastic = false)
        {
            var trivia = SyntaxTrivia.Create(SyntaxKind.WhitespaceTrivia, text);

            if (!elastic)
            {
                return(trivia);
            }

            return(trivia.WithAnnotationsGreen(new[] { SyntaxAnnotation.ElasticAnnotation }));
        }
Beispiel #3
0
 internal static SyntaxTrivia Comment(string text)
 {
     if (text.StartsWith("/*", StringComparison.Ordinal))
     {
         return(SyntaxTrivia.Create(SyntaxKind.MultiLineCommentTrivia, text));
     }
     else
     {
         return(SyntaxTrivia.Create(SyntaxKind.SingleLineCommentTrivia, text));
     }
 }
Beispiel #4
0
 internal static SyntaxTrivia DocumentationCommentExteriorTrivia(string text)
 {
     return(SyntaxTrivia.Create(SyntaxKind.DocumentationCommentExteriorTrivia, text));
 }
Beispiel #5
0
 internal static SyntaxTrivia PreprocessingMessage(string text)
 {
     return(SyntaxTrivia.Create(SyntaxKind.PreprocessingMessageTrivia, text));
 }
Beispiel #6
0
 internal static SyntaxTrivia DisabledText(string text)
 {
     return(SyntaxTrivia.Create(SyntaxKind.DisabledTextTrivia, text));
 }
Beispiel #7
0
 internal static SyntaxTrivia ConflictMarker(string text)
 => SyntaxTrivia.Create(SyntaxKind.ConflictMarkerTrivia, text);