auto-complete.el で悩む

どもです。

auto-complete.el のすごさ,ありがたさはいわずもがな。
いや言っておこう。ありがとう!
んで悩んでいることが。


理想から言うと,補完候補が表示されている最中にあるキーを押すことにより,
情報源が切り替わってほしい,ということです。


情報源が複数あり,現在の文字入力状態において,プリフィクスがかぶってい
ると, 2つ以上の情報源からの補完が可能な状況というのがございます。んで
ソースを追ってはないのですが,現状はどれか1つの情報源からの補完候補しか
表示されないはず。よく分からんと思うので例。


ac-sources => '(ac-source-a ac-source-b)
ac-source-a => '("candidate-a-1" "candidate-a-2")
ac-source-b => '("candidate-b-1" "candidate-b-2")
んで,ac-source-aとac-source-bのプリフィクスは同じと仮定。


「cand」と入力した時点で("candidate-a-1" "candidate-a-2")か
("candidate-b-1" "candidate-b-2")のどちらかしか補完候補として上がってこ
ない,ということです。


んでですね,("candidate-a-1""candidate-a-2")が
補完候補として上がっているときに,あるキーを押すことで,
補完候補が("candidate-b-1" "candidate-b-2")に切り替わったらすばらしい
と思いませんか?
いやさ,すばらしすぎますね。


情報源を定義したと同時に,その情報源に対応するinteractiveな補完用関数が
定義されるのですが,これを一々,M-xから呼び出すのはしんどい。
しかしこの機能は大変すばらしい。


せっかくこんなすばらしい機能があるのに使わないのはもったいない。
ここで「あるキー」をトグルキーと呼ぶことにします。
補完候補が表示されている状態で,トグルキーを押す。
ac-sources内の,現在の入力状態に対して補完可能な別の情報源からの補完候補を表示。
こういうことをやりたいのです。


で,なんとなくだけど,たぶん出来るはず。
だって手動でできるから。
auto-complete.el に手を入れるか,自分で関数作ってac-menu-mapでキーに割り当てるか。
思いつく選択肢はこの2つ。
もしくは本家にfeature requestを出して待機モードに入るか。


まあ,そもそもプリフィクスがかぶるような情報源を
つくる自分が悪いということなんですがね!