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.



    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 .


    We made all the standard actions for generation, which are for Objective-C - initializers, description/ debugDescription, hashValueand comparison operator:


    For all actions except the initializer, you can also select the template used for generation.

    Type Definition Navigation

    Everything is simple - click ⇧⌘Band immediately get to the definition of the type:

    Type Definition Navigation

    Highlight exit points

    Learn to highlight the exit point of the cursor set to break, continue, try, throwor return:

    Highlight exit points


    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: Formatting string literals
    • Added code formatting settings within preprocessor directives:Preprocessor directive settings
    • 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:

    Change Signature


    It was normal to format macro substitutions in Quick Documentation ( F1):

    Formatting macro substitutions

    Multiline TODO

    In AppCode, all comments of the form //FIXME/ //TODOcan be quickly viewed through ⌘6. Here you can also set templates for your messages, which is convenient:

    TODO settings

    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:

    Multiline TODO

    Mixed code

    Corrected problems when renaming structures with swift_namein 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:

    IOS extension support

    LLDB console for Swift

    Fixed autocompletion in the debugger console for Swift (for Objective-C / C / C ++ everything worked anyway). All supporters p/ poand expressionrejoice, the rest, as before, use Evaluate Expression ( ⌥F8):

    Autocompletion in the LLDB console

    IDE Features Trainer Plugin

    IDE Features Trainer

    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 :).


    Search Everywhere

    Combined Search Everywhere, Go to Class / File / Symbol / Action:

    Search Everywhere

    Run anything

    Now any configuration can be launched by double pressing ⌃:

    Run anything

    Or open a project by typing open.


    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:

    Github pull requests

    High contrast theme

    Now it is - both for the editor and for the IDE (you can choose in Preferences | Appearance & Behavior | Appearance):

    High contrast theme

    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.

    Also popular now: