ReSharperの新機能

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

ダウンロード
無料30日間体験版

ReSharper 2019.3

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の新機能をご確認ください。

dotCoverの改善 Ultimate

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

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

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

ダウンロード
無料30日間体験版

ReSharper 2019.2

C# サポートの強化

C# サポートの強化

サポートが強化されたReSharperでC# 8.0を最大限にご活用ください。

  • Index型やRange型などのインデックス範囲に関する最新の変更がサポートされています。
  • コンテキストアクション「Add range check」がSystem.Index/System.Rangeのインデックス生成をサポートし、正確なチェックを生成できるようになりました。
  • アンマネージドなジェネリック構造体をサポートしています。
  • 新しいインスペクション「Convert switch statement to switch expression(switchステートメントをswitch式に変換)」と「Convert chain of ternary expressions to switch expression(一連の三項式をswitch式に変換)」、ならびに対応する「Convert to switch expression(switch式に変換)」クイックフィックスを追加しました。

皆様からのご要望に応え、「Convert concatenation to interpolation(連結された変数を埋め込み変数に変換)」コンテキストアクションを範囲内で適用できるようにしました。

起動時間の高速化

Riderに続き、Visual Studio COM APIの代わりにMSBuildベースのプロジェクトモデルを使用し始めました。 これにより、UIスレッドをロックするCOM APIの使用が最小化されるため、ソリューションの読み込み時間が最適化されます。

また、Performance Guideページを更新しました。 新たにWindows Defenderセクションのほか、パフォーマンスに関するあらゆるヒントの説明を追加しました。これにより、候補を適用した後の動作を正確に説明しています。

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

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

このリリースから、Find UsagesSolution Wide Error Analysis(ソリューション全体のエラー解析)のデータを使用して結果を収集するようになりました。 ソリューションでSWEAを有効化すると、Find Usageの結果表示が劇的に高速化します。

また、ナビゲーション動作に次のような2点の軽微な改善を加えました。きっとお役に立つのではないかと思います。

  • Go to File Memberダイアログで直接ファイルを検索できます。 結果リストには一致したすべてのメンバー名、ファイル内での検索文字列の出現箇所がすべて表示されます。
  • Go To Text結果ウィンドウで、コメント文字列内の出現箇所を検索したくない場合は、コメント行を除外できるようになりました。
デバッガとデータヒント

デバッガとデータヒント

ReSharper 2019.2では、デバッガのデータヒントに次のような複数の更新を適用しています。

  • implicit function evaluation(暗黙的な関数の評価)」および「auto evaluate property(プロパティの自動評価)」という2種類の新しいスイッチを追加しました。
  • これらのスイッチは、「Enable property evaluation and other implicit function calls(プロパティの評価とその他の暗黙的な関数の呼び出しを常に有効にする)」設定を考慮し、必要に応じてプロパティ値を評価します。
コードスタイルとコードフォーマッタ

コードスタイルとコードフォーマッタ

C# 8.0のサポートを強化するため、switch式用の新しいフォーマットオプションを追加しました。 .editorconfigStyleCop.Settings、および .clang-format のサポートが強化され、デフォルトでハイライト表示とSolution Wide Error Analysisでオンになりました。 また、Optionsページで直接EditorConfigプロパティを編集できます。

Per-Monitor DPI Awarenessモードのサポート

Per-Monitor DPI Awarenessモードのサポート

ReSharper Ultimate 2019.2は、Visual Studio 2019で導入された「Per-Monitor DPI Awareness」モードのサポートを強化しています。 当社は、ReSharperの一部のユーザー様がこれまでOptimize rendering for screens with different pixel densities(ピクセル密度の異なる画面用に描画を最適化する)(Tools | Options | Environment | Generalでアクセス可能)を率先して無効化していたことを把握しています。ReSharperのツールウィンドウで描画に関わる問題が発生していたためです。 同オプションを再度有効化し、動作をお確かめください。 ただし、それでも不具合が発生する可能性はありますのでご注意ください。

その他の機能

その他の機能

  • パラメータ名のヒントが高速化され、新しいヒューリスティックが採用されました。
  • IL Viewerでキーワードの説明付きの新しいツールチップを使用できるようになりました。
  • ReSharper | Options | Tools | External Sourcesの「Advanced symbols options」ダイアログが相対パスに対応しました。
  • Assembly Explorerツールウィンドウの「Properties」タブに「Summary」プロパティが追加され、アンマネージド(Win32)リソースサブツリーが追加されました。
Unreal Engine

Unreal Engineのサポート Ultimate

当社は過去のリリースで、UE4固有のリモートプロシージャコールの対応強化に向けて作業を開始していました。 今回、RenameリファクタリングとChange Signatureリファクタリングを更新し、RPC関数に正しく適用できるようにしました。 UE4ベースのコードに対応した新しいコード解析チェックもいくつか追加しました。これらは特に、見つからない、または正しく設定されていないUE4のリフレクションマクロを対象としています。

バージョン2019.1で追加したリフレクション指定子のコード補完に続き、今回はそれらリフレクション指定子の組み込みドキュメントを追加しました。 このドキュメントは、キャレットが指定子の上にある場合にQuick Documentationポップアップ(CtrlQ)に表示されます。

インデックス生成の高速化

C++プロジェクトのインデックス生成を高速化 Ultimate

ReSharper C++内部で使用される新しいプリプロセッサ実装により、LLVMおよびUnreal Engineのような一般的なソリューションでインデックス構築速度が15%~20%向上しました。

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

dotMemoryコンソールプロファイラの改善 dotMemoryコンソールプロファイラの改善 Ultimate

dotMemory 2019.2ではリモートプロファイリングのサポートを廃止しました。 適切な代替機能を提供するため、dotMemoryのコンソールプロファイラを以下のように大幅に改良しました。

  • コンソールプロファイラは、.NET Coreアプリケーション。IIS Express上で動作するアプリケーション、およびWindowsサービスその他を含むあらゆる種類のアプリケーションをプロファイリングするコマンドを受け付けます。
  • --trigger-on-activation引数を使用すると、これが可能になった後にメモリのスナップショットを取得できるようになります。 この機能は、基準となるスナップショットを取得して比較に使用したい場合に便利です。
ダウンロード
無料30日間体験版

ReSharper 2019.1

初期のC# 8サポート

初期のC# 8サポート

以下のような新しい言語機能のほとんどがすでにサポートされています。

  • 末尾からの範囲とインデックス
  • Null合体代入
  • Switch
  • switchステートメントのタプル式
  • 静的ローカル関数
  • 非同期ストリーム
  • null許容参照型
  • 再帰パターン
  • using宣言

最新の言語バージョンの機能をサポートするため、null許容注釈の入力支援機能が強化されました。

詳細については、インデックス、範囲、null合体-C#8の新しい言語機能の説明をご覧ください。

Visual Studio 2019 RTMのサポート

Visual Studio 2019 RTMのサポート

ReSharper 2019.1は、Visual Studio 2019の最新の最終リリースビルドをサポートしています。 C#8.0のサポート以外にも、次のような注目に値する変更点があります。

  • このビルドは、Visual Studio 2019の「非同期のパッケージの自動読み込み」APIをサポートしています。
  • Visual Studio 2019のMSTestフレームワークをサポートしています。

ReSharper 2019.1が普通のVisual Studio 2019よりも優れている点は何ですか?

コードフォーマットの更新

コードフォーマットの更新

コードフォーマットの改善点は次のとおりです。

  • 新しい入力支援では、Backspaceを押してコードのインデントを解除できます。
  • コードフォーマットとコードスタイル設定をすべて .editorconfig ファイルにエクスポートし、JetBrains製品を使用していない同僚の方々ともご共有いただけるようになりました。
  • フォーマット設定の検出はバックグラウンドで機能します。
  • 子ステートメントをインデントするためのフォーマットインスペクションは、デフォルトでオンになっています。
  • usingディレクティブの並び替えはVisual StudioStyleCopの動作と互換性があり、Systemを含むすべてのusingディレクティブをアルファベット順に並び替えるのをサポートします。
  • 新しい組み込みのコードクリーンアッププロファイルをご利用いただけます。

詳細については、「EditorConfigコードスタイルのエクスポート」、「SDKプロジェクトの参照の最適化」、および「ReSharper 2019.1のその他のアップデート」をご覧ください。

Go to Textに関するその他のファイル

Go to Textに関するその他のファイル

Go to Text(テキストに移動)を支えるエンジンは事実上、ソリューション内のすべてのテキストファイルを考慮に入れます。

以前は、Go to TextはReSharperによってすでにインデックスされたファイルのみを考慮していました。 大抵の場合、他のファイルに対して完全なインデックスを作成するのは費用が高くつくため、ReSharperは、コードを含んでいるかコードを書くのに役立つファイルのみをインデックスします。 そのため、「未知の」ファイル拡張子を持つすべてのファイルは完全に範囲外であり、コード以外のファイルを検索することはできませんでした。

今回はこのエンジンをレベルアップさせました! インデックスされたファイルの結果が表示されている間、このエンジンはバックグラウンドでインデックスされていないテキストファイルの中を検索し始めます。 これは、 .*proj、.yml、および.csvなど、さまざまな拡張子のファイルにデータを保存する場合に非常に役立ちます。

SDKプロジェクトの参照を最適化

SDKプロジェクトの参照を最適化

ReSharperは、SDKプロジェクトで未使用のパッケージ参照もチェックするようになりました。 プロジェクトのコンテキストメニューで「Optimize References」を使用し、これらの参照を解析および最適化できます。 プロジェクトに所定の参照を使用するコードが含まれていない場合は、未使用として表示されます。 未使用のパッケージを簡単にアンインストールして、プロジェクトの依存関係ツリーをきれいに保ちましょう!

詳細については、「EditorConfigコードスタイルのエクスポート」、「SDKプロジェクトの参照の最適化」、および「ReSharper 2019.1のその他のアップデート」をご覧ください。

メソッドの抽出リファクタリングの改善

メソッドの抽出リファクタリングの改善

Extract Method(メソッドの抽出)リファクタリングが、開発者にとってさらに使いやすくなりました。 導入されたパラメータに対して自動生成された名前がご希望のものではなかった場合は、その名前をリファクタリングダイアログで直接編集できます。また、導入されたメソッド名、戻り値の型、表示対象も編集できます。

コードエディタのヒント

コードエディタのヒント

パラメータ名のヒントが、コード内のより多くの場所で機能するようになりました。 まず、属性の使用箇所でそれらを見つけると、属性のパラメータの名前が表示されます。 次に、特別なヒントが StringFormatMethod 属性でマークされたメソッド(例: Console.WriteLine())に表示され、その位置に値が挿入されるパラメータのインデックスが表示されます。 “StringFormatMethod” のヒントはデフォルトで無効になっていますが、オプションで有効にできます。

さらに、メソッド宣言のパラメータに新しいコード注釈ヒントを導入しました。 これらのパラメータが次の場所で指定されている場合に、ReSharperコード解析によって計算されたパラメータのコード注釈が表示されます。

  • 親クラスにあるオーバーライドされた基本メソッド
  • 親インターフェースで宣言された実装メソッド
Unreal Engine

Unreal Engineのサポート Ultimate

プロジェクトのウォームスタート時間とコールドスタート時間が大幅に改善され、特にUnreal Engineプロジェクトには特殊なチューニングが施されたため、ReSharper C++2019.1はかつてないほど応答性が向上しました! Unreal Engineコードには、Unreal Engineの命名サポート、リフレクション指定子の補完、RPC用の特別なコード生成と移動オプション、強化された自動インポート機能が用意されています。

パフォーマンス

C++プロジェクトのパフォーマンス高速化 Ultimate

ReSharper C++ 2019.1は多くの場所でパフォーマンスが向上しました。 コールドスタートとウォームスタートが大幅に高速化され、初期インデックス作成時のメモリトラフィックが減少し、その後のメモリ使用量も少なくなりました。 また、Search everywhereGo to typeも高速化し、Go to file memberGo to base classGo to derived classの検索すべてをインデックス作成中にご利用いただけるようになりました。

ダウンロード
無料30日間体験版

ReSharper 2018.3

C#とVB.NET用のインラインパラメータ名のヒント

C#とVB.NET用のインラインパラメータ名のヒント

C#およびVB.NETコードの可読性を向上させるため、コードエディタに直接 パラメータ名のヒントを追加しました。 リテラルがメソッド呼び出しで使用されている場合、 ReSharperはパラメータ名による注釈を付けるため、その値が意味するものが はるかに理解しやすくなります。

詳細については、 ReSharperおよびRiderにおけるC#およびVB.NETのインラインパラメータ名のヒントを参照してください。

Visual Studio 2019のサポート

Visual Studio 2019 Preview 1のサポート

バージョン2018.3以降、ReSharperはVisual Studio 2019を早期にサポートし、 Visual Studio 2019 Preview 1ビルドに統合できるようになりました。 Visual Studio 2019は 正式にリリースされた後、今後のReSharperのアップデートで完全にサポート されます。

フォーマッタ設定と命名スタイルの自動検出

フォーマッタ設定と命名スタイルの自動検出

ReSharperのオプションで、自社のスタイルに合わせてフォーマッタの設定を調整するのに 非常に時間がかかったことはありませんか? もうご苦労いただく必要はございません! ReSharperコードからコードフォーマットスタイルを 検出し、それに合わせてフォーマッタ設定を調整します(ReSharper | Edit | Detect formatting settings)。

ReSharperがコード内で使用されている命名スタイルを検出してその命名規則に従うようになり、 これまでのようにほとんどのエンティティが Inconsistent naming 警告で ハイライト表示されることはなくなりました。

詳細については、 ReSharperを使ったコードスタイルと命名設定の検出を参照してください。

C#7の分解サポートの強化

C#7の分解サポートの強化

当社はReSharperのC#への対応を継続的に強化し、同言語を最大限に活用してコードを 簡単に改善できるようにしています。 このリリースのGo To Declaration/Implementationは、分解宣言、新規または更新されたインスペクションクイックフィックスおよびコンテキストアクションをサポートしています。

詳細については、 タプル、分解、文字列補間 – インスペクションとクイックフィックスの改善を参照してください。

パラメータ化されたNUnitテストのインスペクション

NUnitのコードインスペクション

このバージョンでは、NUnitのテストを高速に書くためのコードインスペクションのセットと、それに付随する クイックフィックスとコンテキストアクションを導入しています。

詳細については、 ReSharperおよびRider 2018.3におけるユニットテストのメジャーアップデートを参照してください。

VB.​NET 15.3と15.5の言語サポート

VB.​NET 15.3と15.5の言語サポート

C#に加えて、ReSharperはVB.NETへの対応を継続的に強化しており、ついに 以下を含む最新のVB.NET言語バージョンのすべての機能に対応しました。

  • 名前付きタプルの推論。
  • 先頭の16進数/2進数/8進数の区切り記号。
  • 末尾以外の名前付き引数。
  • Private Protectedメンバーのアクセス修飾子。

詳細については、 VB.NET 15.3および15.5の言語機能を参照してください。

コード解析

コード解析

分解のサポート強化と最新バージョンのVB.NETへの対応に加えて、以下のように さまざまなケースに対応した多数の新しいインスペクション、クイックフィックス、 およびコンテキストアクションがC#とVB.NETのコード解析に追加されました。

  • Set C#/VB.NET language versionクイックフィックスでは、単一ソリューション内の すべてのC#/VB.NETプロジェクトに言語のバージョンを設定するオプションを取得できます。 この クイックフィックスは、.NET Frameworkプロジェクトと.NET Coreプロジェクトの両方に使えます。
  • 新しいクイックフィックス、このプロジェクトでは安全ではないコードを許可するが使えるようになりました。
  • メンバーの初期化では、オブジェクト初期化子を作成して値を設定できます。
  • まだまだございます!

詳細については、 タプル、分解、文字列補間 – インスペクションとクイックフィックスの改善を参照してください。

TypeScript 3.0のサポート

TypeScript 3.0のサポート

ReSharperはTypeScript 3.0をサポートし、次のような新しい言語機能に対応できるようになりました:

  • 未知のトップ型。
  • タプル型の省略可能な要素。
  • タプル型のrest要素。
  • タプル型を持つrestパラメータ。
  • タプル型を持つスプレッド式。
  • 一般的なrestパラメータ。
ASP.NET Coreの初期ローカライゼーションサポート

ASP.NET Coreの初期ローカライゼーションサポート

ReSharperは最新のASP.NET Coreで導入された 新しいローカリゼーション手順をサポートし、一流のWebアプリケーションを最新の方法で ローカライズできるようにしています。 ReSharperの支援機能は、コントローラビュー、およびリソースファイルで利用できます。 現在、以下をサポートしています:

  • リソース使用箇所での宣言部に移動
  • resxファイル内のリソースノードでの使用箇所を検索。
  • リソース使用箇所でのインスペクション各種カルチャのresxファイルに (リソースの宣言が不足している場合)、およびそれに付随するクイックフィックス。
  • リソース関連のほとんどのリファクタリング。例えば、移動、名前の変更、インライン化、および安全な削除。
  • resxファイル内でリソースエンティティを修正するための複数のコンテキストアクション。
その他の更新

その他のReSharperの更新

  • アクションに移動ポップアップを使用して、オプションページを検索できるようになりました。
  • パラメータの導入リファクタリングがローカル関数でご利用いただけるようになりました。
  • ReSharperのFIPSへの準拠度を高めるため、md5ハッシュアルゴリズムの使用をやめ、 過去にコードベースで使用していた箇所をすべて排除しました。
  • ReSharperエディタの装飾部分にVisual Studio IntelliSenseとText Editorのどちらを 継承させるかを選択できるようになりました。
さらに多くの更新がございます

ReSharperにはさらに多くの更新がございます

  • Inspection ResultsウィンドウおよびError in Solutionウィンドウのインスペクションで、そのインスペクションに 対応するヘルプ記事がある場合にShow Inspection Helpを使用できるようになりました。
  • かつて一つにまとまっていた「Method, Property, Event」命名スタイルが「Method」、 「Property」、「Event」の3つの命名スタイルに分離されました。
  • C#、JS、HTML、XMLファイルのコードフォーマッタで、先行するノードのインデントが 考慮されるようになりました。
  • 初期化子の括弧内でインデントを連続で行えるよう、新しい別のコードフォーマッタ オプションが追加されました。

パフォーマンスの最適化

複数箇所でパフォーマンスが最適化されました:

  • アセンブリの読み込み部分をリファクタリングし、ソリューションの読み込みを高速化しました。
  • キーワード補完の速度と精度が向上し、全体的に自動ポップアップの遅延が 減りました。
  • 項目を高速に並べ替えられるようになり、コード補完が高速化しました。
  • 値追跡が非同期に結果を収集できるようになりました。

コマンドラインツール

コマンドラインツールにいくつか新しいキーが追加されました:

  • Verbosity(冗長)は特定の重大度を持つ課題のみを出力に保存します。
  • Jobsはマルチスレッドモードでコード解析を実行します。
C++/CLI

C++/CLIとUE4のサポートを改善 C++/CLIとUE4のサポートを改善 Ultimate

特に2種類のプロジェクトがこのリリースの恩恵を受けます。 その一つは、C++/CLI(ReSharper Ultimateが必要)で、これは、新規生成アクションを取得し、等値演算子、ハッシュ関数、getterやsetter、コンストラクタを生成し、派生クラス、構造体、インターフェースを作成できます。

もう一つは、Unreal Engineです。 まず第一に、初めてプロジェクトを開く際の時間が大幅に高速化されています。これは、ReSharper C++は、最初のインデックス作成処理でエンジンに属さないファイルのみを解析する一方で、エンジンファイルを後でバックグラウンドで処理するからです。 さらに、UCLASS、USTRUCT、UENUMのようなリフレクションマクロはすべて、仮にプロジェクトを一度もビルドしたことがない場合でも、エディタ内で非常に良く処理されるようになりました。

responsive_editor

応答性の高いエディタ 応答性の高いエディタ Ultimate

ReSharper C++ 2018.3では、いくつか重要なパフォーマンスの改善が行われております。 まず、問題コードの検索InspectCodeコマンドラインツールが並列実行できるようになり、劇的に高速化されました。 また、プロジェクトを再度開く際のキャッシュの読み込みも並列化されるようになり、平均で2倍高速化されました。 最後に、コード補完やプロジェクトの初回インデックス処理、ファイル解析でも、全般的にパフォーマンスの改善が行われています。

ダウンロード
無料30日間体験版

ReSharper 2018.2

パフォーマンスの改善

パフォーマンスの改善

当社はリリースのたびに多数のパフォーマンスの改善やバグフィックスを行い、ReSharper Visual Studioへの影響を抑え、応答性を高め、UIのフリーズを解消しています。 当社は ReSharper 2018.1以降、ブログ記事で パフォーマンスに関する最新情報を公開し始めました。このような記事には現在の対応状況、 問題の発生原因、最新リリースサイクルでの修正内容、および今後の対応計画などが あります。

2018.2をリリースした際には、EditorConfigサポートのスピードアップから ソリューションの読み込み時間の短縮まで、ReSharperのさまざまな部分で 約30件のパフォーマンスの修正を行いました。 詳細については、ReSharper 2018.2リリース専用の 新たなブログ投稿シリーズで確認できます。

ReSpellerによるスペルチェッカーの統合

ReSpellerによるスペルチェッカーの統合

このリリースでは、スペルチェック機能を提供するReSpeller拡張機能を 初めから提供しています。 コード解析と同様に、ReSpeller識別子コメント文字列リテラルその他のスペルミスや入力ミスを スキャンし、検出されたそれぞれの問題を解消するクイックフィックスを提供しています。 ReSpellerは、 ReSharperがサポートする多くの言語に対してデフォルトで有効化されています。 設定で「typo」と検索すると(最終的にCode Inspection | Inspection Severityに たどり着きます)、各インスペクションの有効化/無効化および重大度の変更を 簡単に行えます。

その後、AltEnterメニューを起動すると、ReSpellerからミスを修正するための オプションが複数提示されます。 このメニューでは入力ミスを修正したり、新しい単語を ReSpellerの辞書に追加したりできます。

スペルチェッカーにはデフォルトで英語(米国)の辞書が組み込まれています。 スペルチェッカーはHunspellベースの辞書を 使用しているため、お好みに応じて追加の言語を インストールすることができます。

詳細については、 ReSharperおよびRiderでのReSpellerによるスペルチェッカーの統合を参照してください。

C# 7.3 サポート

C# 7.3 サポート

ReSharperは以下に挙げる、最新のC# 7.3の全機能をサポートするようになりました:

  • 初期化子およびクエリでの宣言式
  • タプルの等値性。
  • 参照割り当て。
  • UnmanagedSystem.Delegate、およびSystem.Enum制約。
  • Stackalloc配列初期化子。
  • パターンベースのfixedステートメント。
  • 移動可能な固定バッファーのインデックス化。

構文のサポートのほか、コードをC# 7.3に対応させるための新しいインスペクションや適切なクイックフィックスを追加いたしました。

詳細については、 ReSharperおよびRiderにおけるC# 7.3を参照してください。

初期のBlazorサポート

初期のBlazorサポート

実験的なプロジェクトであるBlazorは、WebAssemblyを使ってブラウザ内で 動作する.NET上でビルドされた単一ページのウェブアプリです。 Blazorは今のところ実験的な プロジェクトであると発表されていますが、当社はReSharperにこの有望なフレームワークを初めて サポートしました。 例えば、コード補完には、すべての可能なディレクティブ、例えば、 ページ(ルーティング)、インジェクト(サービスインジェクション)、および 関数(コンポーネントメンバ)が含まれています。

詳細については、 ReSharperおよびRider 2018.2における初のBlazorサポートを参照してください。

ナビゲーションの改善

ナビゲーションの改善

小規模ながらも便利な複数の新機能がナビゲーションに追加されました。

ReSharperはSearch & Navigation オプションに長く待ち望まれた機能を導入しました。 Environment | Search & Navigationでマスクを使用して無視されるファイルを 指定できるようになりました。 すべての検索機能とナビゲーション機能からファイル拡張子に応じて、 またはフォルダ別にファイルを除外できます。

StackTrace Explorer解析エンジンがSearch Everywhereに追加 されました。 ReSharper 2018.2では、dotTraceまたは Visual Studioのコールスタックウィンドウから関数のシグネチャをコピーし、 Search Everywhereを使用してコードベース内の正しいメソッドオーバーロードに 直接移動できるようになりました。

最後に付け加えますが、ReSharperのFile StructureContaining DeclarationNext/Previous Membersなどの機能でローカル 関数が考慮されるようになりました。

IntelliSenseの色付きパラメータ情報ポップアップと概要ツールチップ

IntelliSenseの色付きパラメータ情報ポップアップと概要ツールチップ

このリリースでは、ReSharperの項目検索ポップアップで パラメータ情報の表示方法を更新しました。 例えばC#またはVB.NETでコード補完を使用する場合、 ReSharperパラメータの型メソッドの戻り値の型を異なる色で 表示し、メソッドのオーバーロードを視覚的に識別しやすくします。

フォーマッタエンジンの更新

フォーマッタエンジンの更新

フォーマッタエンジンに以下の複数の新機能が搭載されました:

  • フォーマッタ設定をオーバーライドするためのコードファイル内のコメントは、フォーマット設定から直接生成できるようになりました。
  • ファイルフォーマット 情報ツールウィンドウで、StyleCopのルールに影響を受ける設定が、明確に表示されるようになりました。
  • オプションダイアログで、StyleCopのルールがコードスタイルやフォーマット設定をオーバーライドする場合に、StyleCopのルール名を表示できるようになりました。
JSLint、ESLint、TSLint

JSLint、ESLint、TSLint

ReSharperは、3つの静的解析ツール(JSLintESLintTSLint)に 対応し、組み込みのコード解析規則を拡張しています。 これらすべてのリンターは、 JavaScriptとTypeScriptのコードの可読性と保守性を確保するのに役立ちます。 これら使うと、 ReSharperのコード解析に含められるカスタムルールを追加できます。

Node.jsインタプリタをお使いのマシン上で構成済みの場合、 Tools | Web Linters以下のReSharper設定でリンターを有効化できます。

リファクタリングUIの更新

リファクタリングUIの更新

このリリースでは、複数のReSharperリファクタリングが新しいプレゼンテーションフレームワークに 移動されました。 ほとんどの改善は内部的に実施されており、UIではご確認いただけません。 この移動により、ReSharperとRiderにまたがるコントロールの動作を一元化できました。

UI上で確認できる主な変更には以下が含まれます:

  • シグネチャの変更ダイアログで、パラメータの型のコード補完ポップアップが実装されました。
  • Extract Methodで、メソッドまたはローカル関数を結果的に作成すべきかどうかを指定する 特定用のポップアップが実装されました。
その他のReSharperの更新

その他のReSharperの更新

ReSharper 2018.2でのその他の更新には以下が含まれます:

  • Fix in scopeクイックフィックスでより細かく修正範囲を指定できるようになりました: Fix in method and Fix in class.
  • 組み込み型のコードスタイルが改善されました。メンバーアクセス式 および「フィールドパラメータ変数」の宣言に個別の設定を適用 できるようになりました。
  • ReSharper Buildでスキップしたプロジェクトに対してBeforeBuildAfterBuild ターゲットを実行できる新しいオプションを追加しました。
  • XAMLで不適切な場所に置かれたテキストをハイライト表示する新しいインスペクション。
  • XML/XAMLのサポートでは、別々の行の終了タグの前でEnterを押すと、入力支援 機能によって終了タグの前に空行を挿入し、キャレットを(終了タグの位置に移動するのではなく) 空行の位置に残すようにしました。
C++/CLI

初のC++/CLIサポート 初のC++/CLIサポート Ultimate

C++/CLIはMicrosoft社によるC++言語拡張機能のセットで、マネージコードとネイティブコード間の相互運用を容易にするためのものです。 マネージ言語とC++の両方に対して広範なサポートを提供するReSharperは、C++/CLIでのコーディングにも役立ちます。

ただし、C++言語のセマンティクスには構文上の追加や独特の変更が多数行われているため、 C++/CLIの処理は簡単な作業ではありません。 しかしもう、待つ必要はなくなりました。なぜなら、ReSharper C++ 2018.2がC++/CLIサポートを公開し、多くの主要な機能(コードインスペクション、入力支援、フォーマット、コード補完など)が更新され、この言語の方言をサポートするようになったからです。

C++20の機能

C++17とC++20の機能 C++17とC++20の機能 Ultimate

ReSharper С++ 2018.2では、最新のC++言語への理解を深めています。 クラステンプレートの テンプレート引数の推論、ユーザー定義の推論ガイド、fold式、自動非型テンプレート パラメータなどを新たにサポートし、C++17の主要機能のほとんどがReSharper C++で サポートされるようになりました。

C++20標準が既にまとまりつつあるため、ReSharper C++ 2018.2では主要なコンパイラで既に利用できる多数のC++20の機能を理解し始めています。 具体的にはコルーチン、指示付き初期化、機能テストマクロその他です。

ダウンロード
無料30日間体験版

ReSharper 2018.1

C# 7.2の完全理解

C# 7.2の完全理解

ReSharperのこのリリースは、C# 7.2のinおよびoutを完全に理解します。 これを達成するため、ReSharperは不足していた以下の項目への対応を行いました。

  • 末尾以外の名前付き引数。
  • private protected アクセス修飾子。
  • 数値リテラルの先頭のアンダースコア。
  • inパラメータ。
  • ref readonly戻り値とローカル。
  • readonly struct型。
  • ref struct型。
  • 条件付きref演算子。

以下もご確認ください:

ナビゲーションの改善

ナビゲーションの改善

Go to File Memberでは単一ファイル内の複数のクラスが分かりやすく グループ表示されるようになり、ファイル内の宣言順にメンバーが表示されるようになりました。

Recent Filesで検索する際、ファイルの検索結果が 一致した最近の項目のすぐ後ろに含まれ、表示されるようになりました。 これは、最近の ファイルの一覧に表示されていないファイルを探している場合に役立ちます。

Search Everywhereにユニットテストプロジェクトのコード要素に焦点を合わせられる 新しいユニットテストフィルタが搭載されました(これがあなたが期待しているものである場合)。

最後に付け加えますが、クラスでFind Usagesを呼び出した際、クラス内で コンストラクタが定義されていない場合に検索結果をデフォルトコンストラクタの使用箇所に制限できるようになりました。

詳細については、 Rider 2018.1におけるナビゲーションの改善を参照してください。

フォーマッタ関連のインスペクション

フォーマッタ関連のインスペクション

時々、フォーマット規則に従っていない場合にコード内で直接通知を受けたいことがあるかと思います。 この点を考慮し、ReSharperのコードフォーマットエンジンにフォーマット関連の 問題に対応したインスペクションとクイックフィックスを導入しました。これによって、 インデント、改行、スペース、空白行をコードエディタ内から直接監視して修正できるようになりました。

入力中にフォーマットに気にしない方の邪魔にならないよう、これらの機能はデフォルトで 無効になっています。 利用可能なすべてのフォーマッタインスペクションを表示し、通知を 受け取りたいインスペクションの重大度レベルを選択するには、ReSharper | Options | Code Inspection | Inspection Severityに移動してください。

詳細については、 フォーマットインスペクションによる一貫した コードスタイルの維持を参照してください。

C# 7サポートの強化

C# 7サポートの強化

利用可能な最新版のC#言語のサポートに加えて、ReSharperは過去のC#のバージョンに対しても 継続的な改善を実施しています。 このリリースでは、新しいコードスタイル、コード インスペクション、クイックフィックス、コンテキストアクションを追加し、分解宣言 と varの中から選べるようになり、明示的および暗黙的な破棄を処理できるようになりました。

また、ReSharperに分解をサポートする機能がさらに追加されました。Introduce Variableリファクタリングと .var後置テンプレートで値を分解する新しいオプション、.foreach後置テンプレートの deconstruct iterator variableオプション、ならびにMerge deconstructed declarationDeconstruct variableの2つの新しいコンテキストアクションを追加しました。

もっと見る:

コードスタイル/インスペクションの重大度を指定するさらなる複数の方法

コードスタイル/インスペクションの 重大度の指定方法を追加

このリリースでは、ReSharperが.editorconfigファイルから コードスタイル設定(ReSharper | Code Editing | C# | Code Style)を読み出せるようになり、 Roslyn 言語規約への対応を強化しました。

また、.editorconfigをソリューション全体、プロジェクト単位、指定ファイルなど 任意の範囲に対してインスペクションの重大度を設定するために使用できるようになりました。 さらに、インスペクションの重大度設定は引き続きプロジェクトの.dotSettings ファイルから読み出すことができます。 つまり、プロジェクトに対してさまざまな重大度のインスペクションを有効化または無効化した セットを個別に持たせることができます。

このインスペクション設定の読み出し元が混在したモードを有効にするには、 ReSharper | Code Inspection | Settings | Generalに移動してRead settings from editorconfig and project settingsを選択してください。

以下もご確認ください:

StyleCopのサポート

StyleCopのサポート

ReSharperはRoslynのコーディング規約と同様に、StyleCopのルールも直接StyleCopの設定 ファイルを読み出します。 この機能を有効にするには、ReSharper | Code Editing | General Formatter StyleEnable StyleCop supportを選択してください。

EditorConfigファイルとStyleCopの設定ファイルを同時に使用した場合、EditorConfig ファイルが常にStyleCopの設定ファイルに優先され、同様にReSharper独自の設定にも優先されます。

詳細については、 StyleCopのコード設定とインスペクションを参照してください。

C# 7の機能に値の追跡が追加

値のトラッキングがC# 7の機能に 対応

値追跡がレベルアップし、C# 7の一部の主要機能に対応いたしました。 refを返すメソッドパターンマッチング、あるいはout変数を使用している場合でも、 Value Origin/Destinationで指定変数の値をトラッキングできるようになりました。

詳細については、 Rider 2018.1におけるValue trackingの更新を参照してください。

コメント処理機能の強化

コメント処理機能の強化

ReSharperでコード内のコメントを処理するための新機能がいくつか追加されました。

Comment codeアクションで使用されるコメントの位置が ReSharper | Code Editing | C# | Formatting Style | Tabs, Indents, AlignmentDon't indent comments started at first column設定を参照するようになりました。

これまでは行コメント内でEnterを 押すと、コードがコンパイル不可能な状態になって いました。 今後は行コメント内でEnterキーを押すと、単一のコメントが2つのコメントに 分割されます。 これで、単一のコメントを任意の数のコメントに素早く分割できるようになりました。

その他のReSharperの更新

その他のReSharperの更新

ReSharperのその他の更新には、以下が含まれます:

  • ReSharper Buildエンジンでビルド前/後のタスクのサポート。
  • メソッドの呼び出し/宣言部の丸括弧、改行、およびLINQ式の折り返しに関する新しい設定が 追加されました。
  • ISetでの予期しない線形検索に対応した新しいインスペクション。
  • ナビゲーション機能で最後の検索を記憶オプションがデフォルトで有効化されました。 ライブラリの種類を含めるオプションの状態も保存されます。
任意セッションでの継続的テスト

任意セッションでの継続的テスト Ultimate

継続的テストのセッションを分ける必要がなくなりました! 継続的テストモードを任意のユニットテストセッションで有効にできるようになりました。 dotCover 2017.3以前では、継続的テストの対象スコープが単一の連続するテストセッションに 制限されていました。 今後は必要な数のスコープを継続的テストに使える ようになりました。

ソリューションのビルドや保存後 旧バージョンのdotCoverでは常に、テストがカバレッジモードで起動されていました。 2018.1ではカバレッジはもはや不要となりました。新しいテストや古いテストをカバーせずに それらを単純に実行するよう、dotCoverに指示できるようになりました。 これは、最新カバレッジのスナップショットがある場合に 大幅に時間を短縮できる可能性があります。

dotCover 2018.1の詳細をご確認ください。

ユニットテストカバレッジウィンドウ

ユニットテストカバレッジウィンドウ Ultimate

カバレッジ情報がセッション別のCoverageタブではなく、独立したUnit Test Coverage ウィンドウに表示されるようになりました。 これにより、すべての ユニットテストセッションのカバレッジデータを一箇所で集約して表示できるようになりました。

dotCover 2018.1の詳細をご確認ください。

デバッグステップフィルタ

デバッグステップフィルタ Ultimate

ステップフィルタは、ReSharper C++が提供する多数の デバッグ用機能に新たに追加された機能です。 Step Intoを呼び出した際、 Visual Studioのデバッガは 通常現在のステートメントから呼び出されるすべての関数にステップインします。 しかし、 機能の中にはステップインが不要な非常に小規模なものや、十分にテストが行われている ものもあります。 そこでステップフィルタの出番です。それを使うことで、常にデバッガに ステップオーバーさせる関数を指定することができます。

ReSharper C++には事前定義済みの標準ライブラリ用ステップフィルタのコレクションが 収録されていますが、いつでも新しいステップフィルタを追加することができます。

ReSharper C++ 2018.1の詳細をご確認ください。

インクルードアナライザ

インクルードアナライザ Ultimate

コンパイル時間は、実環境の大規模C++プロジェクトにおける最大の問題の一つです。 ReSharper C++ 2018.1では、プロジェクト内のどのヘッダー ファイルが全体的なコンパイルの負荷に最も寄与しているかをコードの行数から評価できる新しい コードインスペクションツールインクルードアナライザを導入しています。 この機能を使用するには、 ReSharper | Inspect | Analyze Includes in …アクションのいずれかを呼び出すか、 ソリューションエクスプローラーのコンテキストメニューからAnalyze Includesを選択します。 ReSharper C++は対象範囲のファイルを解析して 専用のツールウィンドウにレポートを表示します。

ReSharper C++ 2018.1の詳細をご確認ください。

ダウンロード
無料30日間体験版

ReSharper 2017.3

ReSharperのデバッガ機能

デバッガ機能

ReSharperはRiderのデバッグ機能の一つをVisual Studioに導入します。ローカル変数の値、 現在行の式の値、および関数の戻り値がエディタに表示されるようになりました。 これにより、コードエディタを離れることなく、デバッグセッションで即座にフィードバックが提供されます。

ReSharperには任意の値を検索できる独自のデバッガであるDataTipsが付属して います。 入力を開始するだけで、その場ですぐに検索結果が表示されます。

以下もご確認ください:

パフォーマンスガイド

パフォーマンスガイド

ReSharperのPerformance Guideは、パフォーマンスに悪影響を与える可能性がある Visual StudioとReSharperの設定を収集し、 それらの設定を一元的に調整してIDE全体の応答性を改善できるようにします。

Performance GuideはReSharperのオプション、Environment | Performance Guideにあります。

この機能は、パフォーマンスに関する既知の問題への対処法を収集し、優先順位を付けた 膨大なReSharperのウェブのヘルプ記事をヒントにしたものです。

以下もご確認ください:

大規模なコードフォーマットエンジンの更新

大規模なコードフォーマットエンジンの更新

以下のような多様なユースケースに対応するため、コードフォーマットエンジンを大量の新しい設定で拡張し、 柔軟度の高いフォーマットを使用できるようにしました。

  • 内側に余分なスペースを確保するためのオプション(ユーザーが入力した既存の=周辺の位置揃えに従うため)
  • 二項演算子、ドット、カンマをインデント解除するオプション
  • 「Nested ternary expression style(ネストされた三項式のスタイル)」オプション
  • 内容に応じてステートメントの前後に空行を挿入するオプション
  • ネストされたバイナリ式とチェーンメソッドの呼び出しの位置合わせを改善
  • 同じ行や前の行に属性を配置し、属性の配置を指定するための改行と折り返しのオプション…
  • 式のようなメンバーに単一行/複数行のフォーマットを指定するオプション
  • 埋め込みコードブロック用のオプション
  • HTMLフォーマッタに複数行の要素の前、あるいは全要素の前の改行用の新しいオプションが実装されました。
コードの桁揃え

コードの桁揃え

ご要望の多かったコードの位置揃えに関して、多数の機能リクエストを実装いたしました。 等号演算子の 位置揃え、インデント解除や三項演算子によるコードの視認性の向上へのご要望、および その他にもコードの可読性を向上するための複数のご要望をお寄せいただいておりました。

開発者の中には、クラス内のプロパティの水平位置(例:{ get; set; }の 開始位置)を揃えたい方も いらっしゃいます。 また、代入位置を桁揃えしたいという方もいらっしゃいます。 ReSharper 2017.3では これらすべてのご要望に対応しました!

詳細については、 ReSharperおよびRiderにおけるコードの水平位置揃えを参照してください。

選択したブロックでのフォーマッタの有効化/無効化

選択したブロックでのフォーマッタの有効化/無効化

このリリースでReSharperは、コードフォーマットが、特定のコメントで囲まれたコードブロックで実行されるを阻止いたします。 コードブロックごとに異なるフォーマットスタイルを使用したい、あるいは全体的にフォーマット処理を 無効化したいというご要望を多くのユーザー様からお寄せいただいておりました。 このリリースからは、ご自作の独自フォーマットに対して、不要な変更が行われるのを防げるようになりました!

また、ブロックをコメントで囲むことで、フォーマッタ全体を無効化することなくコードブロックの 特定の設定を上書きできるようになりました。

詳細については、 ReSharperおよびRiderにおけるコードブロック別のフォーマットスタイルを参照してください。

メソッドの抽出リファクタリングの改善

メソッドの抽出リファクタリングの改修によって、C# 6とC# 7のサポートが向上いたしました。 具体的には、ローカル関数のサポートが追加され、outパラメータの代わりに値のタプルを返すオプションが追加され、リファクタリングが式のようなメンバーで動作するようになりました。

詳細については、C# 6 と C# 7のサポートを強化した、ReSharperのメソッドの抽出リファクタリングをご参照ください。

容易なブレークポイント/トレースポイントの作成と移動

効率的なブレークポイント/トレースポイントの作成と移動

ReSharper 2017.3では、Find Resultsウィンドウの検索結果からブレークポイントや トレースポイントを直接作成できるようになりました。 デバッグしたいコードエンティティの出現箇所すべてに対して、素早くブレークポイントを生成できます。

また、新しいリリースではソリューション内で利用可能な すべてのブレークポイントとトレースポイントを表示するBreakpoints メニューが追加されました。 このメニューでは、それらを直接検索・削除したり、別のツールウィンドウでリストを表示したりできます。

新しいR# Breakpoints ツールウィンドウは、以下のようなブレークポイント/トレースポイントに関する多数のアクションをサポートしています。

  • さまざまな方法でグループ化(ファイル/フォルダ/プロジェクト/型/メンバー)。
  • 単一項目や項目グループの削除/無効化/有効化。
  • それらの検索。

使用箇所の検索/呼び出し追跡の更新

Find Resultsツールウィンドウで、複数行にまたがる検索結果に対する配慮を加えました。 検索結果ツリー内の表示を変更し、ヒットした単語の前後の文脈を一行で表示するようにしました。 これにより、検索結果リストで、複数行にまたがる検索結果が見やすくなりました。

更新されたCall Trackingツールウィンドウでは、確認済みの呼び出しを削除することで 作業に集中できるようにしています。

ToDo項目から外部リソースへのリンク

ToDo項目から外部リソースへのリンク

ToDoのパターンにURLフィールドが追加されました。このフィールドを元に、ToDo項目でCtrl クリックするか、AltEnterでコード内に外部リソースに移動できるリンクが作成されます。 この機能により、完全なURLではなく、課題ID だけを使ってToDoコメントを簡単に明瞭に書くことができます。

ToDo項目のリンクは、エディタ内にリンク先の課題を インライン表示するPeek Preview機能をサポートしています。 また、 AltEnterメニューの To-do ExplorerでToDo項目を簡単に識別できます。

さらに、To-do Explorerの新しいフィルタでは 複数のパターンを選択できます。

新しいC#の入力支援機能

新しいC#の入力支援機能

C#対応の新しい便利な入力支援機能をさらに追加いたしました:

  • Enterを入力して新しい行に*を入力すると、新しい複数行 コメントを記入するための*/を自動生成します。
  • ドット入力後のチェーンメソッド呼び出しでメソッドをインデントします。
  • 波括弧や丸括弧を入力すると、選択したコードを囲みます。

関連した変更で、EnterでのスマートインデントがReSharperで計算されるようになり、ReSharperのオプションで定義されたインデントと位置揃え設定を考慮いたします。

VB.NETのタプル

VB.NETのタプル

ReSharperがVB.NET 15で導入されたタプル構文に対応しました。 これによって、タプル構文を使用しても不正に赤文字でコードが表示されることはなくなり、IntelliSenseによって入力を妨げられることはなくなりました。

ツールウィンドウの強化されたプレビューパネル

ツールウィンドウの強化されたプレビューパネル

このリリースでは、Find ResultsOptionsなどの大多数のReSharperの ウィンドウに新しいプレビューペインを 導入しています。

Find Resultsでは、プレビューペイン内のコードがより自然に表示されるようになりました。 キーワードと文字列がハイライト表示され、識別子が色付けされ、フォントの設定や倍率が Visual Studioのテキストエディタ設定から継承されるようになりました。

ReSharperオプションのフォーマッタのページでは、選択したフォーマットスタイルをすべて 把握できるよう、ホワイトスペースとタブが常にペインに表示されます。

その他のReSharperの更新

その他のReSharperの更新

ReSharperのその他の更新には、以下が含まれます:

  • AltEnterメニューは、ファイル解析の完了を待つことなく即座に表示されます。
  • TypeScriptでは、型ガード対応のパフォーマンスを改善し、npmモジュールの変更が追跡できるようになり、インポートされたパスを自動補完できるようになりました。
  • Visual Studio 2015と2017ではPeek Definitionがサポートされています。
  • 新しいコード生成アクションをご利用いただけるようになり、C# 7.0を使用する際に、選択したフィールドやプロパティからデコンストラクタを作成できます。
  • <inheritdoc/>がVB.NETに対応しました。
非同期呼び出しのサポート

非同期コードのプロファイリング Ultimate

非同期コードの欠点は、プロファイリングとパフォーマンス解析が非常に困難な ことです。

dotTrace 2017.3では、非同期コードの解析が大幅に単純化されています。 Call Tree内の すべてのasync呼び出しノードがマークされ、 対応するawait時間と該当ノード配下に続くコードが グループ化されます。 つまり、別々のコールスタックを検索する代わりに一箇所で非同期呼び出しに関わる すべての「パーツ」をすばやく検索することができます。

dotTrace 2017.3の詳細をご確認ください。

Clang-Tidyの統合とその他のReSharper C++の更新

ReSharper C++の更新 ReSharper C++の更新 Ultimate

ReSharper C++ 2017.3では本線のReSharperと同じデバッガ機能を 導入し、C++17とC++14の仕様を含む言語への理解を深め、 Clang-Tidyを統合し、コードインスペクション、コンテキストアクション およびフォーマットオプションを拡充し、ユニットテストランナーを Catch2に対応させました。

ReSharper C++ 2017.3の詳細をご確認ください

ダウンロード
無料30日間体験版

ReSharper 2017.2

ReSharperとRazorページ

.NET Core 2.0

.NET Core 2.0はプレビュー期間終了後にVisual Studio 2017 15.3と 共にリリースされました。

ReSharper 2017.2では、.NET Core 2.0プロジェクトでお好みのコードインスペクション、ナビゲーション アクションおよびリファクタリングを安全に使用することができます。 ウェブ開発者の皆様は、ReSharperでMVCベースの ウェブアプリケーションだけではなく、ASP.NET CoreのRazorページプロジェクトも処理することができます。

ReSharperの過去のリリースで.NET Coreアプリケーションのユニットテストに問題が発生していた方は、 ユニットテストランナーが.NET Coreプロジェクト(1.1および2.0の両方)でNUnitに対応したこと、 ならびに.NET Core 2.0プロジェクトでMSTestとxUnit.netの両方を実行できるようになったことにご注目ください。

最後に付け加えますが、ReSharperのSolution Builderが.NET Coreプロジェクトに対応したため、 アプリケーションの再コンパイルにかかる時間を大幅に削減できるようになりました。

パターンによる複数のifステートメントから単一のswitchステートメントへの変換

C# 7.0サポートの改善

ReSharperのC# 7.0への対応は、リリースのたびに強化されています。 このリリースサイクルでは、 ReSharperのパターンマッチング処理が以下のように強化されています。

  • switch後置テンプレートを非シール参照型の変数で使用できるように なりました。
  • 新しいコンテキストアクションであるGenerate type patternsを使うと、 選択した型のswitchケースを簡単に作成することができます。
  • 完全に手直しされたConvert to switchクイックフィックスでは、複数のif ステートメントをパターンを使用して単一のswitchステートメントに変換できます。

ReSharperが、out変数varの使用(またはコードスタイルに応じて 明示的な型の使用)を提案できるようになりました。 また、outパラメータを使ったメソッド 呼び出しにのみ使用される変数の代わりに、out変数を導入するためのインスペクションと クイックフィックスが追加されました。

デフォルトのリテラル

C# 7.1の理解

Visual Studio 2017 15.3ではC# 7.1が導入されましたが、ReSharperはこの言語の機能にいち早く対応しています。 例えば、C# 7.1ではdefault(T)式の代わりに使用できるdefaultリテラルが追加され、 使用文脈に応じてターゲットの型が推測されます。 ReSharperはdefault リテラル構文を認識し、default(T)が使用されたときにインスペクションを 提供し、冗長な型指定を削除するクイックフィックスを提案します。

また、ReSharperは冗長なタプル値の コンポーネント名を初期化子から推測可能な場合に明確化するインスペクションにより、タプルプロジェクション初期化子に 対応しています。

さらに、ReSharperはasync mainジェネリックによるパターンマッチングにも対応しています。

呼び出しへの明示的な.AsEnumerable()の追加

新しいIEnumerableインスペクション

ReSharperのIEnumerable インスペクション一式が拡張され、次のような新しいシナリオに対応しました:

  • Possible multiple enumerationコードインスペクションが、IOrderedEnumerable およびParallelQueryから派生した型を考慮できるようになりました。
  • 新しいコードインスペクションでは、予期せず行われた可能性のある IQueryableからIEnumerableへの変換を検出します。
冗長な値タプルコンポーネント名のチェック

その他のコードインスペクションとコンテキストアクション

C# 7.1では値タプルの要素名が推測されますが、ReSharperでは冗長な値タプルの コンポーネント名を発見することができます。

Introduce auto-property from parameterクイックフィックスでは既にprivateなsetterを 追加したり、それをpublicで変更可能なプロパティに変更したりできる豊富なオプションセットを持つ get-only自動プロパティを導入できるようになっています。 現在、Initialize auto-property from parameter コンテキストアクションはクイックフィックスに合わせて同様の豊富なオプションセットを提供しています。

Nullチェック設定

null値のチェック方法は多数存在しますが、コード生成時にReSharperによる nullチェックの採用方法が気に入らなかった場合はどうしますか?

ReSharper 2017.2では新たにNull checkingオプションページを追加し、 クイックフィックス、コンテキストアクション、 コード生成アクションで使用されるnullチェックパターンの優先度を 設定できるようにしました。 また、独自のチェックを作成することもできます! Check parameter for nullを 現在使用している場合は、その新しいサブメニュー項目である Configure null-check patternを確認してください。それを使えばReSharperの Optionsダイアログを掘り下げることなくこの新しいページにアクセスできます。

ターゲットクエリ内の単語を含む要素を任意順に一致

ナビゲーションと検索の改善

Go to Everythingとその他のナビゲーションアクションで、ターゲットクエリ内の 単語を含む要素を任意の順番で一致させられるようになりました。例えば、 exactMatchingを検索するとisMatchingExactlyに一致します。

その一方で、新しい完全一致は検索エンジンと同じように動作します。例えば、 「Collection」を検索すると Collection には一致しますが、 FilteredCollectionIterateCollection()などには 一致しません。 ただし、完全一致を使用して複合した名前を結果から除外する場合は、引き続き ワイルドカード文字(*および?)を使用し、必要な数の バリエーションを正確に取得できます。

話は変わりますが、Go to textGo to EverythingCtrlT)に 統合されました。検索条件に一致するコードがない場合、ReSharperは代わりに テキスト検索を 実行します。

また、Class.ExtensionMethodのようにドットで区切ることで、 拡張メソッドを検索できるようになりました。

さらに、ReSharper 2017.2では新しいショートカットを使って、Find Results ウィンドウ内の検索結果を探索できるようになりました。 数字キーパッドで+を押す代わりに、ShiftEnterを 押してください。

近隣ファイルに移動

近隣ファイルに移動

ReSharper 2017.2ではコンテキスト対応ナビゲーションも強化されました。 Navigate Toメニューを使って、プロジェクト構造内で現在のファイルに隣接している ファイルを表示してそこへ移動し、現在ファイルと同じディレクトリにあるフォルダや ファイルを閲覧してそれらのファイルに簡単にジャンプしたり、新しいファイルやフォルダを作成したりできるようになりました。

inheritdocタグのcref属性を生成

<inheritdoc/> サポートの改善

XMLドキュメント内での<inheritdoc/>の使用をサポートする新しいインスペクションが導入されました。

ReSharperは継承されたドキュメントに複数の候補が存在する場合、警告を表示して cref参照を挿入するクイックフィックスを提案します。 ReSharperは生成されたcref属性では、便利なことに参照可能なすべての型の 補完リストが表示されます。

また、派生クラスが基底クラスのドキュメントをオーバーライドしているときにも 警告が表示されるようになりました。

式のようなメンバーをブロック本体に変換

新しいC#の入力支援機能

  • ReSharperでは属性名を実際に全部入力しなくても、NotNullおよびCanBeNull 属性を使って すばやく引数をマークすることができます。 型名、パラメータまたは メンバー宣言部の名前の後に!または?を入力すると、 NotNullまたはCanBeNullの注釈がそれぞれ 挿入されます。 名前が既にNotNullでマークされている状態で !を入力すると、メソッド本文の先頭部にnullチェックが自動的に追加されます。
  • =>の後に{を入力すると、式を中括弧内のコードブロックに すばやく変換できます。
  • 終了括弧の前でEnterを押すと、キャレットの位置は同一行内に 維持されますが、1インデント分だけ右に移動します。
TypeScriptでの型エイリアスのインライン化リファクタリング

TypeScript、JavaScript、JSONサポートの改善

  • 非同期反復子、省略可能なジェネリック、ステートレスJSXコンポーネントのオーバーロードの 解決、オブジェクトリテラル用のコンテキストthis、および--strictオプション など、TypeScript 2.3を完全にサポート しています。
  • TypeScript 2.4:文字列値を持つ列挙型と文字列値と数値が混在する列挙型に対応し、 文脈に応じた基づく型の戻り値および一般的な文脈に応じたシグネチャからの一般的な推論の 対応を強化しました。
  • TypeScriptでマップされた型メンバー用に、使用箇所の検索名前の変更を改善しました。
  • TypeScriptで新しいIntroduce type aliasおよびInline type alias リファクタリングを実装しました。
  • ピュアなJavaScriptで、コード補完のパフォーマンスを改善いたしました。
  • JSONのクイックドキュメンテーションやpackage.jsonのスコープパッケージの対応など、JSON対応を強化しました。 コード補完、ツールチップ、およびクイックドキュメンテーションがこれらのパッケージで利用できるようになりました。
  • リテラル内での言語インジェクション:注入されたXML、C#および JavaScript/TypeScriptで注入されたパスの参照。
HTMLでのAngular 2コンポーネントのサポート

Angularのサポート

ReSharper 2017.2は、Angularのinput/outputエイリアスと属性ディレクティブをサポートしています。 NPMによる Angular 2コンポーネントの追加もサポートされるようになりました。

ReSharperはコード補完を提供し、クイックドキュメントを表示し、コンポーネント宣言部への移動を 支援します。 この機能を使用するには、ReSharperのオプションで HTML | JavaScript and FrameworksSupport Angular markup in HTML pagesを設定する必要がありことに ご注意ください。

Angular 4では、ReSharper 2017.2は*ngIfでの; else、 および*ngIf*ngFor両方での 変数の代入(例:people as person)のサポートを追加しています。

ReSharperの対話型チュートリアル

ReSharperの対話型チュートリアル

最新のリリースでは常に複数の優れたReSharperの新機能が追加される可能性がありますが、 それらは見過ごされ、皆様のコーディングルーチンに組み入れられないこともあります。

ReSharper 2017.2ではReSharperのチュートリアルプラグインを組み込むことで、可能な限り 更新内容をご理解いただけるようにしています。 説明を読むだけではなく、手っ取り早く機能を試してみるには、 ReSharper | Help | Tutorials...に移動して 使用可能なチュートリアルをどれかお選びください。

プロパティを変更可能にする

その他のReSharperの更新

ReSharperのその他の更新には、以下が含まれます:

  • 結果の検索ツールウィンドウの非同期な更新。
  • get-onlyプロパティを持つインターフェースを実装する際にプロパティを変更可能に するための新しいオプションを追加しました。
  • コード補完の応答時間の改善。
  • Enterでのスマートインデントにより、コードフォーマットを改善。 この機能はデフォルトで 無効化されていますが、ReSharper | Options | Environment | Editor | Editor Behavior | Typing assistで設定できます。
  • Visual StudioのModulesツールウィンドウとReSharperのProcess Explorer ツールウィンドウのコンテキストメニューにEnable Debuggingアクションを 追加しました(このアクションはGenerate PDBを置き換えるものです)。
  • デコンパイル済みコードでブレークポイントを設定できるようになりました。
結果が使用されていない式のインスペクション

ReSharper C++の更新 Ultimate

ReSharper C++ 2017.2では、主にC++11からC++17までの言語機能の理解と対応の強化に 注力しています。 その他の変更には、コードフォーマッタとナビゲーションの強化、 パフォーマンスの改善、新しいコードインスペクションとクイックフィックスの実装が含まれています。

ReSharper C++ 2017.2の詳細をご確認ください。

メモリダンプのインポート

メモリダンプの解析 Ultimate

dotMemory 2017.2では生のWindowsメモリダンプ(通常Task Managerや Process Explorerを使用して取得するもの)をインポートし、 dotMemoryの機能をフルに活かして解析することができます。

dotMemory 2017.2の詳細をご確認ください。

ダウンロード
無料30日間体験版

ReSharper 2017.1

ファイルのターゲットフレームワークコンテキストの変更

Visual Studio 2017 RTMのサポート

ついに、Visual Studio 2017の新機能に完全対応いたしました。 ライトウェイトモードで 読み込まれたソリューションを扱えるようになりました。 Open Folderオプションを使用すると、 ReSharperはフォルダ内の 全ファイルを表示し、.xmlおよび.jsファイルタイプをサポートします。 Move to Folderリファクタリングはこのモードで動作します。

ReSharperは現在のターゲットフレームワークのコンテキストを考慮します。 これは、エディタウィンドウ上部の ドロップダウンメニューから設定できます。また、参照されているアセンブリ、および ビルドやプリプロセッサで定義されているシンボルなどの設定を変更できます。

ローカル関数への変換

C# 7 サポート

ReSharperは新しいインスペクションを大量に実装し、C# 7のコンパイラに適合しています。 例えば、 メソッドの オーバーライド、またはインターフェースの実装を行う際にタプル変数名の入力ミスを検出できます。

ReSharperは新しいクイックフィックス「Convert a read-only delegate variable into a local functionのほか、 以下の新しいコンテキストアクションでもローカル関数をサポートしています。

  • ラムダ式または匿名メソッドをローカル関数に変換
  • ローカル関数を通常のメソッドに変換

Join null check with assignmentクイックフィックスを使うと、 代入、null結合演算子、およびthrowを結合してコードの可読性を向上させます。 既存の コンテキスト アクション「Convert to '?:' operator」と.throw後置テンプレートも C# 7の throw式をサポートしています。

全ターゲットフレームワークでのユニットテストの実行

ユニットテスト

ReSharperのユニットテストは、Visual Studio 2017 RTMのproject.jsonベースのプロジェクトと .csprojベースのプロジェクトの 両方で動作します。 また、MSTestとxUnitのテストを検出および実行し、コードカバレッジと プロファイリングをサポートするほか、複数のフレームワークをターゲットにします。 .NET 4xフレームワークをターゲットとする NUnitテストをサポートしています。 また、MSTest v2でDataRowを サポートしています。

ReSharperは現在、.NET Coreユニットテストの継続的テストをサポートしておりませんのでご注意ください。 これは次回の更新で修正される予定です。

ファイルフォーマット情報

EditorConfigのサポート

EditorConfigのサポートはデフォルトで有効化されています。 ReSharperは標準的なEditorConfigプロパティRoslyn EditorConfigプロパティの 大部分を理解し、より詳細なフォーマット規則に対応可能なカスタム EditorConfigプロパティ一式を豊富に提供 しています。 すなわち、EditorConfigファイルでフォーマット規則の設定を丸ごと管理する ことができます。

File Formatting Infoウィンドウには、有効なすべての.editorconfigファイルで 定義された 範囲やプロパティが表示されます。 このウィンドウにはインデント設定のソースとその値、 および インデント自動検出の状態も表示されます。

タブとインデント設定

インデント自動検出とコードスタイルの 改善

ReSharperのレイヤー 設定機能は、所属チームメンバーの大多数がReSharperを使用している場合に コードスタイルの一貫性を維持する素晴らしいツールです。 同機能は現在、すべてのサポート対象言語で Tabs and Indents設定を 使用できるよう拡張されています。

ファイル内の一部のコードを再フォーマットする際、または編集や貼り付けでコードが自動フォーマット される際、ReSharperは該当ファイルに存在するインデントに基づいて インデントを計算して適用します。 この機能は、インデントが設定内容と異なる 既存プロジェクトに貢献したい場合に便利です。

フォーマット規則のコンテキスト設定は、C#、C++、JavaScript、TypeScriptで 使用できます。 コードに影響するすべてのフォーマット規則を確認するには、 再フォーマットが 必要なコードの選択したブロックの上でAltEnterを押し、アクションリスト内の Format Selection | Configureを選択してください。

コードクリーンアップダイアログボックス

コードクリーンアップ、新しいコードスタイル、フォーマットオプション

ReSharperのコードクリーンアップは、ユーザビリティが改善されました。 この改善により、Code Cleanup ダイアログボックスで CtrlECを押すだけでカスタムタスク固有のプロファイルを 直接作成および 設定できるようになりました。

ReSharperは貼り付けられたすべてのコードにフォーマット規則を適用します。 インデントのみに影響する Reindentオプションは デフォルトで 設定されていますが、Editor Behaviorオプションページで 設定を変更できます。

ReSharperは、C#の型メンバー本文用に波括弧付きで常に本文ブロックを使用するか、 式のフォーマットを使用するかを選択できる新しいコードスタイル設定を 導入しています。

最後に、C#のコードフォーマットエンジンを改善し、新しいフォーマットオプションを導入いたしました。

  • 新しいラッピングエンジンでは、正確に位置揃えができるようになりました。
  • カンマが先頭になる折り返しのスタイルに対応
  • 「nameof」の丸括弧の前と中にスペースを配置
  • 連鎖したバイナリ式で優先する折り返しのスタイルを選択
  • 単一「case」ステートメントの改行が設定可能
使用形態別のグループ化と新しいフィルタオプション

ナビゲーションと検索

Find Resultsウィンドウに、使用形態別に検索結果を グループ化する新しいオプション、特定使用方法の出現箇所を選択できる新しいフィルター、 および引用符を使った完全一致検索が実装されました。

ReSharperのSearch & Navigationページに任意の場所から プレビュータブでファイルを開く 新しいオプションを追加しました。 このオプションはデフォルトでオフになっています。

Go to EverythingおよびGo to Textのポップアップが、検索結果を詳細に絞り込むための インラインコマンドに 対応しました。

Angularでの名前の変更リファクタリング

Angular 2のテンプレート構文

ReSharperは次のAngular 2テンプレート構文の要素を理解します:テンプレート式、 テンプレートステートメント、NgForディレクティブ、およびテンプレート変数。 Angularの @Componentデコレータのtemplate:プロパティのほか、 @ComponenttemplateUrl:プロパティから参照される純粋なHTMLのサポートが実装されました。 templateUrlでは 相対パスのみがサポートされます。 HTMLページの場合、Angularのマークアップは デフォルトでオフになりますが、ReSharperのオプション(Code Editing | HTML | Editor)で有効化できます。

コード補完はAngularの属性とコンポーネントタグ、および [attr.[style.[class.で動作します。 Go to DeclarationF12)コマンドが コンポーネント属性に 対応しました。 名前の変更リファクタリングはコンポーネントタグと[class.foo]の 'foo' で動作します。

Angular 1は未対応ですので、ご注意ください。 ReSharperのオプションで Support Angular markup in HTML pagesが 「None」に設定されている場合は、コード補完とライブテンプレートのために AngularJSプラグインを 使用できます。

オブジェクトのrestプロパティの使用箇所を検索

TypeScriptと JavaScriptのサポート

  • TypeScript 2.1に完全対応:マップ型とインデックス型、オブジェクトのrestプロパティとspread プロパティ、リテラル型のロジック更新、設定の継承、型宣言なしのインポート、 複合した型のノーマライズ、部分注釈付きのシグネチャ、暗黙的なanyと暗黙的な any配列の制御フロー解析
  • TypeScript 2.2の初期サポート:'object' 型、JSXのspread構文と シグネチャ/タプル/交差/マップ型からの派生(拡張/実装)
  • TypeScript ES6スタイルインポートでの未使用のインポートに対するインスペクションとクイックフィックス
  • JavaScriptと TypeScriptのPostfix Templates
  • TypeScriptとJavaScriptでのコード補完項目の関連性を改善
  • Generate Codeメニューに、TypeScriptクラスのプロパティや 読み込み専用プロパティを生成する新しい オプションが実装されました。 Generate Overriding Membersコマンドが、可能な限り 'super' を 呼び出すようになりました。
  • TypeScriptのNavigate to Implementing Members
  • TypeScriptとJavaScriptの Navigate to Function Exits
  • TypeScriptのRenameリファクタリングがローカルシンボルで高速に動作するようになり、 TypeScriptの 動的検索を 無効化する新しいオプションが追加されました。
ステータスインジケーターのコンテキストメニュー

コード解析

ReSharperのFile Status Indicator(Error Strip上部の小さなアイコン)に 新しいコンテキストメニューが 実装されました。 該当アイコンを右クリックすると、ReSharperのコード解析だけでなく、 識別子のハイライトやVisual Studioのコード解析をすばやく切り替えることができます(電球と 波線)。 現在のファイルに問題のあるコードが存在する場合、最も重大度の高い 問題間を移動できるコマンドを利用することもできます。

ファイルサイズが大きい場合、ReSharperはコード解析を自動的に停止しますのでご注意ください。 この場合、 ステータスインジケーターにグレーの一時停止アイコンが表示されます。

クラスフィールドの制御フローインスペクション

ReSharper C++の更新 Ultimate

ReSharper C++ 2017.1はVisual Studio 2017 RTMへの対応を 完了し、Open FolderモードとCMakeプロジェクトで動作するようになりました。 更新内容には、 パフォーマンスの改善、後置テンプレートとコードのクリーンアップタスクの拡充、制御フロー インスペクションに 対するアップデートが含まれます。

ReSharper C++ 2017.1の詳細をご確認ください。

コマンドラインプロファイラ

コマンドラインプロファイラ Ultimate

dotMemory 2017.1には、コマンドラインからプロファイリングを実行できる dotMemory.exeツールが付属しています。 このツールは、継続的インテグレーションによる ビルドの一部をプロファイリングする場合など、メモリスナップショットの収集処理を 自動化する必要がある場合に非常に便利です。

ドラッグアンドドロップによるアタッチ

ドラッグアンドドロップによる実行中アプリのプロファイリング Ultimate

ドラッグアンドドロップで、プロファイラを実行中のアプリケーションにアタッチできるようになりました。 プロファイリングしたいアプリケーションウィンドウに、専用のアイコンをドロップするだけです。

ダウンロード
無料30日間体験版