ReSharper 2024.3 ヘルプ

Clang 形式の使用

C++ ファイル (および部分的に JavaScript および TypeScript ファイル) では、ReSharper は Clang 形式(英語)で定義されたフォーマットスタイルをサポートします。デフォルトでは、Clang-Format 構成ファイルは、フォーマットスタイル設定のソースとして自動的に使用されます。

Clang フォーマットとは何ですか ? ReSharper はどのようにサポートしていますか ?

Clang-Format は、広く使用されている C++ コードフォーマッタです。YAML 形式のファイル (.clang-format または _clang-format という名前) でコードスタイルオプションを定義するオプションを提供し、これらのファイルは多くの場合、すべてのコードスタイルルールを保持するプロジェクトの一部になります。

Clang-Format スタイルのオプションの完全なリストと構成ファイルの例を確認するには、Clang フォーマットのドキュメント(英語)を確認してください。

ReSharper で Clang 形式を使用するには、次の 2 つの方法があります。

  • プロジェクトのコードスタイルが Clang 形式ファイルで構成されている場合、ReSharper のコード形式エンジンは、元のスタイルに加えて、これらのスタイルのほとんどを C++ ファイルの形式に使用できます。競合がある場合、.clang-format ファイルの設定は *.DotSettings の設定を上書きすることに注意してください。

  • デフォルトの LLVM スタイルのフォーマットを好み、コードフォーマッタとして clang 形式を使用する場合は、ReSharper オプション Alt+R, Oコード編集 | C/C++ | スタイルのフォーマット | 一般ページで C++ フォーマットエンジンClang 形式を選択し、オプションでカスタム Clang 形式の実行可能ファイルを指定できます。この場合、.clang-format 構成ファイルは自動的に読み込まれます。

ソリューションの Clang-Format

デフォルトでは、ReSharper C++ フォーマッタエンジンを選択した場合でも、ReSharper は Clang-Format プロパティを考慮し、ReSharper および Visual Studio オプションで定義された環境設定と EditorConfig スタイルをオーバーライドします。ReSharper でコードのフォーマットとコードの構文について Clang-Format スタイルを無視する場合は、ReSharper オプションのコード編集 | C++ | スタイルのフォーマット | 一般ページで対応するチェックボックスをオフにします。

Clang-Format サポートが有効で、現在のファイルに影響する .clang-format または _clang-format ファイルがある場合、ReSharper は、どの Clang-Format スタイルが適用されているか、およびこれらの設定がどこから来ているかを理解できます。

  • C++、JavaScript、TypeScript の ReSharper フォーマットオプションページでは、ページ上の少なくとも 1 つの設定が現在のファイルの Clang フォーマットスタイルによってオーバーライドされている場合、黄色の警告が表示されます。オーバーライドされた各設定も黄色でハイライトされます。例:

    Code formatting options overridden by Clang-Format styles
  • ファイルフォーマット情報ウィンドウでは、現在のファイルに影響を与えるすべての .clang-format および _clang-format ファイルを表示および調査できます。

    ReSharper. File Formatting Info window

コードスタイル設定を Clang 形式にエクスポート

Clang-Format を介してコードスタイル設定を共有する場合は、ReSharper ですでに構成されているスタイルを .clang-format ファイルにエクスポートすることをお勧めします。

  1. メインメニューから ReSharper | オプションを選択するか、Alt+R O を押してから、左側のコード編集 | 一般的なフォーマッタスタイルを選択します。

  2. コードスタイルの設定ファイルセクションで、現在のスタイルを .clang-format に書き込むをクリックします。これで .clang 形式にエクスポートダイアログが開きます。

  3. デフォルトでは、ReSharper は現在のソリューションのルートディレクトリにある新しい .clang-format ファイルに設定を書き込みます。1 つ以上の .clang-format ファイルが存在する場合、ReSharper は設定を保存するためにディレクトリ階層で最も近いファイルを使用します。必要に応じて、ダイアログの上部にあるパスセレクターを使用して宛先ファイルを変更できます。

  4. より詳細な設定については、追加オプションを表示を展開して以下のオプションを選択することができます。

    BasedOnStyle

    対応するオプションを設定して、デフォルトですべてのオプションに使用されるスタイル(英語)を定義します。

    選択した基本スタイルと一致するオプションを非表示にします

    BasedOnStyle で選択された基本スタイルで定義されたものと同じ値を持つオプションはエクスポートされません。

    Cpp 設定をエクスポート

    C++ コードに影響する Clang 形式オプションをエクスポートするかどうかを定義します。

    JavaScript 設定のエクスポート

    JavaScript コードに影響する Clang-Format オプションをエクスポートするかどうかを定義します。

  5. 指定された場所に既存の .clang-format ファイルがある場合、そこに存在するプロパティの値と ReSharper が保存しようとしているプロパティの値の間に競合が発生する可能性があります。このようなプロパティは赤で表示され、保存を続行すると、競合は新しく生成されたプロパティに優先して解決されます。

  6. エクスポートをクリックしてください。ReSharper は指定された場所に .clang-format ファイルを作成または更新します。

