Mercurial > emacs
comparison lisp/buff-menu.el @ 65352:b8cb862faa66
(Buffer-menu-make-sort-button): Add docstrings, use non-anonymous functions.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 06 Sep 2005 20:44:41 +0000 |
parents | 3607a394b655 |
children | d96b22b8de33 |
comparison
equal
deleted
inserted
replaced
65351:c117ff39102e | 65352:b8cb862faa66 |
---|---|
633 (insert m2))) | 633 (insert m2))) |
634 (forward-line))))) | 634 (forward-line))))) |
635 | 635 |
636 (defun Buffer-menu-make-sort-button (name column) | 636 (defun Buffer-menu-make-sort-button (name column) |
637 (if (equal column Buffer-menu-sort-column) (setq column nil)) | 637 (if (equal column Buffer-menu-sort-column) (setq column nil)) |
638 (propertize name | 638 (let* ((downname (downcase name)) |
639 'help-echo (if column | 639 (map (make-sparse-keymap)) |
640 (if Buffer-menu-use-header-line | 640 (fun `(lambda (&optional e) |
641 (concat "mouse-1, mouse-2: sort by " | 641 ,(concat "Sort the buffer menu by " downname ".") |
642 (downcase name)) | 642 (interactive (list last-input-event)) |
643 (concat "mouse-2, RET: sort by " | 643 (if e (mouse-select-window e)) |
644 (downcase name))) | 644 (Buffer-menu-sort ,column))) |
645 (if Buffer-menu-use-header-line | 645 (sym (intern (format "Buffer-menu-sort-by-%s-%s" name column)))) |
646 "mouse-1, mouse-2: sort by visited order" | 646 ;; Use a symbol rather than an anonymous function, to make the output of |
647 "mouse-2, RET: sort by visited order")) | 647 ;; C-h k less intimidating. |
648 'mouse-face 'highlight | 648 (fset sym fun) |
649 'keymap (let ((map (make-sparse-keymap)) | 649 (setq fun sym) |
650 (fun `(lambda (e) | 650 ;; This keymap handles both nil and non-nil |
651 (interactive "e") | 651 ;; values for Buffer-menu-use-header-line. |
652 (if e (mouse-select-window e)) | 652 (define-key map [header-line mouse-1] fun) |
653 (Buffer-menu-sort ,column)))) | 653 (define-key map [header-line mouse-2] fun) |
654 ;; This keymap handles both nil and non-nil | 654 (define-key map [mouse-2] fun) |
655 ;; values for Buffer-menu-use-header-line. | 655 (define-key map [follow-link] 'mouse-face) |
656 (define-key map [header-line mouse-1] fun) | 656 (define-key map "\C-m" fun) |
657 (define-key map [header-line mouse-2] fun) | 657 (propertize name |
658 (define-key map [mouse-2] fun) | 658 'help-echo (concat |
659 (define-key map [follow-link] 'mouse-face) | 659 (if Buffer-menu-use-header-line |
660 (define-key map "\C-m" | 660 "mouse-1, mouse-2: sort by " |
661 `(lambda () (interactive) | 661 "mouse-2, RET: sort by ") |
662 (Buffer-menu-sort ,column))) | 662 ;; No clue what this is for, but I preserved the |
663 map))) | 663 ;; behavior, just in case. --Stef |
664 (if column downname "visited order")) | |
665 'mouse-face 'highlight | |
666 'keymap map))) | |
664 | 667 |
665 (defun list-buffers-noselect (&optional files-only buffer-list) | 668 (defun list-buffers-noselect (&optional files-only buffer-list) |
666 "Create and return a buffer with a list of names of existing buffers. | 669 "Create and return a buffer with a list of names of existing buffers. |
667 The buffer is named `*Buffer List*'. | 670 The buffer is named `*Buffer List*'. |
668 Note that buffers with names starting with spaces are omitted. | 671 Note that buffers with names starting with spaces are omitted. |