Rubyコード補完進捗報告1

ここ二週間ほど、集中して取り組んだおかげで、一応それっぽく動くようになりました。問題は山積みで実用などは遥か遠い未来の話ですが、ちょっと嬉しかったので報告です。次のスクリーンショットを見てください。

なんの変哲のない補完に見えますが、よく見ると補完候補としてFixnum#succとString#gsubが含まれているのが分かります。これの意味するところは、ローカル変数aへのFixnumオブジェクトとStringオブジェクトの代入が正しく検知され型推論されているということです。

分かりやすさのために、あえてこんな単純な例を出していますが、前のエントリにあるようなケースも現状ですでに対応できています。

def foo(n)
  n.    # <= succ, gsubが候補として出てくる
end
foo(1)
foo('Hello')

一応プロジェクトのURLを貼っておきます。

http://code.google.com/p/rsense/

次やることは:

  • 標準ライブラリ対応
  • 型推論精度の向上
  • パフォーマンス

などです。