Riderの新機能

Rider 2020.1 は、macOS と Linux で使用する場合、デフォルトでバックエンドを .NET Core ランタイムで実行し、Xamarin Hot Reload と Dynamic Program Analysis を提供します。 エディタの重大度を簡単に構成する方法が導入されているほか、整数値に対するデータフロー分析やスピードアップしたコード補完が追加されています。 デバッグウィンドウが改良され、Extract Class のリファクタリングと Coverage Filter が使用可能になりました。

ダウンロード

無料30日間体験版

macOS と Linux では、バックエンドが .NET Core で実行されます

バックエンドは .NET Core ランタイムで実行されます

Rider .NET Core エディションをご紹介します! バックエンドがついに、macOS と Linux では、デフォルトで Mono ランタイムの代わりに .NET Core ランタイムで実行されるようになりました。 以下の点にすぐお気づきになると思います。

  • パフォーマンスの向上。
  • 削減されたメモリ使用量。
  • NuGet の復元がマルチスレッドになりました (Mono ではシングルスレッド)。 これは、論理コアを 4 個持つ CPU ではスピードが 4 倍速くなり、論理コアを 8 個持つ CPU では 8 倍速くなることを意味します… もうお分かりかと思います。
  • Mono にある制限がたくさん除去されています。

ちなみに、現在の .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

Xamarin Hot Reload

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)

Dynamic Program Analysis (DPA)

Dynamic Program Analysis を導入しました。 DPA は Rider でプロジェクトが実行される度にメモリの割り当てに関するデータを収集し始めます。 アプリケーションを閉じると、DPAクロージャや大小含めたオブジェクトヒープへの割り当てなど、検出された問題の一覧を表示します。 これの非常に便利な点は、“プロファイリングセッション”を開始したり、スナップショットを取得したりする必要がないことです。 普段通りに操作をしているだけで、オーバーヘッドをほぼゼロに抑えながらデータがバックグラウンドで収集されます。 DPA を実際の様々なソリューションでテストした結果、見られた遅延はわずか 0~2 パーセントでした。

注意事項:DPAWindows でのみ使用可能であり、それを有効にする別のライセンスは必要ありません。

詳細はこちら: 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 メンバの値の変化を指定します。

Unityのサポート

Unityのサポート

  • メモリ消費量とアセットインデックスの作成速度を改善しました。 Rider では、アセットが確認される前にすべてのコードのインデックスが作成されるので、コード補完、ハイライト、インスペクションといったすべての生産性機能を以前よりも速く使用できます。 アセットインデックスの作成はソリューションがロードされた後や操作中も継続して実行され、インデックスの作成が完了すれば、Rider で使用箇所が検出され、アセット内で名前の変更まで行われます。 もちろん、これが完了すれば、新たに変更されたファイルのみが確認され、インデックスは最新の状態まで更新されます。
  • アセットインデックスの作成は以前よりも賢く機能します。 Nested Prefab および Prefab Variant 内におけるコードの使用状況を理解する上に、ScriptableObjects の使用状況とシリアル化されたフィールドの値を表示します。
  • プロジェクト内の Edit モードと Play モードのすべてのテストが Rider により自動的に発見されるので、Unity プロジェクトでユニットテストをより効果的に検出できるようになりました。
  • ホットパスでより優れたパフォーマンスを見せる、新しいインスペクション機能 “Prefer jagged arrays to multidimensional arrays” を追加しました。 これはマイクロオプティマイゼーションであり、Update メソッドや Update が呼び出すすべてのメソッドのように、パフォーマンスクリティカルなコンテキストでのみ提案されるものです。
  • Rider では、Unity プロジェクトのコード補完において、Boo.Lang.ListSystem.Diagnostics.Debug が提案されなくなります。
  • 最も重要なメソッドが最初に置かれるように、Generate ダイアログにイベント関数が表示される順番を調整しました。 また、Alt+Enter メニューから関数を生成すると、関数が適切な場所に生成されます。
  • その他の更新や修正に関する詳細は、GitHub リポジトリをご覧ください。
C# サポート

C# サポート

C# 8 の言語機能に対するサポートを引き続き追加していきます。 null 許容参照型 (NRT)への対応として、コード解析機能、リファクタリングや ReSharper Build 等の機能を利用できるようにするために、C#言語サポートの基本機能を一新しました。 Rider 2020.1 では、コード解析によって null 許容参照型に関連するコンパイルの警告が報告されるほか、そのほぼすべてに対するクイックフィックスが提供されます。

以下のインスペクション機能とクイックフィックスが新たに導入されています。

  • null 許容参照型に関する冗長な型パラメータの制約を検出する。
  • メソッドの async オーバーロードが使用できる時にはそれを検出し、sync オーバーロードの代わりに使用する。
  • 現在の型の名前を取得するために、typeof(SomeType).Name 構文の代わりに nameof 式を使用する。
