2009/03/08

[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 件のコメント: