このページでは

ソースコードを美しくする

コードの美化とは、ソースコードファイルにインデントとスタイルを適用することです。以下の外部ツールを使ってソースコードを整形するには、実験的なBeautifierプラグインを使ってください:

Beautifier プラグインは、ソースコードを代入文、if ブロック、ループなどのコンポーネント構造に解析し、Beautifier の設定に従ってフォーマットします。あらかじめ定義されたスタイルを使用することも、独自のスタイルを定義することもできます。

ファイルを保存するときに自動的に整形するには

  1. ソースコードの書式設定に使用するツールをダウンロードし、インストールしてください:

    注: プラットフォームによっては、ツールをソースからビルドする必要があるかもしれない。

  2. Beautifierプラグインを有効にする。

    Note: Qt Creator 10.0.0以降、ClangFormatプラグインはデフォルトで有効になっています。Preferences>C++ >Formatting mode に移動し、Beautifier を有効にする場合はDisable を選択して ClangFormat をオフにします。

  3. Preferences>Beautifier >General に進み、使用するツールを選択します。

    ビューティファイア環境設定の「一般」タブ

  4. Automatic formatting on file save を選択すると、Tool フィールドで選択したツールを使用してファイルを保存するときに、自動的に美化されます。

    ファイル保存中にこの設定を一時的に無効にするには、File に移動し、Save Without Formatting を選択します。

  5. Artistic StyleClangFormat 、またはUncrustify にアクセスして、ツールの実行ファイルへのパスを設定し、使用するスタイルを定義する設定ファイルを選択します。

    ビューティファイア環境設定の「Uncrustify」タブ

    Beautifier Uncrustifyの環境設定

現在開いているファイルのフォーマット

Tools >Beautifier >Artistic Style,ClangFormat, またはUncrustify に移動して、現在のファイルのテキストを書式設定するためのアクションを選択します。

アクションのキーボードショートカットを作成できます。

Format Current File に移動して、現在開いているファイルをフォーマットします。

ClangFormatでカーソル位置で書式設定

テキストが選択されていないときにTools >Beautifier >ClangFormat >Format at Cursor に移動して、カーソル下の構文エンティティをフォーマットします。

選択された行をフォーマットするには、Format Line(s)

// clang-format off// clang-format on で選択行を折り返すにはDisable Formatting for Selected Text へ。

選択テキス ト を Uncrustify で組版

Tools >Beautifier >Uncrustify >Format Selected Text に移動し、テキストが選択されていないときは、デフォルトでファイル全体を書式設定します。

この動作をオフにするには、環境設定>Beautifier >UncrustifyFormat entire file if no text was selected をオフにします。

プラグインの有効化と無効化、およびBeautifierも参照してください

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.