Lem Advent Calendar 2023 - 今後の開発
Lem Advent Calendar 最終日の記事です。
ここまでは、現在Lemに存在する機能を主に紹介してきました。
ここからは今後追加していきたい機能をまとめていきます。
Terminal
日常の操作を出来るだけLemの中で完結させたいですが、現状それが出来ない理由の一つとして、Terminalの機能が存在しないというのがあります。
これが出来ればgitのコマンドなどでlessが呼ばれてもlem上で使えるようになるので、Lemの外のターミナルエミュレータを使う必要はなくなります。
Lem Extension Manager
Lemではextensionを一般的なライブラリとして扱っています。
なのでasdf:load-systemを使えば他のCommon Lispライブラリと同様に読み込めますが、いくつか問題があります。例えばextensionを作ってもそれを登録する場所が存在せず、一覧などが出来ないというものです。同様にextensionの検索も出来ないので、新しいextensionが作られる文化が形成しにくい状態になっていそうです。
このためLem自体にextension managerとextensionを登録するための場所を用意したいです。
現状はUltralispにlem用のタグを付けて、それをextension managerで扱うのが良いかと考えています。
ちなみにLem Extension Managerは頭文字を取るとLEMになります、小洒落てますね。
Markdown renderer
SDL2フロントエンド実装と同時期に、テキストバッファに画像や任意のフォントでのテキスト描画が出来るようになりました。
これを使うとmarkdown-modeで、ヘッダ行は文字を大きくしたりすることが可能になります。
zennのエディタでも同様の挙動をしますが、これがLemの中で出来ると面白そうです。
Web Browser Frontend
エディタをbackendとfrontendに分けており、相互にJSONRPCを用いてメッセージのやりとりをする仕組みがあることを先日紹介しました。
この仕組みを使えばlemのバックエンドのjsonrpcサーバーを立てておき、ブラウザ上からそのサーバーに接続し、ブラウザ上でLemを扱えるように出来るのではないでしょうか。
共同編集機能
上記のブラウザ上でのLemの編集が出来るようになると欲しくなるのは共同編集機能です。
同じバッファ上で複数人が編集し、evalした結果を他の人も見れるようになることを考えると夢が広がります(セキュリティの問題は大変そうです)
おわりに
今日はadvent calendar最終日だったので今後Lem上で実現したいことをまとめてみました。
来年はこれらを実装したLem 3.0をリリースできればと思います。
おまけ
メリークリスプマス!
Discussion