ReSharper Ultimate 2019.3’の新機能

ReSharper Ultimate 2019.3では最新のLocalization Manager(ローカライゼーションマネージャー)とType Name Hints(型名ヒント)が導入され、C# 8、C++ 20、Unreal Engineへの対応がさらに改善されています。 ナビゲーション、コードスタイル、ユニットテストが強化され、ReSharperとdotTraceのコマンドラインツールがLinuxとmacOSに対応しました。

ダウンロード

無料30日間体験版

Localization Manager(ローカライゼーションマネージャー)

Localization Manager(ローカライゼーションマネージャー)

新しいLocalization Manager(ローカライゼーションマネージャー)はソリューション内の大量の.resxファイルを効率よく処理するのに役立ちます。 .resxファイル内のすべてを1つのグリッド内に表示しますので、アプリケーションやウェブサイトの最新のローカライゼーション状況を監視してカルチャ内に不足しているリソース値を素早く見つけることができます。

以下の操作を実行できます。

  • ローカライズされたリソースの追加、編集、名前の変更、検索、インライン化、移動、安全な削除。
  • ローカライズされた値が不足している全リソースの発見。
  • 現時点で必要のないロケールの非表示。
  • 不足しているカルチャの .resx ファイルの作成。
  • セルに関する問題の詳細な説明が記されたツールチップの参照。

ReSharper | WindowsかSolution ExplorerのコンテキストメニューでLocalization Managerをご確認ください。

詳細については、「Localization Managerを使った簡単なローカライゼーション」をご覧ください。

C# 8サポートのさらなる改善

C# 8サポートのさらなる改善

新しいReSharperでは、C# 8の処理がさらに改善されています。 改善内容には以下が含まれます。

  • notnull制約への対応を含むnull許容参照型の理解の強化。
  • ターゲットの型を指定したswitch式
  • デフォルトインターフェースメソッドの早期対応
  • 新しいヒント「Local function can be static」(静的にできるローカル関数)と、それに付随するクイックフィックス。
  • ファイル、プロジェクト、またはソリューション内の全プロジェクトでnullable注釈や警告を有効化する新しいクイックフィックス。
  • async反復子のCancellationTokenパラメータにEnumeratorCancellation属性を追加する新しいクイックフィックス。

さらに、コード検査「Type or type member is never used」が別々の2種類のオプションに分割されました。1つは型用のもの(「Type is never used」)で、もう1つは型メンバー用のもの(「Type member is never used」)です。

コード生成

コード生成

GenerateアクションはC# 8の詳細を理解し、次の機能で支援を行います。

  • 列挙値を徹底的にチェックする新しいクイックフィックス「Add missing arms」。
  • switch式で型パターンを生成する新しいクイックフィックスとコンテキストアクション。
  • 等値演算子/関係演算子/比較演算子を生成する際のNull可能性の考慮。

また、C#とVB.NETの等価メンバーや比較演算子を生成する際にSystem.HashCodeを使用してGetHashCodeを実装し、コードをクリーンにするのに役立つ新しいオプションが追加されました。

コードフォーマット

コードスタイル

このリリースでは、長らく期待されていたもう一つのご要望に対応しました。 C#の命名設定が、EditorConfigの読み込みとエクスポートに対応しました。

この大きな変更に加えて、より小規模な複数の変更が行われ、コードのスタイルをより細かくコントロールできるようになりました。

  • 初期化式の型が状況的に明らかな場合や外見上明らかな場合にのみ明示的な型の代わりにvarを使用したい方のために、ReSharperがより「明白」な状況を検出できるようになりました。 また、Roslynの動作に対応する「compatibility」(互換)モードが実装されました。
  • 同一グループの他の演算子でネストされた演算子のグループの優先度のみを明確にする丸括弧を追加する、StyleCopおよびRoslynと互換性のある新しいコードスタイルオプションが実装されました。 例えば、&&|| のどちらが優先されるかを思い出せない場合にこのオプションを使用すると、丸括弧により優先度を明確にすることができます。
  • Comment Code(コードのコメント化)がデフォルトでコメントにインデントを追加するようになりました。 この動作を無効化したい場合は、「Place comments at first column when commenting out code」(コードをコメントアウトする際に最初の列にコメントを配置する)という新しい設定を使用してください。
  • Autodetect indent size and value(インデントサイズと値を自動検出する)が有効な場合に、インデントを設定するオプションページに適切な通知が表示されるようになりました。
  • また、C#フォーマッタオプションのページにConfigure formatting(フォーマット設定)とAutodetect formatting(フォーマットの自動検出)の機能を説明する通知ツールチップが追加されました。
クロスプラットフォーム対応のReSharperコマンドラインツール

クロスプラットフォーム対応のReSharperコマンドラインツール

これまで、Linux上でホストされたCIでReSharperコマンドラインツールを実行可能かというお問い合わせをよく頂いていました。 このお問い合わせに対し、当社は長らく不可能であると回答してきました。しかし、当社は懸命な努力によってWindows固有の部分を取り除き、すべての機能をLinuxとmacOSのMonoランタイムに移植することができました。 Windowsでは引き続き.NET Frameworkが使用されますのでご安心ください。

今回のリリースでは、ReSharperコマンドラインツールがLinuxとmacOSに対応しました! これからは、Windows以外のOSでも思いのままに強力なReSharperのコード解析機能をご利用いただけます。

型名ヒント

型名ヒント

ReSharper 2019.1で導入されたParameter Name(パラメータ名)とCode Annotations(コード注釈)のヒントにご満足いただけていたら幸いです。このリリースではさらにヒントを拡充させ、Type Name Hints(型名ヒント)を提供しています。 これらのヒントは以下でご利用いただけます。

  • ラムダ式のパラメータ
  • パターンマッチングとタプルの分解を含むすべての変数の出現箇所
  • LINQステートメント内の範囲変数
  • メソッド呼び出しチェーン内の行末
ナビゲーションと使用箇所の検索

ナビゲーションと使用箇所の検索

たいていの人は、特定の参照がコード内で使用されている箇所を知りたい場合があります。 以前から長らく参照で「Find dependent code」アクションを実行し、その参照から型や型メンバーの出現箇所をすべて見つけることはできました。 しかし、この操作には常に制限がありました。

2019.3リリース以降、制限のいくつかを撤廃しました。

  • Find dependent codeがNuGetの参照に対応し、プロジェクト単体ではなくソリューション全体に対して実行できるようになりました!
  • Consuming APIは「Navigate to」アクションを拡張し、特定タイプのオブジェクトをパラメータで受け取るすべてのメソッドをリストアップしたい場合に役立ちます。
  • Find dependent codeFind resultsウィンドウに新しいフィルタが実装されました。
  • ソースシンボルパッケージを持つNuGetパッケージの外部ソースに移動できるようになりました。
ユニットテスト関連の更新

ユニットテスト関連の更新

Unit Testingツールウィンドウはすでに十分に優れており、期待される機能のほとんどを備えています。 しかし、当社はユニットテストのリスト表示をカスタマイズする方法をさらに追加できると考え、これを実行しました。

  • Unit Test ExplorerおよびUnit Test Sessionツールウィンドウで新しく高度なGroup by関数を使用し、カスタムグループを作成することができます。 新たに追加されたDuration要素を使用することで、実行所要時間を基にユニットテストをグループ化できるようになりました。
  • 複数のユニットテストがあり、そのうちの一部を表示したくない場合、Unit Test Sessionツールウィンドウでユニットテストをターゲットフレームワークで絞り込むことができます。
識別子のハイライト表示を更新

識別子のハイライト表示を更新

識別子のハイライト表示を完全に作り直しました。 コードハイライトの精度を高めるためのカラー設定を追加しました(Tools | Options | Fonts and Colorsでご利用いただけます)。 新しいカラー設定には以下が含まれています。

  • すべての言語のエンティティのカラーに関する一般的なセクション。
  • C#のカラー専用の設定。
  • さまざまな言語の構文用の新しいカラー設定。
