AppCode 3.4 EAP opens: OptionSetType support, “Set value” for Core Data and more!

Hi,

Today we are excited to announce the launch of AppCode 3.4 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 3.4 gets stable. This EAP does not require an active license, so you can use it for free until the build expiration date.

AppCode 3.4 EAP

Swift

This build delivers the following features and improvements:

  • Parsing, completion and resolve for types conforming to OptionSetType protocol (OC-12078):
    OptionSetType
  • Parsing, completion and resolve for Self type (OC-12913):
    Self statement
  • Set value in Swift debugger for Core Data objects (OC-12896):
    Set value for Core Data
  • Resolve for enum members in if-case statement (OC-12878)
  • Resolving enum initialisers (OC-12639) and parsing named arguments in tuple patterns (OC-12985)
  • Fix for Swift Structure View freeze (OC-11526)

C++

Now the Quick Documentation popup (available via F1) also shows documentation for lambda expressions (but mind the remaining problem CPP-5491), namespace aliases (CPP-682) and explicit instantiation. This EAP build also addresses some problems with quick documentation in C++, like the internal error that would previously occur while fetching documentation for anonymous class/struct/enum.

Source directories management

New context menu called Mark directory as is available for folders in Files view:

Mark directory as

  • Mark directory as excluded. You can choose this option for 2 different cases. First is when you want to remove some directory contents from Inspect Code, Find in Path (⇧⌘F) or Search Everywhere (Double ⇧) results. By default these actions are executed not only on files included into Xcode project, but on all files that are located in the project root folder (except build directories like DerivedData). Second is when you have a source folder included into your Xcode project and you don’t want AppCode to index it. AppCode indexes all directories listed in your Xcode project in order to provide you with accurate code completion, navigation, refactorings and other smart features, but sometimes the source folder can be too big and indexing can become too expensive – in this case you can tell AppCode to manually exclude such folders from indexing.
  • Mark directory as library. If you have framework sources included into your Xcode project (or workspace), you may want to disable refactorings for it and take control over navigation and search options. If you mark some folder as a library, refactorings for sources in this folder will be disabled, as will code generation options and completion. By default, results from this folder will not be shown for Navigate to File, Class or Symbol actions. However, if you still want to navigate to the library sources, you can simply tick “Include non-project items/symbols/files” and the corresponding items will be shown in the navigation dialog.
  • Mark directory as project sources. In some situations this action can also be helpful – for example, if you want to get navigation and completion for some sources located in your project’s folder but not included into the currently opened Xcode project.

Version control

A couple of new features are included into this build:

  • By-word difference highlighting in Diff viewer:
    By word difference
  • Checkout with Rebase Git action, helpful in case you want to rebase a feature branch on master in one click:
    Checkout with rebase

Xcode compatibility

In one if the recent blog posts about AppCode 3.3.3 RC we’ve mentioned that there were some critical issues with debugger when using it with Xcode 7.3 beta 2. These issues should be fixed in this EAP build, so you can use it with the latest Xcode beta.

Note, that starting from AppCode 3.4 EAP minimal Xcode version supported by AppCode will be limited to Xcode 7.2. To use AppCode with earlier Xcode versions (for example, Xcode 7.1.1), please install AppCode 3.3.3.

Java Runtime Environment used with AppCode

IntelliJ Platform has migrated to Java 8 as the target platform. In practical terms this means the following:

  • AppCode won’t start under JDK versions older than 8. In general it shouldn’t be a problem for you, since AppCode installer contains an appropriate bundled JDK version.
  • In case you’ve switched the Java version used for running AppCode to a non-bundled one (via Switch IDE boot JDK…) and then imported these settings while starting the AppCode 3.4 EAP, you may receive the ‘unsupported Java version’ error. To fix the problem simply delete ~/Library/Preferences/AppCode34/appcode.jdk. In future versions we’ll try to handle this situation automatically (IDEA-149618).
  • Plugin writers will be able to use Java 8 features in their plugins.
  • The annoying issue with Java2D Queue Flusher thread crashing is fixed in this JDK version.

And more:

    • Support for RTL languages (Arabic and Hebrew) added to the editor.
    • CoffeeScript and Stylus plugins bundled in AppCode.
    • Improved UI for Attach to local process… action:
      Attach to local process

The full list of improvements and fixes is available here.
Download AppCode 3.4 EAP build 144.3600, give it a try and report issues to our tracker or share your feedback in comments!

Your AppCode team
JetBrains
The Drive to Develop

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

11 Responses to AppCode 3.4 EAP opens: OptionSetType support, “Set value” for Core Data and more!

  1. Tropper says:

    Yay! *woot* 😀

  2. Frank says:

    Thank you! Its finally looking like there is some light at the end of this Swift tunnel

  3. Dev says:

    This all looks great. I know the AppCode team is unlikely to be responsible… but those new 3D-effect scrollbars are really bad :-(

  4. Viktor says:

    This appcode hangs on Building symbols on a project with ~1000 files. 3.3 worked, although parsing was very slow.

Leave a Reply to Frank Cancel reply

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