auto-complete.elでpersistent-action(Emacs Lispシンボルに対してドキュメントを出す)
だいぶ前に実装したやつだけど、安定してきたので。anything.elのpersistent-actionを実装してみた。Emacs Lispのシンボルを補完しているときにC-zを押すと説明が出てくるよ。
(defvar ac-default-persistent-action nil) (defun ac-execute-persistent-action () "persistent-action." (interactive) (let* ((string (overlay-get (ac-menu-line-overlay ac-menu ac-selection) 'real-string)) (source (get-text-property 0 'source string)) (persistent-action-function (or (and source (cdr-safe (assq 'persistent-action source))) ac-default-persistent-action))) (if persistent-action-function (funcall persistent-action-function string)))) (setq ac-source-symbols '((candidates . (lambda () (all-completions ac-target obarray))) (persistent-action . ac-describe-function-or-variable))) (defun ac-describe-function-or-variable (cand) (let ((sym (intern-soft cand))) (cond ((p (fboundp sym)) (describe-function sym)) ((boundp sym) (describe-variable sym))))) (define-key ac-complete-mode-map "\C-z" 'ac-execute-persistent-action)