ReSharper 2019.1ヘルプ

UE4プロジェクトでの作業

Unreal Engineプロジェクトを開くと、ReSharperはすべての機能とアクションを自動的に調整して、Unreal Engineのさまざまな側面と規則を考慮に入れるようにします。たとえば、自動インポートとコード分析は .generated.h ファイルのインクルードを考慮します。

ReSharperのUE機能のほとんどはバックグラウンドで邪魔にならないように動作しますが、このトピックで説明されているアクションや設定を提供するものがいくつかあります。

Unreal Engineコードのインデックス作成

デフォルトでは、エンジンコードのインデックス付け(プロジェクトの大部分を占める)は、エンジン以外のコードが解析された後にバックグラウンドで実行されるため、UE4プロジェクトを開いてから数秒後に入力または移動を開始できます。

You can configure how the engine code is indexed on the コード編集 | C++ | Unreal Engine page of ReSharper options: you can disable the background indexing in case you want to have all engine code indexed before you start, or if you notice any performance degradation, you can disable the indexing altogether by clearing the Unreal Engineソースファイルの索引付け

インデックス作成が有効になっているとき、多くの機能を持つでしょう。例:エンジンから任意のシンボルを使用すると、ReSharperは自動的に不足している#includeを追加するか、エンジンのコード内でエンジンクラス( TArray<T> など)の使用箇所を見つけて、それらがどのように使用されるかを調べます。

索引付けが無効になっている場合でも、ReSharperはヘッダーファイル名を索引付けします。これは非常に高速ですが、#include <unreal/SomeClassFromUnreal.h>などのインクルードにはコード補完を使用できます。ヘッダをインクルードすると、そのコードは自動的にインデックスされるため、コード補完とインクルードヘッダからのシンボルの解析ができます。

Unreal Engineの命名規則

UE4プロジェクトを開発するときは、おそらくUnreal Engineコーディング標準(英語)を使用しているでしょう。ReSharperはUE4プロジェクトを検出し、これらのプロジェクトでコードを生成および分析するときにUE4命名規則を自動的に使用します。

ReSharper: Applying UE4 naming conventions

ReSharperオプションのコード編集 | C++ | ネーミングスタイルページで設定できるデフォルトの命名ルールセットとは異なり、Unreal Engineの命名規則は設定できません。ReSharperは、Unreal Engineのコーディング標準に従って、特別なコードインスペクションを使用して命名規則の違反を検出します。これらのインスペクションは、UE4プロジェクトの現在の命名規則セットを抑制します。重大度を変更したり、これらのインスペクションを無効にしたい場合は、ReSharperオプションのコード・インスペクション | インスペクション重大度ページのC++ | Unreal Engineにあります。また対応する警告を見ることができ、UE4ソリューションが開いているときコード編集 | C++ | ネーミングスタイルのインスペクションを命名するUE4をディセーブルにすることができるでしょう:

ReSharper: Applying UE4 naming conventions

UE4リフレクション指定子

ReSharperは、UCLASSUSTRUCTUENUMなどのUnreal Engineリフレクションマクロをサポートします。これらは、C++言語にはないリフレクションをエミュレートするために使用されます。あなたのUnreal Engineプロジェクトがビルドされていなくても、これらのマクロは解決され、それらのための完成提案を得るでしょう。

ReSharper: Code completion for UE4 reflection specifiers

UE4 リモートプロシージャコールサポート

コードを分析するとき、ReSharperは UFUNCTION 宣言ステートメントの ClientServer、および NetMulticast 指定子によってUE4 リモートプロシージャコール (RPC)(英語)を識別します。

ReSharperは、UE4 RPCが対応する必要な _Validate および _Implementation 機能を持っているかどうかをチェックし、それらの少なくとも1つが見つからない場合はRPCを強調表示します。強調表示で Alt+Enter を押すと、不足している実装スタブを生成できます。

ReSharper: UE4 remote procedure calls support

上の例では、_Validate 関数がなくなり、ReSharperが次のスタブを生成します。

bool AShooterCharacter::ServerEquipWeapon_Validate(AShooterWeapon* NewWeapon) { }

RPCからは、上のスクリーンショットに示すように、ナビゲーション先(Ctrl+Shift+G)ポップアップ、または Alt+Enter メニューから、それらの _Validate および _Implementation 機能にジャンプすることができます。

It also works for BlueprintNativeEvent(英語) : when the corresponding specifier is passed in UFUNCTION , ReSharper can generate an _Implementation function for you, as well as navigate to it from the declaration.

最終更新日: 2019年6月7日

関連ページ:

シンボルの使用箇所の検索

ReSharper | 検索 | 使用箇所の検索このコマンドを使用すると、ソリューション内の特定のシンボルのすべての使用箇所を見つけることができます。シンボルの宣言または他の用途から検索を開始することができます。エディター、ファイル構造ウィンドウおよび他のツールウィンドウからこのコマンドを呼び出すこ...

ネーミングスタイル

バージョン2018.3から始まって、ReSharperは既存のコードからC#シンボルの命名規則を自動的に学習できます。命名規則を手動で設定したい場合は、ReSharperオプションのコード編集 | C# | ネーミングスタイルページの自動検出ルールを使用するチェックボックスをクリアしてください。Re...

C++のコーディングアシスタンス

C++のサポートは、ReSharper C++(ReSharperと一緒に、またはReSharper Ultimateと別々にまたは並行してインストールできる)の専用製品で使用できます。ReSharperのコーディング支援機能のほとんどはC++でもサポートされています。これらの機能の詳細については、...

C++ / CLIサポート

C++ / CLIのサポートは、C++と.NETの両方の分析エンジンに依存しているため、ReSharper Ultimateライセンスが必要です。標準ISO C++構文に加えて、ReSharperは、CLR参照用の、マネージドヒープへの割り当て用のなど、MicrosoftのC++ / CLIの仕様構...