[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