Skip to content

Commit 0708302

Browse files
dabelknapallevato
authored andcommitted
Fix indentation for wrapping guards.
1 parent 115870c commit 0708302

File tree

2 files changed

+43
-3
lines changed

2 files changed

+43
-3
lines changed

Sources/SwiftFormatPrettyPrint/TokenStreamCreator.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -382,8 +382,8 @@ private final class TokenStreamCreator: SyntaxVisitor {
382382
}
383383

384384
override func visit(_ node: GuardStmtSyntax) -> SyntaxVisitorContinueKind {
385-
after(node.guardKeyword, tokens: .break)
386-
before(node.elseKeyword, tokens: .break(.reset), .open)
385+
after(node.guardKeyword, tokens: .break(.open))
386+
before(node.elseKeyword, tokens: .break(.close, size: 0), .break(.reset), .open)
387387
after(node.elseKeyword, tokens: .break)
388388
before(node.body.leftBrace, tokens: .close)
389389

@@ -964,7 +964,7 @@ private final class TokenStreamCreator: SyntaxVisitor {
964964
override func visit(_ node: ConditionElementSyntax) -> SyntaxVisitorContinueKind {
965965
before(node.firstToken, tokens: .open)
966966
if let comma = node.trailingComma {
967-
after(comma, tokens: .close, .break)
967+
after(comma, tokens: .close, .break(.same))
968968
}
969969
else {
970970
after(node.lastToken, tokens: .close)

Tests/SwiftFormatPrettyPrintTests/GuardStmtTests.swift

+40
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,44 @@ public class GuardStmtTests: PrettyPrintTestCase {
4747

4848
assertPrettyPrintEqual(input: input, expected: expected, linelength: 35)
4949
}
50+
51+
public func testGuardWithFuncCall() {
52+
let input =
53+
"""
54+
guard let myvar = myClass.itsFunc(first: .someStuff, second: .moreStuff).first else {
55+
// do stuff
56+
}
57+
guard let myvar1 = myClass.itsFunc(first: .someStuff, second: .moreStuff).first,
58+
let myvar2 = myClass.diffFunc(first: .someStuff, second: .moreStuff).first else {
59+
// do stuff
60+
}
61+
"""
62+
63+
let expected =
64+
"""
65+
guard
66+
let myvar = myClass.itsFunc(
67+
first: .someStuff,
68+
second: .moreStuff
69+
).first
70+
else {
71+
// do stuff
72+
}
73+
guard
74+
let myvar1 = myClass.itsFunc(
75+
first: .someStuff,
76+
second: .moreStuff
77+
).first,
78+
let myvar2 = myClass.diffFunc(
79+
first: .someStuff,
80+
second: .moreStuff
81+
).first
82+
else {
83+
// do stuff
84+
}
85+
86+
"""
87+
88+
assertPrettyPrintEqual(input: input, expected: expected, linelength: 35)
89+
}
5090
}

0 commit comments

Comments
 (0)