AppCode 2017.2: Extract Method refactoring and override/implement completion for Swift, __auto_type support for Objective-C, documentation improvements and more!

AppCode 2017.2 is here, so download and try it right now! The patch update is also available if you are using a previous 2017.1.3 version (if you’ve already installed AppCode 2017.2 RC2 build, then simply keep using it, since it’s the same as the released one).

AppCode 2017.2 released

Our second big update this year includes:

Download AppCode 2017.2


Extract Method

Extract Method is one of the most frequently used refactorings in any language and Swift is not an exception. Now you can use it in AppCode in the same way as for Objective-C/C and C++: select the code, press ⌥⌘M, change the method signature as you want, set its visibility or use the default one, press – and that’s it:

Extract method

Override/implement completion

With the Override/Implement (^O/^I) action you can generate stubs for multiple methods or properties at once:


However, when you need to override a single method or property, it’s more convenient to have such ability directly from the completion list, and now it’s also possible in AppCode 2017.2:

Override/Implement completion

Inline type hints

See types shown inline in the editor window for Swift variables without explicit type annotations with the new Show Swift type hints option:

Swift type hints

Type hints are disabled by default and can be enabled globally via Preferences | Editor | General | Appearance | Show Swift type hints.

There is also an option to toggle type hints on/off in the file you’re currently working on without touching global preference: View | Active Editor | Show Type Hints.

New formatting options

Configure blank lines between properties and methods separately for classes and protocols:

New blank lines settings

Keep simple methods and functions in one line with the corresponding option in Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting:

Simple methods and functions in one line

__auto_type support

New AppCode correctly parses __auto_type expressions in Objective-C/C/C++ and shows the __auto_type keyword in the completion list:

__auto_type support

C++ parser improvements

AppCode 2017.2 brings dozens of fixes in various parts of the C++ parsing and resolving engine implemented by the CLion team. From the user perspective, it means a reduced number of false-positive code analysis checks, more accurate navigation, refactorings, and other benefits. If you are interested in the full list of fixes, please refer to the CLion tracker.

Quick Documentation

Benefit from the initial support for Xcode 8.x-9.x documentation format and simply press F1 to open the relevant documentation for any symbol under the caret:

Quick documentation improvements

Build Messages

Easily find the problematic place in your code using note messages displayed as a subnode for the corresponding error or warning:

Build messages

Version control

Like all IntelliJ IDEs, AppCode 2017.2 brings a lot of improvements for the Version Control support:

  • Revert several commits with the Revert action added to the Git Log context menu and quickly change the commit message using Reword.
  • Keep your commit messages easy to read and expressive using the new settings and inspections available in Preferences | Version Control | Commit Dialog: Commit dialog inspections
  • Reformat the commit message with the new quick-fix or using the ⌘⌥L shortcut:
    Reformat commit message

That wraps it up! Check out this short demo to see the new features in action:

Download AppCode 2017.2

Your AppCode team
The Drive to Develop

Comments below can no longer be edited.

10 Responses to AppCode 2017.2: Extract Method refactoring and override/implement completion for Swift, __auto_type support for Objective-C, documentation improvements and more!

  1. Avatar

    Alexey Kozhevnikov says:

    July 27, 2017

    Just upgraded from 2017.1.2 and it’s a nightmare — hangs when switching files, hangs when editing. I am usually on EAP and RC’s, but as far as I remember I stayed on stable version because of it.

    • Stanislav Dombrovsky

      Stanislav Dombrovsky says:

      July 27, 2017

      Could you please a) check if Xmx setting in the release is enough for your project (Help -> Edit Custom VM Options) b) if it does not help – could you please capture the CPU snapshot during hangs and submit it to our tracker?

    • Avatar

      Justin says:

      July 27, 2017

      I’m experiencing the same thing. The CPU spikes periodically making it difficult to get anything done.

    • Avatar

      Raphael says:

      July 28, 2017

      Same here. When I start typing in a file, AppCode freezes for seconds before I can continue working. Really annoying.

    • Avatar

      Tatiana Shabaeva says:

      August 18, 2017

      Justin, Raphael – could you, guys, also capture CPU snapshots & provide thread dumps, so that we check if it’s the same problem (either create new tickets in our tracker or attach to OC-15941).

  2. Avatar

    Akira Takemura says:

    July 28, 2017

    After updating to AppCode 2017.2,
    Code Zooming (In and Out) function with Magicpad(I am a Mac User) not worked.
    This same issue occurred with my PhpStorm 2017.2.

    • Stanislav Dombrovsky

      Stanislav Dombrovsky says:

      July 28, 2017

      Please, track this platform issue.

  3. Avatar

    Andy Muir says:

    August 2, 2017

    At last we have Extract Method refactoring in Swift (I’ve been waiting 1.5 years for this feature!). Thank-you JetBrains – a big step in the right direction – but we’re not there yet:
    Still missing:
    Refactor: Inline
    Refactor: Extract: Constant
    Refactor: Extract: Field
    Refactor: Extract: Parameter

    Lets make maintainable code easier to write!

    • Stanislav Dombrovsky

      Stanislav Dombrovsky says:

      August 2, 2017

      Thanks! We consider other refactorings after performance and resolution fixes which are going to be the main focus for 2017.3.

      • Avatar

        Daniel says:

        October 11, 2017

        I stopped using AppCode when Swift came out. Waiting patiently for these refactorings to start using AppCode again.

Discover more