mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
This restructures the indentation logic around producing a single IndentContext for the line being indented. An IndentContext has: - a ContextLoc, which points to a source location to indent relative to, - a Kind, indicating whether we should align with that location exactly, or with the start of the content on its containing line, and - an IndentLevel with the relative number of levels to indent by. It also improves the handling of: - chained and nested parens, braces, square brackets and angle brackets, and how those interact with the exact alignment of parameters, call arguments, and tuple, array and dictionary elements. - Indenting to the correct level after an incomplete expression, statement or decl. Resolves: rdar://problem/59135010 rdar://problem/25519439 rdar://problem/50137394 rdar://problem/48410444 rdar://problem/48643521 rdar://problem/42171947 rdar://problem/40130724 rdar://problem/41405163 rdar://problem/39367027 rdar://problem/36332430 rdar://problem/34464828 rdar://problem/33113738 rdar://problem/32314354 rdar://problem/30106520 rdar://problem/29773848 rdar://problem/27301544 rdar://problem/27776466 rdar://problem/27230819 rdar://problem/25490868 rdar://problem/23482354 rdar://problem/20193017 rdar://problem/47117735 rdar://problem/55950781 rdar://problem/55939440 rdar://problem/53247352 rdar://problem/54326612 rdar://problem/53131527 rdar://problem/48399673 rdar://problem/51361639 rdar://problem/58285950 rdar://problem/58286076 rdar://problem/53828204 rdar://problem/58286182 rdar://problem/58504167 rdar://problem/58286327 rdar://problem/53828026 rdar://problem/57623821 rdar://problem/56965360 rdar://problem/54470937 rdar://problem/55580761 rdar://problem/46928002 rdar://problem/35807378 rdar://problem/39397252 rdar://problem/26692035 rdar://problem/33760223 rdar://problem/48934744 rdar://problem/43315903 rdar://problem/24630624
75 lines
2.2 KiB
Swift
75 lines
2.2 KiB
Swift
class Foo {
|
|
var test: Int {
|
|
get {
|
|
|
|
}
|
|
set {
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
struct S {
|
|
public var someValue: Int
|
|
{
|
|
return 0
|
|
}
|
|
}
|
|
|
|
class C1 {
|
|
var total: Int = 0 {
|
|
didSet {
|
|
print()
|
|
}
|
|
}
|
|
}
|
|
|
|
class C2 {
|
|
var total: Int = 0 {
|
|
didSet {
|
|
print()
|
|
}
|
|
}
|
|
}
|
|
|
|
class C3 {
|
|
var value : Int
|
|
{}
|
|
}
|
|
// RUN: %sourcekitd-test -req=format -line=1 -length=1 %s >%t.response
|
|
// RUN: %sourcekitd-test -req=format -line=2 -length=1 %s >>%t.response
|
|
// RUN: %sourcekitd-test -req=format -line=3 -length=1 %s >>%t.response
|
|
// RUN: %sourcekitd-test -req=format -line=4 -length=1 %s >>%t.response
|
|
// RUN: %sourcekitd-test -req=format -line=5 -length=1 %s >>%t.response
|
|
// RUN: %sourcekitd-test -req=format -line=6 -length=1 %s >>%t.response
|
|
// RUN: %sourcekitd-test -req=format -line=7 -length=1 %s >>%t.response
|
|
// RUN: %sourcekitd-test -req=format -line=8 -length=1 %s >>%t.response
|
|
// RUN: %sourcekitd-test -req=format -line=9 -length=1 %s >>%t.response
|
|
// RUN: %sourcekitd-test -req=format -line=10 -length=1 %s >>%t.response
|
|
// RUN: %sourcekitd-test -req=format -line=14 -length=1 %s >>%t.response
|
|
// RUN: %sourcekitd-test -req=format -line=15 -length=1 %s >>%t.response
|
|
// RUN: %sourcekitd-test -req=format -line=16 -length=1 %s >>%t.response
|
|
// RUN: %sourcekitd-test -req=format -line=21 -length=1 %s >>%t.response
|
|
// RUN: %sourcekitd-test -req=format -line=30 -length=1 %s >>%t.response
|
|
// RUN: %sourcekitd-test -req=format -line=37 -length=1 %s >>%t.response
|
|
// RUN: %FileCheck --strict-whitespace %s <%t.response
|
|
|
|
// CHECK: key.sourcetext: "class Foo {"
|
|
// CHECK: key.sourcetext: " var test: Int {"
|
|
// CHECK: key.sourcetext: " get {"
|
|
// CHECK: key.sourcetext: " "
|
|
// CHECK: key.sourcetext: " }"
|
|
// CHECK: key.sourcetext: " set {"
|
|
// CHECK: key.sourcetext: " "
|
|
// CHECK: key.sourcetext: " }"
|
|
// CHECK: key.sourcetext: " }"
|
|
// CHECK: key.sourcetext: "}"
|
|
// " public var someValue: Int"
|
|
// CHECK: key.sourcetext: " {"
|
|
// CHECK: key.sourcetext: " return 0"
|
|
// CHECK: key.sourcetext: " }"
|
|
// CHECK: key.sourcetext: " didSet {"
|
|
" didSet {"
|
|
// CHECK: key.sourcetext: " print()"
|
|
// CHECK: key.sourcetext: " {}"
|