Project Rider – 新しい C# IDE #jetbrainsrider

本日、NDC Londonにて新しいプロジェクトを発表しました。IntelliJプラットフォームとReSharperのテクノロジーベースの新しいクロスプラットフォームC# IDEです。

コードネームProject Riderは、クイックフィックスやインスペクション、スマートナビゲーションなど、ReSharperやIntelliJベースIDEですでにおなじみの機能を搭載しています。ReSharperはVisual Studioの機能拡張ですが、Project Riderは完全なスタンドアロンIDEです。

まだごくごく初期段階にありますが、既に以下の機能を搭載しています:

ナビゲーション – スマートナビゲーションはJetBrains IDEの重要機能で、Project Riderも例外ではありません。Go To Type、Go To File、IntelliJプラットフォームのSearch Everywhere(どこでも検索)によるgo to symbols、types、files、果ては検索ポップアップ内から設定やアクションの呼び出しまで行えます。

Rider Search Everywhere popup

Navigate Toポップアップメニューももちろん搭載しています。基底クラスや派生クラスへのジャンプ、ツールウィンドウへの利用箇所の検索結果表示などが可能です。

Rider Navigate To context menu
Rider Find Usages results

編集 – タイピングアシスト、ブレースの挿入や自動フォーマット、ライブテンプレート(ReSharper 10のpostfix templatesも含む)、quick infoツールチップ、継承関係のナビゲーションを楽にするガターアイコン、コンテクトアクションなど、幅広い便利な編集機能を実装済みです。

Rider editing

インスペクション – ReSharperでサポートしているほとんどのインスペクションはエラー、警告、推奨、ヒントとしてエディタ内に表示されます。解決出来ないシンボルは赤く、コードの問題はアンダーラインで表示されるなど、おなじみの形式になっています。

Rider inspections

Alt+Enter – JetBrains IDEで必要不可欠なのがAlt+Enterキーバインドのサポートです。ReSharperで利用可能なクイックフィックスやコンテクストアクションも利用できます。Project Riderはファイル全体へまとめてアクションを適用したり、インスペクションの重大度をメニューから変更することもできます。

Rider's Alt+Enter menu

リファクタリング – まだ数は限定されますが、リファクタリングも可能です。多くのリファクタリングアクションは何かしらのユーザーインターフェースが必要で、まだ実装されていないものも多くあります。現在Project Riderではシンボルのリネーム、変数の導入/インライン化、インスペクションでハイライトされているコードをAlt+Enterで修正することが出来ます。

Rider introduce variable

デコンパイラ – ソースコードが手元にないシンボルへジャンプすると、Project Riderはバイトコードをデコンパイルして、C#のソースがどのようになるかお見せします。

もちろん、スタンドアロンIDEとして以下の一通りの機能も備えています:

  • 複数ランタイムのサポート。Project Riderは.NET Framework、MonoをサポートしておりCoreCLRもサポートすべく作業中です。MSBuildとMono XBuildソリューション、DNXプロジェクトを読み込めます。また新プロジェクトのテンプレートもあります。空のプロジェクトを作った場合、中身は本当に空です!

Rider new project templates

  • ビルド、実行、デバッグ: IDEの重要な機能にデバッグがあります。Project Riderも例外ではありません。.NET Framework、Mono、DNXプロジェクトをビルド、実行可能で、.NETとMonoアプリをデバッグできます。DNXデバッグとCoreCLRサポートは現在実装中です。ビルドエラーはビルドツールウィンドウに表示され、デバッグツールウィンドウにはコールスタックや変数、ウォッチが表示されます。
  • クロスプラットフォーム: 複数のランタイムを実行、デバッグできるのに加えてProject Rider自信もマルチプラットフォームで動作します。WindowsとMac OS Xで動作します。(Linuxでも動作しますが、まだほとんどテストできていません)

どの様に動く?

Project RiderはIntelliJプラットフォーム上に構築されたスタンドアロンIDEで、WebStormやDataGripなど他のIDEに似ています。

しかしながら違いもあり、Project RiderはReSharperの機能をIntelliJ Platformに再実装しています。もちろんJVM上で動作しており、ReSharperをヘッドレスモードで別プロセスで動作させながら高速なカスタムバイナリプロトコルで通信しています。なので、バックエンドはC#で書かれたReSharperが.NetやMonoで動作することになります。フロントエンドはKotlinで書かれており、IntelliJ PlatformのAPIを叩いています。

実装のより詳細な部分については今後ブログに掲載して参ります。

なぜC# IDEを新しく作るのですか?

皆様が繰り返し繰り返し新しいC# IDEを作らないのかと尋ね続けるので、作ることにしました!

冗談はさておき、一番の理由は皆様に選択肢を提供することにあります。我々は別の環境でデベロッパにすばらしいユーザーエクスペリエンスを提供できると信じています。

なぜ今?いくつかの要因から、今が最適であると考えています:

  • ここ数年、ReSharperを異なる環境で動作出来るようにしてきました。Visual Studioとは別のスタンドアロン環境です。例の一つにdotPeek(デコンパイルツール)があります。
  • そして非Windowsプラットフォームのデベロッパが増えていることは明白です。そして我々は非Widndowsを使うデベロッパにReSharperと同じ体験を提供したいのです。
  • 最後に、マイクロソフトはプラットフォームとC#言語をオープンソース化してきており、CoreCLRなどの具体的な成果があがっていることが大きなインセンティブになっています。

ReSharperはどうなりますか?

ReSharperは依然Visual Studioのナンバーワンのエクステンションであり、JetBrainsの主力製品です。Project RiderはReSharperを活用しており、ReSharperへのコミットメントをむしろより強固なものとします。ReSharperのアップデートはReSharperだけでなくProject Riderも強化することになります。加えて、Project RiderからのフィードバックをReSharperに反映させていきたいとも願っています。

簡単に言えば、Project Riderの存在はJetBrainsのReSharperへの取り組みを強化させるだけです。

ライセンスモデルはどうなりますか?

まだ詳細にコメントする段階にはありませんが、JetBrains Toolboxの一員となる見込みです。ReSharperもProject Riderも両方使いたい、などといったフィードバックがあると思いますが、そういった点も含めて検討して参ります。

価格については近々お伝え出来ればと考えております。

ロードマップ

現在1.0リリースに向けて準備中です。アーキテクチャは1.0リリースに向けて必要なものがそろっていると確信しています。既に多くの機能が実装済みですが、まだまだリリースへの道のりは長く続きます。

数週間のうちにプライベートEAPを始めることを目標としております。二月末にはこちらのブログや、Twitterにてアナウンスできるかと存じます。

プライベートEAPのあと、パブリックEAPに移ります。時期はプライベートEAPからのフィードバック次第です。正式リリースは2016年8月を目標にしています。

Project Riderをご紹介できることに大変興奮しております。何か質問がありましたら、お気軽にどうぞ!また、是非@JetBrainsRiderをフォローしてください!

原文

image description