その他の機能

その他の機能

  • 新しいNUnitインスペクションは組み合わせユニットテストとパラメータ化されたユニットテストの個々のパラメータに対応しています。
  • Parameter Infoポップアップがタプルに対して有効になりました。
  • x:DataTypeおよびClass attributeへの対応など、Xamarin対応で複数の重要な修正が行われました。
  • 改行削除と改行前にバックスペースを追加する入力支援機能が、トークンを分離するため、またはフォーマット規則で必要な場合にスペースを残すようになりました。
C++20のサポート

C++20のサポート Ultimate

C++20はすべての機能が実装完了しており、C++開発者に待ち望まれている多数の機能を提供するために来年にも公式に承認される見込みです。 ReSharper C++ 2019.3ではすでにこれら多くの機能に対応しており、追加の解析と洞察による機能強化が行われています。

まず、ReSharper C++は集約を括弧で囲まれた値のリストから初期化できること、および関数テンプレートを使用する一部のケースで追加のADLを実行する必要があることを認識するようになりました。

ConceptはReSharper C++のパーサーでサポートされているだけでなく、RenameリファクタリングとFind Usagesも利用できます。 さらに良いことにはコード解析機能により、Concept関連のエラーについてより詳細な情報を取得することができます。 例えば、Conceptの要件が満たされていないためにオーバーロードの解決に失敗した場合、ツールチップに詳細な情報がすべて表示されます。 また、ReSharper 2019.3ではオーバーロードの解決失敗に関する情報を表示するツールチップに色を追加しました。

当社は新しい言語の機能とそのReSharper C++への採用について学ぶためにご利用いただけるC++20とReSharper C++に関するブログ投稿シリーズを開始しました。

Unreal Engine 4のサポート

Unreal Engine 4のサポート Ultimate

ReSharper C++はUnreal Engineプロジェクトが開発されていることを検出すると、UE4固有の機能への対応度を高めるように動作を調整します。

UCLASSesの「新しい」後置テンプレートは、適切なfactory関数呼び出し(作成されたオブジェクトをガベージコレクターに登録する)に対応しています。 USTRUCT/UCLASS/UENUM/UENUMCLASSを素早く生成するのに役立ち、それぞれに対応する名前を持つライブテンプレートをご利用いただけるようになりました。

Unreal Engineのスマートポインタ(TSharedPtr、TSharedRef、TWeakPtr、TUniquePtr)をstd::shared_ptr/std::unique_ptrと同様にReSharper C++で処理できるようになりました。 つまり、Parameter Info(パラメータ情報)、コード解析、Postfix code completion(後置コード補完)などの機能をスマートポインタに使用できます。

さらに、UE4プロジェクトに対して複数のパフォーマンス改善が行われました。 例えば、UE4のエディタで「Refresh Visual Studio Project」を実行した後にハングする問題を修正しました。

ReSharper C++の新機能をご確認ください。

macOSおよびLinuxのコマンドラインプロファイラ

macOSおよびLinuxのコマンドラインプロファイラ Ultimate

コマンドラインプロファイラがついにmacOSとLinuxに対応しました。 dotTrace.shがWindows版と同様の機能を提供し、.tar.gzアーカイブおよびNuGetパッケージとして配布されています。

dotTrace 2019.3の新機能をご確認ください。

dotCoverの改善 Ultimate

dotCover 2019.3では複数の改善が行われています。

  • すべてのOSでUnity 2018.3以降に対応しました。 カバレッジ解析を実行するには、JetBrains Riderを使用する必要があります。
  • Microsoft Fakeに対応しました。
  • Rider、Visual Studio、およびdotCoverコンソールツールで生成されたレポートでネストした名前空間ごとにカバレッジの結果をグループ化できるようになりました。

dotCover 2019.3の新機能をご確認ください。

ダウンロード

無料30日間体験版