What's New in 2016.3 Release
AppCode 2016.3 delivers the first huge part of Swift 3 support covering lots of changes introduced in this new major language version.
The Swift resolution engine has been re-worked and made code highlighting, completion and navigation much faster than ever before, even in complex projects.
With significant performance optimizations made in SourceKit integration, AppCode shows warnings, errors and fix-its in Swift code almost instantly.
AppCode 2016.3 comes with a first-class set of Swift formatting options allowing you to easily reformat your code.
Set your preferred formatting options for closures, chained method calls, condition clauses or function parameters, define the wrapping behavior, and stop caring about spaces and indents when writing your code.
Create from usage
Have you ever dreamed about creating a function, constant, variable or property declaration just by using it in your code? Simply press ?? and have it created automatically in the right place!
AppCode test runner now supports UI tests.
Run all tests in your test file or execute a single one.
Re-run only failed tests in one click and easily filter them out from successful ones.
Unlike the usual highlighting that picks out language keywords, types and values, semantic highlighting helps understand how data flow through the code by highlighting each variable/parameter with its own color.
Enable it in Preferences | Editor | Color & Fonts | Language Defaults and use it when writing Swift, Objective-C or C++ code.
Highlighting and configurations
When your code depends on a set of variables and flags set in the run/build configuration, you can see the difference in the editor immediately as you switch the configuration in AppCode. Resolve context is updated automatically, while a manual switcher is still available as before.
This C++11 feature brings the concept of built-in type into the language and is now supported by AppCode, including correct parsing, type preview in Quick Documentation popup (F1) and Rename refactoring.
Overload resolution improvements
The process of selecting the most appropriate overloaded function or operator can be tricky. AppCode 2016.3 handles this well and even introduces two new code inspections for such situations:
Code analysis improvements
- Ambiguous call
- No matching function to call
Dozens of checks reworked to avoid false-positives. This work includes:
- correct tracking of variable usages in sizeof(), cin and cases when variable is passed by reference
- correct handling of non-trivial destructors in the Unused variable inspection
- support for __builtin_unreachable and __attribute__(unused)
- platform-dependent code analysis
- and more
AppCode 2016.3 adds support for _Generic keyword, as well as code completion for specific C11 keywords such as _Thread_local, _Alignas, _Noreturn, _Static_assert, and _Atomic.
This version also brings support for gcc atomic builtins.
Sometimes when working with version control, you change your mind at the last moment. AppCode helps you undo certain actions to avoid any harm:
- undo the last change that you haven’t pushed yet;
- restore a deleted local branch.
Some projects require Git –signoff commits to be used. AppCode now makes this possible to do from the commit changes dialog.
Resolve conflicts in one click
Simple conflicts can now be resolved by the IDE. If you have several nonoverlapping changes on one line, AppCode will show a special resolve icon in the merge dialog. Click the icon to have the conflict resolved by the IDE.
Manage remotes through the VCS | Git menu. Now you can add, edit and remove remotes for every repo in the project.
Filters in Git/Mercurial log
AppCode now builds an index for all commits on first-time project opening and later update it on a log refresh. This improves the performance of text, author and path filters in the Git log.
Git/Mercurial log UI changes
A new design for branches and tags in Git/Hg Log makes it cleaner and easier to use:
Find in Path
- labels have moved to the right;
- commit messages in the table are now aligned;
- commit details have moved to the right.
The Find in Path dialog now keeps previously used settings (scope, file name filter, context, etc.), regardless of where you call it from
Fira Code font
AppCode 2016.3 bundles the FiraCode font, so font ligatures are now much easier to use. To set is as your editor font, select it in settings Editor | Colors & Fonts | Font.