エディタ

VS Code の拡張が付属しています。色付け、言語サーバ、デバッガです。言語サーバもデバッガも lp9 そのもの(lp9 lsp、lp9 dap)で、別のプログラムではありません。

打ちながら誤りを示す

言語サーバは、キーを打つたびにコンパイラの前段を全部走らせます。ファイルを読み、imports: をたどり、各モジュールが公開しているものを確かめ、型を推論します。lp9 run と同じコードを通るので、エディタが受け入れて lp9 run が断る、ということは起きません。

LP-9 は最初の誤りで止まるので、一度に示す誤りは一つです。

推論した型を見せる

型を書かない言語なので、ホバーが型を見せます。

型の下には、その型がどこで、なぜ決まったかが出ます。

settled at 20:6 by x:y:

思っていたのと違う型が付いたとき、どこを見ればいいかが分かります。

定義、参照、名前の変更、補完

定義へ移動、参照の検索、名前の変更、補完ができます。クラスを変更すると、ハンドラの名前(Counter >> Bump)、on: #click send: Bump、receive: の表、フィールドに書いた型のように、クラスの名前を書いた所が全部変わります。

デバッガ

ブレークポイント、ステップイン、ステップオーバー、ステップアウト、呼び出しの積み重ね、各段の変数(引数、受け手のフィールド、self)。.lp9 を開いて F5 で始まります。プログラムの出力はデバッグコンソールに出ます。

できないこと:

実行とビルド

「LP-9: Run Current File」と「LP-9: Build Current File」は、ファイルを保存してターミナルに送ります。プログラムはウィンドウを開いてキーボードを読むので、出力パネルでは足りないからです。

設定

lp9.pathlp9 の場所。空なら拡張に入っているもの、ワークスペースのビルド出力、PATH の順に探す
lp9.importPathimports: を探すディレクトリ。言語サーバ、デバッガ、Run に同じものを渡すので、エディタが見つけるものと実行が見つけるものは同じ