📜 ⬆️ ⬇️

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



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:


Generation


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


Type Definition Navigation


Everything is simple - click on ⇧⌘B and immediately get to the definition of the type:


Type Definition Navigation


Highlight exit points


We learned how to highlight the exit points by setting the cursor to break , continue , try , throw or return :


Highlight exit points


Formatting


In almost every release, we are improving something in the formatting engine, this is what we managed to do:



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 , there is a Docker plugin 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 almost everything is that he carries with him (and that which still does not carry, too).


Objective-C / C / C ++


Projects with multiple targets


Finally, we fixed the problems with highlighting 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


Normally formatted macro substitutions in Quick Documentation ( F1 ):


Formatting macro substitutions


Multiline TODO


In AppCode, all comments of the form //FIXME / //TODO can be quickly viewed in ⌘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 for each line except the first to add an indent:


Multiline TODO


Mixed code


Fixed problems when renaming constructs 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 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 of p / po and expression happy, the others, as before, enjoy 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 essence 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 (can be selected in the 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.


')

Source: https://habr.com/ru/post/432058/


All Articles