t)))))
l))
\f
+;;; Hooks
+;;
+(defun recentf-track-opened-file ()
+ "Insert the name of the file just opened or written into the recent list."
+ (and buffer-file-name
+ (recentf-add-file buffer-file-name))
+ ;; Must return nil because it is run from `write-file-functions'.
+ nil)
+
+(defun recentf-track-closed-file ()
+ "Update the recent list when a buffer is killed.
+That is, remove a non kept file from the recent list."
+ (and buffer-file-name
+ (recentf-remove-if-non-kept buffer-file-name)))
+
+(defun recentf-update-menu ()
+ "Update the recentf menu from the current recent list."
+ (let ((cache (cons default-directory recentf-list)))
+ ;; Does nothing, if nothing has changed.
+ (unless (equal recentf-data-cache cache)
+ (setq recentf-data-cache cache)
+ (condition-case err
+ (easy-menu-add-item
+ (recentf-menu-bar) recentf-menu-path
+ (easy-menu-create-menu recentf-menu-title
+ (recentf-make-menu-items))
+ recentf-menu-before)
+ (error
+ (message "recentf update menu failed: %s"
+ (error-message-string err)))))))
+
+(defconst recentf-used-hooks
+ '(
+ (find-file-hook recentf-track-opened-file)
+ (write-file-functions recentf-track-opened-file)
+ (kill-buffer-hook recentf-track-closed-file)
+ (menu-bar-update-hook recentf-update-menu)
+ (kill-emacs-hook recentf-save-list)
+ )
+ "Hooks used by recentf.")
+
+(defsubst recentf-enabled-p ()
+ "Return non-nil if recentf mode is currently enabled."
+ (memq 'recentf-update-menu menu-bar-update-hook))
+\f
+;;; Commands
+;;
+
;;; Common dialog stuff
;;
(defun recentf-cancel-dialog (&rest ignore)
(let ((km (copy-keymap recentf--shortcuts-keymap)))
(set-keymap-parent km widget-keymap)
(define-key km "q" 'recentf-cancel-dialog)
- (define-key km [down-mouse-1] 'widget-button-click)
+ (define-key km [follow-link] "\C-m")
km)
"Keymap used in recentf dialogs.")
(widget-setup)
(switch-to-buffer (current-buffer))))
\f
-;;; Hooks
-;;
-(defun recentf-track-opened-file ()
- "Insert the name of the file just opened or written into the recent list."
- (and buffer-file-name
- (recentf-add-file buffer-file-name))
- ;; Must return nil because it is run from `write-file-functions'.
- nil)
-
-(defun recentf-track-closed-file ()
- "Update the recent list when a buffer is killed.
-That is, remove a non kept file from the recent list."
- (and buffer-file-name
- (recentf-remove-if-non-kept buffer-file-name)))
-
-(defun recentf-update-menu ()
- "Update the recentf menu from the current recent list."
- (let ((cache (cons default-directory recentf-list)))
- ;; Does nothing, if nothing has changed.
- (unless (equal recentf-data-cache cache)
- (setq recentf-data-cache cache)
- (condition-case err
- (easy-menu-add-item
- (recentf-menu-bar) recentf-menu-path
- (easy-menu-create-menu recentf-menu-title
- (recentf-make-menu-items))
- recentf-menu-before)
- (error
- (message "recentf update menu failed: %s"
- (error-message-string err)))))))
-
-(defconst recentf-used-hooks
- '(
- (find-file-hook recentf-track-opened-file)
- (write-file-functions recentf-track-opened-file)
- (kill-buffer-hook recentf-track-closed-file)
- (menu-bar-update-hook recentf-update-menu)
- (kill-emacs-hook recentf-save-list)
- )
- "Hooks used by recentf.")
-
-(defsubst recentf-enabled-p ()
- "Return non-nil if recentf mode is currently enabled."
- (memq 'recentf-update-menu menu-bar-update-hook))
-\f
-;;; Commands
-;;
-
;;; Edit list dialog
;;
(defvar recentf-edit-list nil)
:notify 'recentf-cancel-dialog
"Cancel")
(recentf-dialog-goto-first 'checkbox)))
-
+\f
;;; Open file dialog
;;
(defun recentf-open-files-action (widget &rest ignore)
(when recentf--files-with-key
(kill-buffer (current-buffer)))
(funcall recentf-menu-action file)))
-
+\f
;;; Save/load/cleanup the recent list
;;
(defconst recentf-save-file-header
(message "File %s removed from the recentf list" f)))
(message "Cleaning up the recentf list...done (%d removed)" n)
(setq recentf-list (nreverse newlist))))
-
+\f
+;;; The minor mode
+;;
(defvar recentf-mode-map (make-sparse-keymap)
"Keymap to use in recentf mode.")