Ответ 1
XCode 4 использует "фрагменты кода" для выполнения автозаполнения и поставляется со встроенной библиотекой из них: вы можете просмотреть библиотеку фрагмента кода, щелкнув значок { }
на панели библиотеки, который, вероятно, находится на нижнюю правую часть основного окна XCode.
Все встроенные фрагменты кода XCode 4 помещают открытую скобку в ту же строку, что и оператор - это фрагмент кода XCode 4 для оператора if
, например:
if (<#condition#>) {
<#statements#>
}
Итак, если вы хотите, чтобы XCode 4 автозаполнялся следующим образом:
if (<#condition#>)
{
<#statements#>
}
... тогда вам придется отредактировать фрагмент кода соответственно. Это, в свою очередь, приводит к двум проблемам:
- В XCode 4 есть 44 фрагмента кода, и вам придется редактировать их отдельно.
- XCode 4 не позволит вам редактировать встроенные фрагменты кода.
Эти проблемы более сложны, чем простая команда defaults write
, работающая в XCode 3, но это возможно, если вы решились, и вы можете редактировать списки свойств, чтобы вникать в кишки XCode 4 и изменить этот код фрагменты по одному.
/Developer/Library/Xcode/PrivatePlugIns/IDECodeSnippetLibrary.ideplugin/Contents/Resources/SystemCodeSnippets.codesnippets
содержит библиотеку XCode 4 встроенных фрагментов кода. Это, вероятно, само собой разумеется, но вы должны сделать резервную копию этого файла перед внесением изменений и внесением изменений, а затем вы должны сделать другую резервную копию и отделить копию файла с новыми и улучшенными фрагментами кода, поскольку вы будете почти наверняка перезаписывают содержимое /Developer/Library/Xcode
при установке следующей версии XCode 4. (Также возможно, что Apple изменит формат этого файла, добавит новые фрагменты кода или сделает любое количество других вещей, которые могли бы отобразить этот ответ неактивный.)
Если у вас установлен Xcode 4.3 или более поздней версии непосредственно из App Store, все находится внутри пакета Xcode.app. Путь к SystemCodeSnippets.codesnippets - /Applications/Xcode.app/Contents/PlugIns/IDECodeSnippetLibrary.ideplugin/Contents/Resources/SystemCodeSnippets.codesnippets
.
Во всяком случае, вы найдете, что указанный выше файл содержит несколько записей, подобных этому:
<dict>
<key>IDECodeSnippetVersion</key>
<integer>1</integer>
<key>IDECodeSnippetCompletionPrefix</key>
<string>if</string>
<key>IDECodeSnippetContents</key>
<string>if (<#condition#>) {
<#statements#>
}</string>
<key>IDECodeSnippetIdentifier</key>
<string>D70E6D11-0297-4BAB-88AA-86D5D5CBBC5D</string>
<key>IDECodeSnippetLanguage</key>
<string>Xcode.SourceCodeLanguage.C</string>
<key>IDECodeSnippetSummary</key>
<string>Used for executing code only when a certain condition is true.</string>
<key>IDECodeSnippetTitle</key>
<string>If Statement</string>
<key>IDECodeSnippetCompletionScopes</key>
<array>
<string>CodeBlock</string>
</array>
</dict>
Это фрагмент кода для автозавершения оператора if
. Отредактируйте IDECodeSnippetContents
, чтобы поместить открытую фигуру в новую строку, сохраните свою работу и перезапустите XCode 4; если все пойдет хорошо, вы можете ввести оператор if
и посмотреть результаты.
Вам нужно будет сделать как минимум полдюжины дополнительных исправлений, чтобы охватить наиболее распространенные автозаполнения (for
, while
и т.д.), и если вы хотите быть тщательным, то потребуется около 40 отдельных редактирует. Это большая работа, но если вы действительно хотите, чтобы XCode 4 автоматически запустил ваши скобки на отдельной строке, это можно сделать.