@@ -89,7 +89,8 @@ private static async Task<Document> GenerateArgumentsAsync(
8989 invocation . ArgumentList . Arguments . Concat ( newArguments ) ) ;
9090
9191 var baseIndentation = GetIndentation ( invocation ) ;
92- var newArgumentList = BuildFormattedArgumentList ( allArguments , baseIndentation ) ;
92+ var eol = DetectEndOfLine ( root ) ;
93+ var newArgumentList = BuildFormattedArgumentList ( allArguments , baseIndentation , eol ) ;
9394 var newInvocation = invocation . WithArgumentList ( newArgumentList ) ;
9495 var newRoot = root . ReplaceNode ( invocation , newInvocation ) ;
9596
@@ -143,6 +144,17 @@ private static SyntaxTriviaList GetIndentation(SyntaxNode node)
143144 return SyntaxFactory . TriviaList ( ) ;
144145 }
145146
147+ private static string DetectEndOfLine ( SyntaxNode root )
148+ {
149+ foreach ( var trivia in root . DescendantTrivia ( ) )
150+ {
151+ if ( trivia . IsKind ( SyntaxKind . EndOfLineTrivia ) )
152+ return trivia . ToFullString ( ) ;
153+ }
154+
155+ return "\n " ;
156+ }
157+
146158 private static bool IsSwitchOrMapMethodName ( string methodName )
147159 {
148160 return methodName is Constants . Methods . SWITCH
@@ -245,15 +257,16 @@ private static SeparatedSyntaxList<ArgumentSyntax> BuildArguments(
245257
246258 private static ArgumentListSyntax BuildFormattedArgumentList (
247259 SeparatedSyntaxList < ArgumentSyntax > arguments ,
248- SyntaxTriviaList baseIndentation )
260+ SyntaxTriviaList baseIndentation ,
261+ string eol )
249262 {
250263 if ( arguments . Count <= 1 )
251264 return SyntaxFactory . ArgumentList ( arguments ) ;
252265
253266 // Multi-line: place each argument on its own line
254267 var formattedArgs = new List < SyntaxNodeOrToken > ( ) ;
255268 var lineBreakAndIndent = SyntaxFactory . TriviaList (
256- SyntaxFactory . ElasticCarriageReturnLineFeed ,
269+ SyntaxFactory . ElasticEndOfLine ( eol ) ,
257270 SyntaxFactory . Whitespace ( baseIndentation . ToFullString ( ) + " " ) ) ;
258271
259272 for ( var i = 0 ; i < arguments . Count ; i ++ )
0 commit comments