web-dev-qa-db-ja.com

Xcode:自動生成された中括弧のインデントを調整しますか?

Xcodeによって自動生成されたコードは、デフォルトで同じ行に中括弧があるようです。

@interface Controller : NSObject {

}

次のように、独自のラインのオープニングブレースが必要です。

@interface Controller : NSObject 
{

}

これは一般に、Xcodeによって自動生成されたすべてのメソッド/クラスに適用されます。 Xcodeの設定で、「Indent solo {by」を0に設定しています: alt text

どうすればこれを修正できますか?

38
PlagueHammer

Xcode 3.xの場合、次を使用できます。ターミナルセッションを開いて次のように入力した場合
defaults write com.Apple.Xcode XCCodeSenseFormattingOptions '{ "BlockSeparator" = "\n" ; }'
新しい行で新しいコードブロックを開始します。 XCodeを開いている場合は、新しいデフォルトを読み取って使用するために、XCodeを再起動する必要があることに注意してください。

Xcode 4.xから6.x(現在)の場合、Xcodeオートコンプリートを定義するスニペットを編集するための便利なツールとして スニペット編集 を使用することをお勧めします。現時点では無料で、うまく機能します。

22
Laughing_Jack

新しいプロジェクトおよび新しいファイルコマンド実際にはコードを生成しません; テンプレートと入力します。

必要な変更を加えて、独自のテンプレート(おそらくAppleのテンプレートに基づく)を作成する必要があります。

Xcode 3.1では、ストックテンプレートは/Developer/Library/Xcodeにあります。変更したコピーを~/Library/ApplicationSupport/Developer/Shared/Xcodeに配置します。それらのフォルダーのサブフォルダーに注意してください。

8
Peter Hosey

これを読んでください: XCCodeSenseFormattingOptions

このドキュメントでは、オートコンプリートが中括弧と引数のスタイルに使用するすべての書式設定オプションについて説明します。これが私のものです:

    XCCodeSenseFormattingOptions =     {
    BlockSeparator = "\\n";
    PreMethodDeclSpacing = "";
};
7
Mike Shields

これも私が見たいものです。関数やループ制御と同じ行に中括弧を付ける「新しい学校」の方法は好きではありません。

コードの行を編集してシャッフルするときは、関連するすべてのものを1行にまとめる方が簡単です。中括弧はスコープを定義するだけで、関数定義やプログラム実行の一部ではありません(if、forなど)。

すべてのテンプレートを変更することは実際には良い解決策ではありませんが、とにかく情報に感謝します。

7
Sakari

すべての状況で好みのスタイルを使用したい場合は、Laughing_Jackの回答とPeterHoseyの回答を組み合わせる必要があります。 Peter Hoseyが言ったことに加えて、CocoaTouchファイルテンプレートが次の場所にあることも知りたいと思うかもしれません。そのディレクトリをカスタムテンプレートにコピーすることもできます。

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/File Templates/Cocoa Touch Classes/

Xcodeユーザーデフォルトは、手動でコードを入力するときにスタイルを提供し、ファイルテンプレートは、新しいクラスを自動生成するときにそれを提供します。

3
gavin

「defaultswritecom.Apple.Xcode」は、最新バージョンのXcode(7.x)では機能しないと思います。

回避策は、デフォルトのコードスニペットを編集することです。

ただし、Xcodeではデフォルトのコードスニペットを変更することはできません。

それらを変更するには、「スニペット編集」プログラムを ここ からダウンロードできます。

0
OlDor