コード補完

コード補完

この 1 年間を通して、コード補完ポップアップが表示されるまでに時間がかかり過ぎるというフィードバックがありました。 継続した改善作業の結果、特に、大きなソリューションでは入力開始後にコード補完ポップアップがより素早く表示されるようになりました。

今回のリリースには、Obsolete とマークされたメンバをコード補完に表示したくない場合は、それを非表示にできるとても便利な機能も導入されています。

最後になりましたが、コード補完ポップアップからアイテムを完了する場合、コードスタイルの設定が尊重されるようになりました。

改良された Debug ウィンドウ

改良された Debug ウィンドウ

Debug ツールウィンドウの UI を完全に改良し、可能な限りスッキリさせて、操作しやすいようにしました。 すべてのタブは単一のレベルに配置されるようになり、デバッグセッションを 1 つだけ実行する場合はタブのレイアウトが簡素化されます。 タブのキャプションはスペースをとらないため、デバッガのコンテンツ用により多くのスペースが確保されています。 また、複数のセッションが実行される場合は、タブのレイヤーが追加され、セッションが分けられます。

同時に、Threads ビューと Frames ビューを組み合わせました。 Threads ビューが必要ないときは、“Hide threads view” アイコンをクリックすれば非表示にできます。

デバッガエンジンの更新

デバッガエンジンの更新

デバッガ機能を使いやすくするために、デバッガエンジンの更新も実施しました。

  • アプリを終了せずに、元々デバッガで開始したプロセスを切り離すことができるようになりました。
  • Step Into アクションの Smart Step Into はデフォルトで有効になっています (Preferences/Settings | Build, Execution, Deployment | Debugger | Stepping | .NET Languages | Always do Smart Step Into)。
  • デバッガは .NET Core x86 ランタイムに対応しています。
  • スレッド名が実行ラインに表示されるようになり、アプリケーションの実行状況を把握しやすくなりました。
  • 例外の発生によりデバッグを停止した後は、Skip to Here/Cursor を実行できます。
  • Debug Output ウィンドウをより細かく操作し、Debug Output のサービスメッセージを無効にできるようになりました。
エディタの重大度を簡単に設定する方法

エディタの重大度を簡単に設定する方法

この新しい機能を使えば、簡単にエディタのハイライトレベルを変更できます。 モーダル以外のポップアップからワンクリックで Code Vision Parameter HintsUnity Performance HintsErrorsWarningsSuggestionsContext actions、その他たくさんの要素をオン・オフできます。 コードエディタのタブの右下隅にある Pencils アイコンを使ってください。

ユニットテストの更新

ユニットテストの更新

Unit Test Session と Unit Test Explorer ウィンドウのツールバーにおいて以下を改良しました。 

  • 一部のアイコンを左側のツールバーから上のツールバーに移動しました。
  • 上のツールバーに新しく設けられたテキストボックスを使えば、テキスト検索によりユニットテストツリーをフィルターできるようになりました。
  • "Failed"、"Aborted"、および "Inconclusive" といったステータスは、デフォルトとして 1 つの “Broken” という呼び名のステータスにマージされています。 これらのステータスを分けておきたい場合は、上のツールバーにある歯車アイコンをクリックしてください。

さらに、以下の 3 つの大きな機能を追加しました。

  • Unit Test Explorer と Unit Test Session のツールウィンドウに新たに設けられた高度な Group by 機能を使えば、グループ化をカスタマイズできます。 新たに追加された Duration 要素を使うことで、ユニットテストをそれぞれの実行までにかかる時間をもとにグループ化することができます。
  • 複数のユニットテストがあり、そのうちの一部を表示したくない場合、Unit Test Sessionツールウィンドウでユニットテストをターゲットフレームワークで絞り込むことができます。
  • すべての Unit Test Sessions はエクスポートとインポートの両方が可能です。 これにより、チームと、またはコンピュータ間で、さらには、コードに変更を加え、両方のブランチに対して同じ一連のユニットテストを実行 / カバーするときはブランチ間でも共有することができます。 また、エクスポートされたファイルは ReSharper との完全な互換性があるため、Rider で実行したユニットテストセッションを ReSharper を使っている同僚と共有できます (その逆もできます)。

詳細はこちら: Test Runner Updates in Rider 2020.1

リアクティブな TFS クライアントの RTM への導入

リアクティブな TFS クライアントの導入

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.Configpackages.config、および *.nuspec といったファイルを編集するときの初期サポートのほか、コード補完、構文検証、クイックドキュメントのポップアップ表示といった Rider の機能にご満足いただけると思います。

以下の小さな機能強化もご紹介します。 

  • C# でメソッドセパレータを使用して、インターフェース、クラス、メソッドなどを視覚的に区切れるようになりました。
  • ショートカット Alt+Shift+上 / 下 / 右 / 左矢印キー を使えば、Visual Studio の場合と同じようにブロック選択が実行されます。
  • "Move Caret To Code Block Start"/"Move Caret To Code Block End" と "Move Caret To Code Block Start with selection"/"Move Caret To Code Block End with selection" という 2 つのペアのアクションが C# でもサポートされるようになり、他の JetBrains IDE で実行される場合と同じ動作を行います。
  • エラーとしてハイライトされるコードシンボルにカーソルを合わせるとドキュメントツールチップが表示されます。
Extract Class(クラスの抽出)リファクタリング

Extract Class(クラスの抽出)リファクタリング

ReSharper で使用可能なリファクタリング機能で、ユーザーからのリクエストが多く待望の Extract Class がついに Rider でも使用できるようになりました。

なぜこれが必要なのか、とお考えですか? 2 つのクラスに分けて実行すべき作業を単独で実行しているクラスがあると想像してください。 このリファクタリングは、その複雑なクラスを単一の責任を持たせた 2 つのクラスに分解する最も安全かつ最も効率的な方法です。 Extract Class を使えば、1 つのクラスから新しいクラスに移動するメソッドどフィールドを選択できます。 また、依存関係の破損やアクセスに関する問題を警告し、競合の解決方法を提案します。

Solution Explorer ビュー

Solution Explorer の更新

Solution Explorer ビューに、Assemblies フォルダのサブフォルダとした Implicit references および MSBuild import targets という、プロジェクトの詳細を提供する 2 つの便利なフォルダが導入されました。

これに加え、以下の小さな更新も盛り込まれています。

  • Recent Assemblies という新機能を Add References ダイアログに追加しました。
  • アプリケーション設定ファイル (*.settings) 用にシンプルなデザイナーを導入しました。
  • すべてのファイルのプロパティが Solution Explorer ビューで確認できるようになりました (View | Appearance | Details in Tree Views)。
  • macOSLinux で行う .NET Standard プロジェクトにおいて、Resx ファイルを使ったコード生成を改善しました。
コードカバレッジとパフォーマンスプロファイリングの更新

コードカバレッジとパフォーマンスプロファイリングの更新

Rider でのユニットテストカバレッジの結果をより細かく調整できるように、カバレッジフィルタを追加しました。 Preferences/Settings | Build, Execution, Deployment | dotCover | Filtering から指定してください。

Linux または macOS でパフォーマンスプロファイリングを実行するユーザーに良いお知らせです。これらのオペレーティングシステムの Tracing モードで、ついに .NET Core アプリケーションをプロファイルできるようになりました。 また、Linux では、プロファイラを .NET Core アプリケーションにアタッチすることもできるようになりました。

実行構成とビルド

実行構成とビルド

  • とても便利な機能 Cancel build を追加しました。
  • すべての実行構成に "Build/Clean Project" タスクがあります。 これらのタスクでは、実行構成を起動する前にビルドするプロジェクトまたはクリーンアップするプロジェクトを選択できます。
  • UpToDateCheckInput MSBuild プロパティのサポートが導入されました。 
  • Publish to folder” の実行構成の UI は、“ARM” 識別子と “target runtime” のすべてのカスタム識別子に対応するようになりました。
  • バンドルされた MSBuild が 16.5 に更新されました
デコンパイラと IL Viewer

デコンパイラと IL Viewer

Rider のデコンパイラと IL Viewer に新機能を追加しました。 

  • null 許容参照型 (NRT) のサポートがデコンパイラで利用できるようになりました。 これは現在、宣言内でのみ機能し、メソッドの実体では使えませんのでご注意ください
  • インターフェースのデフォルトメンバのデコンパイルに対するサポート。
  • tuple コンポ―メント名のデコンパイルに対するサポートが改善されました。
  • デコンパイルした後に、"IL Viewer" の Code Vision を外部ソースファイルで利用できるようになりました。
バージョン管理のサポート

バージョン管理のサポート

  • Code Vision にメソッドの履歴を表示できるようになりました。 この機能はデフォルトで VCS Annotate の代わりに有効化されています (Preferences | Editor | Code Vision | VCS Actions から調整可能)。
  • Git Branches ポップアップに見やすい検索フィールドと改良された Refresh ボタンが追加されました。
  • 受信 (青) と送信 (緑) コミットのインジケーターがステータスバーに追加されました。
  • 新しいダイアログ “Interactively Rebase from Here” をお試しください。
  • Repositories ツールウィンドウの名前は、使用する VCS に応じて GitSubversion、Mercurial または Perforce と呼ばれるようになりました。
  • Diff ビューと Merge ビューでコードのハイライトがサポートされるようになりました。
  • お使いのマシンに Git がインストールされていない場合は、Rider が代わりにダウンロード・インストールを提案します。
F# 開発者向けの便利な新機能

F# 開発者向けの便利な新機能

Rider の F# に対するサポートを改善するために、日々のルーチン作業に役立つ多くの改善や修正を施しました。

  • Send project references to F# Interactive アクションが利用できるようになりました。
  • デバッグ中にカーソルを合わせて評価ツールチップを表示させる機能は、メソッドや型の自己参照修飾子 (this.Property) やインデクサーの式 ("foo".[1]) といった式に対しても使用できるようになりました。
  • Type ファイルテンプレートが追加されました。
  • コードアナライザが並列実行されるようになりました。
  • FS0005: Field not mutable インスペクションの Make field mutable クイックフィックスなど、既存のコードインスペクションに対する新たなクイックフィックスを一部導入。
  • 適切なクイックフィックスを搭載した新しいコードインスペクションを数個導入 (例: “Redundant Attribute suffix” インスペクション)。
  • 2つの新しいコードインテンション:Elif to If/If to Elif および Negate If expression condition
  • Code Vision に新しいアクション Copy Inferred Type が導入されました。表示する情報を簡潔にするため、型の「親」名前空間は表示されなくなりました。
  • Extend Selection() 内の式全体を選択できるようになりました。

更新と修正の詳細は、the GitHub repo をご覧ください。

ウェブ開発

ウェブ開発

  • optional chaining および / または nullish coalescing (null合体演算子) に変換するインテンション、および使用箇所からパラメータを推論するインテンションが新たに導入されました。
  • カーソルを合わせてドキュメントポップアップを表示できるようになりました。
  • Vuex および Composition API のサポート。
  • 保存時に実行する Prettier フォーマット。
  • Go to ポップアップの完全なファイルパス。
  • TypeScript プロジェクトの Yarn 2 サポート。
  • ウェブ開発向けの新機能の詳細は、WebStorm 2020.1 最新情報をご覧ください。
データベースサポート

データベースサポート

  • Excel へのエクスポート。
  • utPLSQL および Tsqlt テストフレームワークのサポート。
  • コードエディタに結果を表示 (デフォルトでは無効)。
  • 新しい認証オプション。
  • 共有SSH構成。
  • MongoDB におけるより詳細なデータの絞り込み。
  • その他多数のデータベース関連機能について DataGrip 2020.1 の新機能ページで記載しています。
その他の機能と改善点

その他の機能と改善点

  • WIX (Windows Installer XML Toolset) プロジェクトのサポートがついに Rider に導入されました! 
  • Godot ゲームエンジンをサポートする 新しいプラグインRider 2020.1+ でご利用いただけます。 GitHub でオープンソースとして提供されています。 
  • C# コードスタイル の設定が検索可能になりました。
  • ReSharper で使用している同じマシン全体 (グローバル) に適用される設定ファイルを Rider でも使用することにより、両ツール間で設定を同期させることができます (この動作は File | Settings | Tools | ReSharper | Synchronize machine-wide Rider and ReSharper settings で調整します)。
  • C# コードスタイルにおいて末尾のコンマに対応する新たな設定がコードフォーマットに導入されました。 これらの設定は Preferences | Editor | Code Style | C# | Syntax Style | Trailing comma からアクセスできます。StyleCop SA1413 インスペクションとの互換性もあります (通常の操作以外で生じる稀なケースを除く)。
さらなる他の機能

さらなる他の機能

  • 新しい Zen Mode では Distraction Free ModeFull-Screen Mode が統合されています。
  • ターミナルセッションを並べて実行する場合は、Terminal ツールウィンドウを上下または左右に分割できます。 分割ターミナルセッションを作成したり、ナビゲートしたり、閉じたりするには、ターミナルからコンテキストメニューを呼び出します。
  • HTTP Client が大幅に改善されました。 URL の入力に自動補完を使って直接 HTTP リクエストファイルから関連するエンドポイントに移動したり、Endpoints ビューから HTTP リクエストを生成したりできるようになった上に、HTTP クライアントはパス変数の入力を正確に自動補完するようになりました。
  • 統合 IntelliJ Light テーマがすべてのオペレーティングシステムで利用できるようになりました。
  • Windows 10 のトップウィンドウのボーダーは、ボーダーレスモードで外観がかなり改善されています。

IntelliJ IDEA 2020.1 最新情報

ダウンロード

無料30日間体験版