Rider 2019.3′の新機能

Rider 2019.3は、優れたT4テンプレート対応機能、.NET Core用のクロスプラットフォーム対応プロファイラ、Unity用のクロスプラットフォーム対応テストカバレッジを提供します。 起動速度が向上し、デバッガがDocker Composeに対応し、バージョン管理とXamarinへの対応が全面的に強化されています。

T4テンプレートに対応

T4テンプレートに対応

皆様のご要望に応え、T4テキストテンプレートに対応しました! T4テンプレート対応 機能は、当社独自のジェネレータを基にしたプレインストール済みのプラグインとして提供されます。 

これにより、Rider内ですべてのT4テンプレートを簡単に実行、処理、デバッグできるようになりました。 エディタ内で以下を含む新しい支援機能を利用できます。

  • コードのハイライト、ナビゲーション、コード補完、入力支援、リファクタリング、コンテキストアクション、インスペクション、書式設定など、コードブロック内で豊富なC#対応機能を提供します。
  • インスペクション、入力支援、折りたたみ、対になった波括弧の自動挿入などのT4専用の機能をサポートします。
  • includeディレクティブに幅広く対応し、C#のコードを可能な限り正確に解決します。
  • インスペクション、クイックフィックス、コードのハイライト、ナビゲーションなど、あらゆる種類のディレクティブに対応します。

これらすべての機能は、WindowsmacOSLinuxで機能します。

.NET Core用のクロスプラットフォーム対応プロファイラ

.NET Core用のクロスプラットフォーム対応プロファイラ

Rider 2019.1ではmacOSとLinuxでパフォーマンスプロファイラを利用できるようになりましたが、当時はMonoアプリケーションとUnity Monoアプリケーションのみに対応していました。 このリリースでは大きな一歩を踏み出し、LinuxとmacOSで組み込みのdotTraceプラグインを使用して.NET Coreアプリケーションをプロファイリングできるようになりました。 つまり、Windows、macOS、およびLinux上であらゆる.NETアプリケーションをプロファイリングできます。

ただし、完全に対応しているのは.NET Core 3.1をターゲットとするプロジェクトだけです。 .NET Coreの一部の制限により、.NET Core 3.0以前をターゲットとするプロジェクトのプロファイリングでは、プロファイリングされたアプリケーションがまれにフリーズしたり、クラッシュしたりすることがあります。

Unityのテストカバレッジ

Unityのテストカバレッジ

当社はUnityスクリプトを作成しやすくするために意欲的な改善に取り組んでおり、リリースのたびに優れた結果を提供できるよう努めています。 今回は、Unityの編集モードのテスト向けにクロスプラットフォーム対応のテストカバレッジと継続的テストを導入しています。

心躍る新機能の一部を以下にご紹介します。

  • PlayモードのユニットテストがUnit Testランナーでサポートされています。
  • RiderがUIElementsに対応し、UXMLファイルやUSSファイルのシンタックスハイライト、コード補完、スキーマ検証を行えるようになりました。
  • .asmdefファイル対応が復活しました!
  • デバッグ用のプロセスをリストアップ中にプロジェクト名が表示されるようになりました。
  • プロジェクトを最初に読み込む際に実行されるアセット解析処理のパフォーマンスを改善しました。
  • Riderのログビューアツールウィンドウが “Clear on play” に対応しました。
  • RiderがC#8の機能を提案する際の不快なバグが解消されました。
  • リファクタリング中に.metaファイルを最新に維持する際、さまざまなエッジケース(特殊な状況で発生する事例)を考慮するようにしました。

これらは単なるハイライトにすぎません。 このリリースにはより小規模な他の修正が多数含まれています。 完全なリストは変更ログをご確認ください。

パフォーマンス向上

パフォーマンス向上

Rider 2019.3には、最近の 長期間にわたる品質改善 により IntelliJプラットフォーム に行われたすべてのパフォーマンス最適化が自動的に含まれています。 起動処理が大幅に改善され、スムーズマウススクロールが実装されました。また、多数のUIフリーズが解消されましたが、これらは重要な改善のうち、ほんの一部にすぎません。 詳細についてはIntelliJ IDEAのブログでパフォーマンス改善に関するすべての記事をご覧ください。

Docker Composeのデバッグ対応

Docker Composeのデバッグ対応

リリース2018.2ではRiderのデバッガがDockerに対応し、Dockerfileから作成されたコンテナをデバッグできるようにしました。 しかし、その当時はDocker Composedocker-compose.yml)を使用して作成されたコンテナのデバッグには対応していませんでした。

大変お待たせしました! Docker Compose対応が強化され、ついにデバッグできるようになりました! マルチコンテナのDockerアプリケーションをマウスクリックでデバッグできるようになりました。

Edit & Continueのさらなる改善

Edit & Continue のさらなる改善 Windows のみ

Edit & Continueで実行中(一時停止中ではない)アプリケーションに変更を適用できるようになり、アプリケーションをブレークポイントで停止する必要がなくなりました。 エディタタブ上部にあるツールチップの「Apply Changes」リンクをクリックすれば、いつでも変更を適用できます。 また、Settings | Build, Execution, Deployment | Debugger | Editing during debug では、Step/Resume/Jump to Statement の各アクションで Edit & Continue による変更の自動適用を無効化できます。

Edit & Continueは引き続き、Windowsのみに対応しています。

デバッガの改善

デバッガの改善

デバッガのその他の部分でも多くの変更を加えました。 まず第一に、BreakpointsビューのExceptionsツリーが次のように大々的に変更されています。

  • 検索機能が折りたたまれたノードに対しても動作するようになりました。
  • Exceptionsを両方の型(User/System)と名前空間でグループ化できるようになりました。
  • メインノードに新しい名前 “CLR Exceptions” が付けられました。

また、リモートデバッグにいくつかの更新が行われました。

  • リモートデバッグを使用する際に発生する可能性のあるエラーの説明と通知が改善されました。
  • リモートデバッグ用のパスワードやパスフレーズを指定していない場合、リモートサーバーに接続する際に入力を促されます。

さらに、次のような変更も行われています。

  • 多数のデバッガアクションに新しい名前が付けられ、その動作内容がより分かりやすくなりました。
  • “Pin to top” 機能が再帰評価に対応しました。
  • “Jump to Type Source” アクションを利用できるようになりました。
  • 例外ブレークポイント用の “Just my code” オプションがMono上で非常に有効に機能するようになりました。
VCS対応の更新

VCS対応の更新

Gitのようなバージョン管理システムを操作する際のユーザーインターフェイスとユーザーエクスペリエンスの改善を試み始めました。 このリリースでは、新しいライブなdiffプレビューをコードエディタのタブで直接開けるようになり、ユーザーエクスペリエンスが向上しています。

また、デフォルトで左側に表示される新しいCommitツールウィンドウを実装しています。これにより、変更リスト、コミットの説明などを表示するために縦方向の画面スペースをより多く確保することができます。

Rider 2019.3の初回起動時にVersion Controlタブが見つからなくてもご心配なく。同じ機能は引き続き存在しますが、名称がRepositoryに変更されています。

さらに、“Compare with Current” ビューの改善とCloneダイアログの改修を行い、アクティブではないブランチをプッシュできるようにしました。

詳細については、ブログ投稿 A New Way to Commit! Introducing the Commit and Repository Tool Windows in Rider 2019.3 をご覧ください。

AWS ToolkitプラグインがRiderに対応

AWS ToolkitプラグインがRiderに対応

このリリースサイクルでは、.NET開発者向けのAWS Toolkitプラグインを最適化するために多くの労力を払い、Riderとの互換性を持たせました。

  • 定義済みのプロジェクトテンプレートを使用し、新しいAWSサーバーレスアプリケーションを作成できます。
  • AWS Lambdaをローカルおよびリモートで作成、実行、デバッグできます。 さらに、これらすべての操作をガターアイコンを使用してエディタから直接実行できるようになりました。
  • サーバーレスアプリをAWSにデプロイできるようになりました。
  • Cloud Debuggingに対応しました! クラウド内のリモートコンテナで直接AWS Fargateを使用し、ローカル環境でエミュレートすることなくAmazon ECS上で実行中のクラウド.NET Coreアプリケーションをデバッグできるようになりました。
  • このプラグインは、Riderバージョン2019.2とバージョン2019.3の両方で利用できます。

AWS Toolkit for Riderプラグインをインストールすれば、AWSサーバーレスアプリケーションの作業を開始するのに必要なものすべてが手に入ります。

Xamarin対応の強化

Xamarin対応の強化

当社はRiderをXamarin開発用の優れたIDEにし続けており、Xamarin AndroidとXamarin iOSの両方に次のような複数の素晴らしい改善を行いました。

  • JetBrains AppCodeのコンポーネントを統合することで、Mac上でのApple製デバイスやシミュレータの認識度が向上しました。
  • 接続中のApple製デバイスのリストは、ツールバーで確認できます。
  • mtouch(iOS用Monoコンパイラ)のデバイスビルドに対応しました。
  • Xamarin Androidプロジェクトで “Publish Android APK”(Android APKを公開)を利用できるようになりました(プロジェクトのコンテキストメニューで Archive or Publish アクションを探してください)。
  • Project PropertiesでAndroid固有のプロジェクトプロパティを編集できるようになりました。

また、Xamarin Formsサポートも忘れず、x:DataTypeおよびClass属性への対応などの複数の重要な修正を行いました。

C# 8サポートのさらなる改善

C# 8サポートのさらなる改善

新しいRiderのリリースでは、C# 8の処理がさらに改善されています。 改善内容には以下が含まれます。

  • notnull制約への対応を含むnull許容参照型の理解の強化。
  • ターゲットの型を指定したswitch式。
  • デフォルトインターフェースメソッドの早期対応
  • 新しいヒント "Local function can be static"(静的にできるローカル関数)と、それに付随するクイックフィックス。
  • ファイル、プロジェクト、またはソリューション内の全プロジェクトでnullable注釈や警告を有効化する新しいクイックフィックス。
  • async反復子のCancellationTokenパラメータにEnumeratorCancellation属性を追加する新しいクイックフィックス。

さらに、 "Type or type member is never used" コードインスペクションが2種類のオプションに分割されました。1つは型用のもの(Type is never used)で、もう1つは型メンバー用のもの(Type member is never used)です。

コード生成

コード生成

GenerateアクションはC# 8の詳細を理解し、次の機能で支援を行います。

  • 列挙値を徹底的にチェックする新しい "Add missing arms" クイックフィックス。
  • switch式で型パターンを生成する新しいクイックフィックスとコンテキストアクション。
  • 等値演算子/関係演算子/比較演算子を生成する際のNull可能性の考慮。

また、C#とVB.NETの等価メンバーや比較演算子を生成する際にSystem.HashCodeを使用してGetHashCodeを実装し、コードをクリーンにするのに役立つ新しいオプションが追加されました。

型名ヒント

型名ヒント

Riderのリリース2019.1で導入されたParameter Name(パラメータ名)とCode Annotations(コード注釈)のヒントにご満足いただけていたら幸いです。 このリリースではさらに対応を拡充させ、Type Name Hints(型名ヒント)を提供しています。 これらのヒントは以下でご利用いただけます。

  • ラムダ式のパラメータ
  • パターンマッチングとタプルの分解を含むすべての変数の出現箇所
  • LINQステートメント内の範囲変数
  • メソッド呼び出しチェーン内の行末
移動と使用箇所の検索

移動と使用箇所の検索

たいていの開発者は、特定の参照がコード内で使用されている箇所を知りたい場合があります。 以前から長らく参照で “Find dependent code” アクションを実行し、その参照から型や型メンバーの出現箇所をすべて見つけることはできました。 しかし、この操作には一部制限がありました。 このリリースでは制限の一部を撤廃しました。Find dependent codeがNuGetの参照に対応し、プロジェクト単体ではなくソリューション全体に対して実行できるようになりました。

その結果、Riderはさらに提供可能な機能が増えました。

  • Quick Definitionオーバーレイツールチップをコードエディタ内の任意のシンボルで利用できるようになりました。これにより、現在のコンテキストから離れずにシンボルの定義を素早く確認できるようになりました。
  • Consuming API は “Navigate to” アクションを拡張し、特定タイプのオブジェクトをパラメータで受け取るすべてのメソッドをリストアップしたい場合に役立ちます。
  • Find dependent codeFind resultsウィンドウに新しいフィルタが実装されました。
  • ソースシンボルパッケージを持つNuGetパッケージの外部ソースに移動できるようになりました。
コードスタイル

コードスタイル

このリリースでは、長らく期待されていたもう一つのご要望に対応しました。 C#の命名設定が、EditorConfigの読み込みとエクスポートに対応しました。

この大きな変更に加えて、より小規模な複数の変更が行われ、コードのスタイルをより細かくコントロールできるようになりました。

  • 初期化式の型が明白な場合にのみ明示的な型の代わりに `var` を使用したい方のために、Riderがより明白な状況を検出できるようになりました。 また、Roslynの動作に対応する “compatibility” (互換)モードが実装されました。
  • 同一グループの他の演算子でネストされた演算子のグループの優先度のみを明確にする丸括弧を追加する、StyleCopおよびRoslynと互換性のある新しいコードスタイルオプションが実装されました。 例えば、&&|| のどちらが優先されるかを思い出せない場合にこのオプションを使用すると、丸括弧により優先度を明確にすることができます。
  • Comment Code(コードのコメント化)がデフォルトでコメントにインデントを追加するようになりました。 この動作を無効化したい場合は、「Place comments at first column when commenting out code」(コードをコメントアウトする際に最初の列にコメントを配置する)という新しい設定を使用してください。
  • Autodetect indent size and value」(インデントサイズと値を自動検出する)が有効な場合に、インデントを設定するオプションページに適切な通知が表示されるようになりました。

また、C#フォーマッタオプションのページにConfigure formatting(フォーマット設定)とAutodetect formatting(フォーマットの自動検出)の機能を説明する通知ツールチップが追加されました。

プロジェクトモデルの改善

Riderのプロジェクトモデルは、TypeScriptファイルなどのウェブ言語ファイルで行う任意のリファクタリングをすべてのプロジェクトファイルに拡張するようになりました。 例えば「TSクラスを個別のファイルに移動する」と、対応する.csprojファイルが変更内容で更新されます。 また、Solution Explorerの「Not Built」(未ビルド)プロジェクト状態のUXも改善しました。

.NET Core 1.* SDKのサポートを終了しました。これらのバージョンはサポート終了日を迎えたためです。

MongoDBの初期対応

RiderがMongoDBに初めて対応しました(続きを読む)。 さらに、Riderのデータベース対応をOracle PL/SQLデバッガにまで拡張し、新しいインスペクションと警告、インラインクエリの進捗インジケーター、接続エラーを簡単にGoogleで検索する方法を追加しました。

詳細については、「DataGrip 2019.3の新機能」ページをご覧ください。

ウェブ開発

ウェブ開発

これまで通り、ウェブ開発者向けに多数の改善を行っています。

  • Vue.jsのコード補完を大幅に改善しています。
  • Vue.jsプロジェクトのクイックドキュメント.
  • propTypesのないReactコンポーネントのプロパティへの対応を強化しています。
  • Angularの対応を強化しました。
  • TypeScript 3.7への対応と、JavaScript/TypeScript対応に関するその他の改善を行いました。
  • CSS/SASS対応に関して複数の更新を行いました。
  • 今後公開予定のYarn 2リリースに対応しました。

詳細については、「WebStorm 2019.3の新機能」をご覧ください。

その他の機能

その他の機能

  • さまざまなMSBuildアイテムをコード補完に認識させることで、Riderの各種プロジェクトファイル(.csprojファイル)への対応を改善しました。 また、<TargetFramework>/<TargetFrameworks>検証用のインスペクションとクイックフィックスも使用できます。
  • 定義済みの実行構成をよりスマートに生成できるようになったため、追加の移動や調整を行うことなく実行できるようになりました。 また、嫌になるような「デフォルト値」の代わりに自動生成された適切な名前が付与されます。
  • $(ProjectDir)など、launchSettings.jsonファイルで指定されるその他のMSBuildプロパティに対応しました。
  • Parameter Infoポップアップがタプルに対して有効になりました。
  • 改行削除と改行前にバックスペースを追加する入力支援機能が、トークンを分離するため、またはフォーマット規則で必要な場合にスペースを残すようになりました。
その他の機能

その他の機能

  • 識別子のハイライト表示が全面的に改修されました。C#では個別のページが用意され、プリプロセッサのディレクティブ、静的メソッド、フィールドなどに個別の色が割り当てられました。
  • 新しいNUnitインスペクションは組み合わせユニットテストとパラメータ化されたユニットテストの個々のパラメータに対応しています。
  • Expand All(すべてを展開)ボタンが左側ツールバーに復活しました。
  • 新しいリアクティブなTFSクライアントが実験的モードでリリースされました。 同機能を有効化するには、Settings | Version Control | TFVCを開いてオンにする必要があります。 これにより、「Checking for changes」アクションが劇的に高速化されます(弊社のテストでは約100~1000倍高速化されました)。 CommitアクションやHistoryアクションなどの多くの操作は、初回リリース後に新しいクライアントに移植されます。