- Benefit from the first huge part of Swift 3 support features with lots of the latest language changes included.
- Reformat code easily with the first-class set of new Swift code style options for chained method calls, closures, condition clauses, method parameters and more.
- Create Swift functions, properties and variables just by using them with Create from Usage actions.
- Experience significantly improved editor performance, and faster completion, navigation and code resolution in pure Swift and mixed Swift/Objective-C code.
- See all the errors and warnings in your Swift code almost instantly with massive performance optimizations made in the SourceKit integration.
- Run and debug your UI tests using the built-in AppCode test runner and fix any issue faster by running only failed tests.
- If doing C++, check user-defined literals, C++14 digit separator and improved overload resolution support, as well as dozens of fixes for false-positive code analysis checks.
- Understand how data flow through the code with semantic highlighting for Swift, Objective-C and C++.
- Check out undo actions and sign-off commit in VCS, as well as an improved UI and speed-up filtering in Git/Mercurial log.
- Generics: Xcode 7 introduced generics in Objective-C. This mechanism is especially important when you bridge in mixed Objective-C and Swift code. AppCode 3.3 can parse and highlight generic parameters and lets you rename them easily.
- Nullability annotations: New nullability annotations in Objective-C, _Nonnull and _Nullable, are now supported in AppCode editor.
- Custom boot JDK: Now AppCode installer includes custom JDK 8 with fixes from the JetBrains team, so there is no need to download it separately.
- Edit code in commit window: With AppCode you can easily fix small issues while looking at the diff in a commit dialog. Simply enable the editing mode and start editing your code
- Swift debugger: The Swift debugger becomes even better with AppCode, supporting rendering for collections and CoreFoundation types in Swift.
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 now 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.