📜 ⬆️ ⬇️

What's new in AppCode 2018.1

Hello!


This post, of course, about AppCode 2018.1. But no, this time it is also about the first update. We have a lot of new and useful things, all in pictures under the cut.


Splash



Swift


Swift 4.1


We have implemented support for most of Swift 4.1:



Swift 4.0 we basically did in AppCode 2017.3. If you are interested in how we are moving towards a brighter future of Swift 4.2 and 5.0 support, subscribe to this ticket and its next steps .


Implicitly connected modules


Here it is worth explaining with an example. If UIKit is connected, then CoreGraphics and Dispatch , for example, are automatically connected. All symbols from these libraries must be available. Logic dictates that both modules must be explicitly imported somewhere inside UIKit . But if we just recursively go through the whole tree of modules connected to UIKit , we will not find any imports.


Why? Because all of them are connected in the UIKit version on Objective-C, and in Swift they are forwarded implicitly. AppCode builds autocompletion and navigation based on the symbol tree - there are no required characters - there is no autocompletion or navigation for such libraries without explicit import. I think you can not even explain how much it is reflected in the work of the IDE.


In this release, we corrected everything:


Implicit modules


Along the way, we improved auto-completion navigation for some third-party libraries (for example, Firebase and PureLayout).


RxSwift support


At the heart of RxSwift is the construction described here . In AppCode 2018.1, we learned how to handle it correctly, which brought happy auto-completion and navigation to happy users:


RxSwift support


Some of the problems remain , we continue to work on them. To everyone who helped us on the #appcode-users channel in the RxSwift slake , - thanks!


Quick support


Made the correct and convenient display of tests:


Quick hierarchy


Implemented navigation to a specific place in the test:


Quick navigation


For Objective-C, we haven’t done the same thing yet , restarting failed tests cannot be done yet. But for the usual tests on XCTest , as well as Kiwi , Catch , Boost.Test and Google Test, this feature works, along with a bunch of others .


Formatting comments


Added some new settings in Preferences | Editor | Code Style | Swift | Code Generation for formatting comments:


Comments settings


Corrected the display of multi-line comments in the Quick Documentation ( F1 ) popup:


Multiline comments


Mixed code (Objective-C / Swift)


Improved Objective-C / Swift translation:



We also accelerated the work of Go to class / symbol in projects with mixed code and finally fixed the problems with OCMock .


C ++


You can read about improvements in C / C ++ support in the post @ anastasiak2512 in the C ++ language support section, there are almost no differences in this part between AppCode and CLion.


Header maps


While the post was being written, AppCode 2018.1.1 was released. It added support for Xcode header maps , which automatically made the construction of symbols for the mass of projects (in particular, for those generated using BUCK ) more correct.


Wireless debugging


In Xcode 9, we added wireless debugging, and in AppCode 2018.1 we supported it. Now, if you configure the device in Xcode, AppCode will also show it and allow you to debug it and launch the application.


Location simulation


Added settings for location simulation in Run / Debug Configurations :


Location in the Run Configuration


Implemented support for changing location when launching and debugging applications:


Change location on the fly


Supported settings for user-defined places:


Custom locations


Began to automatically process .gpx files as XML:


XML assistance


Project scopes


The project tree in AppCode had two display modes:



Files view greatly facilitates the work with the project. You need to change some README.md or script - switched, opened, edited, returned to writing code. Given the number of plug-ins for different languages, it is convenient.


Project and Files is a special case of Project Scopes , which make it possible to filter out an arbitrary subset of project files. For example, to display only a part of the files in the Project view or to limit the scope of the inspection / search operation.


Now most standard filters can be used in the AppCode:


Standard scopes



In Preferences | Appearance & Behavior | Scopes can create your own filters:


Custom scope


In Preferences | Appearance & Behavior | File Colors for each filter, you can set your own color when displayed in the Files mode :


Scole colors


Migrating from Xcode


In this release, worked the most obvious:



If you have ideas for improvements for each of the items, you should immediately create a ticket in our tracker and apply to it your settings exported using File → Export Settings ...


Any



That's all. Downloading - here , bugs - to the tracker , general questions are the easiest to raise right here in the comments!


')

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


All Articles