Rider 2020.1 は、macOS と Linux で使用する場合、デフォルトでバックエンドを .NET Core ランタイムで実行し、Xamarin Hot Reload と Dynamic Program Analysis を提供します。 エディタの重大度を簡単に構成する方法が導入されているほか、整数値に対するデータフロー分析やスピードアップしたコード補完が追加されています。 デバッグウィンドウが改良され、Extract Class のリファクタリングと Coverage Filter が使用可能になりました。
Rider .NET Core エディションをご紹介します! バックエンドがついに、macOS と Linux では、デフォルトで Mono ランタイムの代わりに .NET Core ランタイムで実行されるようになりました。 以下の点にすぐお気づきになると思います。
ちなみに、現在の .NET Core バージョン 3.1 が最新かつ最高のバージョンです。バージョン 3.0 に比べて、パフォーマンス面で多くの改善が加えられています。
現時点では macOS と Linux のみ対応しており、Windows はサポートされていません。 Windows のサポートは今年中に追加する予定です。
Mono から .NET Core への移行に関する詳細とパフォーマンスチャートを確認しますか? 詳細については、このブログ記事をご確認ください。
.NET Core で実行される Rider バックエンドに問題が生じ、Mono ラインタイムに戻りたい場合は、Help | Switch IDE runtime to Mono を選択してください。 また、他にお手伝いできることがございましたら、ぜひお知らせください。
Xamarin Hot Reload の初期サポートが導入されました! Rider では、Xamarin Forms XAML で加えられた変更内容が、デバイスやシミュレータでデバッグされるアプリケーションに自動的に適用されるようになり、アプリケーション全体が再構築および再展開されることはなくなりました。
注意事項: Rider がインストールされた PC / ノートパソコンと iOS デバイスが同じ WiFi ネットワーク内にない場合は、その iOS デバイスが USB で その PC / ノートパソコンに接続されていても Hot Reload は機能しません。
これ以外に、Xamarin サポートに加えられた重要な修正の 1 つとして、iPhone XS Max デバイスで Xamarin.iOS プロジェクトを実行するときに “無効なターゲットアーキテクチャ 'arm64e'” エラーは表示されなくなりました。
更新の詳細は、ブログ投稿をご覧ください。
Dynamic Program Analysis を導入しました。 DPA は Rider でプロジェクトが実行される度にメモリの割り当てに関するデータを収集し始めます。 アプリケーションを閉じると、DPA はクロージャや大小含めたオブジェクトヒープへの割り当てなど、検出された問題の一覧を表示します。 これの非常に便利な点は、“プロファイリングセッション”を開始したり、スナップショットを取得したりする必要がないことです。 普段通りに操作をしているだけで、オーバーヘッドをほぼゼロに抑えながらデータがバックグラウンドで収集されます。 DPA を実際の様々なソリューションでテストした結果、見られた遅延はわずか 0~2 パーセントでした。
注意事項:DPA は Windows でのみ使用可能であり、それを有効にする別のライセンスは必要ありません。
詳細はこちら: Auto-Detect Memory Issues in your App with Dynamic Program Analysis
Rider の新バージョンでは、アプリケーション内で整数値の使用を追跡するために使う新しいタイプのコード解説機能が導入されています。 この新しいタイプの解析は、すべての int
ローカル変数の値がどのように変化するのかを追跡するほか、それらの変数に対してよく実行されるすべてのオペレーションの正確性を確認し、不要なコード、または誤りがある可能性のあるコードを検出します。 すなわち、以下について警告を発します。
true
またはfalse
の結果を出している場合。 int
値をチェックしている switch
case 条件。1
による掛け算や 0
の足し算といった無意味な算術演算。 int
のオーバーフロー。0
による割り算。解析の精度を向上させるため、int
型の型メンバおよびパラメータと一緒に使用する [NonNegativeValue]
および [ValueRange(from, to)]
という 2 つの新しい JetBrains.Annotations 属性を追加しています。 これらの属性は、ランタイム中に起こり得る特定の int
メンバの値の変化を指定します。
ScriptableObjects
の使用状況とシリアル化されたフィールドの値を表示します。 Boo.Lang.List
や System.Diagnostics.Debug
が提案されなくなります。 C# 8 の言語機能に対するサポートを引き続き追加していきます。 null 許容参照型 (NRT)への対応として、コード解析機能、リファクタリングや ReSharper Build 等の機能を利用できるようにするために、C#言語サポートの基本機能を一新しました。 Rider 2020.1 では、コード解析によって null 許容参照型に関連するコンパイルの警告が報告されるほか、そのほぼすべてに対するクイックフィックスが提供されます。
以下のインスペクション機能とクイックフィックスが新たに導入されています。
async
オーバーロードが使用できる時にはそれを検出し、sync
オーバーロードの代わりに使用する。 nameof
式を使用する。 この 1 年間を通して、コード補完ポップアップが表示されるまでに時間がかかり過ぎるというフィードバックがありました。 継続した改善作業の結果、特に、大きなソリューションでは入力開始後にコード補完ポップアップがより素早く表示されるようになりました。
今回のリリースには、Obsolete とマークされたメンバをコード補完に表示したくない場合は、それを非表示にできるとても便利な機能も導入されています。
最後になりましたが、コード補完ポップアップからアイテムを完了する場合、コードスタイルの設定が尊重されるようになりました。
Debug ツールウィンドウの UI を完全に改良し、可能な限りスッキリさせて、操作しやすいようにしました。 すべてのタブは単一のレベルに配置されるようになり、デバッグセッションを 1 つだけ実行する場合はタブのレイアウトが簡素化されます。 タブのキャプションはスペースをとらないため、デバッガのコンテンツ用により多くのスペースが確保されています。 また、複数のセッションが実行される場合は、タブのレイヤーが追加され、セッションが分けられます。
同時に、Threads ビューと Frames ビューを組み合わせました。 Threads ビューが必要ないときは、“Hide threads view” アイコンをクリックすれば非表示にできます。
デバッガ機能を使いやすくするために、デバッガエンジンの更新も実施しました。
この新しい機能を使えば、簡単にエディタのハイライトレベルを変更できます。 モーダル以外のポップアップからワンクリックで Code Vision、 Parameter Hints、Unity Performance Hints、Errors、Warnings、Suggestions、Context actions、その他たくさんの要素をオン・オフできます。 コードエディタのタブの右下隅にある Pencils アイコンを使ってください。
Unit Test Session と Unit Test Explorer ウィンドウのツールバーにおいて以下を改良しました。
さらに、以下の 3 つの大きな機能を追加しました。
Rider 2019.3 では、"Checking for changes" アクションのスピードを大幅に改善した実験的 TFS クライアントを追加しました。 現在のリリースサイクルでは、引き続き TFS クライアントにたくさんの努力を注いでいます。
ついに、初のリリースを迎えた TFS クライアントは多くの改善をもたらします。 最も重要な 2 つの改善点をご紹介します。 まず、Visual Studio を使ってローカルで作成された TFS ワークスペースで Version Control Integration を有効化できるようになりました。 これにより、Rider でローカル ワークスペース を一から作成し直す必要はなくなりました。 次に、Delete およびロールバックオペレーションのパフォーマンスを大幅に改善しました。
TFS クライアントを使用するには、Settings | Version Control | TFVC と移動して有効にしてください。
すべての JetBrains IDE と同様に、Rider でも JetBrains Mono がすべてのテーマでデフォルトのフォントになりました。 お気に入りいただけると幸いです!
これまで Rider で使用できなかったもう 1 つの ReSharper 機能、すなわち、ソリューションでコードをファイルから貼り付けるときに名前空間を自動的にインポートする機能がついに導入されました。
NuGet に関連するファイルを手動で編集されているユーザーの方は、NuGet.Config、packages.config、および *.nuspec といったファイルを編集するときの初期サポートのほか、コード補完、構文検証、クイックドキュメントのポップアップ表示といった Rider の機能にご満足いただけると思います。
以下の小さな機能強化もご紹介します。
ReSharper で使用可能なリファクタリング機能で、ユーザーからのリクエストが多く待望の Extract Class がついに Rider でも使用できるようになりました。
なぜこれが必要なのか、とお考えですか? 2 つのクラスに分けて実行すべき作業を単独で実行しているクラスがあると想像してください。 このリファクタリングは、その複雑なクラスを単一の責任を持たせた 2 つのクラスに分解する最も安全かつ最も効率的な方法です。 Extract Class を使えば、1 つのクラスから新しいクラスに移動するメソッドどフィールドを選択できます。 また、依存関係の破損やアクセスに関する問題を警告し、競合の解決方法を提案します。
Solution Explorer ビューに、Assemblies フォルダのサブフォルダとした Implicit references および MSBuild import targets という、プロジェクトの詳細を提供する 2 つの便利なフォルダが導入されました。
これに加え、以下の小さな更新も盛り込まれています。
Rider でのユニットテストカバレッジの結果をより細かく調整できるように、カバレッジフィルタを追加しました。 Preferences/Settings | Build, Execution, Deployment | dotCover | Filtering から指定してください。
Linux または macOS でパフォーマンスプロファイリングを実行するユーザーに良いお知らせです。これらのオペレーティングシステムの Tracing モードで、ついに .NET Core アプリケーションをプロファイルできるようになりました。 また、Linux では、プロファイラを .NET Core アプリケーションにアタッチすることもできるようになりました。
Rider のデコンパイラと IL Viewer に新機能を追加しました。
Rider の F# に対するサポートを改善するために、日々のルーチン作業に役立つ多くの改善や修正を施しました。
this.Property
) やインデクサーの式 ("foo".[1]
) といった式に対しても使用できるようになりました。 ()
内の式全体を選択できるようになりました。更新と修正の詳細は、the GitHub repo をご覧ください。