;;; finder.el --- topic & keyword-based code finder
;; Copyright (C) 1992, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005,
-;; 2006, 2007, 2008 Free Software Foundation, Inc.
+;; 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
;; Created: 16 Jun 1992
))
(defvar finder-mode-map
- (let ((map (make-sparse-keymap)))
+ (let ((map (make-sparse-keymap))
+ (menu-map (make-sparse-keymap "Finder")))
(define-key map " " 'finder-select)
(define-key map "f" 'finder-select)
(define-key map [follow-link] 'mouse-face)
(define-key map "p" 'previous-line)
(define-key map "q" 'finder-exit)
(define-key map "d" 'finder-list-keywords)
+
+ (define-key map [menu-bar finder-mode]
+ (cons "Finder" menu-map))
+ (define-key menu-map [finder-exit]
+ '(menu-item "Quit" finder-exit
+ :help "Exit Finder mode"))
+ (define-key menu-map [finder-summary]
+ '(menu-item "Summary" finder-summary
+ :help "Summary item on current line in a finder buffer"))
+ (define-key menu-map [finder-list-keywords]
+ '(menu-item "List keywords" finder-list-keywords
+ :help "Display descriptions of the keywords in the Finder buffer"))
+ (define-key menu-map [finder-select]
+ '(menu-item "Select" finder-select
+ :help "Select item on current line in a finder buffer"))
map))
(defvar finder-mode-syntax-table
(setq buffer-undo-list t)
(erase-buffer)
(insert (autoload-rubric generated-finder-keywords-file
- "keyword-to-package mapping"))
+ "keyword-to-package mapping" t))
(search-backward "\f")
(insert "(setq finder-package-info '(\n")
(let (processed summary keywords)
(or str (error "Can't find any Commentary section"))
;; This used to use *Finder* but that would clobber the
;; directory of categories.
- (delete-other-windows)
(pop-to-buffer "*Finder-package*")
(setq buffer-read-only nil
buffer-undo-list t)
(defun finder-mouse-select (event)
"Select item in a finder buffer with the mouse."
(interactive "e")
- (save-excursion
- (set-buffer (window-buffer (posn-window (event-start event))))
+ (with-current-buffer (window-buffer (posn-window (event-start event)))
(goto-char (posn-point (event-start event)))
(finder-select)))