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 中有效的命令 – 但它是possible,如果您有决心并且可以编辑属性列表,深入研究 XCode 4 的内部并一一更改这些代码片段。
/Developer/Library/Xcode/PrivatePlugIns/IDECodeSnippetLibrary.ideplugin/Contents/Resources/SystemCodeSnippets.codesnippets
包含 XCode 4 的内置代码片段库。这可能是不言而喻的,但您应该在充电和进行编辑之前备份该文件 - 之后您应该进行另一个备份,并留出一份包含新的和改进的代码片段的文件副本,因为您将几乎肯定会覆盖的内容/Developer/Library/Xcode
当您安装 XCode 4 的下一版本时。(Apple 也有可能会更改此文件的格式、添加新的代码片段或执行任何其他可能导致此答案无效的操作。)
如果您直接从 App Store 安装了 Xcode 4.3 或更高版本,则所有内容都位于 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 次单独的编辑。这是很多工作,但如果你真的really如果希望 XCode 4 的自动完成功能将左大括号放在单独的行上,这是可以做到的。