You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi. I've just integrated your lovely tool into the build phrase as the final success step. However, I've noticed a rather weird behavior.
Here's the original code snippet:
// before
var test = true
private lazy var button: Button? = {
test ? Button {
$0.setImage(nil, for: .normal)
} : nil
}()
After a formatting session, it becomes:
// after
var test = true
private lazy var button: Button? = test ? Button {
$0.setImage(nil, for: .normal)
} : nil
However, if I write more lines in the Button's initializer, the formatter starts to add a blank line out of nowhere:
// before
var test = true
private lazy var button: Button? = {
test ? Button {
$0.setImage(nil, for: .normal)
$0.setImage(nil, for: .normal)
$0.setImage(nil, for: .normal)
$0.setImage(nil, for: .normal)
} : nil
}()
// after, notice the second last line
var test = true
private lazy var button: Button? = test
? Button {
$0.setImage(nil, for: .normal)
$0.setImage(nil, for: .normal)
$0.setImage(nil, for: .normal)
$0.setImage(nil, for: .normal)
}
: nil
I'm not entirely sure if this is intended, but my money is on that it's not.
On a separate note, can we add a rule so the predicate always lives before the ternary operator visually? This is what I mean:
// before
var testlonglonglonglonglonglonglonglonglonglong = true
lazy var test2longlonglonglonglonglonglonglonglonglong = testlonglonglonglonglonglonglonglonglonglong ? "longlonglonglonglonglonglonglonglong" : "longlonglonglonglonglonglonglonglong"
// with the second line going way beyond the width limit,
// but the part before the question mark staying within
// swiftformat seems to leave the predicate be and only wrap the two branches
lazy var test2longlonglonglonglonglonglonglonglonglong = testlonglonglonglonglonglonglonglonglonglong
? "longlonglonglonglonglonglonglonglong"
: "longlonglonglonglonglonglonglonglong"
// if the predicate goes over the width limit,
// swiftformat wraps it along with the branches at one more level of indention
var testlonglonglonglonglonglonglonglonglonglonglong = true
lazy var test3longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglong =
testlonglonglonglonglonglonglonglonglonglonglong
? "longlonglonglonglonglonglonglonglong"
: "longlong"
// my thinking is that second case has far better readability as the branch comes after the predicate visually.
// applying to the original case in the beginning of the issue, I'd like the result to be
var test = true
private lazy var button: Button? =
test
? Button {
$0.setImage(nil, for: .normal)
$0.setImage(nil, for: .normal)
$0.setImage(nil, for: .normal)
$0.setImage(nil, for: .normal)
}
: nil
Thanks in advance!
The text was updated successfully, but these errors were encountered:
Hi. I've just integrated your lovely tool into the build phrase as the final success step. However, I've noticed a rather weird behavior.
Here's the original code snippet:
After a formatting session, it becomes:
However, if I write more lines in the Button's initializer, the formatter starts to add a blank line out of nowhere:
I'm not entirely sure if this is intended, but my money is on that it's not.
On a separate note, can we add a rule so the predicate always lives before the ternary operator visually? This is what I mean:
Thanks in advance!
The text was updated successfully, but these errors were encountered: