Qtブログ(日本語)

インデントの設定が新しくなりました

作成者: 鈴木 佑|Jun 10, 2011 8:21:55 AM

この記事は Qt Blog の "New indenter settings” を翻訳したものです。
執筆: Jarek Kobus 2011年5月26日

数日前に、新しいインデントの設定が Qt Creator のマスターリポジトリにマージされました。この新しいインデントの設定についての解説をします。

グローバルなコーディングスタイルの設定

C++ のインデントでは、(クラス、メソッド、ブロック、名前空間のそれぞれで)内容をどのようにインデントするのかと、(クラス、名前空間、enum、メソッド、ブロックの)閉じ括弧をどのようにインデントするかを選ぶことができます。switch 文とその内容についてはより細かい設定ができるようになっています。また、複数行にまたがる場合のアライメントの振る舞いも設定できます。

新しい C++ のインデントの設定はオプションダイアログ(Mac では環境設定)の "C++" のカテゴリの下の "Code Style" タブの中にあります。さらに、タブの設定が "General" タブの中にあり、C++ エディタのみの設定を行うことが可能です。もしくは、グローバルな設定を C++ でも使用する選択も可能です(デフォルト)。オプションの変更は直ちにプレビューに反映されるため、この場でテストをすることも可能です。

プロジェクトのコーディングスタイルの設定


プロジェクト毎に C++ のコーディングスタイルを設定したい場合もあるでしょう。「プロジェクトの設定」ではグローバルな設定を上書きすることができます。グローバルな設定で問題ない場合には、この設定は必要ありません(デフォルトでは無効です)。プロジェクトのコーディンングスタイルを変更するためには、「プロジェクト」モードに切り替えて、上部のタブの中から設定したいプロジェクトのタブを選択し、"Code Style Settings" を選択してください。"Use global C++ settings" のチェックボックスのチェックを外すと、そのプロジェクトに対するコーディングスタイルの設定が変更可能になります。さらに、"General" タブの "Settings" のコンボボックスではどのタブの設定がプロジェクトの C++ のコードに対して使用されるのかを選択することが可能です。”Custom” を選択して独自の C++ のタブの設定をすることができますし、"Global text editor" の設定や "Global C++" の設定や、(プロジェクトモードの "Editor Settings" にある)"Project text editor" の設定を選択して使用することもできます。

タブの設定

タブの設定も言語毎に設定できるようになりました。現在は C++ と QML/JS がサポートされています。タブの設定は言語ごとにグローバルレベルとプロジェクトレベルの両方で可能です。グローバルレベルの設定は言語のカテゴリ("C++" や "Qt Quick")の下にあります。プロジェクトレベルのものはプロジェクトモードの中の "Code Style Settings" の下の "Language" コンボボックスを選択したところにあります。

現在のタブの設定は4つの異なるレベルで可能になっています。

Global text editor: 全ての編集向け
Global C++ / Qt Quick: C++ /QmlJs の編集向け
Project text editor: プロジェクトに含まれる全てのファイルの編集向け
Project C++ / Qt Quick: プロジェクトに含まれる C++ / QmlJs の編集向け

タブの設定のフォールバックの関係

緑の矢印はそれぞれのレベルからのタブの設定のフォールバックの可能性を表します。

どのタブの設定が有効になりますか?

1つのプロジェクトを開いた際のタブの設定は上記のようになります。どのタブのサイズが有効になるでしょうか?以下にいくつか例を示します。

プロジェクトに含まれる cpp ファイル: 8
プロジェクトに含まれる txt ファイル: 6
プロジェクトに含まれない cpp ファイル: 4
プロジェクトに含まれない txt ファイル: 2

プロジェクトの設定の保存

現在はこれらの設定は .user ファイルの中に保存されますが、別のファイルに分離する予定です。分離した設定ファイルをプロジェクトのリポジトリに含めることでユーザー同士でこの設定を共有することが可能になるでしょう。

どんな提案でも大歓迎です: http://bugreports.qt.nokia.com