また、フォーマットルールのコンテキスト構成後に、フォーマットスタイルを Clang-Format に保存することもできます。

サポートされているクラン形式オプション

オプション

言語でサポート

BasedOnStyle

C++

AlignConsecutiveAssignments

C++

AlignConsecutiveDeclarations

C++

AlignAfterOpenBracket

C++

AlignOperands

C++

AlignTrailingComments

C++

AllowShortCaseLabelsOnASingleLine

C++

AlwaysBreakAfterDefinitionReturnType

C++

AlwaysBreakAfterReturnType

C++

AlwaysBreakTemplateDeclarations

C++

BinPackArguments

C++

BinPackParameters

C++

BreakBeforeBraces (CustomLinux のクラス定義を除く)

C++

BreakBeforeTernaryOperators

C++

BreakConstructorInitializersBeforeComma

C++

ColumnLimit

C++ , JavaScript , TypeScript

ConstructorInitializerAllOnOneLineOrOnePerLine

C++

IncludeBlocks

C++

IncludeCategories

C++

IncludeIsMainRegex

C++

IndentCaseLabels

C++

IndentWidth

C++ , JavaScript , TypeScript

IndentWrappedFunctionNames

C++

MaxEmptyLinesToKeep

C++

NamespaceIndentation

C++

PointerAlignment

C++

SortIncludes

C++

SpaceAfterCStyleCast

C++

SpaceAfterTemplateKeyword

C++

SpaceBeforeParens

C++

SpacesInAngles

C++

SpacesInParentheses

C++

SpacesInSquareBrackets

C++

TabWidth

C++ , JavaScript , TypeScript

UseTab

C++ , JavaScript , TypeScript

この機能は、次の言語とテクノロジーでサポートされています。

関連ページ:

EditorConfig を使用する

ReSharper は、EditorConfig 形式で定義されたコード形式スタイル、コード構文スタイル、C# の命名スタイル、コードインスペクション重大度レベルをサポートします。Matthell は、ReSharper が EditorConfig を使用してフォーマットルールの設定全体をどのように維持するのをヘルプいるかを示しています。EditorConfig とは何ですか? ReSharper はどのようにそれを拡張しますか? :EditorConfig は、同じコードで作業しているチームメ...

フォーマットルールを構成する

フォーマットルールは非常に高いレベルの詳細に設定できます。例: 特定の演算子の周囲に空白を配置するか、入れ子になった文をインデントするかを定義できます。オプションでコードフォーマットルールを構成するメインメニューからを選択するか、Alt+R O を押します。ページを使用して、すべての言語で適用されるオプションを確認し、設定します。ページを使用して、言語固有のフォーマットを構成します。これらのページでは、下部にあるプレビュー領域を使用して、ReSharper がコードに特定の設定を適用する方法を表示...

言語による ReSharper: C++

C++ サポートには、C、C++/CLI、C++ から C++20 まで、および一部の C++23 が含まれます。ATL、MFC、COM プロジェクトがサポートされています。ReSharper は、プラットフォームツールセット (プロジェクトプロパティの) および / または /std switch に基づいて、C++ バージョンを自動的に検出します。本セクション: コード解析、コーディング支援、コードスタイルの支援、Clang-Tidy インテグレーション、Doxygen のドキュメント、Clang...

ASP.NET MVC 特有の機能

ReSharper には、一般的な ASP.NET 機能に加えて、ASP.NET MVC での作業をより簡単にサポートする特殊機能があります。構文のハイライト:ASP.NET MVC メソッド呼び出しとパラメーターの特別な構文のハイライト: コード補完:文字列リテラルでアクションとコントローラーを参照するための専用コード補完: ナビゲーションと検索:さまざまなナビゲーション機能がアクションとコントローラーでも機能します。コード生成:使用箇所から新しいコントローラーとアクションを作成する: 最終...

言語による ReSharper: MSBuild

MSBuild は、アプリケーションを構築するために広く使用されているプラットフォームです。特定の XML タグを使用して、プロジェクトの構築方法や実行方法を定義できます。ReSharper を使用すると、より速く行うことができます。コード検査:あらかじめ定義された要素またはその属性の名前を誤って入力した場合、ReSharper はそのような不一致についてハイライト表示します。まだ定義されていないプロパティを参照しようとすると、ReSharper はそのようなケースも検出します。MSBuild...

言語による ReSharper: Google プロトコルバッファ (Protobuf)

ReSharper オプションのページで Protobuf サポートが明示的に有効になっている場合、ReSharper は Google Protocol Buffers (Protobuf) バージョン 2.x および 3.0 の .proto ファイルでコード分析および支援機能を提供します。ReSharper は、.proto ファイルの言語構文をハイライトし、エラーを検出してハイライトします。基本コード補完と他のタイピング支援機能はエディターで利用可能です。型と値の宣言に行き、それらの使用箇所を...