New AppCode 3.4 EAP: code folding for Swift

Hi,

New AppCode 3.4 EAP, build 145.256 is available for download. The patch update is also available if you are using previous 3.4 EAP build.

This update brings one of the long-awaited Swift code editing features – code folding of declarations in Swift.

Let’s go through all the code folding options available:

  • Use +/- toggles on the left side of the editor window to expand/collapse any declaration:Code folding toggles
  • Mouse over the collapsed declaration to see it’s contents:
    Folding contents
  • Expand/collapse the current code block using ⌘+/⌘-:Expand/collapse current block
  • Expand or collapse any declaration recursively via ⌥⌘+/⌥⌘-:Expand/collapse recursively
  • Expand or collapse all declarations in the current file using ⇧⌘+/⇧⌘-:Expand/collapse all

The same options are also available for #if/#else/#elseif/#endif conditional compilation statements.

As usual, you can find complete release notes here. Feel free to share your feedback in the comments section below or in our tracker.

Posted in Announcement | Tagged , | 4 Comments

Meet AppCode team at mdevcon!

Good news everyone!

This March we’ll be happy to join mdevcon in Amsterdam, Netherlands. Meet us at the booth during the main conference day, March 18, 2016.

As usual, we’ll be showing demos, answering questions, sharing tips&tricks and our future plans at the booth, as well as giving away cool stickers and other presents. And you’ll have a chance to win a free license!

We are raffling 2 main conference day tickets to mdevcon, so please comment on this blog post and tell us that you want to win a ticket! The two winners will be randomly selected on March 9th at 16:00 GMT. Raffle closed, congrats to winners selected in comments!

See you soon!
The AppCode Team

Posted in Announcement, Events | Tagged | 8 Comments

New AppCode 3.4 EAP, build 145.184

Hi everyone,

New AppCode 3.4 EAP, build 145.184 is available for download. The patch update is also available if you are using previous 3.4 EAP build.

This build addresses the following important issues:

  • Incorrect intentions about missing localization (OC-6896)
  • Problem with Rename refactoring for already localized strings (OC-11707)
  • Slow autocompletion appeared since build 144.4199 (IDEA-151684)

From the C++ side this build delivers a lot of changes in Quick documentation. In addition to the information that is already displayed, AppCode will show hyperlinks for types referenced in documentation (works now for classes, structs, unions and enums) and the following declaration modifiers that were omitted before:

  • function specifiers (inline, virtual, explicit, final)
  • constexpr specifier (constexpr)
  • storage class specifiers (register, static, thread_local, extern, mutable)
  • cv qualifier (const, volatile, mutable)
  • typedef
  • typename

Find the complete release notes here and feel free to share your feedback in the comments section below or in our tracker.

Posted in Announcement | Tagged , | 5 Comments

New AppCode 3.4 EAP, build 145.61

Hi,

New AppCode 3.4 EAP, build 145.61 is available for download. The patch update is also available if you are using previous 3.4 EAP build.

This build delivers the following improvements:

  • Starting from this version AppCode will use the same DerivedData directory location as Xcode (see OC-13193). It means that in case you have already built your project in Xcode, AppCode will not start compilation process from scratch and vice versa.
  • Variadic templates support in C++ (CPP-5465) which includes a lot of fixes, especially for problems in overload resolution and false positives in code analysis for related code constructs.

Important note: the issue with autocompletion is still present in this build and it should be fixed in one of the upcoming EAPs.

Find the complete release notes here and feel free to share your feedback in the comments section below or in our tracker.

Your AppCode team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , | 5 Comments

New AppCode 3.4 EAP: updated Podfile completion, improved build messages and more!

Hi everyone,

We are happy to announce that a fresh build (144.4199) is now available for download. The patch update is also available if you are using a previous 3.4 EAP build.

While we are working hard on the big Swift support features from our roadmap, we do not forget about general IDE experience and valuable integrations.

Build messages

Since the first Swift version was released, many messages have been added to xcodebuild output that were reported as notes in AppCode build messages window (Cmd+0). While some of these messages were actual compiler notes, most of them did not contain any valuable information, so even in the case of small Swift project there were many irrelevant messages after build. Starting from this version, parsing of xcodebuild messages is significantly improved:

  • All build phases that do not contain really valuable information (such as Writing auxiliary files… for example) are shown only as a build progress messages in the IDE status bar.
  • Build progress messages were revised and now every build phase should have a correct and user-friendly description
    Progress messages
  • Information shown in Messages window is limited to actual compiler notes, warnings and errors (with the exception of Run script phases output displayed as notes):
    Progress messages
  • Issue with false errors appearing in build messages has been fixed

Please note that the problem with “Included from…” messages is still present and will be fixed in one of the upcoming EAP builds.

Completion in Podfiles

CocoaPods manager has been integrated into AppCode since version 2.5. You can create Podfiles directly from the IDE, update and install your pods right from the project context menu, and edit Podfiles – with completion, highlighting and on-the-fly inspections for pods specifications available.

This version adds the following statements to the Podfile completion list:

Watch the small demo below to see all these features in action:

Swift support

From the Swift side this build delivers the following improvements:

  • Go to definition for Swift methods now shows full signature – parameters and return type (OC-13112)
  • Parsing for variadic parameters in closures (OC-13164) and functions (OC-12584) at any position, and for variadics in type elements (OC-13166)
  • Fix for parser errors in if-case-let constructions
  • Correct resolve for typealias initializers (OC-11647)

