AppCode 2019.2 is Here With Initial Swift 5.1 Support, Code Coverage for Unit Tests, LLDB Disassembly View, Create From Usage for Enum Cases… and Even More!
Please welcome the release of our second major update this year, AppCode 2019.2!
AppCode 2019.2 brings initial support for Swift 5.1 including:
- SE-0242: Synthesize default values for the memberwise initializer.
- SE-0254: Static and class subscripts.
- SE-0068: Expanding Swift
Selfto class members and value types.
- SE-0260: Library Evolution for Stable ABIs.
- SE-0258: Property Wrappers
See a complete overview of Swift 5.1 support here.
Closures in Swift often contain a lot of statements. We’ve implemented code folding for them to make it easier for you to write and read your code:
Code highlighting depends on the code resolution; without code entities being resolved, we don’t know how to highlight them. However, even without this information, we can highlight Swift keywords – and that’s exactly what we’ve done to make the code more readable:
Create From Usage
We introduced Create From Usage intentions for Swift variables, functions and properties in AppCode 2016.3 and added types and initializers to the family back in 2017.1 version. In AppCode 2019.2, we’ve added an intention for Swift enum cases:
When searching for a code construct, it’s important to see not only where the particular code construct is used, but also how you use it in the code. Are you assigning the value to the variable or reading it? Do you create a new class instance or have a subclass extending its functionality? These details help reduce the number of code usages you need to look through.
In AppCode 2019.2, you can see how your Swift code is used – right in the Find Usages (
⌥F7) tool window:
Easily merge variable declaration and initialization using Join Lines (
We’ve added header maps support a year ago, primarily for projects using BUCK. After initial implementation, there was a problem with auto-import functionality when a long and incorrect path was added when importing a header. In AppCode 2019.2, we have fixed it and now auto-import should add a correct
When the source code is not available, Force Step Into (
⌥⇧F7) the disassembled code (or select the frame in the Debug tool window):
Completion for code constructs has worked in LLDB console for a long time; now you can complete debugger commands as well by using
It’s finally here! This top-requested feature has finally made its way into AppCode. No additional configuration is required – just Run With Coverage:
See the coverage results in the left editor gutter:
Click the coverage color indicator to see the hit count or hide the coverage:
View coverage statistics in the Project view or in a separate tool window:
Build, Run, Debug, and Test During Indexing
In large projects, initial indexing and caching can take a lot of time. And sometimes you don’t even need to write the code, you just need to build the project and make a small change. In AppCode 2019.2, you can build, run, debug, and test your project immediately, even when you open it for the first time:
TextMate Bundles Plugin
Sometimes your projects may include bits of code in other languages. For some of these, AppCode offers full-featured support, including:
- A plugin supporting Kotlin/Native.
- Plugins for Markdown and AppleScript.
…and more. Still, for some languages support is not available, and for those, we now provide basic code completion and highlighting out of the box via TextMate bundles:
Most Ruby DSLs will also work after a bit of configuration.
Shell Script Plugin
Code assistance for shell scripts works out of the box:
Thanks to the IntelliJ Platform team, it’s possible to commit your changes directly from Local Changes:
To give it a go, select the Commit from the Local Changes without showing a dialog checkbox in
Preferences | Version Control | Commit Dialog.
That’s it! Explore all the new features in detail on our website and start your free 30-day evaluation to try them in action!
Your AppCode Team
The Drive to Develop
Subscribe to Blog updates
Thanks, we've got you!