From: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> Subject: ;;; anything.el --- open anything Date: Fri, 22 Jun 2007 04:38:35 -0700
> This package provides a single command (M-x anything) and as I type > the results are shown in a structured format. No need to tell emacs > first I want to switch to a buffer, open a file or a manual page. See > the commentary in the header. Cool! I love it!! I like menu using `read-char' rather than TAB and digit shortcut. So I hacked up it. (defvar anything-select-in-minibuffer-keys "asdfjkl;") ;; It is based on anything-select-action, so it needs refactoring. (defun anything-select-action-in-minibuffer () "Select an action for the currently selected candidate in minibuffer." (interactive) (if anything-saved-sources (error "Already showing the action list")) (setq anything-saved-selection (anything-get-selection)) (unless anything-saved-selection (error "Nothing is selected.")) (let ((actions (anything-get-action))) (message "%s" (apply #'concat (loop for action in actions for i from 0 collecting (format "[%c]%s\n" (elt anything-select-in-minibuffer-keys i) (car action))))) (let* ((key (read-char)) (idx (rindex anything-select-in-minibuffer-keys key))) (or idx (error "bad selection")) (setq anything-saved-action (cdr (elt actions idx))) (anything-exit-minibuffer)))) (defvar anything-saved-action nil "Saved value of the currently selected action by key.") ;; Redefined (defun anything-execute-selection-action () "If a candidate was selected then perform the associated action." (let* ((selection (if anything-saved-selection ;; the action list is shown anything-saved-selection (anything-get-selection))) (action (or anything-saved-action (if anything-saved-sources ;; the action list is shown (anything-get-selection) (anything-get-action))))) (if (anything-list-but-not-lambda-p action) ;; select the default action (setq action (cdar action))) (if (and selection action) (funcall action selection)))) (define-key anything-map "\C-k" 'anything-select-action-in-minibuffer) -- rubikitch http://www.rubyist.net/~rubikitch/ _______________________________________________ gnu-emacs-sources mailing list gnu-emacs-sources@gnu.org http://lists.gnu.org/mailman/listinfo/gnu-emacs-sources