ReSharper 2018.2ヘルプ

ネーミングスタイル

ReSharperは、コード内のシンボルの命名スタイルを定義、制御、適用するのに役立ちます。ネーミングスタイルは、一連の制約として実装されます。各ルールは、一連の制約を使用して特定の識別子をターゲットにします(たとえば、ルールは静的なプライベートの読み取り専用フィールドをターゲットにすることができます)。各ルールには、接尾辞、接頭辞、複合語の大文字などを定義する1つ以上の関連スタイルがあります。

これらのルールは、ReSharperがコード補完およびコード生成機能を備えた新しいコードを生成し、コード・テンプレートを適用してリファクタリング (refactoring)を実行するときに考慮されます。 ReSharperは、検出して修正する命名規則違反にも役立ちます。必要に応じて、命名規則の自動検査は設定または無効とすることができます。

命名規則の設定

Out of the box, ReSharper provides a naming rule for each type of identifier. These rules are based on the マイクロソフトの命名ガイドライン(英語) , .NET Foundation Coding Guidelines(英語) , and best practices.
Note that there is no strict correspondence between ReSharper naming-rule defaults and any of the above mentioned guidelines.

If your personal preferences or company standards differ from ReSharper defaults, you can configure the naming style in a flexible way: for each type of identifier you can choose capitalization rules, prefixes and suffixes, variations for different access rights, abbreviations to preserve, and more.

命名スタイルの設定は、レイヤーベースの設定のメカニズムを使用して保存されます。とりわけ、このメカニズムにより、さまざまなソリューションのさまざまな設定を維持したり、これらの設定をVCSの下に保持したり、チームメンバーと自動的に共有することができます。

既定の名前付け規則を変更するには

  1. 以下のいずれか 1 つを実行します
    • 強調表示されているシンボル上で Alt+Enter を押し、名前の一致しない インスペクション '不整合な名前付け' | 名前付けルール '[ルール名]'の設定を変更するを選択します。
    • メインメニューでReSharper | オプション | [言語] | ネーミングスタイルを選択し、目的のルールを選択して編集 ThemedIcon EditorOptionsPage Screen Color をクリックするか、またはダブルクリックします。
  2. 表示されるルール設定の編集ダイアログで、ルールの既存のスタイルを確認します。
  3. 既存のスタイルは使用できますが、このルールに他のスタイルを使用する場合は、追加 ThemedIcon AddedParameter Screen Color をクリックします。 1つのルールに複数のスタイルがある場合、対応するシンボル名がこれらのスタイルの少なくとも1つと一致する場合、ReSharperは検出するコードスタイル違反をしません。それ以外の場合、ReSharperはコードスタイル違反を検出し、デフォルトスタイル(リストの最初のスタイル)に従ってシンボルの名前を変更することを提案します。デフォルトのスタイルを変更するには、上へ移動 ThemedIcon Up Screen Color 下へ移動 ThemedIcon Down Screen Color ボタンを使用します。
  4. 特定のスタイルを設定するには、リストでスタイルを選択し、接頭辞、接尾辞を設定して、命名スタイルを選択します。
  5. 不要なスタイルを削除するには、リスト内でスタイルを選択し、除去 ThemedIcon RemovedParameter Screen Color をクリックします。
  6. 必要に応じて、このルールに関連付けられたコードスタイル違反の検出を無効にして、ReSharperが他のコードスタイル違反を検出できるようにすることができます。これを行うには、インスペクションを使用可能にするチェックボックスをオフにします。
  7. 設定をクリックしてオプションページから開いた場合は、ルール設定の編集ダイアログを閉じます。

既存のルールがネーミング規則のすべての側面を網羅していない場合は、カスタムルールを作成できます。例:列挙型に大文字の大文字大文字と「E」という接頭辞が付いていることがあります。

カスタム命名規則を作成するには

  1. メインメニューでReSharper | オプション | コード編集 | C# | ネーミングスタイルを選択し、拡張設定をクリックします。
  2. 表示された高度な名前設定ダイアログで、追加 ThemedIcon AddedParameter Screen Color をクリックしてカスタム命名規則を作成します。
    Coding Assistance Naming Style Options Advanced Settings
  3. 表示される拡張命名規則を編集するダイアログでは、新しいルールを設定します。ルールの説明フィールドに新しいルールの名前を指定し、影響を受けるエンティティエリアでターゲット識別子を選択し、アクセス権静的/非静的エリアを使用してルールの範囲をさらに制限します。
  4. ネーミングスタイルセクションで、上記の手順で説明されているように、ルールに1つ以上のスタイルを設定します。
    Coding Assistance Naming Style options Edit Extended Naming Rule
  5. [OK]をクリックして拡張命名規則を編集するダイアログを閉じ、再度[OK]をクリックして高度な名前設定ダイアログを閉じます。
  6. 保存をクリックして変更を適用し、ReSharperに保存先を選択させるか、次へ保存ドロップダウンリストを使用して特定の設定レイヤーに変更を保存します。詳細は、resharper設定の管理と共有を参照してください。

CamelCaseの命名様式と矛盾する大文字の略語を無視する

CamelCaseのシンボル名に大文字の略語(頭字語)を使用することがあります。デフォルトでは、ReSharper 検出するは矛盾したラクダケーシングとして問題を報告します。

Coding Assistance Naming Style abbreviation

この場合、略称のリストを命名スタイルインスペクションによって無視されるように設定することができます。

大文字の略語は、特定の種類の識別子に対して定義された命名スタイルと矛盾してはならないことに注意することが重要です。
例:無視された略語に MS を追加した場合、 MSBuilderUpperCamelCase スタイルの識別子の受け入れ可能な名前になりますが、 lowerCamelCase または all_lower の名前付けスタイルを持つ識別子には受け入れられません。
同様に、 myMSBuilderlowerCamelCaseではOKですが、 UpperCamelCase形式の識別子ではOKではありません。

