1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 04:10:54 -08:00

(imenu--create-keymap-2): Build menu with menu-item

using :key-sequence, making it much more usable.  Use nconc, not
append.
(imenu--create-keymap-1): Avoid append.
This commit is contained in:
Dave Love 2000-10-23 17:24:54 +00:00
parent 379b70e730
commit 0dcf8835e3
2 changed files with 19 additions and 14 deletions

View file

@ -4,6 +4,11 @@
2000-10-23 Dave Love <fx@gnu.org>
* imenu.el (imenu--create-keymap-2): Build menu with menu-item
using :key-sequence, making it much more usable. Use nconc, not
append.
(imenu--create-keymap-1): Avoid append.
* textmodes/refill.el: Remove bits redundant with define-minor-mode.
2000-10-23 Miles Bader <miles@lsi.nec.co.jp>

View file

@ -631,26 +631,26 @@ as a way for the user to ask to recalculate the buffer's index alist."
(defun imenu--create-keymap-2 (alist counter &optional commands)
(let ((map nil))
(mapcar
(function
(lambda (item)
(cond
((imenu--subalist-p item)
(append (list (setq counter (1+ counter))
(car item) 'keymap (car item))
(imenu--create-keymap-2 (cdr item) (+ counter 10) commands)))
(t
(let ((end (if commands `(lambda () (interactive)
(imenu--menubar-select ',item))
(cons '(nil) item))))
(cons (car item)
(cons (car item) end)))))))
(lambda (item)
(cond
((imenu--subalist-p item)
(nconc (list (setq counter (1+ counter))
(car item) 'keymap (car item))
(imenu--create-keymap-2 (cdr item) (+ counter 10) commands)))
(t
(let ((end (if commands `(lambda ()
(interactive)
(imenu--menubar-select ',item))
(cons '(nil) item))))
(cons (car item)
(list 'menu-item (car item) end :key-sequence nil))))))
alist)))
;; If COMMANDS is non-nil, make a real keymap
;; with a real command used as the definition.
;; If it is nil, make something suitable for x-popup-menu.
(defun imenu--create-keymap-1 (title alist &optional commands)
(append (list 'keymap title) (imenu--create-keymap-2 alist 0 commands)))
(cons 'keymap (cons title (imenu--create-keymap-2 alist 0 commands))))
(defun imenu--in-alist (str alist)
"Check whether the string STR is contained in multi-level ALIST."