// 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 })); }
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 })); }
internal static SyntaxTrivia Comment(string text) { if (text.StartsWith("/*", StringComparison.Ordinal)) { return(SyntaxTrivia.Create(SyntaxKind.MultiLineCommentTrivia, text)); } else { return(SyntaxTrivia.Create(SyntaxKind.SingleLineCommentTrivia, text)); } }
internal static SyntaxTrivia DocumentationCommentExteriorTrivia(string text) { return(SyntaxTrivia.Create(SyntaxKind.DocumentationCommentExteriorTrivia, text)); }
internal static SyntaxTrivia PreprocessingMessage(string text) { return(SyntaxTrivia.Create(SyntaxKind.PreprocessingMessageTrivia, text)); }
internal static SyntaxTrivia DisabledText(string text) { return(SyntaxTrivia.Create(SyntaxKind.DisabledTextTrivia, text)); }
internal static SyntaxTrivia ConflictMarker(string text) => SyntaxTrivia.Create(SyntaxKind.ConflictMarkerTrivia, text);