看起來新的Xcode 4不再適用XCCodeSenseFormattingOptions
了。至少對我來說:(Xcode 4在新生產線上用開口支架
反正你知道如何將左大括號爲新的線路爲自動完成在Xcode 4?我以前在終端輸入這個,但它不會爲新的Xcode的工作。
defaults write com.apple.Xcode XCCodeSenseFormattingOptions -dict BlockSeparator "\\n" PreMethodDeclSpacing ""
看起來新的Xcode 4不再適用XCCodeSenseFormattingOptions
了。至少對我來說:(Xcode 4在新生產線上用開口支架
反正你知道如何將左大括號爲新的線路爲自動完成在Xcode 4?我以前在終端輸入這個,但它不會爲新的Xcode的工作。
defaults write com.apple.Xcode XCCodeSenseFormattingOptions -dict BlockSeparator "\\n" PreMethodDeclSpacing ""
的XCode 4個使用「代碼段」做自動完成,並配有內置其中的庫船:您可以查看代碼通過點擊庫窗格中的{ }
圖標(可能位於主XCod的右下角)中的代碼庫電子窗口。
所有的XCode 4內置的代碼片段將左大括號在同一行的聲明 - 這是的XCode 4的一個if
聲明代碼段,例如:
if (<#condition#>) {
<#statements#>
}
所以,如果你想XCode 4自動完成,如下所示:
if (<#condition#>)
{
<#statements#>
}
...然後您必須相應地編輯代碼段。這又導致兩個問題:
這些問題比3的XCode工作的簡單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的自動完成將您的開放大括號放在一個單獨的行上,它可以完成。
和正則表達式是... – Ziggy 2012-06-14 23:14:55
有,你可以用它來管理和編輯的代碼片段,稱爲[片段編輯](HTTP應用程序://cocoaholic.com/snippet_edit)。從片段管理中消除了很多痛苦。 – epologee 2012-06-21 10:34:29
注意片段編輯爲$ 8 – arolson101 2012-07-29 19:29:13
只是要剪斷用戶代碼覆蓋蘋果的版本。通過在「完成快捷方式」字段中輸入與默認剪切中相同的名稱來完成此操作。看看這個視頻的HOWTO: http://s3.amazonaws.com/screencasts.pragmaticstudio.com/017_custom_code_snippets.mov
看看我的修改(系統級)片段的Xcode的4.2位置:
http://forrst.com/posts/Put_that_where_it_belongs_Xcode-PNL
應該採取iOS的所有相關的開放大括號的護理髮展..
感謝您提供修改後的文件Sveinung!複製粘貼並且看起來像所有我測試過的都很好。 (xCode 4.5b) – 2012-06-13 18:56:34
酷,很高興知道4.5仍然支持這種「黑客」。 – 2012-06-14 08:52:26
我不得不把它放在/Applications/Xcode.app/Contents/PlugIns/IDECodeSnippetLibrary.ideplugin/Contents/Resources/SystemCodeSnippets.codesnippets中,但它在xcode 4.4中工作 – arolson101 2012-07-29 19:30:58
在Xcode中4.3.1,如果從所述終端編輯下列文件作爲須藤,如上所述斯科特福布斯,則可以將開括號顯示的位置而改變。它會消除新的Xcode的安裝,我會想象,所以我會投票,這也是蘋果的一個錯誤。
/Applications/Xcode.app/Contents/PlugIns/IDECodeSnippetLibrary.ideplugin/Contents/Resources/SystemCodeSnippets.codesnippets
張國榮
我用SnippetEdit爲Xcode4和它的作品令人驚訝。它基本上可以讓你用由你自己定義的新代碼替換由xcode給出的舊片段。在這裏看到更多:https://www.macupdate.com/app/mac/43352/snippet-edit
我有同樣的問題。 – David 2011-03-10 19:10:27
true ...同樣的問題 – xpepermint 2011-03-20 23:50:56
我在這裏回答了類似的問題:(有一個應用程序!) http://stackoverflow.com/questions/4963034/xcode-built-in-snippets-edit/11135963#11135963 – Cocoaholic 2012-06-21 10:23:54