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をフォローしてください!

原文

Posted in お知らせ | Leave a comment

The Drive To Develop

2000年、3人の友人で非効率的かつ頻繁に発生するタスクを楽にするツールを開発するため起業しました。それはRenamerと呼ばれるツールで、コード中の名前を変更するという単一の機能のみを持ちます。現在では一般的にリネームリファクタリングと呼ばれるプロセスです。

16年が経過し、チームは600人を超えましたが、そのツールはより多くの機能を備えるIntelliJ IDEAとして存在します。この間、JetBrainsはさらに19もの製品を生み出しました。コードを書いてメンテナンスするツールから、アプリケーションのデプロイメントやチームコラボレーションを手助けするツールまで広がっています。

この道のりは大変楽しいものでした。この旅路は新しいルックとドライブと共に続きます。

JetBrainsの新しいブランドをご紹介します
JetBrains. The Drive to Develop

なぜリブランド?

我々は急速に進化していくテクノロジーにに同調していくため、新しいモダンなルックと、我々を差別化する何か….いや、無意味なごたくはやめましょう!

リブランドは大変手間がかかり、労力が必要です。そして、重要なのは感情的なインパクトがあることです。JetBrainsのような会社はスタッフの入れ替わりが大変少なく、2000年にいたスタッフのほとんどが現在も従事しています。その中でリブランドを行うことは簡単ではありません。それは特定のロゴや製品でJetBrainsを認識しているあなた、我々のお客様にとっても同じことです。

我々がリブランドをするからにはもちろん必然的かつ前向きな理由があります。大きく分けて、以下に挙げる2つがあります:

JetBrainsは製品名ではなく、IntelliJは会社名ではない

JetBrainsはとてもフラットな企業で、各チームは自律的に動いています。我々は、スタッフに自由を与えることでベストなものを生み出すことが出来ると信じています。しかしながら、この自由はロゴやデザインの統一性を乱し、結果的に我々のブランディングに影響を与えることがあります。

IntelliJ IDEAをご存じの方々、ReSharperをご存じの方々、TeamCityをご存じの方々がたくさんいらっしゃる中、これらの製品群が同じ会社からリリースされていることを知る由もありません。そしてJetBrainsが提供する他の製品を知る機会も限られてしまっています。

デベロッパは多数のプログラミング言語を使いこなす方向に向かっており、我々の製品やサービスは同じエクスペリエンスを提供しています。今こそ我々のブランディングも強固なものにする時です。統一されたルックアンドフィールにより、JetBrainsがお客様により認識しやすくなると願っています。

“Develop with Pleasure”だけではない

統一性はリブランドの唯一の理由ではありません。JetBrainsという会社は使って楽しい(Develop with Pleasure)ツールを提供してきました。しかし、”Develop with Pleasure”だけが我々をドライブしているわけではありません。我々をドライブするのはより良い手段があるという信念です。何か問題を見つければ、それは新しいチャレンジであり、改善する機会であり、さらにはイノベートを起こすチャンスとして見るべきです。この信念こそが我々スタッフを毎朝動機付けしています。

このドライブ(動機付け)はJetBrainsのスタッフによって様々です。全員がそれぞれのドライブ、それぞれの野心を持っています。世界をより良いものにすべく、我々はその野心を共有しています。JetBrainsはブランディングをもってあなたに、ユーザーに認識して頂きたいと考えています。単により効率的に働きたいということ以上の共通認識があると信じています。

これこそが我々をドライブするものであり、あなたをドライブするものです!

JetBrains

 

P.S.: リブランディングは、様々な噂を巻き起こすのもわかります。しかしながら、JetBrainsは買収される予定はありませんし、投資家を探してもいません。そして上場に備えてもいません。我々は独立した株式非公開企業として引き続き我々の価値と、そしてお客様に向きあっていきます。

JetBrainsより

Posted in お知らせ | Leave a comment

Kotlin – Gradle Daemonサポートによるコンパイル高速化

Kotlinのチームはコンパイル時間改善の作業を続けています。Kotlin 0.12.1230ではGradle Daemon機能を使うようになりましたのでお試しください。起動コストがなくなりし、ビルドが早くなります。

バックグラウンド

kotlincの実行時間の中でも、コンパイラのクラスをロードし、ウォームアップする時間は特に掛かります。そこでコンパイラインスタンスを繰り返し使い回して最適化するという方法にたどり着きました。

他のJVMベースのツールも同様の問題があるためGradleはクラスロード時間やJITコンパイル時間を不要にするためのロングランニングプロセス – Daemon機能があります。

お試しください

