[Common Lisp] Slimy hackathon Climacs と SLIME
Slimy hackathon に(ほんのすこしだけど)参加ということで、Climacs と SLIME の路線でいってみる。Climacs で C-c C-c とかすると SLIME(swank?)の機能でコンパイルしてるっぽいので、まずは Climacs と SLIME の関係を調べてみる。
Climacs のソースコードを slime, swank で grep しても何もひっかからない。
よくよく探してみると、McCLIM のソースコードの方に swank の文字があるのを見つけた。このファイル mcclim/Drei/lisp-syntax-swank.lisp
Climacs は McCLIM の Drei というテキストエディットのライブラリ(?)を使っている。その Drei の方が SLIME の機能を使ってるようだ。asd ファイルも drei のあたりで swank を depends-on している。
lisp-syntax-swank.lisp をみてみる。ファイル自体小さい。swank の機能もあまり使っていない。補完、コンパイル、定義、引数リストくらいかな。ざっとぬきだすとこんなかんじ。
- (swank::swank-require :swank-c-p-c)
- (swank::swank-require :swank-arglists)))
- (swank::compile-string-for-emacs
- (swank::compilation-result-notes result)
- (swank::compilation-result-successp result)
- (swank::compilation-result-duration result)
- (swank::compile-file-for-emacs filepath load-p)
- (swank::find-definitions-for-emacs name)
- (swank::extra-keywords/make-instance 'make-instance class)
- (swank::keyword-arg.keyword arg)
- (swank::keyword-arg.arg-name arg)
- (swank::keyword-arg.default-arg arg)
- (swank::arglist symbol))
- (swank::completions string (package-name default-package))
さて、ここからどこに進もうか。
0 件のコメント:
コメントを投稿