Perl やら PHP のコードを書いているとき,anything の buffer の切り替えで basename しか見えていないと分かりづらいので,buffer-file-name を持っているときはそっちを表示するようにしてみた.
(更新:2008/5/9)
- 起動時に anything-c-adaptive-history の読み込みでエラーが起きる問題を修正したつもり.
- nym-anything-toolsを使うように修正してみた.
(更新:2008/5/13)
- バッファが dired-mode の場合は,そのディレクトリを表示するように変更.
;;;;
;;;; Buffers List for anything
;;;; $Rev: 67 $
;;;;
;;;; buffer-file-name を持つ場合には,それを表示するようにした Buffers
;;;;
;;;; スペースはパタンの分割を意味し,n-1 個目のパタンがマッチした箇所
;;;; (n=1の時は先頭)以降で n個目のパタンがマッチする.
;;;;
;;;; usage:
;;;; (add-to-list 'anything-sources nym:anything-buffers)
;;;;
(require 'nym-anything-tools)
(defun nym:anything-buffers-dired-directory (buffer)
(and (rassq buffer dired-buffers)
(with-current-buffer buffer
dired-directory)))
(defun nym:anything-buffers-list ()
(let ((buffers
(loop for buff in (buffer-list)
for name = (buffer-name buff)
unless (or (equal name anything-buffer)
(eq ?\ (aref name 0)))
collect (cons (or (buffer-file-name buff)
(nym:anything-buffers-dired-directory buff)
name)
buff))))
(append (cdr buffers) (list (car buffers)))))
(defun nym:anything-buffers (candidates source)
(loop with patterns = (nym:anything-pattern-transformer anything-pattern)
for buffer in (nym:anything-buffers-list)
if (nym:anything-pattern-match patterns (car buffer))
collect (cons (car buffer) (buffer-name (cdr buffer)))))
(setq nym:anything-buffers
`((name . "Buffers (File)")
(candidates . nil)
(filtered-candidate-transformer . nym:anything-buffers)
(type . buffer)
(volatile)))

コメントする