Komodo Edit が面白い

最近、JavaScriptIDEが欲しいと思い始めた。強力な補完機能が欲しいのだ。
んで、Open Komodoなるものを発見。
ちょっくら落として使ってみた。

インストール

  1. http://downloads.activestate.com/Komodo/releases/5.0.3/ からアーカイブを落とす
  2. 展開
  3. cd Komodo-Edit-version-platform
  4. ./install.sh
    • インストール先を指定 ~/opt/Komodo-Edit-5 とした

プロジェクト作成

  1. File -> New -> New Project From Template からテンプレートを選ぶ
    以下のテンプレートが選べるみたい
  2. とうぜん? Firefox Extension を選ぶ
    • 勝手に、chrome.manifestinstall.rdfなどを作ってくれる

気になる補完機能

XULなどのXML

Eclipseになれているとちょっと微妙に思えた。Eclipseでは開始タグを入力し終わると自動で終了タグを入れてくれたのだが、Komodo Editではそうならないみたい。>/まで入れるとツールチップが現れて補完ができるのだが、できれば自動で入れてほしいと思った。

JavaScript

Firefox Extensionプロジェクトがあるくらいだから、XPCOM,XPConnectの補完も? と思っていたら本当にできた。
ただし、後述するが、Komodo Edit自体がXULアプリケーションみたいで、それようのコンポーネントのクラスまで補完されてちょっとうざったい。
あと、

var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);

までは上手くいくが、file.からinitWithPath等のメソッドの補完が全然出来ない。これはかなり残念。この辺はSpketIDEの方が優秀な様だ。

通常の補完は概ね良好。しかし、僕の理想が高すぎるのだろうか...僕が本当に望む結果では無かった。
僕は

var container = {
  init: function() {},
};
container.obj = (function(){
  var privateProp = null;
  var namager = {
    publicMethod: function(){ },
  };
  return namager;
})();

という書き方を好む。AptanaEclipseプラグインJavaScriptと同様に、container.objまでは補完できるが、publicMethodまでは補完できない。

E4Xシンタックスエラーにはならないが補完できない。

という感じで、ちょっと残念な結果だった。

キーバインド

最初から

と3つほどのモードが用意されていて、viキーバインドがあることに感動した。

Komodo EditはXULで作られている?

GUIの感じに既視感を覚えて、インストールディレクトリ/lib/mozilla/を見てみると、見慣れたファイルやディレクトリがあった。

  • application.ini
  • chrome/
  • components/
  • libmozjs.so
  • libxul.so

等々、そのまんまXULアプリケーションのディレクトリやファイルがある。
libpyxpcom.soなんかもあり、PyXPCOMもサポートしているみたい。
chrome/へ行ってみると、これまた見慣れたjarファイルやらmanifestファイルがある。komodo.jarを試しにunzipしてみるとやっぱり見慣れたディレクトリ構成に、xulファイルやjsファイルがある。
どうも、GUIはみんなXULで出来ている様だ。凄い。XULIDEという込み入ったUIを提供しているのだ。感動した。

良く見てみたら、ツールバー -> Tools -> Add-ons なんてのがあるじゃないか。開くとFirefoxでもお馴染みのAddonダイアログだ。

これはハックしがいがありそうだ。Vimperatorの次のおもちゃを発見した気分。

以上、始めてインストールしてみた所感でした。