[swift-evolution] [Review] SE-0084: Allow trailing commas in parameter lists and tuples
Vladimir.S
svabox at gmail.com
Fri May 13 01:22:18 CDT 2016
It seems like all problems could be solved by allowing line-break instead
of comma in list:
public init(source: JSONObjectDecoder) throws {
try self.init(
imageSource: source.decode("imageSource")
width: source.decodeOptional("width")
height: source.decodeOptional("height")
)
}
public func toJSON() -> JSON {
return .ObjectValue([
"imageSource": imageSource.toJSON()
"width": width.toJSON()
"height": height.toJSON()
])
}
Shouldn't we move in that direction? Probably in addition to allow trailing
comma just to allow one to use his/her preferable formatting
On 13.05.2016 9:07, Patrick Smith via swift-evolution wrote:
> I do it quite a lot, especially for initialising structs, enums. I use it to get the same benefits as a switch statement spread over several lines.
>
> I think it’s often good to liberally apply new lines, as it aids legibility.
>
> Here some sample code of mine using it:
>
> extension ImageGraphic : JSONObjectRepresentable {
> public init(source: JSONObjectDecoder) throws {
> try self.init(
> imageSource: source.decode("imageSource"),
> width: source.decodeOptional("width"),
> height: source.decodeOptional("height")
> )
> }
>
> public func toJSON() -> JSON {
> return .ObjectValue([
> "imageSource": imageSource.toJSON(),
> "width": width.toJSON(),
> "height": height.toJSON()
> ])
> }
> }
>
>
>> On 13 May 2016, at 3:01 PM, Chris Lattner via swift-evolution <swift-evolution at swift.org> wrote:
>>
>> On May 12, 2016, at 4:50 PM, Joe Groff <jgroff at apple.com> wrote:
>>>>> --- a.swift
>>>>> +++ a.swift
>>>>> foo(
>>>>> x: 0,
>>>>> - y: 1
>>>>> + y: 1,
>>>>> + z: 2
>>>>> )
>>>>>
>>>>> Trailing commas avoid this:
>>>>>
>>>>> --- a.swift
>>>>> +++ a.swift
>>>>> foo(
>>>>> x: 0,
>>>>> y: 1,
>>>>> + z: 2,
>>>>> )
>>>>
>>>> You’re arguing that you want to read Swift code written like this?
>>>
>>> I wouldn't mind it.
>>
>> I personally find that style repulsive :-) and I haven’t seen swift code commonly doing it. I’m not sure that we want to encourage it either.
>>
>>> The standard library already uses this style for function parameters, modulo the trailing comma, and I certainly prefer it to:
>>>
>>>> --- a.swift
>>>> +++ a.swift
>>>> foo( x: 0
>>>> , y: 1
>>>> + , z: 2
>>>> )
>>
>> I agree that this is even worse, but I also haven’t seen this used in Swift code. Have you? Swift’s strictness with argument labels makes any of this pretty unappealing to use.
>>
>> If we were really concerned about this, a narrower way to solve the same problem would be to allow a comma before the ), but *only* when there is a newline between them. I still don’t see why we’d want to encourage this though.
>>
>> -Chris
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
More information about the swift-evolution
mailing list