KotlinのコンパイラでGrade Daemonがうまく使えない問題を解決しました。Gradle 2.4以上安定して動作するはずです(Gradleのアップグレード方法について詳しくはこちらをご覧ください)。Android Studioはデフォルトでデーモンを使いますので単にbuild.gradeファイル内でKotlinのバージョンとして“0.12.1230″を指定すれば有効になります:

注: 高速化の恩恵を最大限に受けられるのはビルドを数回行ってからになります。最初はコールド状態からのスタートとなり、二回目でほとんどのウォームアップが完了します。それ以降のビルドではJITコンパイラによる最適化で少し早くなります。

フィードバック

プロジェクトのビルドがどれくらい早くなったのか(行数と実際のビルド時間など)をお知らせ頂ければ幸いです。

原文

Posted in Kotlin | Leave a comment

IntelliJ IDEA 15 EAPの実行状況インジケータ

IntelliJ IDEA 15 EAPの新しいビルドをリリースしました。いつも通り沢山の改善や新機能追加が施されています。中でも便利な実行状況インジケータをご紹介いたします。

通常、同じ実行設定を使って複数同時に起動する必要に迫られることはありません。例えばポートが衝突したりするからです。ポートや起動パラメータを変えて別の実行設定を定義するのが通常です。特定の実行設定が起動中かどうかを見極めるのはやや面倒です。そして誤って多重起動してしまうことも多々ありましたが、新しいIDEA EAPにおいてこれを解決するため”Single instance only option”を導入しました:

v15_run_configuration_indicator

実行設定は小さい緑色のインジケータにより実行中かどうかを示してくれます。実行設定が”Single instance only”として指定している場合、IntelliJ IDEAは実行ボタンではなく、リスタートボタンを表示してくれます。”Single instance only”ではない場合、その実行設定でいくつ起動しているのか小さく数字で表示してくれます(そしてこれまで通り多重起動できます)。

Settings → Appearance & Behaviour → Menus and Toolbars、よりStop actionをツールバーに追加するよう設定うれば、起動中の任意のプロセスを手軽に終了させられるようになります:

v15_run_configuration_stop

小さな改善ですが、少しでも開発中のストレス緩和になれば幸いです。特に実行設定が沢山あるプロジェクトでは大いに役立つかと存じます。

また、WindowsインストーラはJRE 1.8 Update 51を使うようになりました。

新機能をお試しになりたい方はIntelliJ IDEA 15 EAPをダウンロードし、よろしければ掲示板YouTrackへフィードバックを頂ければ幸いです。

原文

Posted in IntelliJ IDEA | Leave a comment

WindowsとLinuxでIntelliJ IDEA 15 EAPがようやく実用的なHiDPI対応をします

IntelliJ IDEA 14.1は初期的なHiDPIサポートがWindows、Linux向けに実装されとり、-Dhidpi=trueオプションをidea.vmoptionsに記載することで有効化できました。これまでのHiDPIサポートは限定的なもので、2xスケールファクタしか私用できませんでした。(2x以外のスケールファクタをサポートするディスプレイもあり、これらは対応できていませんでした)回避策としてデフォルトのフォントサイズを変えることもできましたが、アイコンの拡大は行えませんでした。

IntelliJ IDEA 15 EAPの新しいビルドが出るたびに驚くべきニュースを提供しておりますが、今日は新しい EAPビルド沢山ある改善点の中でもWindows/Linuxプラットフォーム向けの完全なHiDPIサポート – システムのDPI設定に基づくフォントやアイコンの可変スケーリングをお知らせします。つまり、もうidea.vmoptionsファイルをいじる必要は無くなりました。お好みのフォントで、高解像度のIDEをお楽しみください。

わくわくしてきましたか?是非最新のIntelliJ IDEA 15 EAPをダウンロードしてお試し下さい。

フィードバックを掲示板YouTrackへお寄せ下さい。

Develop with Pleasure!

原文

Posted in IntelliJ IDEA | Leave a comment

IntelliJ IDEA 15 EAPでReactJS、Gradle/SBTサポートを強化

秋にはメジャーバージョンをリリースできるよう、今後も毎週継続してIntelliJ IDEA 15 EAPの新機能をご紹介して参ります。EAP版リリース時にも様々な機能を紹介いたしましたが、今日は最新プレビュービルド のホットな情報を届けします。

Gradle/SBT

Gradle/SBTプロジェクトをインポートするとき、プロジェクト全体ではなく、モジュールを指定してインポートすることが出来るようになりました:

gradle_import_modules

依存関係について自信が無ければ、”Select Required”を押せばIDEが必要なモジュールを選択してくれます。

このダイアログはGradle/SBTツールウィンドウからも呼び出す事ができ、いつでもモジュールの追加/削除を行えます。

React

ReactでWebアプリケーションのUIを開発している方に朗報です。

コード補完、ナビ—ションがCSSクラス名に効くようになりました:

react_class_name

HTMLタグを閉じていなければIDEは警告してくれます:

react_closing_tag

Surround withアクションはJSXファイルにも適用できます:

react_surround_with

他の改善やバグ修正は以下の通りです:

また、IDEのアップデートにはデフォルトでHTTPSを使う用になりました。

最新EAPの詳しい情報はリリースノートをご覧ください.

原文

Posted in お知らせ | Leave a comment

IntelliJ IDEA 15 EAP – テスト用の新しいUIを搭載

IntelliJ IDEA 15 EAPの新しいビルドをお試しになった方はテスト実行のUIが刷新されているのにお気づきかと存じます。

IntelliJ IDEAはJUnit、TestNGに始まり、さらにはJava以外のRuby、PHP、JavaScript向けのテストフレームワークをサポートしてきました。それぞれのフレームワーク毎にUIを構築し、似たようなバグ修正やUI調整を行うのは大変困難を極めました。そこで、JetBrainsではテストフレームワークのUI基盤を刷新しました。

インライン統計情報と、ツールウィンドウの向き

統計情報を表示するのに場所を取り過ぎていたため、ツリー表示の中に収めました。テストが完了すればソートも可能です。

v15_tests_vertical_layout

コンソールはツリーの右にあり水平にしか配置出来ませんでしたが、Runツールウィンドウを左や右に移動することができるようになりました。

テスト結果や履歴ののインポート/エクスポート

テスト結果をピンすれば、閉じるまで残り続けてくれるようになりました。でもピンし忘れてしまい、再度テスト実行するのに時間がかかる、ということも良くあると思います。そこでテスト結果の履歴は自動的に保存してくれるようになりました。

v15_tests_history

テスト履歴を開くと、テストを実行したときと同じように見えます。また結果をファイルに保存したり、保存した履歴を開いたりすることができます。

新しいテストUI、きっと気に入っていただけると思います。是非、ダウンロードしてお試し頂き、掲示板YouTrackへフィードバックしていただければ幸いです。

Develop with Pleasure!

原文

Posted in IntelliJ IDEA | Leave a comment

IntelliJ IDEA 15 EAP + Kotlin = 愛

IntelliJ IDEA 15 EAPの新しいビルドをリリースしました。毎回新しい機能追加や、バグ修正を行っていきますので、是非フィードバックを掲示板YouTrackへお寄せください。

新しいビルドではKotlinプラグインをバンドルしています:

kotlin_new_project

Kotlin blogに書いている通り、Kotlinのチームは年内に正式リリースをすべく開発を進めております。Kotlinをまだお試しでなければ、この新しいビルドをダウンロードして是非お試しください。基本的な文法はこちら(英語)で確認していただけます。他にも日本語のブログ記事アドベントカレンダー雑誌の連載を書いていらっしゃる方も多くいらっしゃいますのであわせてご参照ください。

他に注目すべき改善点は、Find / Replaceにおける正規表現のcase transformation文法のサポートです:

find_and_replace_regexp

“\l”、 “\L”、 “\u”、 “\U”、“\E”をサポートしています。これらの文法に馴染みがない方はPerlのドキュメントをご参照ください。

変更内容の一覧はリリースノートにてご確認いただけます。

Develop with Pleasure!

原文

Posted in IntelliJ IDEA, Kotlin | Leave a comment

AppCode 3.2 EAPの新しいビルド: SwiftコードのOverride/Implementブロック生成など

AppCode 3.2の新しいEAPビルド (141.1689) をリリースしました。こちらよりダウンロードして頂けます。

SwiftコードのOverride/Implement

親クラスのメソッドのOverride/ImplementをCtrl+O/Ctrl+Iまたはコード生成メニュー(Cmd+N)より行えます。オーバーライド時はスーパークラスのメソッドを呼び出すなど、必要に応じてメソッドシグニチャだけでなくデフォルトのスタブコードも生成します。コードの重要な部分の実装に集中することができますので、是非お試しください!

override_implement

Xcode 7インストール時のデバイス認識問題

WWDC 2015でリリースされた、Xcode 7ベータで発生していたデバイス認識の問題が修正されました。

Objective-Cにおけるnullable/nonnull

Objective-C最新バージョンのnonnull/nullableアノテーションをサポートします:

null_completion

カスタム JDK のアップデート

EAP3.2の初期リリースより導入している、カスタムJDK1.8において生じていたパフォーマンス問題を修正しました。

改善・修正内容の一覧はこちらよりご確認頂けます。是非お試しの上フィードバックをいただければ幸いです。

