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 поместило ваши начальные скобки в отдельную строку, это можно сделать.