Ruby Screenshot of the Week #2


http://blogs.sun.com/tor/date/20070122


今週のNetBeansRubyエディターの様子。
以下、上記の Blog 訳。

  1. あるクラスのメソッドを定義することをNetBeansは検知します。スーパークラスから継承されたメソッドとマッチするときだけ補完候補を出力します。
  2. この場合、Integer クラスを継承していて、メソッド名が”ab”ではじまる2つのメソッド(一つは、Numericクラス、もう一つはオブジェクトクラス)とマッチします。
  3. rdoc(JavaDocRuby版みたいなものです)をベースにメソッドの説明を表示します。
  4. 各々メソッドがどこにあるか(どこからやってきたか)を表示します。
  5. ほどほどに壊れたソースも扱えます。


メソッド補完はスーパークラスのメソッド限定みたい。
Rubyは動的言語だからなかなか Type Inference(型推論)は難しい。

この辺をRDT(Rubyの開発環境の一つ。Eclipse Pluginとして実装している。)は、
On Demand Type Inference という方法で型推論エンジンを実装して実現しようとしている。


詳細は下記のURLを参照。

■ mputさんのRubyConf2006の報告( の最下段にあります)
http://mput.dip.jp/mput/?date=20061023


■ RubyConf2006での発表内容の話(スライドも見られます)
http://soc.jayunit.net/articles/2006/10/22/talk-at-rubyconf2006



実は、Rubyの開発環境で一番重い部分がこの型推論の部分でmputさんの言うとおり、
型推論が一番の鬼門(特にevalが鬼門か?)。
だから、NetBeansの場合はまずはスーパークラスのメソッドの補完だけに限定している。


この部分を Tor Nobey(NetBeansRuby開発環境の実装者) がどのように解決するかは
非常に興味があるところ。