anything-c-yasnippetをcodereposにコミットしました

codereposにコミットしました。

追記 2008/3/26

補完候補の収得方法をyasnippetの関数にアドバイスして自前で作る方法からyasnippetのstoreしているデータからとってくる方法に変えました。
codereposにコミット済みですので使ってくださっている方は以下から最新版をダウンロードしてください。
svn: http://svn.coderepos.org/share/lang/elisp/anything-c-yasnippet/anything-c-yasnippet.el


多分これで、コメント欄にてid:antipopさんから教えていただいた

cperl-modeの時に、anything-c-yas-completeの候補がまったく出てこない問題

は解決したと思います。(といいな・・・)


また、anything-c-yas-space-match-any-greedy を t (non-nil)にすると[default: nil] 空白区切りで絞り込めるようになります。
たとえば"if else" が "if (...) { ... } else { ... }" にマッチするようになるので素早く絞り込めます。
snippetがこれから増えていっても200とかにはならないと思うので(なればいいなぁ)パフォーマンス的には問題ないと思います。自分はHistoryやBufferの絞込みにも使っています。


自分の現段階でのyasnippetの設定を書いておきます。

(require 'yasnippet)
(require 'anything-c-yasnippet)
(setq anything-c-yas-space-match-any-greedy t)
(global-set-key (kbd "C-c y") 'anything-c-yas-complete)
(yas/initialize)
(yas/load-directory "<path>/<to>/snippets/")
(add-to-list 'yas/extra-mode-hooks 'ruby-mode-hook)
(add-to-list 'yas/extra-mode-hooks 'cperl-mode-hook)

使い方は、anythingを使った補完実行する関数 anything-c-yas-complete をキーバインドに割り当てて実行するか
anything-sources に anything-c-source-yasnippet を追加して使います。
後者の方は他のsourceと組み合わせて使ったりできるので便利です。


yasnippetかわいいよyasnippet


--- 追記 2008/3/26 ここまで ---


source を anything-c-source-yasnippet としてグローバルに置くなどなかのコードも結構変わりましたので新しいものを以下からダウンロードして使ってください。

svn: http://svn.coderepos.org/share/lang/elisp/anything-c-yasnippet/anything-c-yasnippet.el
browser: http://coderepos.org/share/browser/lang/elisp/anything-c-yasnippet/anything-c-yasnippet.el


id:rubikitchさんからアドバイスいただきかなり興奮しました。
irbsh, rcodetools, ruby elisp関係, anything-config etc... 数え切れないくらいお世話になっています。ありがとうございます。
この場を借りて感謝です!!


増えた機能は、

  • Action: "Open snippet file" => snippetファイルを開く
  • Action: "Open snippet file other window" => snippetファイルを別ウインドウで開く
  • persistent-action: snippet選択中に C-z => snippetファイルチラ見 idea: http://d.hatena.ne.jp/rubikitch/20071228/anythingpersistent

です。
基本的な設定方法はかわっていません。


ちょ、今、なぜか異常なくらいに眠たいので詳しくは明日追記する予定です。すいません。追記しました。2008/3/26