Finally, C++ users will be glad to know that unpleasant issue with unexpected headers suggested for STL symbols while using auto-import is fixed. View complete release notes here.

Download the build and give it a try right now. As usual, the EAP doesn’t require an active license and you can use it for free for 30 days.

Your AppCode team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , , | 4 Comments

New AppCode 3.4 EAP, build 144.3891

New AppCode 3.4 EAP, build 144.3891 is available for download. The patch update is also available if you are using previous 3.4 EAP build.

This build addresses the following important issues:

  • Error while parsing function array types (OC-13074)
  • “Value is not of a pointer type” error in Swift debugger (OC-12811)
  • Resolving inherited initialisers for Swift types (OC-11729)
  • Ambiguous function resolve when parameters are not named (OC-12398)
  • No autocompletion for variables with Objective-C type that were declared without type annotation in Swift (see OC-12866 and related issues):
    swift_completion@2x

In addition, you can now build and clean your project directly after opening it in AppCode in case you had already opened it for the first time and initial caching for symbols in your project had performed. Note that on first project opening, Build and Clean actions in the Run menu will still be disabled.

The list of other fixes and improvements can be found here. Feel free to share your feedback in the comments section below and submit feature requests and problems to our tracker.

Your AppCode team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , , | 1 Comment

AppCode 3.3.3 update is out!

Hi everyone,

We are glad to announce that AppCode 3.3.3 update is available for download. If using AppCode 3.3.2 you will get an automatic update notification in the IDE.

AppCode 3.3.3 splash

Let’s take a quick look at the features and improvements added in this update.

Swift

Protocol extensions

Benefit from parsing, completion and resolve support for protocol extensions in Swift.

Protocol extensions

Use the Implement methods… action (^I) inside an extension clause to generate the implementation for protocol methods and navigate instantly between method definition in protocol and its implementation in extension using icons on the left gutter:

Implement action

Debugger

View Swift collection elements in a convenient way with all irrelevant attributes skipped, both in the Variables view and the editor (in case the inline variables view is enabled), even for complex CollectionType subclasses such as FlattenCollection:

Collections rendering

Use Set value for Swift array elements and type properties to change a value while debugging your application:

Set value for Swift

Error handling

Use Add ‘catch’ clause and Add default ‘catch’ clause intentions to quickly add a catch clause for a specific error thrown in the do block, or just a general catch clause to handle any error:

Add catch clause intention

Try statement incorrectly placed on the right hand of a binary operator? Use the Move ‘try’ to left quick-fix:

Move try quick-fix

Apple TV support

While general support for Apple tvOS simulators was introduced in AppCode 3.3.2, there were important issues that prevented tvOS apps from running on Apple TV devices (OC-12845) and did not allow running tvOS framework tests on the Apple TV simulator (OC-12614). These issues are fixed in update 3.3.3. In addition, tvOS and watchOS SDK are now visible in the Base SDK drop-down on the Project Settings pane.

Performance improvements

One of the most frequently reported issues has been the performance of the Processing Swift modules… phase, which took too long while opening the first project, even for small projects. We’ve improved the mechanism for loading standard Swift frameworks, and starting from this update the performance of this particular indexing phase should become significantly better if you are using Xcode 6.4/7.0.1/7.1.1/7.2.x, as pre-built caches for standard Swift frameworks are bundled with the AppCode installer. In the future, caches for upcoming Xcode versions will be included as well.

Please note that Xcode compatibility for this update is limited to the 7.2.x version max (read this blog post for details). Support for the current Xcode 7.3 beta and upcoming beta versions will be delivered in 3.4 EAP builds.

Find the complete release notes here.

Your AppCode team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , , | 2 Comments

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

Posted in Announcement | Tagged , | 11 Comments

AppCode 3.3.3 RC2 is out

Hi everyone,

After the first 3.3.3 release candidate we decided to publish an update with a couple of stability fixes for resolve and code generation in Swift.

As usual, you can download AppCode 3.3.3 RC2 from our confluence page or just install the patch update which will be available in case you are using AppCode 3.3.3 RC. Note, that this RC build requires an active AppCode license or is available for 30 day evaluation.

Feel free to share your feedback in the comments section below and submit feature requests or problems to our tracker.

Update: Swift module caches for Xcode 7.2.1 are not yet included into this version. It can affect speed of Processing Swift modules… phase while project opening. This issue will be fixed in release build, so you will be able to use Xcode 7.2.1 without such problems.

Your AppCode team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , | Leave a comment

AppCode 3.3.3 Release Candidate

Hello everyone,

AppCode 3.3.3 RC is available for download on our confluence page. The patch update is also available if you are using previous 3.3.3 EAP build. And also please note that this RC build requires an active AppCode license or is available for 30 day evaluation.

This build mostly contains bug fixes and addresses a couple of important issues:

  • Running tools installed into /usr/local/bin in “Run Script” build phase (OC-12751)
  • Problems with auto-formatting after refactoring when creating a new file (OC-12483OC-12841)

Important note: 2 days ago Apple published Xcode 7.3 beta 2 and there are some crucial changes in debugger that break compatibility with AppCode 3.3.3. As we are going to release 3.3.3 update soon, we’ve decided to limit it’s maximum supported Xcode version to 7.2. Support for Xcode 7.3 beta 2 will be delivered in upcoming 3.4 EAP builds.

Feel free to share your feedback in the comments section below and submit feature requests and problems to our tracker.

Your AppCode team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , | Leave a comment