Rider 2021.2 では、コード解析、null 許容参照型、およびソースジェネレーターへの多数の更新など、C# 言語サポートが強化されています。 このリリースでは、ウェブ開発者向けに ASP.NET Core Endpoints のサポートと Blazor WebAseembly アプリケーションのクライアント側デバッグが追加されています。 Unity と Unreal Engine を使用しているゲーム開発者にとっても嬉しい機能が満載です。 また、Welcome ウィザードでは、Visual Studio、VS for Mac、または Visual Studio Code といったほかの IDE から設定をインポートできるようになりました。
無料 30 日間体験版をご利用可能です
新しい Endpoints ツールウィンドウでは、プロジェクト内に登録されているか、[Route]
、[Http{Method}]
、または [AcceptVerbs]
属性でアノテーションされている任意の ASP.NET Core エンドポイントを参照して移動することができます。
エンドポイントドキュメントを確認したり、エンドポイントを実装するコントローラーの ソースにジャンプしたりすることができます。 Find Usages を使って、登録箇所を確認することもできます。
HTTP Client タブでは、アプリケーションへのリクエストを作成し、送信することができます。 これは、API のテストに便利な機能です。
バンドル化された OpenAPI Specifications プラグインを使って API を試してみましょう。 リクエストを作成してレスポンスを確認するために使用できる、OpenAPI ファイルの Swagger UI サポートが追加されています。
コードエディターにも最高水準のサポートが提供されています。
HttpClient
を使用する場合、コード補完では、[Route]
、[Http{Method}]
、または [AcceptVerbs]
属性でアノテーションされたコントローラーのアクションに解決できるすべての URI が提案されます。 詳細については、「A Better Way To Discover APIs With The New Endpoints Window」をご覧ください。
待望の Blazor WebAseembly のクライアント側デバッグが Rider に搭載されました! .NET 5.0 と .NET Core 3.1 アプリケーションで動作します。
Follow the official Microsoft guide to set up WASM debugging. セットアップが完了すれば、通常通りにアプリケーションのデバッグを開始できます。
Linux で使用できるようにするには、開発者証明書を予め手動でインストールしておく必要があります。それがなければ動作しません。 If you are using Ubuntu, you can follow this guide.
Rider supports the debugging proxy if either of these NuGet packages are installed: Microsoft.AspNetCore.Components.WebAssembly.DevServer or Microsoft.AspNetCore.Components.WebAssembly.Server. 現時点では、Blazor WASM アプリのカスタムデバッグプロキシはサポートされていません。
変数の値を入れ替えるために、一時的な変数を使用していませんか? よりエレガントな方法で、これを行えるようになりました! Rider 2021.2 では、新しい Swap via deconstruction クイックフィックスを使って、コードを最新化することができます!
コード内の割り当てサイズを減らし、スループットを高めることができます! 空の配列作成 には Array.Empty<T>
を使用してください。
新しい Type[0]
を割り当てる場合、Rider は Type.EmptyTypes
を使用してメモリの仕様状況を効率化することを提案します。
特定の EventArgs
が必要でない場合、Rider は、new EventArgs()
を EventArgs.Empty
に入れ替えることができます。
その他の改善:
null 許容参照型を有効にした後、コードベースの多数の null 許容警告が抑制されていませんか?
Rider は、不要になったため安全に削除することのできる抑制(!
)を表示することができます。
新しいコンテキストアクションを使うと、スコープ内のすべての null 許容警告の抑制を検索することができます。 検索したら、Find Results ツールウィンドウで抑制が必要であるかどうかを評価し直すことができます。
null 許容性を変更するための新しいリファクタリングを導入しました。 クイックフィックスの Refactor This アクションか、null 許容アノテーション(?
)を追加または削除するときのインプレースリファクタリングで使用できます。
Rider は、null 許容性アノテーションを更新し、その変更をコードベース全体に伝搬することを提案します。
いくつかの新しいインスペクションとそれに対応するクイックフィックスは、JetBrains.Annotations 属性を使用しており、null 許容参照型が有効である場合に利用できます。
JetBrains.Annotations 属性を NRT 構文とコンパイラーがサポートする属性に更新しましょう! たとえば、Rider は[CanBeNull] string
を string?
に更新できます。
Rider では、[NotNull] string
または [ItemCanBeNull] List<string?>
など、冗長する JetBrains.Annotations 属性が指摘されます。 また、当然ながら、コードを更新するためのクイックフィックスも提供されます。
型アノテーション構文を使用できない場合は、新しいクイックフィックス付きのインスペクションによって、コンパイラーがサポートするアノテーションを追加できます。
[JetBrains.Annotations.NotNull] T param
を [DisallowNull] T param
(where T: class?
)に追加 [JetBrains.Annotations.CanBeNull] T
を [System.Diagnostics.MaybeNull] T
(C# 8 で、T?
構文が許可されていない場合)に追加 Rider は新しいインスペクションとクイックフィックスを追加することで、[DisallowNull]
、[AllowNull]
、[MaybeNull]
、および [NotNull]
などのコンパイラーがサポートするアノテーションを使用できるようにします。
新しいインスペクションは、[AllowNull]
が null 許容型に適用されている場合など、冗長するコンパイラーアノテーションを検出し、クイックフィックスでそれらを削除します。
null 許容参照型構文が使用できる場合は、Rider はそのように提案します。
触れておくべき改善は他にもあります。
詳細については、「ReSharper と Rider における C# Null 許容の参照型の新機能 2021.2」をご覧ください。
ソースジェネレーターは、面倒で反復的な開発作業を軽減し、コンパイル時にコードを生成するために使用することができます。 Rider 2021.2 では、手書きのコードファイルで使用できる機能の多くをソースで生成されたファイルにも使用することができます。 エディターのサポートを強化し、リファクタリングのサポートを追加しました。
リファクタリングをソース生成ファイルからトリガーできるようになりました。 Rename リファクタリングを使用して、生成されたプロパティの名前を変更することができます。 また、手書きのコードの関連するシンボルの名前を変更することもできます!
同様に、Change Signature を使用して、変更後に生成されるコードをコンパイルできるかどうかを確認することができます。
Find Usages を使用して、継承先の検索、Ctrl+Click と Navigate To による生成したコードから手書きのコードへの移動などを行えるようになりました。
セマンティクスハイライトが有効になっているため、イベント、フィールド、およびプロパティなどのクラスメンバーが正しくハイライトされます。 該当箇所にはすべてのインレイヒントが表示されます。
生成されたコードの警告とエラーは、エディターとマーカーバーに表示されます。
Rider では、ソースジェネレーターによって VB.NET で生成されたコードをサポートできるようになりました。
Rider 2021.2 では引き続き、Unity 向けの新機能や Unreal Engine の早期プレビューサポートへの画期的な改善によって、素晴らしいゲーム開発 IDE となることを目指しています。 Godot を使用する場合は、Godot Support for Rider プラグインをぜひお試しください。
Rider の Unity エディターとのスマート統合では、コードをコミットする前に開いているシーンや未保存のシーンの有無が確認されるようになりました。 コミットする前にすべて保存されていることに確信を持つことができます!
Rider では、Unity クラスやメソッドに対し、ツールヒントで Unity のドキュメントへのリンクを表示してきましたが、External Documentation アクションとショートカットを使用することで、ツールヒントを表示せずに直接ドキュメントに移動できるようになりました。
Rider では、デバッグされているプロセスへの着信接続を Windows で正しく許可すれば、ローカル UWP プレーヤーをデバッグできるようになりました。
ソリューションを再度開いた場合の Unity Explorer の Packages ビューの表示が大幅に高速化され、さらに開いたフォルダを記憶できるようになりました。
このリリースでは、IL2CPP プレーヤーに接続する際の Break on Unhandled Exception を自動的に無効化することで、IL2CPP ベースプレーヤーのデバッグのエクスペリエンスが改善されています。
[UnitySetup]
メソッドが未使用としてマークされなくなったことや、レイヤー名が古いプロジェクトの補完に正しく表示されるようになったなど、これまで以上にたくさんの小さな改善と修正があります。 Unity ベースのインスペクション、特に大型のファイルでのインスペクションにもさまざまなパフォーマンスの改善があります。
Rider for Unreal Engine はパブリックプレビューから最終リリースに向けて着々と進められています。 2021.1 リリースより、以下の内容に取り組んできました。その数は膨大です!
Unreal Engine 5 のサポート! そのとおりです。Rider for Unreal は、既存の Ureal Engine 4 プロジェクトと同様に、Unreal Engine 5 でも素晴らしい動作を見せます。
.uproject ファイルを開けます! そうです。Visual Studio ソリューションファイルを生成する必要はなくなりました。Rider では、Unreal Engine プロジェクトを<プロジェクト名>.uproject
ファイルから直接開くことができます。
Rider for Unreal Engine は Mac でも動作するようになりました! macOS で <プロジェクト名>.uproject
ファイルを開くだけで、Rider for Unreal のフルエクスペリエンスを得ることができます。 これには、リッチな C++ および HLSL シェーダー編集、ナビゲーション、インスペクション、リファクタリング、コートスタイルの設定とクイックフィックス、Blueprint サポート(Blueprint 内のコードの Find Usages、Code Vision リンクとカウンターおよび移動)、およびデバッガーと Unreal Editor とのリッチ統合などが含まれます。 macOS バージョンは Unreal Engine 4.26 以降で動作します。
Natvis 向けの大規模な改善とデバッガーの結果のビルトイン表示。 継承可能な属性、書式指定子、カスタムリスト項目や、Natvis にカバーされていないすべての構造についての 1 行サマリー、基盤のオブジェクトデータを見る [Raw View]
ノードなどがサポートされています。
Expanded Code Style の設定。 Rider は Unreal プロジェクトを認識し、UE コードスタイル規則を理解して準じるように自動構成します。 正しいスタイルに準じていないコードをハイライトし、コードを自動更新するためのクイックフィックスを提供します。
EzArgs プラグインでは、C++ の Run/Debug 構成の引数に簡単にアクセスすることができます。ツールバーのドロップダウンに新しい引数を入力してください。
Reformat File ダイアログと Code Cleanup ダイアログを 1 つのダイアログにまとめました。 ダイアログに使用できたショートカットは両方ともそのまま利用できますが、統合された新しいビューが開き、両方のステップを一度に実行することができます。 クリーンアッププロファイルでは実行されるアクションをプレビューでき、ボタンで簡単にプロファイル編集モードに切り替えることができます。
Commit ダイアログでは、選択したプロファイルで変更されたコードのクリーンアップを自動的に行えるようになりました。 また、Reformat and Cleanup ダイアログに導入された新しいオプションを使って、現在のファイルに存在するコミットされていない変更のみを再フォーマット/クリーンアップすることもできます。
コードの再フォーマット、インポートの最適化、およびコードのリファクタリングに使用するアクションが、CSS、JavaScript、および SQL で利用できるようになりました。 ルールは Settings | Editor | Code Cleanup で細かく調整することができます。
Rider を初めてお使いですか? Rider をインストールしたことがないまたは使用したことがない場合は、Welcome ウィザードを使用して、Visual Studio、Visual Studio for Mac、Visual Studio Code などのその他の IDE の設定をインポートできるようになりました。 さらに、Rider は ReSharper の設定を認識します。
ほかの IDE の設定のインポートがどのように機能するのかについて、続きをお読みください。
ツールウィンドウをIDE のメインウィンドウ内や個別のウィンドウ内で目的の場所へ簡単にドラッグできるようになりました。 ツールウィンドウ名のバーをクリックして長押しすると、そのツールウィンドウをドラッグしてハイライトされた場所にドロップできます。
macOS では、IDE ウィンドウが Full-Screen モードでない場合に、タイトルバーが透明になるようになりました。 そのため、ウィンドウのタイトルバーとその他の部分の間に境界が表示されません。
Rider でユースケースに固有のオプションを構成する場合は、Preferences/Settings に追加された新しい Advanced Settings ノードで実施できます。 たとえば、Distraction-free モードの左マージンを追加したり、Comment with Line Comment アクションを使用した後にキャレットを下に移動するように設定したりできます。
ウィンドウの右上隅に矢印を追加して、Preferences/Settings 内の遷移を単純化しました。 これにより、開いているセクション間をすばやく行き来できるようになりました。
プロパティ値が評価されると、デフォルトでデバッガー内に表示されますが、評価に時間がかかることがたまにあります。 このため、Disable Evaluation of Selected Item アクションを新たに追加しました。
特にネイティブコードでは、メソッド呼び出しの評価でデバッガーセッションがクラッシュすることがあります。 Rider はこういった問題を引き起こす可能性のある呼び出しを記憶し、その評価を無効にすることができます。
コードベースをステップスルーする際、ファイルごとに新しいタブが開くため、大量のタブバーが生成されてしまうことがあります。 ここで活躍するのがプレビュータブです! ファイルごとに新しいタブを開く代わりに、1 つのタブで 1 つずつファイルを表示できるようにする機能です。 この機能は、Settings/Preferences | General | Editor Tabs | Opening Policy で有効化することができます。
かなり長い間、Rider はすべてのコミットされていない変更を保存するノードの名前に Default Changelist を使用してきました。 今回のリリースでは、その名前の代わりに Changes という言葉を使って、より明確にすることに決めました。 この更新は、新しいプロジェクトに適用されます。
Rider は、Git 操作の変更リストを自動的に追加しなくなりました。 つまり、cherry-pick などによって、変更リストは作成されなくなります。
ただし、新しい動作の代わりに自動作成機能を使用する場合は、Preferences/Settings | Version Control | Changelists の Create changelists automatically チェックボックスをオンにすることで、以前の動作を有効化することができます。
ローカル履歴リビジョンの必要なテキストを素早くに見つけられるよう、Local History ダイアログに検索フィールドを追加しました。 変更されたファイルを右クリックし、表示されるコンテキストメニューから Local History | Show History を選択すると、このフィールドにクエリを入力してファイル履歴の内容をすばやく確認できます。
Preferences/Settings | Version Control | Git で Git コミットの GPG 署名を有効化できるようになりました。 GPG キーを初めて使用する場合は、さきに構成する必要があります。 既存の構成済みの GPG キーを使用する場合は、ドロップダウンリストから選択することができます。
IDE がサポートする Git の最低バージョンは 2.17 になりました。 現時点でもセキュリティアップデートを受信している一番古いバージョンが 2.17 であるため、サポートする最小のバージョンを上げています。
コードの構造的除去を実装しました。あらゆる構造的選択(構造ナビゲーション、選択範囲の拡大/縮小、コードの再配置など)のあるコードを選択して削除すると、Rider が残りの構造的な変更を実行します。 メソッド呼び出し引数のコンマやコロン、属性引数の括弧、または空のオブジェクトイニシャライザーの波括弧を除去することができます。
クイックドキュメントの表示方法を更新しました。 属性がハイライトされるようになったため、読みやすく調べやすくなっています。 ジェネリクスを使用するクラスやメソッドを検査している場合、Rider はプレースホルダーの値を表示しなくなりました。代わりに具体的な実装が表示されます。
波括弧(インデント)スタイルを好む場合でも、使用可能となりました。 Preferences/Settings | Editor | Code Style | C# | Braces Layout ページの Brace Layout タブに、オプションとしてピコスタイルが追加されています。
ブラウザで HTML ファイルをプレビューする場合、HTML ファイルまたはリンクされている CSS と JavaScript ファイルに従って、ファイルが自動的に更新されます。 この機能はデフォルトで有効になっています。
useState の値と関数のリファクタリングに無駄な時間をかける必要はもうありません。Rider でこれら両方の名前を変更できるようになりました! キャレットを状態値に置き、Shift+F6 を押すか、右クリックしてコンテキストメニューから Refactor | Rename を開いてください。
require()
の自動インポート ES6 シンボルを補完する際に Rider が欠落しているインポートステートメントを追加できることはご存じですか? 同じ機能を CommonJS モジュールでも使用できるようになりました。require
インポートがコード補完時に挿入されます。
詳細については、「WebStorm の新機能」を参照してください。
.apk
ファイルのほかに、.aab
(Android App Bundle)を生成するサポートを追加しました。いずれは、この方法がアプリを Google Play ストアにアップロードする唯一の方法となります。
Rider 内で直接 XCAssets を作成し、imageset
、appiconset
、および colorset
を編集できるようになりました。 このため、すべてのエンドデバイスと割り当てられた画像、アイコン、および色を確認することができます。 画像とアイコンは、ドラッグアンドドロップで追加または置換することができます。 色を選択しやすくするために、人気の色ピッカーコントロールを追加しました。
Android レイアウトまたはリソースファイルを編集する際、以前に誤って表示されているすべてのエラーを取り除いた Resource.Designer.cs
ファイルが自動的に生成されるようになりました。
後置テンプレートを使うと、入力済みの式を戻ることなく変換するのに役立てることができます。 やっと、let
を始めとするテンプレートを、F# 向けに導入しました。
Rider に、F# の tuples
と union
ケースのパターン分解に新しいアクションが追加されています。
コードを再配置するためのアクションを利用できるようになりました。 enum または union ケース、record または union ケースフィールド、match 句、タプル、および関数パラメーターで要素を上下または左右に移動することができます。
もう 1 つの新しいアクションである Optimize Imports により、インポートをクリーンアップする必要があるたびに、似たような警告のクイックフィックスを手動でトリガーする必要がなくなります。
let
バインディングでも動作するようになりました。 .fsproj
にも書き込まれるようになりました。 フルネイティブ M1 チップサポート付きの Rider 2021.2 の早期プレビューバージョンが公開されています。 このバージョンには x64-to-ARM64
変換を必要としません。 次のランタイムが使用されます。
詳細については、こちらのページをご覧ください。
DDL データソースの生成は、データベースのシームレスなバージョン管理を実現するための長期的な開発ステップの 1 つです。 この機能を使用すると、DDL ファイルを VCS システムに保管できるため、データベース構造が更新されるたびに再生成できます。
DDL データソースを実際のデータソースに基づいて生成できるようになりました。 DDL ファイルはローカルで作成され、新しいデータソースは同ファイルに基づいて作成されます。 こうすることで、同ファイルの再生成および DDL データソースの更新がいつでも行えます。
データベースのエクスプローラー設定 (歯車アイコン) にある Separate Procedures and Functions オプションをオンにすると、すぐに有効化されます。
SQL Server には、scalar 関数とテーブル関数に専用のノードが用意されています。 PostgreSQL には、トリガー関数用のノードが用意されています。
スキーマで Show Constraints and Triggers in the Schema という新しいデータベースツリーのオプションを実行すると、データベースのエクスプローラーの中でトリガー、キー、インデックスのそれぞれに専用のノードが割り当てられます。
複数のデータベース間で使用される類義語のコード補完を使用できるようになりました。
dotCover はテストクラスのカバレッジ分析を 1 つのアセンブリ内で並行して実行できるようになりました。 一部のシナリオにおいては、カバレッジ分析がさらに高速に行われるようになります。
.NET Core および .NET プロジェクトのユニットテストランナーをプリロードできるようになりました。ユニットテストランナーがメモリ内の読み込まれた状態になるため、カバレッジ分析をより迅速に開始できるようになります。
触れておくべき改善は他にもあります。
DPA では、各課題に履歴最大値と最後の実行の値の両方を保存するようになりました。 これにより、修正されたからではなく、起動条件が変更されたために、しきい値を下回って課題リストから消えていた誤検出が防止されます。
また、その他にもいくつかの改善点があります。
SpecFlow is a tool to bring Behavior-Driven Development to .NET. コミュニティーの助力とともに、SpecFlow 開発チームが SpecFlow プラグインを JetBrains Marketplace に公開できるように支援してきました。このプラグインにより、SpecFlow テストの構文ハイライト、コード補完、ナビゲーション、スケルトンコード生成が追加されます。 この機能の詳細は、Andreas Willich のウェビナーで説明されています。
初回セットアップ時に「Customize Rider」ウィザードで表示される注目のプラグインリストを再検討しました。 リストには次のプラグインが掲載されています。
node_modules や libs のような大規模なディレクトリによって、高速テキスト検索を提供するために使用されるファイルのインデックス作成が大幅に遅くなってしまうことがあります。 Rider では、コンテキストメニューから、特定のディレクトリのインデックス作成を停止することができるようになりました。
Solution Explorer で選択された複数の項目の File Properties(Build Action や Copy to Output Directory など)を編集できるようになりました。
The embedded decompiler now can decompile single-file apps. .NET Core 3.1、.NET 5、および公開予定の .NET 6 SDK のシングルファイル形式をサポートします。
Assembly Explorer(アセンブリエクスプローラー)を使用すると、単一ファイルアプリ内にバンドルされたアセンブリを以前とまったく同じように閲覧することができます。
JetBrains Toolbox App からの重大な製品アップデートを逃すことはもうありません。 Rider は、ダウンロードできる新バージョンがあることを知らせてくれるだけでなく、それにアップグレードする提案までしてくれます。 JetBrains Toolbox App のバージョン 1.20.8804 以降が必要です。
無料 30 日間体験版をご利用可能です