AppCode 2016.1.3 EAP opens: Swift 2.2 support and improvements in mixed code resolve

Hi everyone,

Today we are excited to announce the launch of AppCode 2016.1.3 EAP and the first build is already available on our confluence page. Please note that a patch from the release version will not be available until AppCode 2016.1.3 gets stable. This EAP requires an active AppCode subscription or is available for 30 day evaluation.

Swift

We worked hard to implement all the changes in Swift 2.2 and now we are ready to show all of them. This build delivers parsing, highlighting and completion for the following language constructs:

  • associatedtype keyword.
  • #file, #line, #column and #function debug identifiers:
    Debug identifiers
  • new typesafe #selector directive:
    Typesafe selector
  • Swift version build configuration option:
    Build version check
  • keywords used as argument labels:
    Keywords as argument labels
  • function naming with argument labels.

Besides, we’ve also fixed parser errors that would appear when using quotes inside Swift string interpolation.

Mixed code

This build delivers initial implementation of cross-language resolve for classes defined in frameworks. It means that now classes from Swift frameworks added as a dependency to an Objective-C project (for example, using CocoaPods) should be correctly resolved from Objective-C code. The same applies to classes from the Objective-C framework used in Swift code (OC-12322). Together these changes significantly improve mixed code editing, by bringing more correct navigation and Rename refactoring for Swift classes used from Objective-C code, better completion and more accurate results for symbol usages search.

Performance improvements

A couple of performance improvements are available in this build:

  • Fix for OC-13046 should improve the general responsiveness of the editor window as well as result in less CPU usage for AppCode.
  • Partial fix for OC-11712 should increase the speed of the Navigate to Symbol (⌥⌘O) action when using it in mixed code and especially pure Swift projects. For the moment we are leaving this ticket open to implement the complete fix in the future.

Other fixes and improvements

Your feedback is especially important for us at this stage, so download 2016.1.3 EAP, try it and in case you find any issue at all – report it to our tracker!

Your AppCode team
JetBrains
The Drive to Develop

This entry was posted in Announcement and tagged , . Bookmark the permalink.

19 Responses to AppCode 2016.1.3 EAP opens: Swift 2.2 support and improvements in mixed code resolve

  1. Bill A says:

    CPU usage is MUCH improved. Thanks!

  2. Dev says:

    Huge update for a minor point release – great work. Looking forward to the 2016.2 EAP too.

    For this release, I see lots of errors like this in the log:

    15:06:29 IllegalStateException: @NotNull method com/jetbrains/swift/symbols/SwiftObjcTypeConverter.convertType must not return null
    15:06:32 IllegalStateException: @NotNull method com/jetbrains/swift/symbols/SwiftObjcTypeConverter.convertType must not return null
    15:06:38 IllegalStateException: @NotNull method com/jetbrains/swift/symbols/SwiftObjcTypeConverter.convertType must not return null
    15:06:42 IllegalStateException: @NotNull method com/jetbrains/swift/symbols/SwiftObjcTypeConverter.convertType must not return null
    15:06:48 IllegalStateException: @NotNull method com/jetbrains/swift/symbols/SwiftObjcTypeConverter.convertType must not return null
    15:07:53 IllegalStateException: @NotNull method com/jetbrains/swift/symbols/SwiftObjcTypeConverter.convertType must not return null
    15:07:55 IllegalStateException: @NotNull method com/jetbrains/swift/symbols/SwiftObjcTypeConverter.convertType must not return null

  3. Thomas CASSANY says:

    I’ve got a big project and it never finishes to build the symbol…

    • Stanislav Dombrovsky says:

      Most probably the default amount of memory available for AppCode is too small for you project, so there is not enough memory to cache symbols during the first opening (cause we need them for performing refactorings etc and in case of big projects the amount of symbols we need to cache is also big). Could you please try the following:

      1. Choose Help -> Edit custom VM options in menu
      2. Set -Xmx value to the biggest value your can (by default it should be 1200m, try setting it to bigger values).
      3. Re-start AppCode, after it symbols building should take less time.

      • Thomas CASSANY says:

        Thanks but I’ve already updated to 4Go(-Xmx4096m) for couples of month.

        • Stanislav Dombrovsky says:

          Are you using Swift in your projects? If so, could you please tell us an Xcode version you are using in AppCode settings?

          • Thomas CASSANY says:

            Yes I’ve swift and Objective-C on my project and I’m using Xcode 7.3.1. You can contact me by email if you need more detail or want me to test something.

    • Peter says:

      Regression in performance regarding building symbols here as well…

  4. Talles says:

    One the features that i most user in AppCode is the code completion / params completion but in swift that not works well, do you have a plan when its work well ?

    • Stanislav Dombrovsky says:

      Good news for you – we have just started to work on it again after other tasks. Track the progress on it here

  5. Thierry Leveque says:

    Like @Talles said, I am stil disappointed about the lack of support for some basic stuff we can find in other Jetbrain product. At least for the Swift language. For example there is no code inspection (there is even no setting at all for swift!). That means there is no warning for something as simple as forgetting to unwrap an optional variable.
    There is no suggestion to create a function or a class when you call one that do not exist.
    The refactoring is also very limited. For example, you cannot extract a function from existing lines of code.

    At every new version of AppCode, I am downloading it to test it to see if it is ready for me to switch from xcode… unfortunately is is not. It is sad. I am so used to IntelliJ Idea for java programming that I am almost crying when I have to work with xcode. But at this time it is almost more frustrating to work with AppCode because of the basic stuffs that is still missing.

    I really hope you guys have something bigger on the road map… Please tell us!

    • Stanislav Dombrovsky says:

      Thierry,

      For the moment I will ask you to wait for 2016.2 EAP which we plan to start after 2016.1.3 update will be published. It will contain initial implementation for Swift inspections.

      Regarding other tasks – we still work on features that are required to make more refactorings for Swift. For the moment the scope of 2016.2 roadmap will not change significantly, as there are already a huge amount of tasks.

Leave a Reply

Your email address will not be published. Required fields are marked *