New AppCode build: i18n, add files to project, folding, etc… off to WWDC

Yay! WWDC time! And we’re almost off to US, California. We are all very excited to be there and hopefully to talk to you guys there.

But we’ve been busy these last days and have readied a new build for you. You can go and get it from the AppCode Early Access page. Here’s what has been done since the last update:

1) Localization support (i18n)

  • quick navigation from NSLocalizedString to .strings file
  • completion
  • folding
  • support for custom tables
  • verification that the string is localized for all localizations
  • quickfixes (new table generation, adding localizations)
  • intention action for wrapping a string literal to a localized string.

2) Add files, groups
Now you can add the files to the project using context menu | Add | Files… from the project view. You can add the files outside of the project root folder. In this case AppCode will confirm if you want to copy the files to the project or leave them at the original place. Also you can create and delete the groups within AppCode.

3) Escape analysis
AppCode will warn you if your methods return references to the local variables, stack-allocated blocks or any variable that may point to them.

4) Memory leak analysis enhanced
Now AppCode uses completely different approach to ivars memory leak analysis. It builds the call graph from the dealloc method (including method calls, function calls, property setter calls in the form “self.prop = ...“) and if some release statement is reachable from dealloc, the warning is suppressed. If there’s a release statement not reachable from dealloc, the warning still exists (earlier it was suppressed by any release statement anywhere in the class).
The new approach is more accurate.

5) Code Folding
In IDE Settings | Editor | Code folding you can now customize the default folding of methods, instance variables lists, imports, @synthesize statements, comments, localized strings and other statements.

6) Macros
Code completion, find usages, rename and other actions are now available from macro calls.

7) Debugger breakpoints
Conditional breakpoints added and an ability to log an evaluated message on breakpoint-hit.

And there are other things from our issue tracker you may be interested.

And, hey, you’ll notice something else even before you start the new build, as soon as you mount the DMG. Let us know how you like this new one!

Develop with pleasure!
-JetBrains AppCode team