このオプション ページのコントロールにより、JSON ファイルやその他 Clang-Format でサポートされるファイルの種類のフォーマットを設定します。書き込み時、Clang-Format でサポートされるファイルは C、C++、C#、Java、JavaScript、JSON、Objective-C、および Protobuf ファイルです。
テキスト比較でのファイルのフォーマット
現在フォーカスされているテキスト比較ペインをフォーマットするには、Ctrl+Alt+L キーボード ショートカットを使用します。または、テキスト比較のすべてのペインをフォーマットするには、Ctrl+Alt+Shift+L を使用します。
使用する .clang-format 構成ファイルの決定方法
Clang-Format スタイル オプションは、.clang-format
という名前の YAML 構成ファイルを使用して指定されます。
Merge は Clang-Format を呼び出す際、次のアルゴリズムに従って、使用するのに最も適した .clang-format
構成ファイルを決定します。
-
ファイルの整形時、常にこの .clang-format を使用するオプション(下記参照)が設定されている場合は、.clang-format のパス設定で指定された
.clang-format
ファイルが存在すれば、そのファイルを使用します。ファイルの整形時、常にこの .clang-format を使用するオプションが設定されていても、対応する.clang-format
ファイルが見つからない場合は、Merge に組み込まれているシンプルな.clang-format
ファイルを使用します。 -
オプションが設定されていない場合は、現在フォーカスされている比較ペインのファイルから始めます。そのファイルが
にある一時ファイルである場合は、手順 5 に進みます。%USERPROFILE%\AppData\Local\Temp
-
現在のファイルがあるフォルダーに
.clang-format
ファイルが存在する場合は、それを使用します。 -
そうでない場合は、
.clang-format
ファイルが見つかるか、またはルート フォルダーに達するまで親フォルダーをチェックし、フォルダー階層を上方向へ検索します。存在すれば、最初に見つかった.clang-format
ファイルを使用します。 -
.clang-format
ファイルが見つからない場合は、テキスト比較の他のファイルに対して次々手順 2 から 4 を繰り返します。このとき、次の対象は右方向のファイルとなり、必要であれば一番左のファイルに折り返します。 -
比較中のどのファイルに対しても
.clang-format
ファイルが見つからない場合は、.clang-format のパス設定で指定されたファイルが存在すれば、そのファイルを使用します。見つからない場合は、Merge に組み込まれているシンプルな.clang-format
ファイルを使用します。
このアルゴリズムは、一時ファイル(関連する .clang-format
ファイルがない可能性が高い)が作業ファイル(当該ファイルがある可能性がある)と比較されるケースを処理することを目的としています。そのような状況(これは、特定の SCM システムによって起動された比較の場合にはよくある状況です)では、対応する .clang-format
ファイルを持たないファイルは、対応するファイルを持ついずれかのファイルを使用して整形されます。
一般的な Clang-Format オプション
Clang-Format 実行可能ファイルの場所
Clang-Format プログラムは Merge にバンドルされていないため、使用できるようにするには、このプログラムがローカルに存在している必要があります。Clang-Format 実行可能ファイルはリストされている場所で、優先順の高い場所から順に検索されます。
.clang-format のパス
このフィールドでは、デフォルトの .clang-format
構成ファイルの場所を指定します。
ファイルの整形時、常にこの .clang-format を使用する
比較したファイルのフォルダー階層で見つかった .clang-format
構成ファイルよりも、指定したデフォルトの構成ファイルを使用するには、このオプションをオンにします。
JSON フォーマット
Clang-Format を使って JSON を整形する(組み込みではない、再整理フォーマッタ)
このオプションをオンにした場合、JSON ファイルは Clang-Format を使用して整形されます。オフにした場合は、代わりに、Merge に組み込まれている JSON フォーマッタを使用して整形されます。
組み込みのフォーマッタを使用すると、JSON 要素が大幅に再整理される可能性があります。これは、辞書(つまり、オブジェクト メンバー)がキーによってアルファベット順に整形されるからです。この動作は、ファイルの実際の内容ではなく、主に要素の並びが異なる JSON ファイルを比較する場合に役に立ちます。
組み込みのフォーマッタは、JSON の仕様を厳守しているファイルのみをサポートします。したがって、コメントなどの非標準の機能は整形の妨げとなります。
再整理されたくない場合や、JSON ファイルで非標準の機能を使用している場合は、Clang-Format を使用して JSON ファイルを整形してください。
自動整形
次のタイプのテキスト ファイルは比較する前に整形する
このオプションをオン(有効)にすると、そのオプションの下にあるフィールドに入力された 1 つのパターン、またはセミコロンで区切られた複数のパターンに一致するファイル名を持つファイルにフォーマットが適用されます。たとえば、C 言語ファイルを自動的に整形するには、このオプションを有効にし、パターンとして *.c;*.h を指定します。
パターンと一致するファイルは、テキスト比較で読み込まれるときに自動的に整形されます。この整形は Merge 内で元に戻すことはできません。整形されたファイルを保存する場合、そのフォーマットの変更は保持されます。
このオプションは、フォルダー比較時に比較されるテキスト ファイルのうち、パターンに一致するファイルにも適用されます。したがって、このオプションを有効にすると、フォルダー比較が完了するまでに時間がかかる場合があります。