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#> }
…那么你必须相应地编辑代码片段。 这反过来导致两个问题:
- 在XCode 4中有44个代码片段,你必须分别编辑每一个代码片段。
- 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 (<#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; 如果一切顺利的话,你应该可以inputif
语句并查看结果。
您需要进行至less6次以上的编辑才能覆盖最常见的自动填充(例如, while
,等等),如果您想彻底for
, while
需要进行大约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