views:

1088

answers:

1

I'm working with XCode 3.2 (on "Snow Leopard") which (still) has this nice "Text Macro" auto-completion feature (eg. if you type if it will expand to if (<#condition#>) { <#statements#> }). These macros are also available via "Edit->Insert Text Macro".

Unfortunately, the default templates don't match my beloved indentation and whitespace style so I'd like to modify them.

According to this slightly outdated StackOverflow thread the corresponding definitions should be located at /Developer/Library/Xcode/Specifications/{C,HTML}.xctxtmacro but I can't find anything there using Snow Leopard and XCode 3.2 (not sure which one is responsible).

Has anyone noticed where the Apple defined Text Macros are located nowadays?

+20  A: 

The only *.xctxtmacro files on my system were within the XCode.app bundle. After having a quick look a the definitions, I found a completely different way of adapting the formatting of all predefined macros:

You can simply set the XCCodeSenseFormattingOptions user defaults to modify the default newlines and other whitespaces within all macros!

For example the macro "if-else" looks like this by default:

if (<#condition#>) {
    <#statements#>
} else {
    <#statements#>
}

After executing the command

defaults write com.apple.Xcode XCCodeSenseFormattingOptions
-dict PreExpressionsSpacing "" BlockSeparator "\n" PostBlockSeparator "\n"

it looks like this (which I prefer):

if(<#condition#>)
{
    <#statements#>
}
else
{
    <#statements#>
}
racha