What's new in AppCode 2018.3
Added support for Swift 4.2, made Generate and navigation to type definition for Swift, improved formatting, supported iOS extensions in the debugger, began to work better in projects with several targets, and also made a bunch of cool and useful features.
Swift
Supported all features of version 4.2, which could affect the work of the IDE:
- SE-0192 (Handling Future Enum Cases)
- SE-0193 (Cross-module inlining and specialization)
- SE-0194 (Derived Collection of Enum Cases)
- SE-0195 (User-defined “Dynamic Member Lookup” Types)
- SE-0196 (Compiler Diagnostic Directives)
- SE-0212 (Compiler Version Directive)
If something is still missed, be sure to write in the comments. And about Swift 5 you can read here .
Generation
We made all the standard actions for generation, which are for Objective-C - initializers, description
/ debugDescription
, hashValue
and comparison operator:
For all actions except the initializer, you can also select the template used for generation.
Type Definition Navigation
Everything is simple - click ⇧⌘B
and immediately get to the definition of the type:
Highlight exit points
Learn to highlight the exit point of the cursor set to break
, continue
, try
, throw
or return
:
Formatting
In almost every release, we are improving something in the formatting engine, this is what we managed to do:
- fixed indentation for multi-line string literals:
- Added code formatting settings within preprocessor directives:
- made it possible to change the alignment of expressions with the ternary operator in
Preferences | Editor | Code Style | Swift | Wrapping and Braces | Ternary conditional operation
Swift Package Manager support in CLion
With CLion, we have not only general C / C ++ support, but also general Swift support. For a long time, the plugin, which adds support for SPM projects in CLion, used CMake as a design model. This year they decided that it was no longer possible to live like this - it was inconvenient to use, and they supported the SPM directly. Now you can work like this:
It turned out really well, it remains only to refine the integration with the tests. And considering the fact that CLion has the functionality of WebStorm for editing HTML / JavaScript, you can work with databases in the same way as in DataGrip , a Docker plugin is available, and much more, we see that now you can still write backends on Swift in it :
No, we are not planning to work with SourceKit-LSP yet. The reason is simple: and so there is almost everything that he carries with him (and that which still does not carry, also).
Objective-C / C / C ++
Projects with multiple targets
Finally, they fixed the problems with lighting and autocompletion for classes with the same name connected to different targets in the project. Navigation also plan to fix.
Change Signature
Previously, when changing the signature in C / C ++, AppCode lost the default values of the arguments - and now it processes them correctly:
Documentation
It was normal to format macro substitutions in Quick Documentation ( F1
):
Multiline TODO
In AppCode, all comments of the form //FIXME
/ //TODO
can be quickly viewed through ⌘6
. Here you can also set templates for your messages, which is convenient:
Now we have added support for multi-line TODOs for Objective-C / C / C ++ - it’s enough to add an indent for every line except the first:
Mixed code
Corrected problems when renaming structures with swift_name
in Objective-C and enumerations in Swift / Objective-C.
Speed performance
Fixed friezes when invoking dialogs related to running tests, such as Run Configurations with test configurations.
Run and debug
IOS Extensions
AppCode has learned how to debug iOS extensions - just like Xcode does:
LLDB console for Swift
Fixed autocompletion in the debugger console for Swift (for Objective-C / C / C ++ everything worked anyway). All supporters p
/ po
and expression
rejoice, the rest, as before, use Evaluate Expression ( ⌥F8
):
IDE Features Trainer Plugin
We often hear at conferences a request to provide materials on migration from Xcode to AppCode, about what features the IDE needs to know first and foremost. During the release, we took the first major step in this direction - we added a part for Swift to the IDE Features Trainer. The point is simple - we install the plugin, open the lessons, follow the instructions and see with simple examples what opportunities there are, how to use them, and where to find them. We recommend everyone to pass - even if you have been using IDE for a long time. With high probability, something new and useful will still be found :).
IDE
Search Everywhere
Combined Search Everywhere, Go to Class / File / Symbol / Action:
Run anything
Now any configuration can be launched by double pressing ⌃:
Or open a project by typing open
.
Plugins
Completely redesigned the section with plug-ins in the IDE:
Version control
Now we can work with Git submodules and conveniently show pull requests with Github:
High contrast theme
Now it is - both for the editor and for the IDE (you can choose in Preferences | Appearance & Behavior | Appearance
):
What's next?
We plan to dedicate the next release entirely to fixing problems. The exception is support for new versions of Swift. In general, more stability, better auto-completion with navigation and backlighting, less interference with work.
That's all! As always, download - here , bugs - to the tracker , ask general questions right here.