Riderの新機能

Rider 2020.3 では新たに .NET 5、C# 9、F# 5 の機能をサポートしています。 また、デバッガーの Immediate Window(イミディエイトウィンドウ)と Private Source Link(プライベートソースリンク)、Project Dependency Diagrams(プロジェクト依存関係ダイアグラム)、Push-to-Hint(押下でヒント)、Avalonia UI フレームワークの言語サポートなどの新機能を導入しています。 Unity 開発者向けに Burst 解析とシェーダーのサポートが更新されています。 また、ついにタブをドラッグアンドドロップしてエディターを自由自在に分割できるようになりました。

ダウンロード

無料 30 日間体験版をご利用可能です

.NET 5 と C# のサポート

今回は初めて .NET 5 をサポートした Rider をリリースしました。 サポート対象は、ソースジェネレーター、C# 9 の機能、新しい NuGet 関連の機能、新しいターゲットフレームワーク(net5.0-windows および net5.0)です。 また、.NET 5 アプリケーションの作成、ビルド、実行、デバッグ、プロファイリング、カバーに対応しています。

ソースジェネレーターはほぼ間違いなく C# コンパイラーの機能の中でも最も話題性の高いものです。 それも頷けます。なぜなら、コンパイル処理中に新しいコードを作成して即座に使用できる機能は非常に魅力的ですし、さまざまなシチュエーションで役に立つ可能性があるからです。

では、Rider はどのような機能を提供するのでしょうか? Rider はリファクタリング実行中に可能な限り生成されたファイルを考慮し、コードエディター機能と生成されたコードへの移動を支援する機能を提供します。

部分メソッドに out パラメーター、void でない戻り値の型、あらゆるタイプのアクセシビリティを含め、それらをソースジェネレーターで処理しやすくすることができます。 ソースジェネレーターは部分メソッドの定義宣言を使用し、生成されたコードの動作をカスタマイズできます。

また、素晴らしいことに init 専用のプロパティが追加されました。 このプロパティは、オブジェクトの初期化中にのみセットできます。 その結果、プロパティを可変プロパティとして公開することなくオブジェクト初期化子を使用できるようになりました。

Rider は init 専用プロパティを認識し、コード補完、生成補完の実行、任意の場所でのプロパティ変更の解析、気が変わった場合にそのプロパティを変更可能にするクイックフィックスの提供を行う際に考慮に入れます。

init を適用するのに最適なのは、新しい record 型です。 この不変性を実現するのに役立つ値セマンティクスを持つ参照型ですが、今回はオブジェクト全体が対象です。 繰り返しますが、Rider は優先する宣言スタイルを選択するためのクイックフィックスから基本的な補完に至るまで、この言語の最新機能に対応しています。

位置指定レコードには、コンパイラーが生成した Deconstruct() メソッドが含まれています。 Rider はこのようなオブジェクトですべての分解機能をサポートしています。 変数を導入する際には、単一の変数か分解宣言のいずれかを選択できるポップアップが表示されます。 関数が record オブジェクトのプロパティにアクセスする際にも同じ選択肢が表示されます。

重要事項から説明しますが、ローカル関数に属性(およびローカル関数のパラメーターと型パラメーター)を付けられるようになりました。 この新機能は、Rider のクイックフィックスでサポートされています。例えば、メソッドに [NotNull] または [CanBeNull] のアノテーションをそれぞれ ! または ? を押して付けられる便利な機能があります。

C#9 には最上位レベルのプログラムを記述できる便利な機能もあります。 もうプログラムのクラスと格闘する必要はありません。エントリポイントのコードを using ディレクティブの直後に配置できます。 最上位レベルステートメントの処理を支援する機能もあります。 最上位レベルステートメントには 2 つのルールがあります。1 つは型または名前空間の前に配置すること、もう 1 つはプロジェクト内の 1 つのファイルのみに最上位レベルコードを記述できるということです。 どちらのルールも、コードの再配置やコピーペーストを行う際には破られがちです。 Rider は、最上位レベルのコードを最上位または別のファイルに移動してこの問題に対処するクイックフィックスを提供しています。

最上位レベルのコードもコードであるため、対応するリファクタリング機能もあります。具体的には、Extract local variable(ローカル変数の抽出)と Extract method(メソッドの抽出)です。

詳細については、「ReSharper および Rider での C# 9 最上位レベルステートメント」をご覧ください。

C# 9 のターゲット型の new 式を使用すると、型を文脈から判断できる場合に new キーワードの後の型を省略できます。 Rider はこの機能を完全にサポートしています。例えば、コンストラクターの使用箇所を検索する機能や優先する構文スタイルを構成する機能があります。 後者は、作成した型が明らかな場合は new() 構文を使用し、その他の場合には明示的な型指定を要求できる機能です。

なお、コード内のすべての new() が制御不可能になった場合は Rider の新しい型名のヒントが役に立ちます。

共変の戻り値を使用すると、基本クラスのメソッドの場合と同様にオーバーライドメンバーで同じ型を返す必要はなくなります。 より具体的な型を返すのに回避策を実装する必要はありません。

新しい言語バージョンでは、パターンマッチングが引き続き進化しています。 マッチ式で関係式(<> など)と論理パターン(notorand)を使用できるようになったため、冗長な従来の switch 構文の多くを削除できます。 Rider はパターンを解析し、希望するスタイルに書き換えるのを支援します。

さらに、ラムダの破棄パラメーターが導入された時には対応するクイックフィックスを追加するのが望ましいと考えました。

以上が主な言語のハイライトです。 Rider 2020.3 では、同言語に対するより小規模な改善もサポートされています。 サポート対象には、ターゲットにより型指定された条件式、静的なラムダ、foreach、関数ポインター型、ネイティブ整数型の拡張 GetEnumerator メソッドなどが含まれています。

デバッガー

Immediate ウィンドウ

コード支援を行う新しい Immediate ウィンドウを導入しています。 このウィンドウではプログラムがブレークポイントで停止した場合に合成変数を作成し、デバッガーを再起動することなくコードを実験することができます。

デバッグセッションを開始する際、イミディエイトウィンドウが右下、デバッガーペイン内のウォッチ変数の下に表示されます。 このウィンドウは、アプリケーションが一時停止状態の場合のみ入力を受け付けます。一般的にはブレークポイントに到達した場合です。

完全なコード補完機能を自由に使用し、有効な C# コードを入力できます。

新しい合成変数を定義できます。 Rider は合成変数のコレクションの下にある変数ウィンドウで、これらの値を追跡します。 他の変数と同様に、これらの変数にはインスペクションの実行、ピン留め、変更を行うことができます。

使用可能なオブジェクトを引数として使用し、使用可能なオブジェクトのメンバー関数や現在のコンテキストで使用できる静的関数を呼び出すこともできます。 関数の実行パスにあるブレークポイントは、通常の呼び出しであるかのように実行を一時停止します。 呼び出しには関数の評価から始まるスタックの一部が含まれており、それを Frames パネルで調査できます。

ステートメントを変数に代入せずに実行できます。 Rider は、$result プレースホルダーの下に run ステートメントからの最後の戻り値を記録します。 イミディエイトウィンドウはすべてのステートメントの履歴を記録します。

詳細については、「イミディエイトウィンドウ – Rider でデバッグ中にコードを操作する」をご覧ください。

新しいアクション

デバッグが開始されていない時に新しいデバッガーアクションを使用できるようになりました。

確認したいメソッドやコードの位置に移動する場合、デバッグを開始して複数のステップを踏む必要はなくなりました。 Start Debugging and Run to Here(デバッグを開始してここまで実行)か Start Debugging and Run to Here Non-Stop(デバッグを開始してここまでノンストップで実行)を使用すると、Rider がすべてのブレークポイントをスキップして目的の場所まで案内します。

アプリケーションのデバッグを開始し、最初の段階で実行を停止したい場合は、アプリケーションのエントリポイントに到達した時点で Start Debugging and Step Over(デバッグの開始とステップオーバー)アクションか Start Debugging and Step Into(デバッグの開始とステップイン)アクションを使用してください。

これらのアクションは、メインメニューの Run | Debugging Actions にあります。

前述のアクションは .NET のプロジェクト構成か .NET の static メソッドにのみ使用できます。

プライベートソースリンク

「プライベートソースリンク」という用語をよくご存じの方に朗報です。Rider 2020.3 は、デバッガーと組み込みのデコンパイラーの両方でプライベートソースサーバーを完全にサポートしています。 Rider は GitHub / GitHub Enterprise / BitBucket / Azure DevOps(旧 VSTS)上のソースをサポートします。

Rider は将来的なアクセスを楽にするため、認証情報を保存できます。

デバッガーに関するその他の更新

  • out パラメーターと ref パラメーターを持つ、またはパラメーターリストで out 変数を宣言するメソッドの評価を実装しました。
  • IEnumerable シーケンスの列挙を大幅に高速化しました。
  • 表現が非常に長いオブジェクトに対して ‘View’ リンクが正しく表示されるようになりました。
  • 長い文字列の値をコピーする際に切り捨てが発生しなくなり、その評価が最適化されました。

プロジェクト依存関係ダイアグラム

新しいアーキテクチャツールはソリューション内のプロジェクト依存関係を可視化し、そのアーキテクチャを調査するのに役立ちます。

ダイアグラムの調査

プロジェクト依存関係ダイアグラムを Tools | Architecture | Show Project Diagram または Solution Explorer のコンテキストメニューから開くことができます。 この機能はソリューションの構造に従い、ソリューション内の最上位レベルのアイテムを最初に表示します。 表示対象にするプロジェクトまたはソリューションフォルダーの選択、縮尺の変更、グリッドの有効化(必要に応じてグリッドに合わせることも可能)、特定プロジェクトへの注釈メモの追加を行うことができます。

ナビゲーション

Windows では Ctrl+F、macOS では Cmd+F を使用して注力したいプロジェクトを検索できます。
Show Neighbors of Selected Nodes(選択したノードの近隣を表示)ツールバーボタンを使用すると、プロジェクト依存関係ダイアグラムを選択したノードとその直接の依存関係、そのプロジェクトに依存するプロジェクトに絞り込むことができます。

サイズの大きなプロジェクト依存関係ダイアグラムの場合は、File Structure(ファイル構造)ツールウィンドウ(View | Tool Windows | Structure)を開き、高レベルな概要を使用してダイアログを自由自在に移動できます。

プロジェクトの結合解析

ダイアグラムの解析と更新を実行するには、ツールバーの Enable Coupling Analysis(結合解析の有効化)をクリックします。 リンクの太さ、色、スタイルはプロジェクトの結合の強さによって変化します。 リンクの上にマウスを移動すると、Rider が正確な使用箇所の数を含むツールチップを表示します。 そのリンクをクリックすると、依存コードに関する情報が収集されて独立したツールウィンドウに表示されます。

プロジェクト依存関係ダイアグラムでは、Show Transitive Dependencies(推移的な依存関係の表示)も実行できます。 その場合、直接的および間接的なプロジェクト依存関係の両方が表示されます。

スナップショットの保存と比較

プロジェクト依存関係ダイアグラムのスナップショットをツールバーから保存し、それを現在のソリューションと比較することができます。 過去に保存したスナップショットを読み込んで検査するには、Tools | Architecture | Compare With Saved... メニューを使用します。 Rider ダイアグラム間の差分をハイライトします。

詳細については、「Rider 2020.3 にプロジェクト依存関係ダイアグラムが実装されました」をご覧ください。

ダイアグラムのエクスポート

ツールバーからダイアグラムを画像としてエクスポートし、ドキュメントに挿入できます。

ゲーム開発

Unity

Rider 2020.3 では Unity のサポートが大幅に強化されています。Burst 解析、シェーダーのサポート、ユニットテストが更新されているほか、若干の有益な修正が加えられています。

Unity の [MenuItem] 属性が付いたメソッドの横にあるアイコンをクリックすると、Rider が IDE から直接メソッドを呼び出すように Unity に指示します。

Rider の高度なシェーダーのサポートが更新され、コード解析の際に shader_feature や target などの pragma の定義シンボルが自動的に使用されます。 ステータスバーには、新しいコンテキストピッカーが追加されています。このコンテキストピッカーは、シェーダーがインクルードされていた場所で定義されているシンボルに基づいてシェーダーを解析します。

Burst コンテキスト解析を改善しました。新しい Code Vision インジケーターと、不適切な SharedStatic の使用箇所に対応した新しい警告を実装しました。 Alt+Enter メニューを使用して [BurstDiscard] 属性をすばやく追加することもできます。

新しいコンテキストアクションを使用すると、Update などのパフォーマンス的に重要なメソッドをより管理しやすくなります。 あるメソッドを呼び出し頻度が高いものとして扱うことや、高コストなメソッドとしてハイライトするのをやめるように Rider に指示できます。また、任意のメソッドから新しいパフォーマンスコンテキストを開始することもできます。

ユニットテストにも新たにいくつかの重要な更新が加えられています。例えば、[Explicit] 属性のサポートやパラメーター化テスト機能があります。 また、1 回のテスト実行で Edit モードのテストと Play モードのテストの両方を実行できます。

Unity ログビューアツールウィンドウに UI に関するいくつかの有益な改善が加えられています。代表的な改善には、ゲームを最後に Play モードに切り替えた最後の時間や、ゲームの AppDomain が最後に再ロードされた時間に基づいて絞り込む機能があります。

また、当然ながら多数の問題を解消しています。例えば、Unity エディターに接続されていない場合に「refreshing solution」(ソリューションを再読み込みしています)メッセージが延々と表示され続ける問題を解消し、冗長なイベントメッセージを除去するための新しいクイックフィックスを提供しています。 また、プレイヤープロジェクトで不適切な C# 言語の候補が表示される問題を解消しました。 詳細については、変更ログをご覧ください。

Rider for Unreal Engine 早期プレビュー

Rider for Unreal Engine はまだパブリックプレビューの段階にあり、2021 年に Rider の構成要素としてリリースされる予定です。 一般リリースまではこのプレビューを無料で評価することができます。

Rider for Unreal Engine は UnrealHeaderTool とのシームレスな連携機能を提供し、より多くの Unreal Engine 固有のコードの問題をエディター内で直接捕捉できるようにします。 Unreal Engine プロジェクトで作業する際には編集中のファイルに対して UnrealHeaderTool が自動的に実行され、他のインスペクションと同様にエラーや警告が表示されます。

UnrealHeaderTool との連携動作のデモを見る

制御フロー解析の全機能が HLSL シェーダーファイルに対応しました。 その結果、到達不能コード、未初期化の変数、冗長な制御フロージャンプや条件分岐などについて警告が表示されるようになりました。 メインの Rider では、バージョン 2020.3 で同じ解析機能を Unity シェーダーに対して使用できます。

Unreal Log にフィルターを追加しました。これにより、Rider for Unreal Engine で Verbosity(詳細度)と Category(カテゴリ)で絞り込んだり、タイムスタンプの表示をオンオフしたりできるようになりました。 Unreal ログパネル内のメッセージが多すぎる場合に UI がフリーズする問題を解決しました。

UnrealLink/RiderLink プラグインは、JetBrains Rider と Epic Games 社の Unreal Editor との高度な連携を可能にします。 このプラグインが JetBrains Marketplace で提供されるようになり、製品ビルドとは別個にアップデートできるようになりました。

F# のサポート

F# 5 の機能

新しい文字列補間構文のサポートを開始しました。 文字列に $ 記号を付けて補間し、文字列リテラルの中にプレースホルダーを入れられるようになりました。 プレースホルダー用の「型指定された補間」構文(%s%d)もサポートされています。

このリリースでは、F# のほぼすべてのシンボルをシンボル名に変換するのに役立つ nameof キーワードのサポートを開始しました。

最後に付け加えますが、open type(オープン型)の宣言もサポートされています。 オープン型の宣言を使用すると、任意の型を "オープン" してその型の中に格納されている静的な内容をインポートできます。

その他の機能と改善点

型とインターフェースの実装に不足しているオーバーライドを生成できるようになりました。この機能はクイックフィックスとコンテキストアクションの両方を含みます。 このアイデアを提供し、初期実装を行った Matt 氏に感謝します。

コードの可読性を向上させるため、構文ハイライトに対応した新しいツールチップを搭載しました。 この機能を見事に実装した Saul 氏に感謝します。

let バインドの型にアノテーションを付ける新しいコンテキストアクションが実装されました。 改めて Matt 氏に心から感謝します。

ReSharper のバックエンドが提供するアナライザーの重大度を調整できる機能を追加しました。 大部分の警告やエラーは、引き続き FCS によって生成されます。

以下の新しいアナライザーとクイックフィックスが追加されています。

  • 組み込みの関数アナライザーを使用してラムダを単純化、または置換できます。
  • Redundant applications(冗長アプリケーション)アナライザーは、例えば無視する対象がない場合に冗長な Ignore の呼び出しを除去します。
  • コードスタイルを改善する Redundant patterns(冗長パターン)アナライザー。
  • 名前空間をモジュールに変換するクイックフィックス。

入力支援:

  • メソッド呼び出しでの Enter の動作を改善しました。
  • 新しい “Surround with Quotes”(引用符で囲む)をサポートしています。

モジュールまたは型の名前に一致するようにファイル名を変更するアクションが実装されました。

デバッガーが非同期ワークフローのローカル変数をより適切に追跡できるようになりました。

UI/UX の改善

新しいウェルカム画面

ウェルカム画面を再設計し、より分かりやすくモダンなデザインにしました。 以前とまったく同じ機能を備えていますが、より適切に整理されています。 引き続きプロジェクトの管理、Rider の新機能を学習するためのチュートリアルの起動、新規ソリューションの作成、既存ソリューションのオープン、VCS からのソリューションの取得を行うことができます。

Solution Explorer での検索

「本物の」検索機能が Solution Explorer ビューに搭載されました。 ファイル、フォルダー、プロジェクト、参照、アナライザー、インポート、パッケージなど、ソリューションツリー内の全ノード(折りたたまれたノードも含む)を参照し、検索クエリに一致する出現箇所をすべて提示します。 これらの出現箇所は、キーボードショートカットかツールバーのアイコンを使用して一つずつ調べることができます。 検索フィールドを開くには、Ctrl+F ショートカットかツールバーの虫眼鏡アイコンを使用します。

タブのドラッグアンドドロップ

プロジェクトで作業中に複数のタブを開きたい場合にファイルタブをドラッグアンドドロップし、エディターを上下または左右に分割できるようになりました。

右に分割して開く

ファイルを開いたときにエディターを上下に分割する Open in Right Split(右に分割して開く)アクション(View | Open in Right Split または Shift+Enter)を導入しました。 このアクションは Explorer ビューや、Recent Files / Search Everywhere / Navbar のような他のナビゲーションポップアップからファイル選択時に呼び出せます。

ピン留めしたタブ

ピン留めしたタブには、新しいピンアイコンが表示されます。 そのアイコンをクリックすると、ファイルのピン留めが解除されます。 また、タブを他のピン留めした、あるいはピン留め解除したファイルにドラッグアンドドロップしてピン留めやピン留め解除を行うことができます。 多くのタブを開きがちな方は、すべてのピン留めしたタブを 1 つの行に格納することができます。 そのためには Preferences / Settings | Editor | General | Editor Tabs に移動し、Show pinned tabs in a separate row(ピン留めしたタブを別の行に表示する)チェックボックスにチェックを入れてください。

ツールチップの構文ハイライト

ツールチップの内容を読みやすく、理解しやすくするため、構文ハイライトを実装しました。

プレビュータブ

ワンクリックでファイルをプレビュータブで開けるようになりました。 ファイルをプレビュータブで開くと、ファイル名が斜体で表示されます。 このファイルの編集を開始すると、プレビューが中断されて通常のファイル編集画面に移行します。 この機能を有効にするには、Project ビューの歯車アイコンをクリックし、Enable Preview Tab(プレビュータブを有効化)を選択します。

Touch Bar の Build アクション

macOS ユーザー向けに Build アクションを Touch Bar for に追加しました。

バージョン管理

Rider から変更を直接ステージングできるようになりました。 ファイルを Commit ビューの新しい Staged ノードに追加するには、+ アイコンをクリックします。 また、ガターや Diff ビューでも変更をステージングできます。 この機能を有効にするには、Preferences/Settings | Version Control | Git に移動して Enable staging area(ステージングエリアを有効化)チェックボックスにチェックを入れてください。 詳細については、このブログ記事を参照してください。

新しい Git タブを Search Everywhere(どこでも検索)ダイアログに追加しました。 これにより、コミットハッシュやメッセージ、タグ、ブランチを Search Everywhere ダイアログで検索できるようになりました。

ブランチの処理に若干の改善を行いました。 Rider が現在選択されているブランチで使用できるすべてのアクションを表示するようになりました。 Merge into Current(現在のブランチにマージ)および Rebase Current onto Selected(現在のブランチを選択したブランチにリベース)の各アクションの名前を Pull into Current Using Merge(マージを使用して現在のブランチにプル)とPull into Current Using Rebase(リベースを使用して現在のブランチにプル)にそれぞれ変更しました。

VCS に関するその他の更新:

  • VCS メニューの名前が、現在使用中のバージョン管理システムの名前に一致するように変更されました。
  • パッチが Git 形式で作成されるようになりました。

プラグイン

Dynamic Program Analysis (DPA)

Dynamic Program Analysis プラグインは macOS と Linux で .NET Core アプリケーションに使用できるようになり、Windows 専用ではなくなりました。 .NET Core 3.0 以降をターゲットとするアプリケーションに使用できます。

デバッガーを実行中のプロセスに接続中に DPA プラグインがメモリの割り当てを解析できるようになりました。

Azure DevOps

Azure DevOps プラグインを使用すると、新しいサーバーワークスペースを作成したり、既存のものをインポートしたりできます。

dotCover

dotCover プラグインを使用すると、Windows / macOS / Linux で .NET 5 をターゲットとするアプリケーションのカバレッジ解析を実行できます。

Unit Tests Coverage(ユニットテストカバレッジ)ウィンドウでは、ターゲットフレームワークでカバレッジの結果を絞り込むことができます。

dotCover によるコードエディターのハイライト表示は、プラグインの設定か 'Configure highlighting level'(ハイライトレベルの調整)ポップアップでオンオフできます。

継続的テストのセッションがトリガーされた際にビルドすべきプロジェクトを定義できるようになりました。 これにより、継続的テストのセッションが高速化されます。

dotTrace

パフォーマンスプロファイラーが、Windows / macOS / Linux での .NET 5 アプリケーションのプロファイリングに対応しました。

パフォーマンスプロファイラーにフレームグラフを追加しました。このグラフは呼び出しツリーを可視化したもので、遅いメソッドをよりすばやく見つけるのに役立ちます。

Rider 用の dotTrace プラグインに、以前は dotTrace のスタンドアロン版でしか使用できなかった呼び出しツリーの折りたたみ機能が追加されました。 この機能を使用すると、ユーザーモジュールやアセンブリに属さない呼び出しチェーンを折りたたんで呼び出しツリーを単純化することができます。

Rider 向け Azure Toolkit

Rider で Azurite ストレージエミュレーターを使用する際にキューストレージを参照できるようになりました。 メッセージの追加、メッセージの内容表示などを行うことができます。

テーブルストレージエミュレーターを備えた新しい Azurite 3.9 のアルファ版の実行サポートも開始しています。

Azure Functions プロジェクトでは、実行/デバッグ構成がプロジェクトのコンテキストメニューに表示され、アクセスしやすくなりました。 また、Azure Explorer ツールウィンドウのコンテキストメニューを整理し、一般的なアクションをよりすばやく実行できるようにしました。

Rider 向け AWS Toolkit

  • Amazon Elastic Container Registry の基本的なサポートを提供。
  • .NET Core 3.1 の Lambda 関数をサポートしています(SAM CLI バージョン 1.4.0 以降が必要です)。
  • S3 バケットリストの読み込み速度が大幅に向上しました。
  • プラグインを使用するための最低必須バージョンが Rider 2020.1 になりました。2019.3 のサポートは廃止されました。
  • 詳細については、Marketplace を参照してください。

Markdown

Markdown ツールのプレビューの UI が改善され、UX が向上しました。 Markdown のフォーマットを Preferences | Settings | Editor | Code Style | Markdown でカスタマイズできます。 エディターの右上にある Auto-Scroll Preview(プレビューを自動スクロールする)ボタンを使用すると、プレビューペインとエディターのスクロールを同期させることができます。 また、新たに Mermaid.js のサポートを開始しました。

コードエディタ

インレイヒント

私たちはインレイヒントが有用であると考えていますが、作業環境は可能な限りスッキリと操作しやすくすべきだということも理解しています。 これらを両立させるため、どちらのメリットも維持できるようにインレイヒントに対応した新しい "Push-to-Hint"(押下でヒント)の仕組みを考案しました。

Push-to-Hint 表示モードでは、インレイヒントはデフォルトでは表示されません。 インレイヒントは Ctrl を長押しすると表示され、Ctrl キーを離すと非表示になります。

非常に細かい設定調整を行えるようにしています。常に表示すべきヒント、押下時に表示すべきヒント、重要度の低いヒントを Rider に指示することができます。 それぞれのヒントの種類に ‘Visibility’ 設定を使用してください。

さらに、暗黙的な型キャストのヒントにも対応しています。 この種のキャストはデータの損失やパフォーマンスの低下を引き起こす可能性があります。Rider は暗黙的なキャストが発生している場所を指摘します。

ファイルヘッダー

ファイルヘッダー用のテンプレートを Preferences/Settings | Editor | File Header Template で指定できるようになりました。 このテンプレートは、著作権表示、会社情報、現在のユーザー名などを追加するのに使用できます。

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

コードエディターからフォーマット設定を検出して構成できる機能をついに実装しました。 この機能にアクセスするには、コードを選択してから Alt+Enter を押し、Format Selection / Configure(選択箇所のフォーマット / 構成)または Format Selection / Detect Formatting settings(選択箇所のフォーマット / フォーマット設定の検出)を選択してください。 Rider が選択した行に影響するすべての設定をまとめてウィンドウに表示します。 デフォルト値と異なっている値はハイライトされます。また、"Only show changed values"(変更された値のみを表示)オプションを使用して異なっている値に限定して表示することもできます。

詳細については、「Rider によるコードフォーマット規則の自動検出」を参照してください。

フォーマットエンジンには継続的に詳細な設定を追加しています。 このリリースでは、以下の設定を追加しました。

  • プロパティパターンの配置設定を使用すると、単純なパターンを 1 行に配置し、長いパターンの折り返し方法を Rider に指示することができます。 また、プロパティパターンの位置揃え設定もあります。
  • 空行をプロパティまたはイベントアクセサーの前後に追加できるようになりました。
  • Visual Basic .NET の場合は +/- 単項演算子の後にスペースを追加するオプションがあります。

デフォルト値で優先する構文スタイルを選択するオプションを、Preferences/Settings | Editor | Code Style | C# | Syntax Style タブに追加しました(defaultdefault(T))。

.editorconfig のサポートに若干の更新があります。

  • .editorconfig へのエクスポートの新しい “Spaces around ‘=’”(‘=’ 前後のスペース)パラメーター。 この値は既存ファイルの場合は自動検出され、新規ファイルの場合は手動で設定できます。 デフォルトでは ‘true’ に設定されます。
  • Roslyn プロパティ(file_header_templatesdotnet_sort_system_directives_firstdotnet_separate_import_directive_groups)の読み込みをサポートしています。

Tab キーを使用して現在のコード行のインデントを調整できるようになりました。 この機能を使用するには、Tab キーを Emacs の Tab 操作に割り当ててください。

Avalonia のサポート

コード解析

WPF に類するあらゆるフレームワークでは一般的な事ですが、コード解析では C# コードビハインドファイルと .axaml ファイルの両方に適した “Possible ‘System.NullReferenceException’”(‘System.NullReferenceException’ の可能性)および “Class/Property {...} is obsolete: Use {...}”(クラス/プロパティ {...} は使用すべきではありません: {...} を使用してください)などのクイックフィックスを備えた一般的なコードインスペクションを豊富に提供しています。

一般的な WPF のインスペクションに加えて、“Path to resource is case-sensitive”(リソースへのパスでは大文字小文字が区別されます)や “ColumnDefinitions tag can be converted to attribute”(ColumnDefinitions タグは属性に変換できます)といったクイックフィックス付きのインスペクションなど、Avalonia 固有のインスペクションも豊富にあります。 後者の場合は ColumnDefinitions="*,Auto,*" 属性に対するコンテキストアクションがあり、それを使用して <Grid.ColumnDefinitions> タグに逆変換できます。

Avalonia のバインディングの $self / $parent / ^ / # 構文を適切にサポートし、$parent[] 配列のインデックスを適切に検証するようにしました。

CompiledBinding および x:CompileBindings 拡張のサポートが拡張されました。 Rider は DataType が必要であることを認識しており、コード内のバインディングに指定するように促します。

“Create from usage”(使用箇所から作成)クイックフィックスをすべての Avalonia プロパティに使用できるようになりました。

Avalonia XAML のサポートには、CSS ライクなスタイルシステムの認識も含まれています。

インレイヒントは参照中のコードをより深く理解するのに役立ちます。

コード補完

コード補完とパラメーター情報は、すべての XAML キーワード、あらゆる種類のマークアップ拡張、x:NameStyle プロパティ、StyleIncludeSource プロパティその他に対応しています。

ナビゲーション

コンパイル済みバインディングのデータ型、バインドプロパティ、Avalonia コントロールの型、x:Name の宣言に簡単に移動できます。 Rider では XAML からスタイルの setter プロパティを含むデコンパイル済み外部コードや、参照されている xmlns 名前空間に直接移動することもできます。

Find Usages(使用箇所の検索)

Find Usages は、メソッドのバインディング、x:Name 属性、Style クラスと setter、およびあらゆる種類のプロパティの使用箇所をすべて検索するのに役立ちます。

リファクタリング

Rename および Safe Delete リファクタリングが Avalonia XAML コード内のあらゆる使用箇所を認識し、それらを更新できるようになりました。

階層とコード構造

Avalonia XAML コードの階層と構造を監視できます。

ウェブ開発

Blazorサポート

私たちは Blazor のサポートを継続的に強化しています。 今回はジェネリック型パラメーターと使用箇所の型推論のサポートを強化し、ソリューションを開く際のパフォーマンス低下を解消しました。 修正された問題の全リストは、公開バグトラッカーをご覧ください。

Tailwind CSS のサポート

Rider は Tailwind CSS を使用した作業の生産性を向上させます。 Tailwind CSS プラグインを Preferences / Settings | Plugins からインストールすると、IDE が Tailwind のクラスを自動補完し、マウスオーバーで最終的な CSS のプレビューを表示し、tailwind.config.js ファイルを使用したカスタマイズを支援するようになります。

使用箇所から React コンポーネントを作成

コード内に未解決の React コンポーネントがありますか? そのコンポーネントの位置にキャレットを置き、Alt+Enter を押してから Create class / function component(クラス/関数コンポーネントの作成)をリストから選択してください。 Rider が適切なコード構成を作成します。

その他の重要な改善点は以下の通りです。

Rider 2020.3 でも有効になったウェブ開発に関するすべての改善点については、WebStorm の新機能をチェックしてください。

データベースのサポート

MongoDB での SQL 対応

MongoDB データベースに対して SQL でクエリを実行できるようになりました。 私たちはこの目的で JS-SQL 変換メカニズムを独自に作成しました。

SELECT クエリのみを使用可能で、JOIN / WHERE / GROUP BY / HAVING / ORDER BY / LIMIT / OFFSET の各句に対応しています。 サポート対象に関する詳細な記事は、こちらにあります。

Couchbase のサポート

私たちは継続的に新しいデータベースへの対応を行っていますが、今回は新たに Couchbase をサポートしました。 Rider がサポートしているのは Couchbase Query サービスであり、Couchbase Analytics サービスではないということにご注意ください。

Azure AD 認証

Azure AD を使用してデータベースにログインできるようになりました。

Rider 2020.3 でも有効になったデータベースに関するすべての改善点については、DataGrip の新機能をチェックしてください。

その他の更新

ユニットテスト

指定ターゲットフレームワークのユニットテストを Alt+Enter メニューを使用してコードエディターから直接起動できるようになりました。

ユニットテストの実行結果を Unit Test Session(ユニットテストセッション)タブからエクスポートできるようになりました。

Xamarin

「情報プロパティリスト」ファイルを使用した iOS プロジェクトの調整に時間をかけていた方のために、すべてのプラットフォームで Xamarin.iOS プロジェクトの Info.plist に対応したリッチなエディターを新たに提供しています。 もう、このファイルを編集するために Xcode を起動する必要はありません。

その他

  • ファイルとして保管されている実行構成が、Run Configurations フォルダー内のソリューション項目に追加されています。 これにより、Rider がカスタムフォルダーに保管されている実行構成を適切に扱えるようになりました。
  • Run Configuration テンプレートをファイルとして保管し、VCSで共有できるようになりました。
  • また、Search Everywhere の検索フィールドで単純な数式を評価できる機能を追加しました。
  • Windows と macOS で IDE のテーマを自動的に OS の設定と同期できるようになりました。 Settings | Appearance & Behavior | Appearance | Theme で Sync with OS(OS と同期)オプションを有効にしてください。
  • リソース消費の激しいインスペクション処理をオフにすることにより、Solution-Wide Error Analysis(ソリューション全体のエラー解析)のパフォーマンスが約 25%向上しました。
ダウンロード

無料 30 日間体験版をご利用可能です