diff --git a/src/Compilers/CSharp/Portable/PublicAPI.txt b/src/Compilers/CSharp/Portable/PublicAPI.txt index 71196ddfba6f8ef75eb791ffb00661a1d517356f..3ff1d47198249a7db1037bce6af4d4a40f4930cc 100644 --- a/src/Compilers/CSharp/Portable/PublicAPI.txt +++ b/src/Compilers/CSharp/Portable/PublicAPI.txt @@ -1,5 +1,10 @@ Microsoft.CodeAnalysis.CSharp.AwaitExpressionInfo Microsoft.CodeAnalysis.CSharp.AwaitExpressionInfo.Equals(Microsoft.CodeAnalysis.CSharp.AwaitExpressionInfo other) -> bool +Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments +Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments.CompilationOptions.get -> Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions +Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments.ParseOptions.get -> Microsoft.CodeAnalysis.CSharp.CSharpParseOptions +Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser +Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser.Parse(System.Collections.Generic.IEnumerable args, string baseDirectory, string sdkDirectory, string additionalReferenceDirectories = null) -> Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments Microsoft.CodeAnalysis.CSharp.CSharpCompilation Microsoft.CodeAnalysis.CSharp.CSharpCompilation.AddReferences(System.Collections.Generic.IEnumerable references) -> Microsoft.CodeAnalysis.CSharp.CSharpCompilation Microsoft.CodeAnalysis.CSharp.CSharpCompilation.AddReferences(params Microsoft.CodeAnalysis.MetadataReference[] references) -> Microsoft.CodeAnalysis.CSharp.CSharpCompilation @@ -58,6 +63,7 @@ Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions.WithWarningLevel(int warn Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions.WithXmlReferenceResolver(Microsoft.CodeAnalysis.XmlReferenceResolver resolver) -> Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions Microsoft.CodeAnalysis.CSharp.CSharpDiagnosticFormatter Microsoft.CodeAnalysis.CSharp.CSharpExtensions +Microsoft.CodeAnalysis.CSharp.CSharpFileSystemExtensions Microsoft.CodeAnalysis.CSharp.CSharpParseOptions Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.CSharpParseOptions(Microsoft.CodeAnalysis.CSharp.LanguageVersion languageVersion = Microsoft.CodeAnalysis.CSharp.LanguageVersion.CSharp6, Microsoft.CodeAnalysis.DocumentationMode documentationMode = Microsoft.CodeAnalysis.DocumentationMode.Parse, Microsoft.CodeAnalysis.SourceCodeKind kind = Microsoft.CodeAnalysis.SourceCodeKind.Regular, System.Collections.Generic.IEnumerable preprocessorSymbols = null) -> void Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.Equals(Microsoft.CodeAnalysis.CSharp.CSharpParseOptions other) -> bool @@ -2429,6 +2435,10 @@ abstract Microsoft.CodeAnalysis.CSharp.Syntax.XmlAttributeSyntax.Name.get -> Mic abstract Microsoft.CodeAnalysis.CSharp.Syntax.XmlAttributeSyntax.StartQuoteToken.get -> Microsoft.CodeAnalysis.SyntaxToken override Microsoft.CodeAnalysis.CSharp.AwaitExpressionInfo.Equals(object obj) -> bool override Microsoft.CodeAnalysis.CSharp.AwaitExpressionInfo.GetHashCode() -> int +override Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments.CompilationOptionsCore.get -> Microsoft.CodeAnalysis.CompilationOptions +override Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments.ParseOptionsCore.get -> Microsoft.CodeAnalysis.ParseOptions +override Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser.RegularFileExtension.get -> string +override Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser.ScriptFileExtension.get -> string override Microsoft.CodeAnalysis.CSharp.CSharpCompilation.AppendDefaultVersionResource(System.IO.Stream resourceStream) -> void override Microsoft.CodeAnalysis.CSharp.CSharpCompilation.CommonAddSyntaxTrees(System.Collections.Generic.IEnumerable trees) -> Microsoft.CodeAnalysis.Compilation override Microsoft.CodeAnalysis.CSharp.CSharpCompilation.CommonAssembly.get -> Microsoft.CodeAnalysis.IAssemblySymbol @@ -3281,6 +3291,7 @@ readonly Microsoft.CodeAnalysis.CSharp.ForEachStatementInfo.ElementConversion -> readonly Microsoft.CodeAnalysis.CSharp.ForEachStatementInfo.ElementType -> Microsoft.CodeAnalysis.ITypeSymbol readonly Microsoft.CodeAnalysis.CSharp.ForEachStatementInfo.GetEnumeratorMethod -> Microsoft.CodeAnalysis.IMethodSymbol readonly Microsoft.CodeAnalysis.CSharp.ForEachStatementInfo.MoveNextMethod -> Microsoft.CodeAnalysis.IMethodSymbol +static Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser.ParseConditionalCompilationSymbols(string value, out System.Collections.Generic.IEnumerable diagnostics) -> System.Collections.Generic.IEnumerable static Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create(string assemblyName, System.Collections.Generic.IEnumerable syntaxTrees = null, System.Collections.Generic.IEnumerable references = null, Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions options = null) -> Microsoft.CodeAnalysis.CSharp.CSharpCompilation static Microsoft.CodeAnalysis.CSharp.CSharpCompilation.CreateSubmission(string assemblyName, Microsoft.CodeAnalysis.SyntaxTree syntaxTree = null, System.Collections.Generic.IEnumerable references = null, Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions options = null, Microsoft.CodeAnalysis.Compilation previousSubmission = null, System.Type returnType = null, System.Type hostObjectType = null) -> Microsoft.CodeAnalysis.CSharp.CSharpCompilation static Microsoft.CodeAnalysis.CSharp.CSharpExtensions.AnalyzeControlFlow(this Microsoft.CodeAnalysis.SemanticModel semanticModel, Microsoft.CodeAnalysis.CSharp.Syntax.StatementSyntax firstStatement, Microsoft.CodeAnalysis.CSharp.Syntax.StatementSyntax lastStatement) -> Microsoft.CodeAnalysis.ControlFlowAnalysis @@ -3369,6 +3380,7 @@ static Microsoft.CodeAnalysis.CSharp.CSharpExtensions.TryGetSpeculativeSemanticM static Microsoft.CodeAnalysis.CSharp.CSharpExtensions.TryGetSpeculativeSemanticModelForMethodBody(this Microsoft.CodeAnalysis.SemanticModel semanticModel, int position, Microsoft.CodeAnalysis.CSharp.Syntax.AccessorDeclarationSyntax accessor, out Microsoft.CodeAnalysis.SemanticModel speculativeModel) -> bool static Microsoft.CodeAnalysis.CSharp.CSharpExtensions.TryGetSpeculativeSemanticModelForMethodBody(this Microsoft.CodeAnalysis.SemanticModel semanticModel, int position, Microsoft.CodeAnalysis.CSharp.Syntax.BaseMethodDeclarationSyntax method, out Microsoft.CodeAnalysis.SemanticModel speculativeModel) -> bool static Microsoft.CodeAnalysis.CSharp.CSharpExtensions.VarianceKindFromToken(this Microsoft.CodeAnalysis.SyntaxToken node) -> Microsoft.CodeAnalysis.VarianceKind +static Microsoft.CodeAnalysis.CSharp.CSharpFileSystemExtensions.Emit(this Microsoft.CodeAnalysis.CSharp.CSharpCompilation compilation, string outputPath, string pdbPath = null, string xmlDocumentationPath = null, string win32ResourcesPath = null, System.Collections.Generic.IEnumerable manifestResources = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> Microsoft.CodeAnalysis.Emit.EmitResult static Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode.DeserializeFrom(System.IO.Stream stream, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> Microsoft.CodeAnalysis.SyntaxNode static Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.Create(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode root, Microsoft.CodeAnalysis.CSharp.CSharpParseOptions options = null, string path = "", System.Text.Encoding encoding = null) -> Microsoft.CodeAnalysis.SyntaxTree static Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.ParseText(Microsoft.CodeAnalysis.Text.SourceText text, Microsoft.CodeAnalysis.CSharp.CSharpParseOptions options = null, string path = "", System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> Microsoft.CodeAnalysis.SyntaxTree @@ -3537,6 +3549,8 @@ static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.DoStatement(Microsoft.CodeAna static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.DocumentationCommentExterior(string text) -> Microsoft.CodeAnalysis.SyntaxTrivia static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.DocumentationCommentTrivia(Microsoft.CodeAnalysis.CSharp.SyntaxKind kind, Microsoft.CodeAnalysis.SyntaxList content = default(Microsoft.CodeAnalysis.SyntaxList)) -> Microsoft.CodeAnalysis.CSharp.Syntax.DocumentationCommentTriviaSyntax static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.DocumentationCommentTrivia(Microsoft.CodeAnalysis.CSharp.SyntaxKind kind, Microsoft.CodeAnalysis.SyntaxList content, Microsoft.CodeAnalysis.SyntaxToken endOfComment) -> Microsoft.CodeAnalysis.CSharp.Syntax.DocumentationCommentTriviaSyntax +static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ElasticEndOfLine(string text) -> Microsoft.CodeAnalysis.SyntaxTrivia +static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ElasticWhitespace(string text) -> Microsoft.CodeAnalysis.SyntaxTrivia static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ElementAccessExpression(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax expression) -> Microsoft.CodeAnalysis.CSharp.Syntax.ElementAccessExpressionSyntax static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ElementAccessExpression(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax expression, Microsoft.CodeAnalysis.CSharp.Syntax.BracketedArgumentListSyntax argumentList) -> Microsoft.CodeAnalysis.CSharp.Syntax.ElementAccessExpressionSyntax static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ElementBindingExpression() -> Microsoft.CodeAnalysis.CSharp.Syntax.ElementBindingExpressionSyntax @@ -3551,7 +3565,8 @@ static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.EmptyStatement() -> Microsoft static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.EmptyStatement(Microsoft.CodeAnalysis.SyntaxToken semicolonToken) -> Microsoft.CodeAnalysis.CSharp.Syntax.EmptyStatementSyntax static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.EndIfDirectiveTrivia(Microsoft.CodeAnalysis.SyntaxToken hashToken, Microsoft.CodeAnalysis.SyntaxToken endIfKeyword, Microsoft.CodeAnalysis.SyntaxToken endOfDirectiveToken, bool isActive) -> Microsoft.CodeAnalysis.CSharp.Syntax.EndIfDirectiveTriviaSyntax static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.EndIfDirectiveTrivia(bool isActive) -> Microsoft.CodeAnalysis.CSharp.Syntax.EndIfDirectiveTriviaSyntax -static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.EndOfLine(string text, bool elastic = true) -> Microsoft.CodeAnalysis.SyntaxTrivia +static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.EndOfLine(string text) -> Microsoft.CodeAnalysis.SyntaxTrivia +static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.EndOfLine(string text, bool elastic) -> Microsoft.CodeAnalysis.SyntaxTrivia static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.EndRegionDirectiveTrivia(Microsoft.CodeAnalysis.SyntaxToken hashToken, Microsoft.CodeAnalysis.SyntaxToken endRegionKeyword, Microsoft.CodeAnalysis.SyntaxToken endOfDirectiveToken, bool isActive) -> Microsoft.CodeAnalysis.CSharp.Syntax.EndRegionDirectiveTriviaSyntax static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.EndRegionDirectiveTrivia(bool isActive) -> Microsoft.CodeAnalysis.CSharp.Syntax.EndRegionDirectiveTriviaSyntax static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.EnumDeclaration(Microsoft.CodeAnalysis.SyntaxList attributeLists, Microsoft.CodeAnalysis.SyntaxTokenList modifiers, Microsoft.CodeAnalysis.SyntaxToken enumKeyword, Microsoft.CodeAnalysis.SyntaxToken identifier, Microsoft.CodeAnalysis.CSharp.Syntax.BaseListSyntax baseList, Microsoft.CodeAnalysis.SyntaxToken openBraceToken, Microsoft.CodeAnalysis.SeparatedSyntaxList members, Microsoft.CodeAnalysis.SyntaxToken closeBraceToken, Microsoft.CodeAnalysis.SyntaxToken semicolonToken) -> Microsoft.CodeAnalysis.CSharp.Syntax.EnumDeclarationSyntax @@ -3902,7 +3917,8 @@ static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.WhereClause(Microsoft.CodeAna static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.WhereClause(Microsoft.CodeAnalysis.SyntaxToken whereKeyword, Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax condition) -> Microsoft.CodeAnalysis.CSharp.Syntax.WhereClauseSyntax static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.WhileStatement(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax condition, Microsoft.CodeAnalysis.CSharp.Syntax.StatementSyntax statement) -> Microsoft.CodeAnalysis.CSharp.Syntax.WhileStatementSyntax static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.WhileStatement(Microsoft.CodeAnalysis.SyntaxToken whileKeyword, Microsoft.CodeAnalysis.SyntaxToken openParenToken, Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax condition, Microsoft.CodeAnalysis.SyntaxToken closeParenToken, Microsoft.CodeAnalysis.CSharp.Syntax.StatementSyntax statement) -> Microsoft.CodeAnalysis.CSharp.Syntax.WhileStatementSyntax -static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.Whitespace(string text, bool elastic = true) -> Microsoft.CodeAnalysis.SyntaxTrivia +static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.Whitespace(string text) -> Microsoft.CodeAnalysis.SyntaxTrivia +static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.Whitespace(string text, bool elastic) -> Microsoft.CodeAnalysis.SyntaxTrivia static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.XmlCDataSection(Microsoft.CodeAnalysis.SyntaxToken startCDataToken, Microsoft.CodeAnalysis.SyntaxTokenList textTokens, Microsoft.CodeAnalysis.SyntaxToken endCDataToken) -> Microsoft.CodeAnalysis.CSharp.Syntax.XmlCDataSectionSyntax static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.XmlCDataSection(Microsoft.CodeAnalysis.SyntaxTokenList textTokens = default(Microsoft.CodeAnalysis.SyntaxTokenList)) -> Microsoft.CodeAnalysis.CSharp.Syntax.XmlCDataSectionSyntax static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.XmlComment(Microsoft.CodeAnalysis.SyntaxToken lessThanExclamationMinusMinusToken, Microsoft.CodeAnalysis.SyntaxTokenList textTokens, Microsoft.CodeAnalysis.SyntaxToken minusMinusGreaterThanToken) -> Microsoft.CodeAnalysis.CSharp.Syntax.XmlCommentSyntax @@ -4032,6 +4048,8 @@ static Microsoft.CodeAnalysis.CSharpExtensions.IsKind(this Microsoft.CodeAnalysi static Microsoft.CodeAnalysis.CSharpExtensions.IsKind(this Microsoft.CodeAnalysis.SyntaxNodeOrToken nodeOrToken, Microsoft.CodeAnalysis.CSharp.SyntaxKind kind) -> bool static Microsoft.CodeAnalysis.CSharpExtensions.IsKind(this Microsoft.CodeAnalysis.SyntaxToken token, Microsoft.CodeAnalysis.CSharp.SyntaxKind kind) -> bool static Microsoft.CodeAnalysis.CSharpExtensions.IsKind(this Microsoft.CodeAnalysis.SyntaxTrivia trivia, Microsoft.CodeAnalysis.CSharp.SyntaxKind kind) -> bool +static readonly Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser.Default -> Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser +static readonly Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser.Interactive -> Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser static readonly Microsoft.CodeAnalysis.CSharp.CSharpDiagnosticFormatter.Instance -> Microsoft.CodeAnalysis.CSharp.CSharpDiagnosticFormatter static readonly Microsoft.CodeAnalysis.CSharp.CSharpParseOptions.Default -> Microsoft.CodeAnalysis.CSharp.CSharpParseOptions static readonly Microsoft.CodeAnalysis.CSharp.SyntaxFactory.CarriageReturn -> Microsoft.CodeAnalysis.SyntaxTrivia @@ -4434,18 +4452,4 @@ virtual Microsoft.CodeAnalysis.CSharp.CSharpSyntaxVisitor.VisitYieldSta virtual Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker.VisitLeadingTrivia(Microsoft.CodeAnalysis.SyntaxToken token) -> void virtual Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker.VisitToken(Microsoft.CodeAnalysis.SyntaxToken token) -> void virtual Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker.VisitTrailingTrivia(Microsoft.CodeAnalysis.SyntaxToken token) -> void -virtual Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker.VisitTrivia(Microsoft.CodeAnalysis.SyntaxTrivia trivia) -> void -Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments -Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments.CompilationOptions.get -> Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions -Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments.ParseOptions.get -> Microsoft.CodeAnalysis.CSharp.CSharpParseOptions -Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser -Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser.Parse(System.Collections.Generic.IEnumerable args, string baseDirectory, string sdkDirectory, string additionalReferenceDirectories = null) -> Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments -Microsoft.CodeAnalysis.CSharp.CSharpFileSystemExtensions -override Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments.CompilationOptionsCore.get -> Microsoft.CodeAnalysis.CompilationOptions -override Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments.ParseOptionsCore.get -> Microsoft.CodeAnalysis.ParseOptions -override Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser.RegularFileExtension.get -> string -override Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser.ScriptFileExtension.get -> string -static Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser.ParseConditionalCompilationSymbols(string value, out System.Collections.Generic.IEnumerable diagnostics) -> System.Collections.Generic.IEnumerable -static Microsoft.CodeAnalysis.CSharp.CSharpFileSystemExtensions.Emit(this Microsoft.CodeAnalysis.CSharp.CSharpCompilation compilation, string outputPath, string pdbPath = null, string xmlDocumentationPath = null, string win32ResourcesPath = null, System.Collections.Generic.IEnumerable manifestResources = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> Microsoft.CodeAnalysis.Emit.EmitResult -static readonly Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser.Default -> Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser -static readonly Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser.Interactive -> Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser \ No newline at end of file +virtual Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker.VisitTrivia(Microsoft.CodeAnalysis.SyntaxTrivia trivia) -> void \ No newline at end of file diff --git a/src/Compilers/CSharp/Portable/Syntax/SyntaxFactory.cs b/src/Compilers/CSharp/Portable/Syntax/SyntaxFactory.cs index 6a789effd7169763430ee3f9fe0cf8fefdc4859d..6d686cc70a59c6cfbcb518ea27992093de9589a2 100644 --- a/src/Compilers/CSharp/Portable/Syntax/SyntaxFactory.cs +++ b/src/Compilers/CSharp/Portable/Syntax/SyntaxFactory.cs @@ -19,8 +19,7 @@ namespace Microsoft.CodeAnalysis.CSharp public static partial class SyntaxFactory { /// - /// A trivia with kind EndOfLineTrivia containing both the carriage return and line feed - /// characters. + /// A trivia with kind EndOfLineTrivia containing both the carriage return and line feed characters. /// public static readonly SyntaxTrivia CarriageReturnLineFeed = Syntax.InternalSyntax.SyntaxFactory.CarriageReturnLineFeed; @@ -87,12 +86,27 @@ public static partial class SyntaxFactory /// /// Creates a trivia with kind EndOfLineTrivia containing the specified text. /// - /// The text of the trivia. Any text can be specified here, however only carriage return and + /// The text of the end of line. Any text can be specified here, however only carriage return and /// line feed characters are recognized by the parser as end of line. - /// If true, the trivia produced is an elastic trivia. Elastic trivia are used to denote - /// trivia that was not produced by parsing source text, and are usually not preserved during - /// formatting. - public static SyntaxTrivia EndOfLine(string text, bool elastic = true) + public static SyntaxTrivia EndOfLine(string text) + { + return Syntax.InternalSyntax.SyntaxFactory.EndOfLine(text, elastic: false); + } + + /// + /// Creates a trivia with kind EndOfLineTrivia containing the specified text. Elastic trivia are used to + /// denote trivia that was not produced by parsing source text, and are usually not preserved during formatting. + /// + /// The text of the end of line. Any text can be specified here, however only carriage return and + /// line feed characters are recognized by the parser as end of line. + public static SyntaxTrivia ElasticEndOfLine(string text) + { + return Syntax.InternalSyntax.SyntaxFactory.EndOfLine(text, elastic: true); + } + + [Obsolete("Use SyntaxFactory.EndOfLine or SyntaxFactory.ElasticEndOfLine")] + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static SyntaxTrivia EndOfLine(string text, bool elastic) { return Syntax.InternalSyntax.SyntaxFactory.EndOfLine(text, elastic); } @@ -102,10 +116,25 @@ public static SyntaxTrivia EndOfLine(string text, bool elastic = true) /// /// The text of the whitespace. Any text can be specified here, however only specific /// whitespace characters are recognized by the parser. - /// If true, the trivia produced is an elastic trivia. Elastic trivia are used to denote - /// trivia that was not produced by parsing source text, and are usually not preserved during - /// formatting. - public static SyntaxTrivia Whitespace(string text, bool elastic = true) + public static SyntaxTrivia Whitespace(string text) + { + return Syntax.InternalSyntax.SyntaxFactory.Whitespace(text, elastic: false); + } + + /// + /// Creates a trivia with kind WhitespaceTrivia containing the specified text. Elastic trivia are used to + /// denote trivia that was not produced by parsing source text, and are usually not preserved during formatting. + /// + /// The text of the whitespace. Any text can be specified here, however only specific + /// whitespace characters are recognized by the parser. + public static SyntaxTrivia ElasticWhitespace(string text) + { + return Syntax.InternalSyntax.SyntaxFactory.Whitespace(text, elastic: false); + } + + [Obsolete("Use SyntaxFactory.Whitespace or SyntaxFactory.ElasticWhitespace")] + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] + public static SyntaxTrivia Whitespace(string text, bool elastic) { return Syntax.InternalSyntax.SyntaxFactory.Whitespace(text, elastic); } diff --git a/src/Compilers/CSharp/Portable/Syntax/SyntaxNormalizer.cs b/src/Compilers/CSharp/Portable/Syntax/SyntaxNormalizer.cs index c937a3afe96ae577676df6c1c00a17d46732df3f..e887f47ab042ed5e2242a8b8198e48d8a1607aa0 100644 --- a/src/Compilers/CSharp/Portable/Syntax/SyntaxNormalizer.cs +++ b/src/Compilers/CSharp/Portable/Syntax/SyntaxNormalizer.cs @@ -157,7 +157,7 @@ private SyntaxTrivia GetIndentation(int count) string text = i == 0 ? "" : _indentations[i - 1].ToString() + _indentWhitespace; - _indentations.Add(SyntaxFactory.Whitespace(text, _useElasticTrivia)); + _indentations.Add(_useElasticTrivia ? SyntaxFactory.ElasticWhitespace(text) : SyntaxFactory.Whitespace(text)); } return _indentations[count]; diff --git a/src/Compilers/VisualBasic/Portable/PublicAPI.txt b/src/Compilers/VisualBasic/Portable/PublicAPI.txt index 1b91d0ec82a3f4fd7921311055b26faf192c6c56..beacfeb98a1edd6ef42d0c48ec556f968a86d97f 100644 --- a/src/Compilers/VisualBasic/Portable/PublicAPI.txt +++ b/src/Compilers/VisualBasic/Portable/PublicAPI.txt @@ -3040,6 +3040,10 @@ Microsoft.CodeAnalysis.VisualBasic.SyntaxKind.YieldKeyword = 633 -> Microsoft.Co Microsoft.CodeAnalysis.VisualBasic.SyntaxKind.YieldStatement = 411 -> Microsoft.CodeAnalysis.VisualBasic.SyntaxKind Microsoft.CodeAnalysis.VisualBasic.TypedConstantExtensions Microsoft.CodeAnalysis.VisualBasic.TypedConstantExtensions.ToVisualBasicString(constant As Microsoft.CodeAnalysis.TypedConstant) -> String +Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments +Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser +Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser.New(isInteractive As Boolean = False) -> Void +Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser.Parse(args As System.Collections.Generic.IEnumerable(Of String), baseDirectory As String, sdkDirectory As String, additionalReferenceDirectories As String = Nothing) -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation.AddReferences(ParamArray references As Microsoft.CodeAnalysis.MetadataReference()) -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation.AddReferences(references As System.Collections.Generic.IEnumerable(Of Microsoft.CodeAnalysis.MetadataReference)) -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation @@ -4349,6 +4353,10 @@ Overrides Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlTextSyntax.Accept(Of TRes Overrides Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlTextSyntax.Accept(visitor As Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor) -> Void Overrides Microsoft.CodeAnalysis.VisualBasic.Syntax.YieldStatementSyntax.Accept(Of TResult)(visitor As Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor(Of TResult)) -> TResult Overrides Microsoft.CodeAnalysis.VisualBasic.Syntax.YieldStatementSyntax.Accept(visitor As Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor) -> Void +Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments.CompilationOptionsCore() -> Microsoft.CodeAnalysis.CompilationOptions +Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments.ParseOptionsCore() -> Microsoft.CodeAnalysis.ParseOptions +Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser.RegularFileExtension() -> String +Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser.ScriptFileExtension() -> String Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation.AppendDefaultVersionResource(resourceStream As System.IO.Stream) -> Void Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation.CommonAddSyntaxTrees(trees As System.Collections.Generic.IEnumerable(Of Microsoft.CodeAnalysis.SyntaxTree)) -> Microsoft.CodeAnalysis.Compilation Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation.CommonAssembly() -> Microsoft.CodeAnalysis.IAssemblySymbol @@ -4944,6 +4952,8 @@ Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.DocumentationCommentLine Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.DocumentationCommentLineBreakToken(text As String, value As String) -> Microsoft.CodeAnalysis.SyntaxToken Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.DocumentationCommentTrivia() -> Microsoft.CodeAnalysis.VisualBasic.Syntax.DocumentationCommentTriviaSyntax Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.DocumentationCommentTrivia(content As Microsoft.CodeAnalysis.SyntaxList(Of Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlNodeSyntax)) -> Microsoft.CodeAnalysis.VisualBasic.Syntax.DocumentationCommentTriviaSyntax +Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.ElasticEndOfLine(text As String) -> Microsoft.CodeAnalysis.SyntaxTrivia +Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.ElasticWhitespace(text As String) -> Microsoft.CodeAnalysis.SyntaxTrivia Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.ElseBlock() -> Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseBlockSyntax Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.ElseBlock(elseStatement As Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax, statements As Microsoft.CodeAnalysis.SyntaxList(Of Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax)) -> Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseBlockSyntax Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.ElseBlock(statements As Microsoft.CodeAnalysis.SyntaxList(Of Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax)) -> Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseBlockSyntax @@ -4990,7 +5000,8 @@ Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.EndModuleStatement() -> Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.EndModuleStatement(endKeyword As Microsoft.CodeAnalysis.SyntaxToken, blockKeyword As Microsoft.CodeAnalysis.SyntaxToken) -> Microsoft.CodeAnalysis.VisualBasic.Syntax.EndBlockStatementSyntax Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.EndNamespaceStatement() -> Microsoft.CodeAnalysis.VisualBasic.Syntax.EndBlockStatementSyntax Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.EndNamespaceStatement(endKeyword As Microsoft.CodeAnalysis.SyntaxToken, blockKeyword As Microsoft.CodeAnalysis.SyntaxToken) -> Microsoft.CodeAnalysis.VisualBasic.Syntax.EndBlockStatementSyntax -Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.EndOfLine(text As String, elastic As Boolean = True) -> Microsoft.CodeAnalysis.SyntaxTrivia +Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.EndOfLine(text As String) -> Microsoft.CodeAnalysis.SyntaxTrivia +Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.EndOfLine(text As String, elastic As Boolean) -> Microsoft.CodeAnalysis.SyntaxTrivia Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.EndOfLineTrivia(text As String) -> Microsoft.CodeAnalysis.SyntaxTrivia Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.EndOperatorStatement() -> Microsoft.CodeAnalysis.VisualBasic.Syntax.EndBlockStatementSyntax Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.EndOperatorStatement(endKeyword As Microsoft.CodeAnalysis.SyntaxToken, blockKeyword As Microsoft.CodeAnalysis.SyntaxToken) -> Microsoft.CodeAnalysis.VisualBasic.Syntax.EndBlockStatementSyntax @@ -5670,7 +5681,8 @@ Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.WhileClause(whileOrUntil Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.WhileOrUntilClause(kind As Microsoft.CodeAnalysis.VisualBasic.SyntaxKind, whileOrUntilKeyword As Microsoft.CodeAnalysis.SyntaxToken, condition As Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax) -> Microsoft.CodeAnalysis.VisualBasic.Syntax.WhileOrUntilClauseSyntax Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.WhileStatement(condition As Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax) -> Microsoft.CodeAnalysis.VisualBasic.Syntax.WhileStatementSyntax Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.WhileStatement(whileKeyword As Microsoft.CodeAnalysis.SyntaxToken, condition As Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax) -> Microsoft.CodeAnalysis.VisualBasic.Syntax.WhileStatementSyntax -Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.Whitespace(text As String, elastic As Boolean = True) -> Microsoft.CodeAnalysis.SyntaxTrivia +Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.Whitespace(text As String) -> Microsoft.CodeAnalysis.SyntaxTrivia +Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.Whitespace(text As String, elastic As Boolean) -> Microsoft.CodeAnalysis.SyntaxTrivia Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.WhitespaceTrivia(text As String) -> Microsoft.CodeAnalysis.SyntaxTrivia Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.WithBlock(withStatement As Microsoft.CodeAnalysis.VisualBasic.Syntax.WithStatementSyntax) -> Microsoft.CodeAnalysis.VisualBasic.Syntax.WithBlockSyntax Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.WithBlock(withStatement As Microsoft.CodeAnalysis.VisualBasic.Syntax.WithStatementSyntax, statements As Microsoft.CodeAnalysis.SyntaxList(Of Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax)) -> Microsoft.CodeAnalysis.VisualBasic.Syntax.WithBlockSyntax @@ -5891,6 +5903,7 @@ Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFacts.IsXmlTextToken(kind As Mic Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFacts.IsXmlWhitespace(c As Char) -> Boolean Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFacts.MakeHalfWidthIdentifier(text As String) -> String Shared Microsoft.CodeAnalysis.VisualBasic.SyntaxFacts.VarianceKindFromToken(token As Microsoft.CodeAnalysis.SyntaxToken) -> Microsoft.CodeAnalysis.VarianceKind +Shared Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser.ParseConditionalCompilationSymbols(symbolList As String, ByRef diagnostics As System.Collections.Generic.IEnumerable(Of Microsoft.CodeAnalysis.Diagnostic), symbols As System.Collections.Generic.IEnumerable(Of System.Collections.Generic.KeyValuePair(Of String, Object)) = Nothing) -> System.Collections.Generic.IReadOnlyDictionary(Of String, Object) Shared Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation.Create(assemblyName As String, syntaxTrees As System.Collections.Generic.IEnumerable(Of Microsoft.CodeAnalysis.SyntaxTree) = Nothing, references As System.Collections.Generic.IEnumerable(Of Microsoft.CodeAnalysis.MetadataReference) = Nothing, options As Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions = Nothing) -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation Shared Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation.CreateSubmission(assemblyName As String, syntaxTree As Microsoft.CodeAnalysis.SyntaxTree = Nothing, references As System.Collections.Generic.IEnumerable(Of Microsoft.CodeAnalysis.MetadataReference) = Nothing, options As Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions = Nothing, previousSubmission As Microsoft.CodeAnalysis.Compilation = Nothing, returnType As System.Type = Nothing, hostObjectType As System.Type = Nothing) -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation Shared Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode.DeserializeFrom(stream As System.IO.Stream, cancellationToken As System.Threading.CancellationToken = Nothing) -> Microsoft.CodeAnalysis.SyntaxNode @@ -5909,16 +5922,7 @@ Shared ReadOnly Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.LineFeed -> Mic Shared ReadOnly Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.Space -> Microsoft.CodeAnalysis.SyntaxTrivia Shared ReadOnly Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.Tab -> Microsoft.CodeAnalysis.SyntaxTrivia Shared ReadOnly Microsoft.CodeAnalysis.VisualBasic.SyntaxFacts.EqualityComparer -> System.Collections.Generic.IEqualityComparer(Of Microsoft.CodeAnalysis.VisualBasic.SyntaxKind) -Shared ReadOnly Microsoft.CodeAnalysis.VisualBasic.VisualBasicDiagnosticFormatter.Instance -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicDiagnosticFormatter -Shared ReadOnly Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions.Default -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions -Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments -Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser -Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser.New(isInteractive As Boolean = False) -> Void -Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser.Parse(args As System.Collections.Generic.IEnumerable(Of String), baseDirectory As String, sdkDirectory As String, additionalReferenceDirectories As String = Nothing) -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments -Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments.CompilationOptionsCore() -> Microsoft.CodeAnalysis.CompilationOptions -Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments.ParseOptionsCore() -> Microsoft.CodeAnalysis.ParseOptions -Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser.RegularFileExtension() -> String -Overrides Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser.ScriptFileExtension() -> String -Shared Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser.ParseConditionalCompilationSymbols(symbolList As String, ByRef diagnostics As System.Collections.Generic.IEnumerable(Of Microsoft.CodeAnalysis.Diagnostic), symbols As System.Collections.Generic.IEnumerable(Of System.Collections.Generic.KeyValuePair(Of String, Object)) = Nothing) -> System.Collections.Generic.IReadOnlyDictionary(Of String, Object) Shared ReadOnly Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser.Default -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser -Shared ReadOnly Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser.Interactive -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser \ No newline at end of file +Shared ReadOnly Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser.Interactive -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser +Shared ReadOnly Microsoft.CodeAnalysis.VisualBasic.VisualBasicDiagnosticFormatter.Instance -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicDiagnosticFormatter +Shared ReadOnly Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions.Default -> Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions \ No newline at end of file diff --git a/src/Compilers/VisualBasic/Portable/Syntax/SyntaxFactory.vb b/src/Compilers/VisualBasic/Portable/Syntax/SyntaxFactory.vb index 16778404fb56e211014bd590c671694db866cb0c..3c735614eb7262a55ca955c6750909c330e9c3b2 100644 --- a/src/Compilers/VisualBasic/Portable/Syntax/SyntaxFactory.vb +++ b/src/Compilers/VisualBasic/Portable/Syntax/SyntaxFactory.vb @@ -9,29 +9,122 @@ Imports VbObjectDisplay = Microsoft.CodeAnalysis.VisualBasic.ObjectDisplay.Objec Namespace Microsoft.CodeAnalysis.VisualBasic Partial Public Class SyntaxFactory + ''' + ''' A trivia with kind EndOfLineTrivia containing both the carriage return And line feed characters. + ''' Public Shared ReadOnly CarriageReturnLineFeed As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.CarriageReturnLineFeed, SyntaxTrivia) + + ''' + ''' A trivia with kind EndOfLineTrivia containing a single line feed character. + ''' Public Shared ReadOnly LineFeed As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.LineFeed, SyntaxTrivia) + + ''' + ''' A trivia with kind EndOfLineTrivia containing a single carriage return character. + ''' Public Shared ReadOnly CarriageReturn As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.CarriageReturn, SyntaxTrivia) + + ''' + ''' A trivia with kind WhitespaceTrivia containing a single space character. + ''' Public Shared ReadOnly Space As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.Space, SyntaxTrivia) + + ''' + ''' A trivia with kind WhitespaceTrivia containing a single tab character. + ''' Public Shared ReadOnly Tab As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.Tab, SyntaxTrivia) + ''' + ''' An elastic trivia with kind EndOfLineTrivia containing both the carriage return And line feed characters. + ''' Elastic trivia are used to denote trivia that was Not produced by parsing source text, And are usually Not + ''' preserved during formatting. + ''' Public Shared ReadOnly ElasticCarriageReturnLineFeed As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.ElasticCarriageReturnLineFeed, SyntaxTrivia) + + ''' + ''' An elastic trivia with kind EndOfLineTrivia containing a single line feed character. Elastic trivia are used + ''' to denote trivia that was Not produced by parsing source text, And are usually Not preserved during + ''' formatting. + ''' Public Shared ReadOnly ElasticLineFeed As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.ElasticLineFeed, SyntaxTrivia) + + ''' + ''' An elastic trivia with kind EndOfLineTrivia containing a single carriage return character. Elastic trivia + ''' are used to denote trivia that was Not produced by parsing source text, And are usually Not preserved during + ''' formatting. + ''' Public Shared ReadOnly ElasticCarriageReturn As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.ElasticCarriageReturn, SyntaxTrivia) + + ''' + ''' An elastic trivia with kind WhitespaceTrivia containing a single space character. Elastic trivia are used to + ''' denote trivia that was Not produced by parsing source text, And are usually Not preserved during formatting. + ''' Public Shared ReadOnly ElasticSpace As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.ElasticSpace, SyntaxTrivia) + + ''' + ''' An elastic trivia with kind WhitespaceTrivia containing a single tab character. Elastic trivia are used to + ''' denote trivia that was Not produced by parsing source text, And are usually Not preserved during formatting. + ''' Public Shared ReadOnly ElasticTab As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.ElasticTab, SyntaxTrivia) + ''' + ''' An elastic trivia with kind WhitespaceTrivia containing no characters. Elastic marker trivia are included + ''' automatically by factory methods when trivia Is Not specified. Syntax formatting will replace elastic + ''' markers with appropriate trivia. + ''' Public Shared ReadOnly ElasticMarker As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.ElasticZeroSpace, SyntaxTrivia) Private Shared ReadOnly s_elasticMarkerList As SyntaxTriviaList = SyntaxFactory.TriviaList(CType(InternalSyntax.SyntaxFactory.ElasticZeroSpace, SyntaxTrivia)) - Public Shared Function Whitespace(text As String, Optional elastic As Boolean = True) As SyntaxTrivia - Return CType(InternalSyntax.SyntaxFactory.Whitespace(text, elastic), SyntaxTrivia) + ''' + ''' Creates a trivia with kind EndOfLineTrivia containing the specified text. + ''' + ''' The text of the end of line. Any text can be specified here, however only carriage return And + ''' line feed characters are recognized by the parser as end of line. + Public Shared Function EndOfLine(text As String) As SyntaxTrivia + Return CType(InternalSyntax.SyntaxFactory.EndOfLine(text, elastic:=False), SyntaxTrivia) + End Function + + ''' + ''' Creates a trivia with kind EndOfLineTrivia containing the specified text. Elastic trivia are used to + ''' denote trivia that was Not produced by parsing source text, And are usually Not preserved during formatting. + ''' + ''' The text of the end of line. Any text can be specified here, however only carriage return And + ''' line feed characters are recognized by the parser as end of line. + Public Shared Function ElasticEndOfLine(text As String) As SyntaxTrivia + Return CType(InternalSyntax.SyntaxFactory.EndOfLine(text, elastic:=True), SyntaxTrivia) End Function - Public Shared Function EndOfLine(text As String, Optional elastic As Boolean = True) As SyntaxTrivia + + + Public Shared Function EndOfLine(text As String, elastic As Boolean) As SyntaxTrivia Return CType(InternalSyntax.SyntaxFactory.EndOfLine(text, elastic), SyntaxTrivia) End Function + ''' + ''' Creates a trivia with kind WhitespaceTrivia containing the specified text. + ''' + ''' The text of the whitespace. Any text can be specified here, however only specific + ''' whitespace characters are recognized by the parser. + Public Shared Function Whitespace(text As String) As SyntaxTrivia + Return CType(InternalSyntax.SyntaxFactory.Whitespace(text, elastic:=False), SyntaxTrivia) + End Function + + ''' + ''' Creates a trivia with kind WhitespaceTrivia containing the specified text. Elastic trivia are used to + ''' denote trivia that was Not produced by parsing source text, And are usually Not preserved during formatting. + ''' + ''' The text of the whitespace. Any text can be specified here, however only specific + ''' whitespace characters are recognized by the parser. + Public Shared Function ElasticWhitespace(text As String) As SyntaxTrivia + Return CType(InternalSyntax.SyntaxFactory.Whitespace(text, elastic:=True), SyntaxTrivia) + End Function + + + + Public Shared Function Whitespace(text As String, elastic As Boolean) As SyntaxTrivia + Return CType(InternalSyntax.SyntaxFactory.Whitespace(text, elastic), SyntaxTrivia) + End Function + ''' ''' Names on the right of qualified names and member access expressions are not stand-alone expressions. ''' This method returns the appropriate parent of name syntax nodes that are on right of these constructs. diff --git a/src/Compilers/VisualBasic/Portable/Syntax/SyntaxNormalizer.vb b/src/Compilers/VisualBasic/Portable/Syntax/SyntaxNormalizer.vb index 87f4d6c6b3ba15744a57ad000e1408927525ccae..dbdf0900f0c021f20d89f3905b1c1b4a26ab94a3 100644 --- a/src/Compilers/VisualBasic/Portable/Syntax/SyntaxNormalizer.vb +++ b/src/Compilers/VisualBasic/Portable/Syntax/SyntaxNormalizer.vb @@ -89,7 +89,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Syntax For i As Integer = _indentations.Count To count Dim text As String = If(i = 0, "", _indentations(i - 1).ToString() + Me._indentWhitespace) - _indentations.Add(SyntaxFactory.Whitespace(text, Me._useElasticTrivia)) + _indentations.Add(If(Me._useElasticTrivia, SyntaxFactory.ElasticWhitespace(text), SyntaxFactory.Whitespace(text))) Next Return _indentations(count) diff --git a/src/EditorFeatures/Test/CodeGeneration/CodeGenerationTests.CSharp.cs b/src/EditorFeatures/Test/CodeGeneration/CodeGenerationTests.CSharp.cs index 6930805de09574dea65ce4d7720698ceaaaedbc3..7d1c2b7e5f107d48498ac23ba2cae00fd83aee47 100644 --- a/src/EditorFeatures/Test/CodeGeneration/CodeGenerationTests.CSharp.cs +++ b/src/EditorFeatures/Test/CodeGeneration/CodeGenerationTests.CSharp.cs @@ -936,7 +936,7 @@ public void TestUpdateModifiers() { // Comment 2 }"; - var eol = SyntaxFactory.EndOfLine(@"", elastic: false); + var eol = SyntaxFactory.EndOfLine(@""); var newModifiers = new[] { SyntaxFactory.Token(SyntaxKind.InternalKeyword).WithLeadingTrivia(eol) }.Concat( CreateModifierTokens(new DeclarationModifiers(isSealed: true, isPartial: true), LanguageNames.CSharp)); diff --git a/src/EditorFeatures/Test/CodeGeneration/CodeGenerationTests.VisualBasic.cs b/src/EditorFeatures/Test/CodeGeneration/CodeGenerationTests.VisualBasic.cs index c2397695fe8919a8d47c814d516f78a4b8275273..a74e3f5a21ad3ae0029e82c1658ac6ce5739b3e5 100644 --- a/src/EditorFeatures/Test/CodeGeneration/CodeGenerationTests.VisualBasic.cs +++ b/src/EditorFeatures/Test/CodeGeneration/CodeGenerationTests.VisualBasic.cs @@ -1072,7 +1072,7 @@ public void TestUpdateModifiers() var expected = @"Friend Partial NotInheritable Class C ' Comment 1 ' Comment 2 End Class"; - var eol = VB.SyntaxFactory.EndOfLine(@"", elastic: false); + var eol = VB.SyntaxFactory.EndOfLine(@""); var newModifiers = new[] { VB.SyntaxFactory.Token(VB.SyntaxKind.FriendKeyword).WithLeadingTrivia(eol) }.Concat( CreateModifierTokens(new DeclarationModifiers(isSealed: true, isPartial: true), LanguageNames.VisualBasic)); diff --git a/src/Features/CSharp/CodeFixes/Suppression/CSharpSuppressionCodeFixProvider.cs b/src/Features/CSharp/CodeFixes/Suppression/CSharpSuppressionCodeFixProvider.cs index aadabc2c47101566b862f7be353e43038d970a8d..5c2bd3faf261dc8de9f1fdf4eecdf268ff1d8514 100644 --- a/src/Features/CSharp/CodeFixes/Suppression/CSharpSuppressionCodeFixProvider.cs +++ b/src/Features/CSharp/CodeFixes/Suppression/CSharpSuppressionCodeFixProvider.cs @@ -32,8 +32,7 @@ private SyntaxTriviaList CreatePragmaDirectiveTrivia(SyntaxToken disableOrRestor var ids = new SeparatedSyntaxList().Add(id); var pragmaDirective = SyntaxFactory.PragmaWarningDirectiveTrivia(disableOrRestoreKeyword, ids, true); var pragmaDirectiveTrivia = SyntaxFactory.Trivia(pragmaDirective.WithAdditionalAnnotations(Formatter.Annotation)); - var endOfLineTrivia = SyntaxFactory.EndOfLine(@" -"); + var endOfLineTrivia = SyntaxFactory.ElasticCarriageReturnLineFeed; var triviaList = SyntaxFactory.TriviaList(pragmaDirectiveTrivia); var title = diagnostic.Descriptor.Title.ToString(CultureInfo.CurrentUICulture); @@ -153,8 +152,7 @@ protected override SyntaxNode AddLocalSuppressMessageAttribute(SyntaxNode target attributeList = SyntaxFactory.AttributeList(attributes); } - var endOfLineTrivia = SyntaxFactory.EndOfLine(@" -"); + var endOfLineTrivia = SyntaxFactory.ElasticCarriageReturnLineFeed; var triviaList = SyntaxFactory.TriviaList(); if (needsLeadingEndOfLine) diff --git a/src/Features/VisualBasic/CodeFixes/Suppression/VisualBasicSuppressionCodeFixProvider.vb b/src/Features/VisualBasic/CodeFixes/Suppression/VisualBasicSuppressionCodeFixProvider.vb index afff1ddb4839aebbcabd06e4d2fe995c08e30d6c..984f7adb3b6bcfaac831854f9d3544308eb69bb9 100644 --- a/src/Features/VisualBasic/CodeFixes/Suppression/VisualBasicSuppressionCodeFixProvider.vb +++ b/src/Features/VisualBasic/CodeFixes/Suppression/VisualBasicSuppressionCodeFixProvider.vb @@ -36,8 +36,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.CodeFixes.Suppression Private Function CreatePragmaDirectiveTrivia(enableOrDisablePragmaDirective As StructuredTriviaSyntax, diagnostic As Diagnostic, needsLeadingEndOfLine As Boolean, needsTrailingEndOfLine As Boolean) As SyntaxTriviaList Dim pragmaDirectiveTrivia = SyntaxFactory.Trivia(enableOrDisablePragmaDirective.WithAdditionalAnnotations(Formatter.Annotation)) - Dim endOfLineTrivia = SyntaxFactory.EndOfLine(" -") + Dim endOfLineTrivia = SyntaxFactory.ElasticCarriageReturnLineFeed Dim triviaList = SyntaxFactory.TriviaList(pragmaDirectiveTrivia) Dim title = diagnostic.Descriptor.Title.ToString(CultureInfo.CurrentUICulture) diff --git a/src/Workspaces/CSharp/Portable/Formatting/Engine/Trivia/CSharpTriviaFormatter.cs b/src/Workspaces/CSharp/Portable/Formatting/Engine/Trivia/CSharpTriviaFormatter.cs index 0ae7422f26b0ff97314b86965ba86573dd2c244e..08954429636b24a6284e04e944cc362862f1f737 100644 --- a/src/Workspaces/CSharp/Portable/Formatting/Engine/Trivia/CSharpTriviaFormatter.cs +++ b/src/Workspaces/CSharp/Portable/Formatting/Engine/Trivia/CSharpTriviaFormatter.cs @@ -56,7 +56,7 @@ protected override bool IsNewLine(char ch) protected override SyntaxTrivia CreateWhitespace(string text) { - return SyntaxFactory.Whitespace(text, elastic: false); + return SyntaxFactory.Whitespace(text); } protected override SyntaxTrivia CreateEndOfLine() @@ -64,7 +64,7 @@ protected override SyntaxTrivia CreateEndOfLine() if (_newLine == default(SyntaxTrivia)) { var text = this.Context.OptionSet.GetOption(FormattingOptions.NewLine, LanguageNames.CSharp); - _newLine = SyntaxFactory.EndOfLine(text, elastic: false); + _newLine = SyntaxFactory.EndOfLine(text); } return _newLine; diff --git a/src/Workspaces/VisualBasic/Portable/Formatting/Engine/Trivia/VisualBasicTriviaFormatter.vb b/src/Workspaces/VisualBasic/Portable/Formatting/Engine/Trivia/VisualBasicTriviaFormatter.vb index f61b18cfc44246633f308a854d39232ffb915dd9..635846aac25e51de308a1ca5ae63979b19a46da8 100644 --- a/src/Workspaces/VisualBasic/Portable/Formatting/Engine/Trivia/VisualBasicTriviaFormatter.vb +++ b/src/Workspaces/VisualBasic/Portable/Formatting/Engine/Trivia/VisualBasicTriviaFormatter.vb @@ -57,13 +57,13 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Formatting End Function Protected Overrides Function CreateWhitespace(text As String) As SyntaxTrivia - Return SyntaxFactory.Whitespace(text, elastic:=False) + Return SyntaxFactory.Whitespace(text) End Function Protected Overrides Function CreateEndOfLine() As SyntaxTrivia If _newLine = Nothing Then Dim text = Me.Context.OptionSet.GetOption(FormattingOptions.NewLine, LanguageNames.VisualBasic) - _newLine = SyntaxFactory.EndOfLine(text, elastic:=False) + _newLine = SyntaxFactory.EndOfLine(text) End If Return _newLine