In this release: more new refactorings, better auto-completion, support for databases from DataGrip, and even support for Touch Bar. In more detail - under the cut.
Swift
Removing closures
Following the extraction of methods, we learned how to extract closures. There was no separate shortcut key, but refactoring can be easily ⌃T using ⌃T + 5 :
The closure signature, as always, is easy to change: ')
Rename
Removed dialogs for local renaming:
Much finalized in the cross-language part. Now you can normally rename the block arguments in Objective-C, the names of the classes exported from Objective-C to Swift using the @objc attribute, and the enumeration elements in Swift.
Autocompletion
We continue to close the “elementary” cases of types of autocompletion. This time added an automatic insert '?' for optional types:
And in parallel we add a little less elementary, like autocompletion for attributes in Swift:
Hansel and Gretel saved
Plus, our bread crumbs - that the birds will not eat them. Therefore, Hansel and Gretel will find their way home without any problems:
Comments for extensions
In Objective-C categories are easily distinguished by name. But in Swift there are no names for extensions. Therefore, we added to the Structure View the display of comments from the extension code in Swift:
Override / Implement
Corrected the generation of overloads / implementations for fields with the same name from base classes and protocols, mutable properties and optional parts of protocols not yet implemented in the base class:
Intentions
In AppCode 2017.3, actions for adding / removing explicitly specified types for variables appeared, and in AppCode 2018.2 we implemented the same for loops:
Debugging
Solved the problem with the output for Python scripts (such as Chisel ):
The platform rolled out a small but very convenient feature - a stack of actions for manipulating breakpoints through ⌥⏎ :
Build messages
In this release, we decided, it seems, the last really major problem with the display of assembly messages - we began to handle normally the output of the Run Script phase:
Database support
In AppCode 2018.2, we have included the full DataGrip functionality for working with the database. Here, by the way, is an example for SQLite: