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.


    CPDV



    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, hashValueand comparison operator:


    Generation


    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


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


    Documentation


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


    IDE


    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.


    Plugins


    Completely redesigned the section with plug-ins in the IDE:


    Plugins


    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: