Rider の新機能

Rider 2023.2 では C# のサポートが改善され、ローカル関数や raw 文字列の処理と一般的な Entity Framework の問題解決を行うための新しいインスペクションが導入されています。 UI が大きく改善され、IDE の新しい外観が仕上がりました。洗練されたモダンな外観で、高度にカスタマイズすることができます。 Unity DOTS に関連した機能の更新と Unreal Engine のブループリントインデックス作成の最適化、その他多くの機能強化により、Rider を使用したゲーム開発がさらに強化されます。 Rider 2023.2 は JetBrain AI Assistant プラグインを通して AI を活用した機能を提供する IDE の最初のバージョンでもあります。

主な更新内容

カスタマイズ可能なプロジェクトヘッダー

カスタマイズ可能なプロジェクトヘッダー 新しい UI

Rider 2023.2 では、開いているすべてのプロジェクトを色で分けて簡単に移動できるようになりました! ヘッダーは定義済みの色がデフォルトで適用されていますが、ユーザーの設定に応じて変更することができます。 プロジェクトに新しい色を設定するには、ヘッダーを右クリックしてコンテキストメニューを開きます。 Change Toolbar Color(ツールバーの色を変更)オプションを選択し、希望する色を選択します。 この機能を無効にするには、コンテキストメニューの Use Project Colors in Toolbar (ツールバーでプロジェクトの色を使用)オプションを選択し解除します。

AI Assistant

AI Assistant 限定アクセス

このリリースでは、Rider への大きな追加機能となる AI Assistant が導入されました。 AI を活用した最初の機能セットは組み込みの AI チャットを提供しており、必然的に一部の基本的な IDE ユーザーワークフローに組み込まれています。 AI Assistant は選択したコードの解析、コミットの意味の説明、仕様に合わせて記述された Unity ファイルの作成に対応しています。

詳細情報

Build(ビルド)ツールウィンドウの改良

Rider 2023.2 では、パフォーマンスと UX/UI の両方の点で Build(ビルド)ツールウィンドウを改良しました。 ビルドの出力結果は左側ではイベントツリーとして、右側ではログとして表示されるようになります。 出力が「遅延」読み込みされるようになり、イベントツリーから確認したいビルドの詳細のみが読み込まれて表示されるようになるため、以前よりも CPU への負荷が低く調査しやすくなります。

GitLab 統合

Rider 2023.2 では GitLab との統合機能が初めて導入されています。そのため、IDE から直接 Merge Requests(マージリクエスト)機能を使用して開発ワークフローを合理化できます。

コード解析

C# のサポート

raw 文字列のサポート改善

以下のように raw 文字列を扱う新しい C# のインスペクションとコンテキストアクションの追加、入力支援の改善、および新しい整形オプションの追加を行いました。

  • 複数行の逐語的文字列を raw 表記に変換する Use raw string(raw 文字列の使用)インスペクション。
  • 冗長になる引用符とドル記号の一部を除去する Simplify raw string(raw 文字列の単純化)インスペクション。
  • 引用符、補間の波括弧、ドル記号の追加または除去、単一行表記と複数行表記の切り替えを行う多数のコンテキストアクション。
  • raw 文字列の内容を整列またはインデントできるようにするいくつかのコードフォーマッターオプション。
  • EnterDelete、または Backspace キーを使用した時の入力支援の改善。

raw 文字列のサポート改善に関する詳細は、対応するブログ投稿をご覧ください。

一般的な Entity Framework の問題に対応したインスペクション

一般的な Entity Framework の問題に対応したインスペクション

Entity Framework などのオブジェクトリレーショナルマッピング(ORM)を使用してデータベースで作業する際に発生しうる一般的な問題に対応できるよう、いくつかの新しいインスペクション、クイックフィックス、およびコンテキスト認識ナビゲーションのオプションを追加しました。

  • 発生しうる「N+1」問題への対応を支援するため、Possible multiple queries to the database for related entities (N+1 problem)(関連エンティティのデータベースに対する複数クエリの実行可能性(N+1 問題))インスペクションと Possible multiple queries to the database (N+1 problem)(データベースに対する複数クエリの実行可能性(N+1 問題))インスペクション、対応するクイックフィックス、「N+1」問題が発生しうるコード箇所を行き来するためのコンテキスト認識ナビゲーションが提供されています。
  • 「N+1」問題の検出に加えて、Entity Framework を扱う際に役立つもう 1 つのインスペクション Query can return incomplete data for related entities(関連エンティティの不完全なデータを返す可能性があるクエリ)を導入しました。 この問題の調査に役立つクイックフィックスとコード間を移動できるコンテキスト認識ナビゲーションも導入しています。

新しい Entity Framework 関連のインスペクションの詳細は、ブログ投稿をお読みください。

ローカル関数を操作するためのインスペクション

Rider 2023.2 ではローカル関数のコードの可読性向上を目的とした 2 つの新しいインスペクションと対応するクイックフィックスが導入されています。

  • メソッドの最後にあるローカル関数の前に明示的な return または continue を配置するよう推奨するもの。
  • メソッドまたはブロックの最後にローカル関数を移動し、明示的な returncontinue、または別の制御フローの移動ステートメントを使用して、実行可能なコードから分離するよう提案するもの。

新しいインスペクションの詳細は、このブログ投稿をご覧ください。

#nullable ディレクティブと NRT アノテーションのインスペクション

#nullable ディレクティブと NRT アノテーションに対応したインスペクション

#nullable ディレクティブと NRT アノテーションに対応したいくつかの新しいインスペクションが使用可能になりました。

  • Redundant nullable directive(冗長な null 許容ディレクティブ)インスペクション。
  • Unused nullable directive(未使用の null 許容ディレクティブ)インスペクション。
  • null 許容参照型(NRT)アノテーションが基本メンバーの JetBrains.Annotations 属性と矛盾している場合に警告するインスペクション。

これらのインスペクションの詳細は、こちらのブログ投稿をご覧ください。

var 宣言からの移動の改善

var 宣言からの移動の改善

他の型をラップするために使用されている一般的な型の var から移動する際、すべての移動アクション(Go to…(… に移動)、Find Usages(使用箇所の検索)など)が基になる型を提案するようになりました。 たとえば、ImmutableArray<Person>? 型を持つ変数の var キーワードから Go to declaration(宣言に移動)アクションを使うと、Person への移動が提案されます。

詳細は、次のブログ投稿をご覧ください。

プライマリコンストラクター C# 12 プレビュー

2023.2 バージョンでは、C# 12 プレビューの非レコードクラスや構造体のプライマリコンストラクターをサポートするようになりました。 新しいプライマリコンストラクターを使用して初期化を表現できる型を検出し、コードの反復量を大幅に削減するクイックフィックスの適用を提案するインスペクションがいくつか追加されています。

型の初期化をあまり簡単に記述すべきではなく、プライマリコンストラクターを使用して表現できないことがあります。 そのような場合のために、プライマリコンストラクターパラメーターをコンストラクターと通常のフィールドに置換できるコンテキストアクションをいくつか導入しました。

プライマリコンストラクターに対応したこれらの機能とその他の機能については、別のブログ投稿で実際の動きを確認できます。

ラムダのデフォルトパラメーター値をサポート

ラムダのデフォルトパラメーター値をサポート C# 12 プレビュー

C# 12 言語アップデートをサポートする取り組みの一環として、ラムダ式のデフォルトパラメーター値のサポートを導入しています。 この構文の認識に関連する標準的な警告メッセージ一式を提供しているほか、ラムダのデフォルトパラメーター値を処理するために既存のインスペクション The parameter has the same default value(パラメーターに同じデフォルト値があります)を微調整しています。 詳細はこちらをご覧ください。

破棄可能なリソースのサポートを強化

Rider 2023.2 では、オブジェクトの破棄を管理しやすくすることを意図した 2 つの新しいコードインスペクションが導入されています。

  • Return of a variable captured by ‘using’ statement(‘using’ ステートメントによりキャプチャされた変数の返却)インスペクションは、返されたオブジェクトが即座に破棄されている場合に警告します。
  • Return of a task produced by ‘using’-captured object(‘using’ がキャプチャしたオブジェクトによって生成されたタスクを返却)インスペクションは、Task(タスク)が using ステートメントによってキャプチャされたオブジェクトによって生成され、即座に返されているシナリオを特定します。

IAsyncDisposable インターフェースをサポートし、リソースを解放する非同期メソッドを生成できるように Generate dispose pattern(破棄パターンの生成)機能も改善しました。

これらの追加機能の詳細は、こちらをご覧ください。

C# の破棄に対するサポートを強化

コード解析に C# の破棄をサポートするのに役立つ多数の新機能が追加されました。

  • 破棄された値の名前と型を Push-to-Hint 機能を使用してすぐに確認できるようになりました。
  • 実際に使用されている名前が _ の変数とパラメーターについて警告する The _ name is typically reserved for local parameters without usages_ の名前が使用箇所のないローカルパラメーターのために予約されています)警告が追加されています。 これらは「破棄された」値のように見えますが、実際にはまったく逆のことを表しています。
  • Use discard assignment(代入の破棄を使用)インスペクションを未使用の変数とパラメーターを破棄に置換するために使用できます。

破棄に対するサポートの強化に関する詳細は、ブログ投稿をご覧ください。

コードを読みやすくするための新しいインレイヒント

コードを読みやすくするための新しいインレイヒント

タプルコンポーネント名を使用したインレイヒント

タプルの引数または戻り値の型に値を渡す場合、C# ではコンポーネント名を省略できます。 しかし、名前がなければ、ターゲット型を調べない限りは各コンポーネントの意味を理解するのがより難しくなります。 たとえば、多くのソフトウェア開発者はコンポーネントの意味を理解するためにタプル (nullfalse) が割り当てられている場所を確認する必要があります。

ここでインレイヒントが役立ちます! Rider 2023.2 はタプルの名前がコンポーネント式から自明ではない場合にタプルコンポーネント名を使用したインレイヒントを表示し、一目でコードを読んで理解しやすくします。

null とデフォルトのコンポーネントの場合、Rider 2023.2 はターゲットコンポーネントに明示的な名前がない場合でもターゲット型についてヒントを表示します。 文字列型とオブジェクト型は通常あまり有益な情報が得られないため、対象外です。

明示的な名前が Deconstruct メソッドまたはソースのタプルコンポーネントのいずれかから分かる分解パターンも、一般的に名前を読みやすくできるケースに挙げられます。 このヒントは、value is ({ }, true, null) のようにパターン自体に一致対象を理解するのに十分なデータが含まれていない場合に、追加のコンテキストを提供するために開発されました。

#pragma warning ディレクティブのサポートを改善

#pragma warning ディレクティブのサポートを改善

Pragma ディレクティブを使うと、コンパイラー警告をその ID ごとに簡単に無効化または復元することができます。 この ID はコンパイラーとの通信に活用できますが、人間の開発者が理解するには困難な場合があります。 総合的な知識がなければ、CS0168CS0618 などの ID が意味するものや注意すべきものがわかりにくいと思われます。

UX/UI

このリリースでは、改良された IDE インターフェース(Rider 2022.3 で最初に公開)がついに新規ユーザー全員に対してデフォルトになりました。 まだ切り替えがお済みでない場合は、「Settings / Preferences | Appearance & Behavior | New UI | Enable new UI」(設定 / 環境設定 | 外観 & 振る舞い | 新しい UI | 新しい UI の有効化)に移動して試してみることをお勧めします。

IDE 全体の拡大・縮小

Windows と Linux のメインツールバーにあるハンバーガーメニューの改良 新しい UI

Windows および Linux の新しい UI でメインツールバーにあるハンバーガーメニューの動作を改良しました。 メニューアイコンをクリックすると、その構成要素がツールバー上で横方向に表示されるようになっています。

実行構成のピン留め

Run(実行)ウィジェットでの実行構成のピン留め 新しい UI

複数の実行構成を管理しやすくするため、Run(実行)ウィジェットにお好みの構成をピン留めできるオプションを実装しました。 Pinned(ピン留め)セクションに実行構成を追加するには、名前の横にあるケバブメニュー(三点リーダー)を開いて Pin(ピン留め)を選択します。 ピン留めされた構成が複数ある場合はドラッグアンドドロップ操作でリスト内の構成の位置を簡単に調整できます。

IDE 全体の拡大・縮小

メインツールバーのカスタマイズを改善 新しい UI

新しい UI のメインツールバーのカスタマイズオプションを拡張しました。 ドロップダウンメニューを使用して必要なアクションを素早く選択し、このツールバーに追加できるようになっています。 これを行うには任意のウィジェットで右クリックして Add to Main Toolbar(メインツールバーに追加)を選択し、使用できるオプションを参照します。

ライトヘッダーを使ったライトテーマを導入

ライトヘッダーを使った Light(ライト)テーマ 新しい UI

Rider バージョン 2023.2 では、代替の Light with Light Header(ライトヘッダーを使ったライト)オプションを導入して Light(ライト)テーマを改良しました。このテーマでは、ウィンドウのヘッダー、ツールチップ、および通知バルーンで対応する明るい色が使用されます。

ワンクリックでプロジェクトディレクトリ間を移動

ワンクリックでプロジェクトディレクトリ間を移動

より迅速かつ応答性の高いプロジェクトフォルダーの展開と折りたたみを可能にする新しい Open Directories with Single Click(ワンクリックでディレクトリを開く)オプションが Solution Explorer(ソリューションエクスプローラー)ツールウィンドウに追加されています。 このオプションはケバブメニュー(三点リーダー)アイコンにあります。

Solution Explorer(ソリューションエクスプローラー)での変更日時によるファイルの並べ替え

Solution Explorer(ソリューションエクスプローラー)での変更日時によるファイルの並べ替え

Rider 2023.2 には Solution Explorer(ソリューションエクスプローラー)のファイルを変更日時に基づいて並べ替える待望のオプションが導入されています。 この新機能により、プロジェクトの変更が保存されるたびにファイルが自動的に並べ替えられるようになります。 この機能を有効にするには、Solution Explorer(ソリューションエクスプローラー)の横にあるケバブメニュー(三点リーダー)を開き、Tree Appearance(ツリーの外観)| Sort by Modification Time(変更日時で並べ替える)を選択します。

AI Assistant 限定アクセス

バージョン 2023.2 の IntelliJ ベース IDE と .NET ツールには、重要な新機能である AI Assistant が導入されています。 AI Assistant は開発の早期段階にある機能ではありますが、基本的な IDE のユーザーワークフローに組み込み、コードを理解する大規模な AI 機能を統合するアプローチを試すことができます。 詳細はウェブヘルプをご覧ください

AI Assistant は現時点では JetBrains IDE の安定版リリースにバンドルされていませんが、バージョン 2023.2.x には個別のプラグインとしてインストールできます。 当面の間、AI Assistant 機能を利用するには順番待ちリストに登録する必要があります。

AI Assistant のチャット機能

AI Assistant のチャット機能

AI Assistant ツールウィンドウを使用して LLM との対話、質問、タスクの反復処理を行います。 IDE がプロジェクトで使用される言語やテクノロジーなど、プロジェクト固有のコンテキストを提供します。 満足のいく結果を得られたら、Insert Snippet at Caret(キャレット位置にスニペットを挿入)機能を使用して AI が生成したコードをエディターに挿入またはコピーできます。

AI Actions...(AI アクション...)メニュー

AI Actions...(AI アクション...)メニュー

エディター内の特定コード箇所を選択し、AI Actions...(AI アクション...)コンテキストメニューからアクションを呼び出せます。

AI Assistant は以下について支援できます。

  • 選択されたコードの説明。
  • 潜在的な問題とリファクタリングオプションの検索。
  • 選択されたコードについて新しい AI チャットの開始。

コミットメッセージの生成と説明

コミットメッセージダイアログに Generate Commit Message with AI Assistant(AI アシスタントでコミットメッセージを生成)ボタンが追加されました。 このボタンをクリックすると LLM に変更の差分が送信され、変更内容を説明するコミットメッセージが生成されます。 AI Assistant にチームメイトが行ったコミットについて説明してもらうこともできます。

AI-Assisted Unity F

AI 支援による Unity ファイルの生成

AI Assistant は指定された仕様に合わせて記述された Unity ソリューションのファイルを生成することもできます。 Solution Explorer(ソリューションエクスプローラー)内でプロジェクトを右クリックし、コンテキストメニューから Create with AI Assistant(AI Assistant で作成)を選択してプロンプトを書き込んでください。 AI がファイルの内容を生成したら、Create New File(新規ファイルの作成)をクリックします。すると、ファイルがプロジェクトに自動的に追加されます。

パフォーマンス

Rider 2023.2 では、IDE のシステムが機能するために必要なデータをキャッシュする方法を見直しました。 この修正の効果は数え切れないほどのパフォーマンステストの実施によって裏付けられており、結果的にソリューションを開くたびに消費されるディスク容量を著しく減らすことができました。 具体的に言えば、ディスク入出力時間が全体的に減り、ソリューションの読み込み時間が短縮されています。

ナビゲーションと検索

詳細な使用箇所の検索

詳細な使用箇所の検索

Rider 2023.2 では、Rider の Find Usages(使用箇所の検索)機能がアップグレードされています。 シンボル(メソッド、クラス、または変数)で Find Usages Advanced(詳細な使用箇所の検索)を呼び出すと、IDE に追加の検索条件を指定できるウィンドウが表示されます。

詳細は、当社ブログのこの記事をご覧ください。

ナビゲーション設定

コードベース内を移動しやすくするため、「Settings / Preferences | Editor」(設定 / 環境設定 | エディター)にある専用の Search and Navigation(検索とナビゲーション)ページに便利なオプションを多数追加しました。

.NET SDK

Roslyn アナライザーとソースジェネレーター

Rider 2023.2 では Roslyn アナライザーとソースジェネレーターの扱いに関する多数の改善が行われています。 以下は改善点のごく一部です。

  • カスタムのソースジェネレーターがフリーズを引き起こした場合に IDE 全体を再起動する必要をなくすため、Reboot Source Generators(ソースジェネレーターの再起動)ボタンを追加しました。
  • Problems(問題)ビューにソースジェネレーターの例外を表示するようになりました。これにより、以前は検出も説明もされなかった問題に的を絞って対応できるようになりました。
  • IDE が Problems(問題)ビューで例外のフルスタックトレースを提供するようになりました。これにより、エラーの根本的原因をより簡単に特定できるようになりました。
  • Solution Explorer(ソリューションエクスプローラー)で Roslyn インスペクションの重要度レベルを変更できるようになりました。これにより、コード解析設定のカスタマイズの幅が広がり、より細かく管理できるようになりました。
  • 最後に、Rider で Roslyn アナライザーとソースジェネレーターを作成するための新しいプロジェクトテンプレートを 2 つ導入しています。

Docker

WSL での Docker の実行

WSL での Docker の実行

最新リリースでは Docker を高速モードで実行するオプションを導入しています。 Rider 2023.2 以降は WSL で Docker を高速モードで使用することも可能です。 Windows マシンで Docker Desktop を使用せずに Docker コンテナーを実行するには、まず WSL をインストールし、Linux ディストリビューションに Docker をインストールしてから、Rider の Build, Execution, Deployment(ビルド、実行、デプロイ)| Docker の Settings/Properties(設定/プロパティ)に WSL を追加する必要があります。 その後、WSL で(高速モードが有効かどうかに関係なく)Docker コンテナーの実行とデバッグが可能になります。

Docker Compose 実行構成のラベル

Docker Compose 実行構成のラベル

Rider 2023.2 ではラベルを導入することで Docker Compose の実行構成をより簡単に微調整できるようになっています。 このようなコードを docker-compose.yml ファイルに追加することで、アプリケーションの実行とデバッグを行うかどうかその方法を指定できます。

たとえば、一部のサービスに対して Fast モードを無効にする場合、それらに com.jetbrains.rider.fast.mode: "false" ラベルを設定できます。 デバッグモードを無効にする場合は、com.jetbrains.rider.debug: "false" ラベルを使用します。

MAUI の XAML ホットリロード

ホットリロードが .NET MAUI をターゲットとしたソリューションに対応しました! XAML ホットリロードを Riderで使用できるようになったため、モバイル開発者は MAUI アプリを実行しながら、ビルドとデプロイをフルに行うことなく UI とコードを変更できます。 最新の更新が瞬時に適用されるため、より迅速かつ反復的な開発を行えるようになります。

ゲーム開発

Unity

これは Unity 開発向けの機能が満載のリリースでもあり、ShaderLab ファイルの編集機能が大きく改善され、DOTS 関連の機能がさらに更新され、USS ファイルのサポートも強化されています。

Unity 対応の AI Assistant

新しい AI Assistant は問題解決と学習のためのツールであり、実際に Unity 開発者の役に立つことが期待されています。 Rider が Unity プロジェクトで作業していることを AI Assistant に伝えるため、「エディターウィンドウを作成するには?」や「メニュー項目を追加するには?」などの質問をすると、AI Assistant は Unity エディター内のウィンドウまたはメニュー項目を意図していることを理解して目的を達成するのに役立つ Unity API を提案します。

Unity のコンテキストにより、追加動作のプロトタイプを作成する絶好の機会も提供されます。 ファイルの作成を依頼すると、AI Assistant は提案するコンテンツを含むファイルを自動的に作成するボタンを含めます。 AI Assistant の機能が進化するにつれて、これを他のアクションとより多くのコンテンツに拡張する予定です。

ShaderLab のサポート

このリリースでは、新しい入力支援、ライブテンプレート、パンくずリストの生成、Structure(構造)ツールウィンドウ、Ctrl+クリックによるシェーダーまたはパスの名前宣言への移動など、ShaderLab ファイルに対する Rider のサポートが大幅に改善されています。

非常に多くの更新が行われているため、ShaderLab のサポートを特集したブログを公開しています! 詳細については、こちらをご覧ください

Unity DOTS

Unity コミュニティから届いた素晴らしいフィードバックに基づいて、Data Oriented Tech Stack(DOTS)のコード生成にいくつかの効果的な改善を行いました。 Burst コンテキスト解析をコードのより多くの部分に拡張したほか、新しいファイルとライブテンプレートも導入しています。

デバッガーも DOTS への対応を開始しています。 RefRO 型と RefRW 型の表現を改善することで、参照ラッパーの背後にある値をより簡単に表示できるようになりました。 ただし、Raw Value(raw 値)ノードを展開すれば元の表現をいつでも表示できます。

Unity スタイルシートのサポート

このリリースでは Unity スタイルシート(USS)ファイルに関する大幅な更新が行われており、Rider が var 関数をサポートするようになったほか、Unity の最近のバージョンに追加されたさまざまなプロパティに対応したハイライトと補完が追加されています。

その他の更新

アセットデータベース API で使用されるパスの補完も追加しています。 入力を開始するだけで、Rider がプロジェクトからのパスを提案します。

当然ながら、より細かな更新や修正も多数含まれています。 たとえば、ユニットテストが時々 Canceling(キャンセル中) 状態で動かなくなる問題を修正し、.meta ファイルが非表示のフォルダーに誤って作成されなくなりました。また、Unity 固有のアイコンを新しい UI に合うものにしました。

Unreal Engine

Rider 2023.2 では Unreal Engine のサポートも大幅に更新されており、C++ に関する多くの更新が行われているほか、ホットリロードとライブコーディングのサポートが開始され、ブループリントのインデックス作成パフォーマンスの改善、および Perforce に関する修正とサポートの更新も行われています。

ブループリントのインデックス作成を最適化

ブループリントのインデックス作成を最適化

このリリースでは、IDE がブループリントのインデックスを作成する際のパフォーマンスが改善されています。 Rider はプロジェクトを初めて開く際にすべてのブループリントアセットに対してインデックスを作成します。そのため、ブループリント内のクラスの使用箇所を検索したり、テキストエディターでシリアル化されたデータの値を直接表示したり、そのデータをキャッシュしたり、作業中に少しずつ最新の状態を保存したりできます。

Rider の過去のリリースではこのようなアセットのインデックスが C++ のコードと同時に作成されていたため、Rider の準備が完了するまでより多くの時間がかかっていました。

2023.2 の Rider はすべての C++ コードに対してインデックスを作成した後、アセットのインデックス作成をバックグラウンドタスクとして実行します。 Rider が継続的にアセットのインデックスを作成しているため、編集中にコードハイライト機能を利用したり、コード内を移動したりできます。

ライブコーディングとホットリロードのサポート

ライブコーディングとホットリロードのサポート

Rider が IDE からのホットリロードまたはライブコーティングの起動をサポートするようになったため、エディターを実行しながら Unreal アプリケーションを更新できます。 Unreal エディターでこれらの機能のいずれかが有効になると、Unreal が更新をロードする間に変更をコンパイルする「ビルドとリロード」ツールバーボタンが Rider に表示されます。

Perforce の操作

Perforce との統合機能が改善されました。数ある修正と更新の中でも、ローカルファイルのステータスのリフレッシュにかかる時間が著しく削減されたことは特筆すべき改良点です。 ソリューションを開く際に Rider が Perforce ワークスペースを自動的に検出し、環境変数からだけでなくレジストリからも P4CONFIG の値やその他の設定を取得するようになりました。

その他の更新

Rider 2023.2 では C++ ゲーム開発に関するその他多くの効果的な更新と修正も行われています。 非常に大きなプロジェクトファイルを扱う際に Rider がハングするという特に厄介なシナリオを改善しました。 .uproject ベースのソリューションを扱う場合に、Rider で「複数ファイル内検索」の範囲をプラグインディレクトリに簡単に制限できるようになりました。 また、RiderLink プラグインに複数の修正が施され、最新の VC++ ツールチェーンでビルドできるようになっています。

ウェブ開発

エラー書式の改善

エラー書式の改善

Rider 2023.2 では、JavaScript と TypeScript の型エラーを表示する今までの方法の改善に焦点を当ててきました。 エラーと警告がより可読性に優れた書式になり、コード内の問題を発見しやすくなります。 この書式はすべての TypeScript エラーと一部のごく一般的な JavaScript エラーに適用されます。 さらに、ローカライズされたエラーにも適用されます!

CSS のネストをサポート

Rider now supports the CSS Nesting Module feature. 構文のサポートに加えて、ネストされたセレクターが識別子や関数表記で開始しないようにするインスペクションが実装されています。

Tailwind コード補完のサポート

Rider の Tailwind コード補完プラグインが Razor ファイルをサポートするようになりました。

Vue Language Server のサポート

Vue Language Server のサポート

Vue のユーザー全員に朗報です! より正確なエラー検出を行うため、Rider に初期の Volar サポートが導入されました。 デフォルトでは TypeScript v5.0 以降に Volar が使用され、それよりも前のバージョンでは JetBrains 独自の実装が使用されます。 Settings(設定)| Languages & Frameworks(言語とフレームワーク)| TypeScript | Vue では Vue サービスがすべての TypeScript バージョンで Volar 統合を使用するように設定できます。

詳細: WebStorm 2023.2 の新機能

バージョン管理

コミットのバックグラウンドチェック

コミットのバックグラウンドチェック

Git と Mercurial のコミットチェックの動作を改良し、コミットプロセス全体を高速化しました。 コミット後のプッシュ前チェックがバックグラウンドで実行されるようになっています。

特定コード行をコミットするオプション

特定コード行をコミットするオプション

Rider 2023.2 にはコードチャンクの特定部分を選択的にコミットできる待望の機能が導入されています。 部分コミットを実行するには、チャンク内の行を選択し、コンテキストメニューから Include these lines into commit(これらの行をコミットに含める)を呼び出します。 このチャンクは選択した部分がハイライトされた状態で個別の行に分割されます。 チェックボックスかコンテキストメニューを使用して選択範囲に行を追加するか除外するかを指定できます。

パフォーマンスとメモリプロファイリング

スナップショット解析 dotMemory dotUltimate

2023.2 以前は Rider 内で dotMemory を使用できるのはメモリの割り当て解析を目的とする場合だけでした。 2023.2 では dotMemory のスタンドアロンバージョンと同様に Rider 内でメモリスナップショットの収集と解析を実行できます。

  • スナップショット解析は Windows / Linux / macOS に対応しています。
  • Windows ではプロセスダンプのインポートと解析も可能です。
  • 自動的なスナップショットのインスペクションと作成のスタックトレースビューなど、一部の機能とビューは使用できません。
サンプリング、トレース、行単位でのスナップショットをスレッド別にグループ化 dotTrace

サンプリング、トレース、行単位でのスナップショットをスレッド別にグループ化 dotTrace dotUltimate

Call Tree(呼び出しツリー)ビューでコールスタックを個別のスレッドでグループ化し、スレッド固有のパフォーマンス問題について詳細なインサイトを得られるようになりました。

Dynamic Program Analysis

  • 以前の DPA は一時停止中のデバッグ時間をコード実行時間として計上する場合があり、データベース問題の誤検出が発生していました。 2023.2 ではこの問題が修正されています。
  • また、以前の DPA は対応するコールスタックにラムダ関数によるメモリ割り当てが含まれている場合に大きなコードブロックをハイライトしていました。 現在はより細かい単位でハイライトされるようになっています。

コード品質ワークフロー

Qodana コード品質プラットフォーム統合

静的解析ツールは構成するのが面倒なことで知られています。 しかし Rider の 2023.2 リリースでは、どのような CI/CD パイプラインにも適合するように設計された、スマートな静的解析エンジンである Qodana の完全な統合によりこの問題を解消しています。

この統合には 2 つの重要なメリットがあります。 1 つ目は構成が簡単なことです。 たった数回のクリックで解析をトリガーし、プロジェクト全体の問題のリストを表示したり、お好みの CI/CD システムで Qodana を構成してクオリティゲートを確立したりできます。 2 つ目のメリットはコード品質ワークフローが改善されたことです。 Qodana が CI/CD システムで構成されると、IDE を離れなくてもサーバーサイド解析の結果を表示できるようになります。細かい設定は必要ありません。

なお、Qodana はプレビューを終えてリリースされたばかりです。 リリースについての詳細と Rider で Qodana を活用する方法の説明については、このブログ投稿をご覧ください。

データベース操作

データベース操作

Rider 2023.2 ではデータベース接続ダイアログが改良されました。ユーザーにとって分かりにくかった不必要な一部オプションが廃止され、接続ワークフローが合理化されています。 また、Rider が開いているソリューションの接続文字列をスキャンし、ダイアログ内でそれを提案するようになったことも大きな改善点の 1 つです。

Rider 2023.2 でのその他の注目すべき変更点には次が含まれます。

  • Redis Cluster のサポート。
  • スキーマ移行ダイアログの新しい UI。
  • Data editor(データエディター)内でのタイムゾーンの設定。
  • 外部データベース/データ共有 [Redshift] のサポート。

データべース操作に関する改善点の詳細は、このページを参照してください。

F# のサポート

F# から C# へのメモリ内参照

F# から C# へのメモリ内参照

F# から C# へのメモリ内参照が有効になったため、変更を確認するために C# プロジェクトをビルドして F# コードを参照する必要がなくなりました。 この変更により、すでに機能している C# から F# へのメモリ内参照に加えて、F# コンパイラーサービスが常に実際の C# ソースを確認するようになったため、言語をまたがるリファクタリングとナビゲーションが改善されました。

IntelliJ プラットフォームの言語インジェクションをサポート

IntelliJ プラットフォームの言語インジェクションがサポートされるようになり、F# リテラル内でさまざまなフロントエンド言語を使用できるようになったほか、データベースにアクセスしたり、ウェブリンクや課題を開いたりできるようになっています。

Go to File Member(ファイルメンバーに移動)

Go to File Member(ファイルメンバーに移動)

新しい Go to File Member(ファイルメンバーに移動)ポップアップが F# に対応しました。ファイル構造の確認やベース型からメンバーへの移動がより簡単になっています。

共用体ケースパターン関連の更新

共用体ケースパターン関連の更新

以下のように共用体ケースパターンを扱いやすくするための改善がいくつか行われています。

  • 共用体ケースパターンを名前付きのフィールドパターンに変換する新しいコンテキストアクション。
  • 共用体ケースに名前付きのフィールドパターンを使用するための新しいルール。
  • 共用体ケースパターンのルールを改善しました。分解ポップアップによってパターンの手動入力が妨げられなくなりました。

We also want to thank Florian Verdonck for contributing to this improvement.

オーバーライドの生成

多くの問題を解決したため、オーバーライドをより正確に生成できるようになりました。 たとえば、生成されたメンバーが常に正しい場所に配置され、生成されたメンバーに必要な場合は型が整形されるようになっています。 A huge thanks goes to David Schaefer for contributing to this improvement.

You can find the full list of F# updates and fixes available in Rider 2023.2 here.

プラグイン

Settings Sync(設定の同期)プラグイン

Settings Sync(設定の同期)プラグイン

これまで長らく IDE Settings Sync と Settings Repository という機能がかぶる 2 つのプラグインが存在していました。

2 つの似たようなプラグインが存在することによる混乱を防ぐため、これらの機能セットを 1 つのソリューションに統合し、新たに Settings Sync プラグインを作成しました。

プラグイン開発者向けの LSP サポート

Rider 2023.2 には、プラグイン開発者用の LSP API のサポートが備わっています。 LSP API は主に特定の LSP サーバーを IDE のコーディング支援に使用したいプラグイン開発者を対象としています。 独自のプログラミング言語やフレームワークを作成した場合、LSP サーバーとプラグインを記述すれば、それを IDE でサポートすることができます。

現在、この LSP サポートにはエラーと警告のハイライト、クイックフィックス、コード補完、および宣言への移動が含まれます。 詳細については、IntelliJ IDEA チームによるこのブログ投稿をご覧ください。

Rider の Feature Trainer

Rider 2023.2 には新規ユーザーと既存ユーザーに IDE が提供する広範な機能とワークフローについて説明するための Feature Trainer という新しい対話型ツールが導入されています。 Feature Trainer はハンズオン式の学習アプローチを採り入れ、詳細な手順と実践用のサンプルコードを提供するツールです。 Help(ヘルプ)| Learn IDE Features(IDE 機能の学習)でお試しください。 Feature Trainer は新しい UI でのみ利用可能です。

アクセシビリティの改善

JetBrains では、すべての人を対象にインクルーシブでアクセシブルな製品を作ることを重要視しています。 このリリースでは、Rider のアクセシビリティに関する多数の改善を導入し、視覚に障害を持つ方々を含むすべてのユーザーが当社の製品をフルに活用できるようにしました。 これには、以下のような改善が含まれます。

  • UI 要素の適切なラベル付けと説明
  • Settings / Preferences(設定)内のキーボードナビゲーションと制御の改善
  • スクリーンリーダーのサポートの強化(NVDA、特に Run(実行)タブ内)
  • ドキュメント、ヘルプリソース、および NuGet パッケージ管理のアクセシビリティの改善
  • Windows Forms デザイナーのアクセシビリティの改善

その他

リモートデバッガーの ARM32 サポート

既存の ARM64 サポートに加えて、Rider 2023.2 では Raspberry Pi などの ARM32 で動作するリモートマシンにアップロードされたリモートデバッガーツールもサポートするようになりました。 このようなリモートプロセスに接続するには、Attach to Process(プロセスに接続)ダイアログを使用します。

Windows のターミナルを ConPTY に移行

JetBrains Rider には IDE 内からコマンドラインシェルを操作するためのターミナルエミュレーターが組み込まれています。 Rider の過去のバージョンでは、サードパーティの WinPTY ライブラリを Windows のターミナルエミュレーションレイヤーとして使用していました。 Rider 2023.2 では、それをサポートする Windows のバージョンでは OS が提供する ConPTY に切り替えています。 視覚的な変更は見られませんが、この切り替えにより、ターミナルと実行コンソールのさらなる改善が可能になります。