Question

A way to automatically organize #imports in Xcode

I love the "Organize Imports" command in Eclipse to implicitly add and remove classes imported into a source file (as in Java or ActionScript).

Is there a command in Xcode to update the #import directives at the top of.m Objective-C files based on the classes referenced within the file?

 45  15543  45
1 Jan 1970

Solution

 83

You can do this by creating an Automator action and use that in Xcode as well as everywhere in Mac OS X. To do that, do the following:

  1. Start Automator -> New
  2. Choose "Quick Action" (or "Service" on older MacOS/Automator versions)
  3. add a "run shell script" action
  4. use sort | uniq as the script and check the "output replaces selected text" checkbox
  5. save and give it a name (e.g. "sort & unique")
  6. check "Output replaces selected text"

After you saved it, you can just select your imports in Xcode, right click and choose your "sort & unique" action to organize your imports.

This is not as good as the organize import actions in Eclipse or IntelliJ, because it doesn't removes unused stuff etc. but it's better than nothing.

PS: Got that from WWDC 2012 Sessions - Session 402 Working Effeciently with Xcode (starting at 6:15)

EDIT

I started using AppCode, the Objective-C IDE from JetBrains, and it has features like "organise imports". You should check it out: http://www.jetbrains.com/objc/.

2012-06-24

Solution

 3

I'm resolving this as not currently a feature of Xcode :(

2010-04-26