@@ -262,6 +262,9 @@ private final class TokenStreamCreator: SyntaxVisitor {
262
262
after ( node. identifier. lastToken, tokens: . space)
263
263
}
264
264
265
+ let mustBreak = node. body != nil || node. signature. output != nil
266
+ arrangeParameterClause ( node. signature. input, forcesBreakBeforeRightParen: mustBreak)
267
+
265
268
arrangeFunctionLikeDecl (
266
269
node,
267
270
attributes: node. attributes,
@@ -283,6 +286,8 @@ private final class TokenStreamCreator: SyntaxVisitor {
283
286
284
287
before ( node. throwsOrRethrowsKeyword, tokens: . break)
285
288
289
+ arrangeParameterClause ( node. parameters, forcesBreakBeforeRightParen: node. body != nil )
290
+
286
291
arrangeFunctionLikeDecl (
287
292
node,
288
293
attributes: node. attributes,
@@ -333,6 +338,8 @@ private final class TokenStreamCreator: SyntaxVisitor {
333
338
334
339
after ( node. lastToken, tokens: . close)
335
340
341
+ arrangeParameterClause ( node. indices, forcesBreakBeforeRightParen: true )
342
+
336
343
return . visitChildren
337
344
}
338
345
@@ -870,9 +877,6 @@ private final class TokenStreamCreator: SyntaxVisitor {
870
877
}
871
878
872
879
func visit( _ node: ParameterClauseSyntax ) -> SyntaxVisitorContinueKind {
873
- after ( node. leftParen, tokens: . break( . open, size: 0 ) , . open( argumentListConsistency ( ) ) )
874
- before ( node. rightParen, tokens: . break( . close, size: 0 ) , . close)
875
-
876
880
// Prioritize keeping ") throws -> <return_type>" together.
877
881
if config. prioritizeKeepingFunctionOutputTogether {
878
882
// Due to visitation order, this .open corresponds to a .close added in FunctionDeclSyntax
@@ -990,6 +994,11 @@ private final class TokenStreamCreator: SyntaxVisitor {
990
994
991
995
func visit( _ node: EnumCaseElementSyntax ) -> SyntaxVisitorContinueKind {
992
996
after ( node. trailingComma, tokens: . break)
997
+
998
+ if let associatedValue = node. associatedValue {
999
+ arrangeParameterClause ( associatedValue, forcesBreakBeforeRightParen: true )
1000
+ }
1001
+
993
1002
return . visitChildren
994
1003
}
995
1004
@@ -1972,6 +1981,22 @@ private final class TokenStreamCreator: SyntaxVisitor {
1972
1981
return contentsIterator. next ( ) == nil && !commentPrecedesRightBrace
1973
1982
}
1974
1983
1984
+ /// Applies formatting to a collection of parameters for a decl.
1985
+ ///
1986
+ /// - Parameters:
1987
+ /// - parameters: A node that contains the parameters that can be passed to a decl when its
1988
+ /// called.
1989
+ /// - forcesBreakBeforeRightParen: Whether a break should be required before the right paren
1990
+ /// when the right paren is on a different line than the corresponding left paren.
1991
+ private func arrangeParameterClause(
1992
+ _ parameters: ParameterClauseSyntax , forcesBreakBeforeRightParen: Bool
1993
+ ) {
1994
+ after ( parameters. leftParen, tokens: . break( . open, size: 0 ) , . open( argumentListConsistency ( ) ) )
1995
+ before (
1996
+ parameters. rightParen,
1997
+ tokens: . break( . close( mustBreak: forcesBreakBeforeRightParen) , size: 0 ) , . close)
1998
+ }
1999
+
1975
2000
/// Applies consistent formatting to the braces and contents of the given node.
1976
2001
///
1977
2002
/// - Parameters:
0 commit comments