scheme-completeの設定を修正した

うまく動いていると思ったのだが,composeを使おうとして,補完がうまくできないことに気付く.R5RSとsrfiの範囲は補完できるようだ.ぐぐってみると,ChickenとGaucheには対応しているらしい.しかしEmacsの設定ファイルにはちゃんと設定をコピペしてある.よくわからないので,scheme-complete.elを読むことに.ChickenやGauche用の設定が書いてあるのがわかる.試しに,Schemeモードでwa[tab]と打ってみると,warningと出た.どうやらChickenモードになっているらしい.
.emacs.elには

(setq *current-scheme-implementation* 'gauche)

などと書いてあるので,Gaucheモードになるはずだと思うのだが.*current-scheme-implementation*をevalしてもちゃんとgaucheと出る.そこで,scheme-complete.elの中で処理系を見て処理を分岐している部分をみつけるべく,grep implementationすると,

  (or *scheme-current-implementation*
      scheme-default-implementation))

これらの行が目に留まる.確かにこの変数を使って分岐しているようだ.念のためにコピペしてSchemeモード上でevalする.M-x eval-last-sexp,と…おや,今度はchickenと出た.変数がちゃんと設定されていない.今度は設定ファルから変数名をコピペしてevalしようと試みる.おや…?

*current-scheme-implementation*
*scheme-current-implementation*

なんと!変数名が違う.ぐぐってコピペした変数名が間違っていたのか…?でもざっと見た感じ,どのサイトにも*current-scheme-implementation*のほうが書いてあるな.どういうことだ.
とりあえず,該当部分の設定を以下のように書き換えることで,Gaucheモードで動作したようだ.

;;(setq default-scheme-implementation 'gauche)
(setq scheme-default-implementation 'gauche)
;;(setq *current-scheme-implementation* 'gauche)
(setq *scheme-current-implementation* 'gauche)

というわけで,紆余曲折を経て自力解決.俺にしては頑張ったよね.
でもこれ,一体何なんだろう.


ところで,tab押してから補完完了まで遅いと1秒くらいかかるのは仕様?