Develop with pleasure,

AppCode チームより

原文

Posted in AppCode | Leave a comment

IntelliJ IDEA 15 EAPリリース

JetBrainsは開発をより楽しいものとすべく、日々精力的に活動しております。アーリーアクセスプログラム(EAP)はその活動の1つで、より早い段階でフィードバックを頂くべく、最新機能をいち早くお届けしております。そして、IntelliJ IDEA 15 EAPをリリースしました!

15_splash

15 EAPはこちらのページよりダウンロードしてください。数週間に一度は最新ビルドが公開されます。新ビルドの通知を受け取るにはSettings → Appearance & Behavior → System Settings → Updates → Automatically check updates forを“Early Access Program”に設定してください。フィードバックはYouTrack掲示板にお寄せください。

IntelliJ IDEA 15の開発は始まったばかりですが、既に沢山の便利な機能が導入されています。

デバッガ: Lambda表記内でストップ

皆様が着々とJava8へ以降していく中、IDEのJava 8親和性もどんどん高めています。15 EAPではLambda表記内へstep intoしたり、カーソル位置まで実行したりできます:

debugging_lambda

ブレークポイントを設定する箇所がLambda表記であれば、行内のどこに止めたいのかを尋ねてくれます。

コードフォーマッタ: クイックフィックスで設定を調整

コードスタイルをより簡単に設定できるよう、Adjust code style settingsというクイックフィックスを導入しました。このクイックフィックスはエディタ内でコードを選択すると使えるようになります。ポップアップ内で設定を選ぶと、適用結果をライブプレビューできます。膨大な設定を探し回るより素早くコードスタイルを修正できるはずです:

adjust_code_style_settings

バージョン管理: Diffビューワでコード編集

もう1つとても便利なのがDiffビューワの改善です。コミット前にDiffを確認している際、気になる箇所があればエディタへ戻る必要はありません。Diffビューワ内で鍵マークを押せばその場で編集を行えます:

vcs_features

編集はサイドバイサイド(デフォルト)でも、ワンサイドでも行えます。

バージョン管理: Mercurial Queues

Mercurial Queuesをお使いであれば、IntelliJ IDEAに新しく導入されたパッチ管理用の専用ツールをぜひお試しください。パッチを作成したり、ローカルコミットをパッチとしてインポートし、rename、apply、unapply、removeができます:

hg_mq_patches

エディタ脇のガターアイコンよりアプリケーションを実行

メインメソッドや、テストメソッドのあるクラスを素早く実行することができます:

gutter_run

パス内の検索: プレビュータブ

Find in Pathアクションをより効率的なものとすべく、プレビュータブを追加しました。プレビュータブ条件にマッチするファイルのうち100件をリアルタイムに表示してくれます。何度も検索をトライ&エラーすることなく、素早く必要なファイル、行を探し出すことができます:

find_preview

Quick Doc: クリッカブルなリンク

Quick Docポップアップのリファレンスをクリックできるようになりました:

quick_doc_links

Web開発: Polymer 1.0、AngularJS 2.0TypeScript 1.5サポート

Webデベロッパは是非お試しください。初期段階ではありますがPolymer 1.0、AngularJS 2.0、TSLinterをサポートしました。またTypeScript 1.5サポートも強化されています。

データベースツール: ツールウィンドウ内でオブジェクトをグルーピング

データベースツールが強化され、スキーマオブジェクト(テーブル、ビュー、シーケンスなど)とテーブルコンテント(カラム、インデックス、キー、外部キー)をグループ化できるようになりました。:

db_tool_window

データベースツール: データソース/ドライバダイアログの改善

データソース、ドライバを選ぶダイアログが改善され、より使いやすくなりました:

db_data_sources_and_drivers

OS XとJavaバージョン

OS Xユーザーの方はお気づきになるかもしれませんが、Java 6を必要とする.dmgの提供を終了します。かわりにJetBrainsが改善を施したJDK 8を同梱したイメージを今後配布して参ります。つまりIDEの起動にJava 6をインストールする必要はなくなります。もし同梱のJDK 8以外のJavaでIDEを動かしたい場合は、Switch IDE boot JDKアクションより選択することができます。なお同梱のJDK8のままJava 6、Java 7アプリケーションの開発が行えますので特に必要が無い限りはそのままご利用ください:

IDEA 15ではもちろん他にも便利な沢山の機能が追加されていきます。是非EAPリリースをダウンロードし、最新の開発体験をお楽しみください。

繰り返しになりますが、掲示板YouTrackへのフィードバックをお願い致します。

Develop with Pleasure!

 

原文

Posted in IntelliJ IDEA | Leave a comment