無視リストに省略形を追加するには

  1. エディタで、その名前に省略形を使用する強調表示されたシンボルにキャレットを設定します。
  2. Alt+Enter を押すか、キャレットの左側にあるアクションインジケータをクリックしてアクションリストを開きます。
  3. インスペクション '不整合な名前付け' | 略語リストに[略語]を追加するを選択
    Adding an abbreviation to the ignore list

    必要に応じて、この設定を保存する場所を選択できます。詳細については、ReSharper設定の管理と共有を参照してください。

シンボル名に使用できる略語が多い場合は、無視された略語のリストを編集できます。

無視された略語のリストを編集するには

  1. メインメニューでReSharper | オプション | コード編集 | C# | ネーミングスタイルを選択し、拡張設定をクリックします。
  2. ReSharperが区切り文字としてスペースを使用して略語フィールドに無視する省略形を追加します。
  3. [OK]をクリックして、高度な名前設定ダイアログを閉じます。
  4. 保存をクリックして変更を適用し、ReSharperに保存先を選択させるか、次へ保存ドロップダウンリストを使用して特定の設定レイヤーに変更を保存します。詳細は、resharper設定の管理と共有を参照してください。

命名規則の違反の検出と修正

ReSharperは 'Inconsistent Naming'コードインスペクションを使用して、コード内の命名規則の違反を検出します。デフォルトでは、このインスペクションは常に設計時コードインスペクションの間に適用され、検出された違反をエディタで警告として強調表示します。例:デフォルトのスタイルによれば、インターフェースの名前は 'I'プレフィックスを持つべきです。インターフェース名がこのルールと一致しない場合、ReSharperはこの名前を強調表示し、マウスをマウスの上に置くとその問題について通知します:

ReSharper: Highlighted violation of the naming style

現在のファイル以外で命名スタイルの違反を見つけたい場合は、プロジェクト内またはソリューション全体で「不整合な名前」インスペクションを実行できます。

特定のスコープで命名スタイル違反を見つけるには

  1. エディタで、一貫性のない名前が付けられている強調表示されたシンボルにキャレットを設定します。
  2. Alt+Enter を押すか、キャレットの左側にあるアクションインジケータをクリックしてアクションリストを開きます。
  3. インスペクション '不整合な名前付け' | ファイル内に同様の問題を見つけるを選択し、目的の範囲を選択します:
    ReSharper: Using action list to find naming style issues
  4. 検出された命名スタイル違反はすべてインスペクション結果ウィンドウに表示されます。
    ReSharper: Naming style violations in solution
  5. 検出された問題をダブルクリックすると、対応するシンボルのコードに移動できます。

ReSharperは、エディタで強調表示されている命名スタイル違反のほとんどに対して、 Alt+Enter を押してアクションリストで名前を[適合名]に変更を選択するなど、適切な名前のquick-fixを提案します。

Quick-fix for naming style violation

現在のファイル、プロジェクト、またはソリューションで、範囲内で修正する機能を使用して命名スタイルの違反を自動修正することもできます。

ただし、一致する名前が計算されたシンボルがすでに同じ名前空間に存在する場合、クイックフィックスは提案されません。 リファクタリングの名前変更でそのようなシンボルの命名を修正することができます。

自動ネーミングルールのチェックの設定と無効化

ReSharperが既存のコードベースで命名スタイルをチェックしないようにするには、責任を負うインスペクションコードを無効にするか、特定のルールの自動検査を無効にします。ただし、自動検査が無効になっていても、ReSharperがコード補完、生成、リファクタリング、およびテンプレートを使用して新しいコードを作成する際に、すべての命名規則が尊重されます。

命名スタイルの自動検査を無効にするには

  • 強調表示されているシンボル上で Alt+Enter を押し、名前の一致しないインスペクション '不整合な名前付け' | インスペクションの重大度を設定する | 見せないでを選択します。
  • ReSharperオプションのコード・インスペクション | インスペクション重大度ページで、「Inconsistent Naming」と入力し、対応するコードインスペクションの横にあるチェックボックスをオフにします。

特定の命名規則の自動検査を無効にするには

  1. 以下のいずれか 1 つを実行します
    • 強調表示されているシンボル上で Alt+Enter を押し、名前の一致しない インスペクション '不整合な名前付け' | 名前付けルール '[ルール名]'の設定を変更するを選択します。
    • メインメニューでReSharper | オプション | [言語] | ネーミングスタイルを選択し、目的のルールを選択して編集 ThemedIcon EditorOptionsPage Screen Color をクリックするか、またはダブルクリックします。
  2. 表示されるルール設定の編集ダイアログで、インスペクションを使用可能にするチェックボックスをオフにします。
  3. 設定をクリックしてオプションページから開いた場合は、ルール設定の編集ダイアログを閉じます。

異なる言語での適用性

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

Language: C#Language: VB.NETLanguage: C++Language: HTMLLanguage: ASP.NETLanguage: RazorLanguage: JavaScriptLanguage: TypeScriptLanguage: CSSLanguage: XMLLanguage: XAMLLanguage: ResxLanguage: Build ScriptsLanguage: ProtobufLanguage: JSON
Feature is availableFeature is availableFeature is availableFeature is not availableFeature is availableFeature is not availableFeature is availableFeature is availableFeature is not availableFeature is not availableFeature is availableFeature is not availableFeature is not availableFeature is not availableFeature is not available

C#の機能の使用方法については、こちらの説明と例を参照してください。他言語の詳細については、言語によるReSharperの対応するトピックを参照してください。

最終変更日: 2018年9月12日

関連事項