anything.elでnavi2chバッファを選択

navi2chのarticleバッファ名は *navi2ch article http://〜.dat* とわかりづらい。そこでスレタイと板名を表示してanything.elで選択しやすくしてみる。

(require 'anything-config)

(defun anything-transform-navi2ch-article (buffers)
  (loop for buf in buffers collect
        (if (string-match "^\\*navi2ch article" buf)
            (cons (with-current-buffer buf
                    (format "[navi2ch:%s]%s" 
                            (cdr (assq 'id navi2ch-article-current-board))
                            (navi2ch-article-get-current-subject)))
                  buf)
          buf)))
(add-to-list 'anything-candidate-transformers-buffer 'anything-transform-navi2ch-article)

以下は * の部分のみ必要だと思われ。

(setq anything-sources (list anything-source-buffers  ;; *
                             anything-source-switch-commands
                             anything-source-file-cache
                             anything-source-bookmarks
                             anything-source-locate
                             anything-source-complex-command-history))
(setq anything-type-actions (list anything-actions-buffer ;; *
                                  anything-actions-file
                                  anything-actions-command
                                  anything-actions-sexp))

(setq anything-action-transformers
      '((buffer   . anything-transform-buffer-actions)  ;; *
        (file     . anything-transform-file-actions)
        (command  . anything-transform-command-actions)
        (function . anything-transform-function-actions)
        (sexp     . anything-transform-sexp-actions)))

(setq anything-candidate-transformers
      '((buffer   . anything-transform-buffers) ;; *
        (file     . anything-transform-files)
        (command  . anything-transform-commands)
        (function . anything-transform-functions)
        (sexp     . anything-transform-sexps)))