Clover2開発日誌

Clover2というJavaのように静的な型を持つRubyのようなコンパイラ+仮想マシンの開発日誌です。LLVMでJITもします。https://github.com/ab25cqにて開発しています

ローカル変数名の補完、シェルモードのバグを修正

ローカル変数名の補完を入れました。

ほとんどJavaIDEのような使い心地になってます。

たぶん。大体の場所で補完は効きます。

ただ、変数のクラス名の補完などはまだ入れてません。

> a:Inte[TAB]

> a:Integer

なんていうやつは入ってません。それをまた入れたいと思います。

:のあとはクラス名の補完が行われるようにしたらいいですね。

それほどは難しくないですね。

ローカル変数の補完は以下のようです。

> if(true) { abcdefghi := "ABC"; abcde[TAB]

> if(true) { abcdefghi := "ABC"; abcdefghi

かなり良い感じになってます。もちろんabcdefghi.[TAB]とするとString型のメソッド名の補完となります。

 

シェルモードのバグは見つかりにくいもので以下のようなバグが有りました。

> ls | less; 1.toString().toCommand().less()

 

の1がエラーとなっていました。シェルモード後の文がおかしくなってました。修正しています。

 

シェルモードのパースはちょっといい加減な感じでまだバグがありそうな予感があります。個人的に使っていってバグが見つかれば修正しますね。

まあ、ぼちぼちですね。かなり補完が良い感じに仕上がってますので、インタプリタとしても使ってあげてください。

しばらく、補完を予想通りの動きに仕上げます。

それが終わったら、ようやく言語機能の拡張に入ります。

お楽しみに。

 

それでは、enjoy programing!