News

AppCode 2018.3 is here!

Please welcome the release of AppCode 2018.3!

Read on to learn about Swift 4.2 support, new Generate actions, Navigate to Type Declaration, and lots of formatting improvements for Swift, iOS extensions support in the debugger, better resolve in multi-target projects, and much more!
Splash

Download AppCode 2018.3

Swift

AppCode 2018.3 supports all the Swift 4.2 features affecting the IDE functionality:

  • 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)

To track our progress with Swift 5.0, star this issue.

Generate

Generate initializers, hashValue and the equality operator, description and debugDescription properties in no time using the new Generate actions (⌘N):
Generate

Jump directly to the type declaration in Swift using ⇧⌘B:
Navigate to Type Declaration

Exit point highlighting

Find all the exit points in your code easily by placing the caret on a break, continue, try, throw, or return keyword:
Exit point highlighting

Formatting

Get multiline strings indented correctly when writing your code and re-formatting:
Multiline strings indent

Reformat code easily with dedicated indentation settings for preprocessor directives and their children:
Directives formatting

Set alignment settings for ternary operator expressions in Preferences | Editor | Code Style | Swift | Wrapping and Braces | Ternary conditional operation, and get continued operator expressions re-indented automatically.

Swift Package Manager support in CLion

Develop your server-side projects using the Swift plugin for CLion, which now supports Swift Package Manager projects directly on macOS and Linux:

Objective-C/C/C++

Multiple targets

Highlighting and completion now work correctly for classes with the same name from different targets. Note that there is an issue when navigation does not work correctly for such classes and we are still working on it.

Change Signature

Refactoring is easier with the Change Signature correctly handling the default argument values in method/function declarations:
Change signature

Quick Documentation

Macro replacements are now properly formatted and highlighted in the Quick Documentation (F1):
Macro formatting

Multiline TODO

Add an indent starting from the second line of your multiline TODO comment to differentiate it from ordinary comments, and display the complete TODO text via ⌘6:
Multiline TODO

Mixed code

The Rename refactoring now works correctly for Objective-C declarations aliased with swift_name attribute and for various cases with Swift and Objective-C enums.

Performance

Thanks to performance fixes in unit-testing support, there should be no more freezes when you open top-level menus (such as the Run Configurations popup with test configurations), run a heap of unit-tests, or navigate to the test code.

Run & Debug

iOS extensions

AppCode debugger now supports iOS extensions in the same way Xcode does:
iOS extensions

LLDB console for Swift

Completion works now in LLDB console for Swift:
Completion in LLDB console

Features Trainer plugin

IDE Features Trainer
AppCode has tons of useful actions and shortcuts, and it takes time to become familiar with all of them. To help you learn the most important ones, we’ve created a set of lessons for the IDE Features Trainer plugin, which is now available for download in Preferences | Plugins | Marketplace | Featured.

IDE

Search Everywhere

The updated Search Everywhere (Double⇧) now includes multiple actions under the one tool window:

  • Search Everywhere
  • Go to Class / File / Symbol
  • Find Action

Search Everywhere

Each one has its own separate tab in the dialog, and you can use to switch between them.

Run Anything

Run Anything (Double⌃) is a new universal way to run and debug any configuration in your project, and it can even be used to open a project:
Run Anything

To run a configuration, just start typing its name. To debug, hold down the key to switch to Debug mode. To open a project, type open and select the desired project from the list.

Activity Monitor

Activity Monitor

This new experimental feature shows how much CPU the subsystems and plugins (both built-in and additionally installed ones) are consuming. To access it, go to Help | Activity Monitor. If you see a subsystem whose %CPU is unusually high, feel free to ask our support team about it or report it to our tracker.

New Plugins UI

Plugins UI

The plugins settings under Preferences | Plugins have been redesigned from the ground up. The new UI makes it much easier to control the plugins installed and keep them up-to-date.

You can see a list of the most valuable plugins for AppCode located in the Featured plugins list. Or, sort all the plugins by rating or number of downloads. If you are a plugin writer, check out our new platform for third-party plugin vendors.

Version Control

Git submodules

AppCode now supports Git repositories with submodules: repository with submodules is cloned recursively; Diff, History, and conflict resolution now work for submodule folders; and updating the project correctly updates the submodules.

Github Pull Requests

Github Pull Requests

View all the pull requests from your GitHub repository right inside the IDE, thanks to the brand new GitHub Pull Requests tool window (VCS | Git | View Pull Requests).

Accessibility

High-contrast theme
To make our tools accessible to as many people as possible, we’ve added a few new options to the Appearance section in the IDE’s settings (Preferences | Appearance & Behavior | Appearance). Here, you’ll find a new High-contrast IDE theme, expanded support for screen readers (they can now read line numbers, VCS annotations, and gutter icons tooltips), and an option to adjust IDE colors for people with color deficiencies.

That’s it! Explore all the new features in detail on our website and start your 30-day free evaluation to try them!

Your AppCode Team
JetBrains
The Drive to Develop