25

XCCodeSenseFormattingOptions新しい Xcode 4 はもう適用されないようです。少なくとも私にとっては :(

とにかく、Xcode 4 でオートコンプリートのために新しい行に左中かっこを配置する方法を知っていますか? 以前はターミナルでこれを入力していましたが、新しい Xcode では機能しません。

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

6 に答える 6

29

XCode 4は、「コードスニペット」を使用してオートコンプリートを実行し、それらの組み込みライブラリが付属してい{ }ます。ライブラリペインのアイコンをクリックすると、コードスニペットライブラリを表示できます。これは、おそらくの右下にあります。メインのXCodeウィンドウ。

XCode 4のすべての組み込みコードスニペットは、ステートメントと同じ行に開始中括弧を配置します。これは、ステートメントのXCode4のコードスニペットですif。次に例を示します。

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

したがって、XCode 4を次のようにオートコンプリートしたい場合は、次のようにします。

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

...次に、それに応じてコードスニペットを編集する必要があります。これにより、2つの問題が発生します。

  1. XCode 4には44個のコードスニペットが組み込まれており、それぞれを個別に編集する必要があります。
  2. XCode 4では、組み込みのコードスニペットを編集することはできません。

defaults writeこれらの問題は、XCode 3で機能する単純なコマンドよりも困難ですが、決心してプロパティリストを編集できる場合は、XCode 4の本質を掘り下げて、これらのコードスニペットを1つずつ変更することができます。

/Developer/Library/Xcode/PrivatePlugIns/IDECodeSnippetLibrary.ideplugin/Contents/Resources/SystemCodeSnippets.codesnippetsXCode4の組み込みコードスニペットのライブラリが含まれています。これはおそらく言うまでもありませんが、充電して編集する前にこのファイルのバックアップを作成する必要があります。その後、別のバックアップを作成し、新しく改善されたコードスニペットを含むファイルのコピーを取っておきます。 XCode 4の次のリリースをインストールするときに、ほぼ確実に内容を上書きします/Developer/Library/Xcode(Appleがこのファイルの形式を変更したり、新しいコードスニペットを追加したり、この回答を無効にする可能性のあるその他の処理を行ったりする可能性もあります)。

Xcode4.3以降をAppStoreから直接インストールしている場合は、すべてが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 (&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て、最初のブレースを新しい行に配置し、作業内容を保存してから、XCode4を再起動します。すべてがうまくいけば、ifステートメントを入力して結果を確認できるはずです。

for最も一般的なオートコンプリート( 、など)をカバーするには、少なくとも5ダース以上の編集を行う必要がありますwhile。徹底したい場合は、約40回の個別の編集が必要になります。大変な作業ですが、XCode 4のオートコンプリートで最初のブレースを別の行に配置したい場合は、それを行うことができます。

于 2011-04-23T09:19:28.820 に答える
4

Xcode 4 でそれを行う方法はありません。バグを報告してください。

于 2011-04-22T17:02:02.323 に答える
2

Xcode 4.3.1 では、ターミナルから次のファイルを sudo として編集すると、前述の Scott Forbes のように、開き括弧が表示される場所を変更できます。これは Xcode の新規インストールで解消されると思いますので、これは Apple のバグでもあると投票します。

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

レスリー

于 2012-03-09T17:49:45.013 に答える
2

私は Xcode4 に SnippetEdit を使用しましたが、驚くほど機能します。基本的に、xcode によって指定された古いスニペットを、自分で定義した新しいスニペットに置き換えることができます。詳細はこちら: https://www.macupdate.com/app/mac/43352/snippet-edit

于 2014-01-24T05:41:52.083 に答える
2

Appleのバージョンを上書きするユーザーコードを切り取るだけです。これを行うには、[補完ショートカット] フィールドに、デフォルトの切り取りと同じ名前を入力します。ハウツーについては、このビデオをご覧ください: http://s3.amazonaws.com/screencasts.pragmaticstudio.com/017_custom_code_snippets.mov

于 2011-06-21T14:37:29.507 に答える
2

ここで、Xcode 4.2 用に変更した (システム全体の) スニペットを確認してください。

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

iOS 開発に関連するすべての開き中括弧を処理する必要があります。

于 2011-10-12T18:16:02.043 に答える