ReSharper 2020.2 ヘルプ

Clang 形式の使用

バージョン 2017.2 以降、C++ ファイル(および JavaScript と TypeScript ファイルの一部)では、ReSharper はクラン形式(英語)で定義されている書式スタイルをサポートしています。デフォルトでは、Clang-Format 設定ファイルは、書式設定の設定のソースとして自動的に使用されます。

Clang-Format とは何ですか?そして ReSharper はそれをどのようにサポートしていますか?

Clang-Format は広く使われている C++ コードフォーマッタです。それは YAML フォーマットのファイル(.clang-format または _clang-format)でコードスタイルオプションを定義するオプションを提供するため、これらのファイルは多くの場合、すべてのコードスタイルルールを保持するプロジェクトの一部になります。Clang-Format スタイルのオプションの全リストと設定ファイルの例を見るためには、Clang フォーマットのドキュメント(英語)を調べましょう。

プロジェクトのコードスタイルが Clang-Format ファイルで構成されている場合、ReSharper のコードフォーマットエンジンは、これらのスタイルのほとんどを自動的に使用して C++ ファイルをフォーマットし、一部は JavaScript および TypeScript ファイルでフォーマットします。

ソリューションの Clang-Format

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

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

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

    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 形式オプションをエクスポートするかどうか。

    • CPP 設定のエクスポート — JavaScript コードに影響する Clang 形式のオプションをエクスポートするかどうか。

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

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

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

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

オプション 言語でサポート
BasedOnStyleC++
AlignConsecutiveAssignmentsC++
AlignConsecutiveDeclarationsC++
AlignAfterOpenBracketC++
AlignOperandsC++
AlignTrailingCommentsC++
AllowShortCaseLabelsOnASingleLineC++
AlwaysBreakAfterDefinitionReturnTypeC++
AlwaysBreakAfterReturnTypeC++
AlwaysBreakTemplateDeclarationsC++
BinPackArgumentsC++
BinPackParametersC++
BreakBeforeBraces ( CustomLinux のクラス定義を除く)C++
BreakBeforeTernaryOperatorsC++
BreakConstructorInitializersBeforeCommaC++
ColumnLimitC++ , JavaScript , TypeScript
ConstructorInitializerAllOnOneLineOrOnePerLineC++
IncludeBlocksC++
IncludeCategoriesC++
IncludeIsMainRegexC++
IndentCaseLabelsC++
IndentWidthC++ , JavaScript , TypeScript
IndentWrappedFunctionNamesC++
MaxEmptyLinesToKeepC++
NamespaceIndentationC++
PointerAlignmentC++
SortIncludesC++
SpaceAfterCStyleCastC++
SpaceAfterTemplateKeywordC++
SpaceBeforeParensC++
SpacesInAnglesC++
SpacesInParenthesesC++
SpacesInSquareBracketsC++
TabWidthC++ , JavaScript , TypeScript
UseTabC++ , JavaScript , TypeScript

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

Language: C#Language: VB.NETLanguage: C++Language: HTMLLanguage: ASP.NETLanguage: RazorLanguage: JavaScriptLanguage: TypeScriptLanguage: CSSLanguage: XMLLanguage: XAMLLanguage: ResxLanguage: Build ScriptsLanguage: ProtobufLanguage: JSON
Feature is not available in C#Feature is not available in Visual Basic .NETFeature is available in C++Feature is not available in HTMLFeature is not available in ASP.NETFeature is not available in RazorFeature is available in JavaScriptFeature is available in TypeScriptFeature is not available in CSSFeature is not available in XMLFeature is not available in XAMLFeature is not available in Resource filesFeature is not available in build script filesFeature is not available in ProtobufFeature is not available in JSON
最終更新日 :

関連ページ:

コードフォーマットルールの管理と適用

ReSharper | 編集 | コードの再フォーマットコードスタイルの重要な点は、コードの書式設定方法、つまり、空白と空白行を使用してコードブロックを配置および分離する方法、インデントにタブを使用するかどうか、および使用する方法。ReSharper コードのフォーマットルールの豊富なセットに...

EditorConfig を使用する

どのフォーマットスタイルの設定がファイルフォーマット情報ウィンドウ(ReSharper | Windows | ファイルフォーマット情報)の現在のファイルに影響するかを見ることができます。ReSharper は、EditorConfig形式で定義されたコード形式スタイル、コード構文スタイル、C#

ファイルフォーマット情報ウィンドウ

ReSharper | Windows | ファイルフォーマット情報このウィンドウでは、現在開いているファイルの書式スタイル設定について説明します。インデントのソースとその値。インデント設定の自動検出のステータス。現在のファイルに影響するEditorConfigサポートとすべての.editorco...

言語による ReSharper: C++-ReSharper

C++ サポートには、C、C++03、C++11、C++14、C++17、C++ / CLI、および部分的に C++20 が含まれます。ATL、MFC、および COM プロジェクトがサポートされています。ReSharper は、プラットフォームツールセット(プロジェクトプロパティの一般 | プラ...

ASP.NETMVC 固有の機能

ReSharper には、一般的な ASP.NET 機能に加えて、ASP.NET MVC での作業をより簡単にサポートする特殊機能があります。構文のハイライト :ASP.NET MVC メソッド呼び出しとパラメーターの特別な構文のハイライト:コード補完 :文字列リテラルでアクションとコントローラーを...

言語による ReSharper: MSBuild-ReSharper

MSBuild は、アプリケーションを構築するために広く使用されているプラットフォームです。特定の XML タグを使用して、プロジェクトの構築方法や実行方法を定義できます。ReSharper を使用すると、より速く行うことができます。ビルドスクリプトファイルで ReSharper 機能を無効にするに...