[swift-evolution] Idea: Named extensions
Brandon Knope
bknope at me.com
Mon May 16 13:59:57 CDT 2016
Do you have a link to your proposal?
Thanks,
Brandon
> On May 16, 2016, at 2:58 PM, Matthew Johnson <matthew at anandabits.com> wrote:
>
>
>
> Sent from my iPad
>
>> On May 16, 2016, at 12:33 PM, Michael Peternell via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>
>> Why not just use a (documentation) comment?
>>
>> /// The Lifecycle extension:
>> extension ViewController {
>
> There have been discussions about possibly allowing extensions to have stored properties in the future. If that comes to pass it may well be useful for extensions to have a name that can be used to refer to the extension during initialization. I discussed possible syntax for that in my draft proposal for partial initializers (which I tabled for Swift 3, but may revive in the future).
>
>
>> ...
>>
>> -Michael
>>
>>> Am 16.05.2016 um 18:26 schrieb Brandon Knope via swift-evolution <swift-evolution at swift.org>:
>>>
>>> I like to separate methods into their own logical extensions so similar methods are grouped together. I do this mostly with Cocoa Touch where I like all view life cycle methods to be in the same extension:
>>>
>>> extension ViewController {
>>> override func viewDidLoad() {
>>> }
>>>
>>> override func viewWillAppear(animated: Bool) {
>>> }
>>>
>>> override func viewDidDisappear(animated: Bool) {
>>> }
>>> }
>>>
>>> You can document this somewhat by adding a MARK comment:
>>>
>>> // MARK: Lifecylce
>>> extension ViewController {
>>> override func viewDidLoad() {
>>> }
>>>
>>> override func viewWillAppear(animated: Bool) {
>>> }
>>>
>>> override func viewDidDisappear(animated: Bool) {
>>> }
>>> }
>>>
>>> What if we made this more self-documenting by elevating this to a language feature?
>>>
>>> extension ViewController named Lifecycle {
>>> override func viewDidLoad() {
>>> }
>>>
>>> override func viewWillAppear(animated: Bool) {
>>> }
>>>
>>> override func viewDidDisappear(animated: Bool) {
>>> }
>>> }
>>>
>>> Other ways:
>>> extension named Lifecycle ViewController { }
>>> extension named “View Lifecycle" ViewController { }
>>> extension ViewController named “Multi word description” { }
>>>
>>>
>>> For now, this is purely a documenting feature (i.e. Can’t refer to the extension name dynamically or statically in actual code). I think it plays much more naturally with Swift than requiring this to be in the comments and would work across all IDEs and make it easier for people to find a specific extension as well as making their code more self documenting.
>>>
>>> Any thoughts?
>>>
>>> Thanks,
>>> Brandon
>>>
>>>
>>>
>>> _______________________________________________
>>> 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 <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160516/cb5da88b/attachment.html>
More information about the swift-evolution
mailing list