BT

Scala IDE 2.0 - リファクタリングサポートを追加

| 作者: Alex Blewitt フォローする 4 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2012年2月25日. 推定読書時間: 6 分 |

原文(投稿日:2012/01/11)へのリンク

クリスマスを目前に控えて,Sacla IDE のバージョン 2.0 が リリースされたScala IDE プロジェクトMiles Sabin 氏が立ち上げ,その後 Typesafe が参加することによって製品レベルに達した Scala 開発環境だ。

現在の Scala IDE 2.0 は Scala IDE 1.x 環境から分岐して,基本部分の Scala コンパイラが,IDE 自体の使用するコード補完および拡張機能を改善したものに変更されている。2011 年の1年間を通じたベータ版テスト実施を経てリリースされた最初の製品版により,Eclipse 3.6 上の Scala サポートが実現された。なお 3.7 は公式にはサポート外で,細かな問題がいくつかあるものの使用は可能だ。

新機能としてはコード補完 (implicit 拡張を含む),型推論のホバリング表示,プロジェクトの依存性を考慮した再コンパイル,Maven など既存ツールセットとの統合などがある。IDE が提供する開発環境の統合部分を既存の Eclipse Java デバッガと組み合わせることにより,Scala 言語が Java 開発者たちのものになる。

プロジェクトが scala-ide として GitHub に移行してから 22回のフォークが行われ,いくつか プル要求 が提出された。このことからも GitHub 移行が,コミュニティの参加を促す上で有効であったことが分かる。

InfoQ では Scala IDE のプロジェクトリーダである Iulian Dragos 氏にインタビューを行った。最初の質問はバージョン 1.0 と 2.0 との大きな違いに関するものだ。

Iulian Dragos: ユーザ視点からは,信頼性と応答性です。エディタと Scala プレゼンテーションコンパイラの相互動作をすべての面で作り直しました。ひとつのアクションが完了するまでの間,エディタが無応答にならないようにしたのです。コード補完とハイパーリンク,それからタイプ入力中のエラー報告が,今回のリリースで注力した部分です。

依存関係を持った複数のプロジェクトをサポートするために,新しいプロジェクトビルダも用意しました (Sbt の依存性トラッキングエンジンをベースにしています)。今回のリリースは,あらゆる規模の Scala プロジェクト開発を容易にするものだと自負しています。私たち自身も IDE 開発に使用していますし,Scala チームは Scala コンパイラ (110Kステップ以上) をこれで開発しています。

InfoQ: SBT や Maven のような自動ビルドツールへの適合性については,どのようになっていますか?

Iulian Dragos: Sbt と Maven にはどちらもプラグインが用意されていて,Eclipse プロジェクト定義をエクスポートすることができます。Eclipse ワークスペースにプロジェクトをインポートするだけで,セットはすべて完了します。

InfoQ: リファクタリングとクイックフィックスとしては何がサポートされているのでしょう?

Iulian Dragos: 実を言うと,2.0 のリファクタリングサポートが非常によくなったのは,Mirko Stocker 氏の貢献によるものなのです。ローカル変数の抽出とインライン化,メソッドの抽出,名称の変更,インポートの整理などがサポートされています。クラクラスパス (classpath) 上にあるクラスについては,不足しているインポートを追加するクイックフィックスも利用できます。

InfoQ: Java プロジェクトに依存する Scala プロジェクト,その逆,あるいは Java と Scala コードの混在するプロジェクトなどは扱えるのでしょうか?

Iulian Dragos: それらの組み合わせはすべてサポートされています。

InfoQ: Scala IDE の今後のロードマップはどのようなものでしょう?

Iulian Dragos: Typesafe の IDE チームが作成中ですが,ロードマップについてはコミュニティとも議論したいと考えています。その結果次第ですので,ここで正確なことは言えません。

どのオープンソースプロジェクトもそうですが,誰でも実装に参加することができますし,それが優れた機能であれば採用するつもりです。実際に 'implicit highlight' のような優秀なコントリビュートもあります。また Matt Russell 氏は,文法の強調表示 (semantic highlighting) の開発に取り組んでくれています (識別子の種類 - class/trait/val/var などを基準として,異なるスタイルを適用する機能です)。前者はすでに,2.1 ナイトリービルドに取り込まれています!

開発チームとして次に取り組みたい機能は,Scala デバッガの改良 (現在は Java デバッガ上で Scala コードを使う方法しかありません),アクションベースの Scala コード構造 (テストフレームワークランナのような) を実装する必要のあるプラグイン開発者のための API 整理,コード検索 (参照検索のような) などです。Scala インタプリタ用のもっとよい UI 開発も計画中です。これは多くのユーザから要望を受けている機能のひとつでもあります。

InfoQ: IDE に2つのバージョンがあるのはなぜでしょう?

Iulian Dragos: Scala IDE では,すべての構文処理機能を Scala コンパイラに依存しています。例えばタイプしたとき,エラーが赤いアンダーラインで表示されるのもそのひとつです。一貫性を保つためには,同じコンパイラを使用しなければなりません。Scala 2.8 を使用しているプロジェクトには 2.8 のプラグインを使う必要があります。2.9 Scala コンパイラに "2.8 互換性モード動作" のようなコンパイラスイッチはありませんから,Eclipse プラグインにも 2.8 あるいは 2.9 コンパイラを含めなければならないのです。

InfoQ: プロジェクトにパッチを提出する場合,同意書 (contributor agreement) は必要ですか?

Iulian Dragos: はい。 このプロジェクトでは Scala ライセンスを採用しています。コントリビュータの同意書も Scala プロジェクトと同じです。 誰でも簡単にコントリビュートできるようにしようと努力しています。たくさんの人々が参加してくれると嬉しいですね。2.0 リリースに先立って,私たちは開発者資料の整理に多くの時間を費やしてきました。まずはその 開発者資料 の出来映えを見て,そしてぜひ参加してください!

Scala IDE はすでにダウンロード可能である。2つの異なるバージョンがある (それぞれ特定の Scala バージョンに対応している) ので,インストール用の更新サイトも2つ用意されている。Scala IDE をインストールするには,既存の Eclipse インスタンスにその (両方ではなく) どちらかを追加すればよい,

Scala IDE の新バージョン,あなたはどう思うだろうか?

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT