似乎新的Xcode 4不再适用XCCodeSenseFormattingOptions
了。至少对我来说:(
无论如何,你知道如何将左大括号放到Xcode 4中自动完成的新行吗?我以前在终端输入这个,但它不适用于新的Xcode。
defaults write com.apple.Xcode XCCodeSenseFormattingOptions -dict BlockSeparator "\\n" PreMethodDeclSpacing ""
答案 0 :(得分:29)
XCode 4使用“代码片段”进行自动完成,并附带内置库:您可以通过单击“库”窗格中的{ }
图标查看代码片段库,这可能是在主XCode窗口的右下角。
所有XCode 4的内置代码片段都将开头大括号与语句放在同一行 - 这是XCode 4的if
语句的代码片段,例如:
if (<#condition#>) {
<#statements#>
}
因此,如果您希望XCode 4自动完成,请执行以下操作:
if (<#condition#>)
{
<#statements#>
}
...然后你必须相应地编辑代码片段。反过来,这会导致两个问题:
这些问题比在XCode 3中运行的简单defaults write
命令更具挑战性 - 但它是可能的,如果你已经确定并且你可以编辑属性列表,那么深入研究XCode 4的内容并逐一更改这些代码片段。
/Developer/Library/Xcode/PrivatePlugIns/IDECodeSnippetLibrary.ideplugin/Contents/Resources/SystemCodeSnippets.codesnippets
包含XCode 4的内置代码片段库。这可能不言而喻,但你应该在收费和编辑之前备份这个文件 - 之后你应该再做一次备份,并用你新的和改进的代码片段留出一份文件的副本,因为你会当您安装下一版本的XCode 4时,几乎肯定会覆盖/Developer/Library/Xcode
的内容。(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个单独的编辑。这是很多工作,但如果你真的,真的希望XCode 4的自动完成功能将你的开口括号放在一个单独的行上,就可以完成。
答案 1 :(得分:4)
在Xcode 4中无法做到这一点。请file a bug。
答案 2 :(得分:2)
只需删除一个覆盖Apple版本的用户代码。通过在“完成快捷方式”字段中输入与默认剪切中相同的名称来执行此操作。看看这个视频,了解如何: http://s3.amazonaws.com/screencasts.pragmaticstudio.com/017_custom_code_snippets.mov
答案 3 :(得分:2)
在此处查看我修改的(系统范围)Xcode 4.2代码段:
http://forrst.com/posts/Put_that_where_it_belongs_Xcode-PNL
它应该照顾所有相关的开放花括号用于iOS开发..
答案 4 :(得分:2)
在Xcode 4.3.1中,如果您从终端编辑以下文件作为sudo,如上面描述的Scott Forbes,您可以更改左括号出现的位置。我想,它会随着Xcode的新安装而消失,所以我会投票认为这也是Apple的一个错误。
/Applications/Xcode.app/Contents/PlugIns/IDECodeSnippetLibrary.ideplugin/Contents/Resources/SystemCodeSnippets.codesnippets
莱斯利
答案 5 :(得分:2)
我使用SnippetEdit进行Xcode4,效果惊人。它基本上允许您将xcode提供的旧片段替换为您自己定义的新片段。点击此处:https://www.macupdate.com/app/mac/43352/snippet-edit