ローカル変数名の補完、シェルモードのバグを修正
ローカル変数名の補完を入れました。
たぶん。大体の場所で補完は効きます。
ただ、変数のクラス名の補完などはまだ入れてません。
> 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!