Skip to content

Commit 58827bb

Browse files
authored
Merge pull request #25362 from nkcsgexi/dot-expr-closure
Sourcekit/Indentation: avoid indenting dot member access appearing after trailing closure
2 parents 9f070ed + 5280254 commit 58827bb

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

lib/IDE/Formatting.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,15 @@ class FormatContext {
289289
isKeywordPossibleDeclStart(*TInfo.StartOfLineBeforeTarget) &&
290290
TInfo.StartOfLineBeforeTarget->isKeyword())
291291
return false;
292+
// VStack {
293+
// ...
294+
// }
295+
// .onAppear { <---- No indentation here.
296+
if (TInfo.StartOfLineTarget->getKind() == tok::period &&
297+
TInfo.StartOfLineBeforeTarget->getKind() == tok::r_brace &&
298+
TInfo.StartOfLineBeforeTarget + 1 == TInfo.StartOfLineTarget) {
299+
return false;
300+
}
292301
}
293302

294303
// Handle switch / case, indent unless at a case label.

test/SourceKit/CodeFormat/indent-closure.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,13 @@ func foo10() {
6767
].whatever
6868
}
6969

70+
func foo11() {
71+
VStack {
72+
}
73+
.onAppear {
74+
}
75+
}
76+
7077
// RUN: %sourcekitd-test -req=format -line=3 -length=1 %s >%t.response
7178
// RUN: %sourcekitd-test -req=format -line=4 -length=1 %s >>%t.response
7279
// RUN: %sourcekitd-test -req=format -line=5 -length=1 %s >>%t.response
@@ -96,6 +103,7 @@ func foo10() {
96103

97104
// RUN: %sourcekitd-test -req=format -line=66 -length=1 %s >>%t.response
98105
// RUN: %sourcekitd-test -req=format -line=67 -length=1 %s >>%t.response
106+
// RUN: %sourcekitd-test -req=format -line=73 -length=1 %s >>%t.response
99107

100108
// RUN: %FileCheck --strict-whitespace %s <%t.response
101109

@@ -136,3 +144,4 @@ func foo10() {
136144

137145
// CHECK: key.sourcetext: " Something() ["
138146
// CHECK: key.sourcetext: " ].whatever"
147+
// CHECK: key.sourcetext: " .onAppear {"

0 commit comments

Comments
 (0)