Xcode 4与新的开放大括号

好像新的Xcode 4不再适用XCCodeSenseFormattingOptions 。 至less对于我来说 :(

无论如何,你知道如何把开放大括号在Xcode 4中自动完成的新行吗? 我曾经在terminalinput这个,但它不适用于新的Xcode。

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

XCode 4使用“代码片段”进行自动完成,并附带一个内置的库:您可以通过单击“库”窗格中的{ }图标查看代码片段库,该窗格可能位于右下方主XCode窗口的一侧。

所有XCode 4的内置代码片段都将大括号放在与语句相同的行上 – 这是XCode 4的if语句的代码片段,例如:

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

所以,如果你想XCode 4自动完成,像这样:

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

…那么你必须相应地编辑代码片段。 这反过来导致两个问题:

  1. 在XCode 4中有44个代码片段,你必须分别编辑每一个代码片段。
  2. XCode 4将不允许您编辑内置的代码片段。

这些问题比在XCode 3中defaults write的简单的defaults write命令更具挑战性 – 但是如果您确定并且可以编辑属性列表,可以深入了解XCode 4的内容并逐个更改这些代码片段。

/Developer/Library/Xcode/PrivatePlugIns/IDECodeSnippetLibrary.ideplugin/Contents/Resources/SystemCodeSnippets.codesnippets包含XCode 4的内置代码片段库。 这可能不言而喻,但是您应该在对这个文件进行备份并进行编辑之前对其进行备份 – 之后您应该进行另一次备份,并将新的和改进的代码片段的文件副本放在一边,因为您会几乎肯定会在安装下一个版本的XCode 4时覆盖/Developer/Library/Xcode的内容。(苹果也可能会改变这个文件的格式,添加新的代码片断,或者做其他任何可能的事情使这个答案无效。)

如果您有直接从App Store安装的Xcode 4.3或更高版本,则所有内容都位于Xcode.app包中。 SystemCodeSnippets.codesnippets的path是/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 (&lt;#condition#&gt;) { &lt;#statements#&gt; }</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; 如果一切顺利的话,你应该可以inputif语句并查看结果。

您需要进行至less6次以上的编辑才能覆盖最常见的自动填充(例如, while ,等等),如果您想彻底forwhile需要进行大约40次单独编辑。 这是很多的工作,但是如果你确实需要XCode 4的自动完成function来把你的开口花括号放在一个单独的行上,那么可以这样做。

在Xcode 4中没有办法做到这一点。请做一个错误 。

在这里查看我修改后的(系统范围)Xcode 4.2片段:

http://forrst.com/posts/Put_that_where_it_belongs_Xcode-PNL

它应该照顾所有相关的开放大括号iOS开发..

在Xcode 4.3.1中,如果您将以下文件作为terminal上的sudo编辑,如上面所述的Scott Forbes,则可以更改左大括号的显示位置。 它会消失与Xcode的新安装,我会想象,所以我会投票,这也是一个苹果的错误。

/Applications/Xcode.app/Contents/PlugIns/IDECodeSnippetLibrary.ideplugin/Contents/Resources/SystemCodeSnippets.codesnippets

莱斯利

我使用SnippetEdit的Xcode4,它的作品令人惊讶。 它基本上可以让你用由你自己定义的新代码replace旧的代码片段。 查看更多这里: https : //www.macupdate.com/app/mac/43352/snippet-edit

只需制作一个覆盖苹果版本的用户代码即可。 通过在“完成快捷方式”字段中input与默认剪切相同的名称来完成此操作。 看看这个video的howto: http : //s3.amazonaws.com/screencasts.pragmaticstudio.com/017_custom_code_snippets.mov