diff options
| author | David Ponce | 2005-10-14 09:05:15 +0000 |
|---|---|---|
| committer | David Ponce | 2005-10-14 09:05:15 +0000 |
| commit | b6b5618c15e0d836edc2e91b25718a249ffde7ee (patch) | |
| tree | 6786a814e324a3a89cc75b09fa1065a3a40e3a0e | |
| parent | fc5c75503bfc9f04b32be4cfe2400ec24f29ca7b (diff) | |
| download | emacs-b6b5618c15e0d836edc2e91b25718a249ffde7ee.tar.gz emacs-b6b5618c15e0d836edc2e91b25718a249ffde7ee.zip | |
(recentf-track-opened-file)
(recentf-track-closed-file, recentf-update-menu)
(recentf-used-hooks, recentf-enabled-p): Move before dialog stuff.
(recentf-dialog-mode-map): Map follow-link to RET, so dialogs obey
mouse-1-click-follows-link.
| -rw-r--r-- | lisp/ChangeLog | 8 | ||||
| -rw-r--r-- | lisp/recentf.el | 106 |
2 files changed, 62 insertions, 52 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 00c71e23aeb..914eec4ab64 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2005-10-14 David Ponce <david@dponce.com> | ||
| 2 | |||
| 3 | * recentf.el (recentf-track-opened-file) | ||
| 4 | (recentf-track-closed-file, recentf-update-menu) | ||
| 5 | (recentf-used-hooks, recentf-enabled-p): Move before dialog stuff. | ||
| 6 | (recentf-dialog-mode-map): Map follow-link to RET, so dialogs obey | ||
| 7 | mouse-1-click-follows-link. | ||
| 8 | |||
| 1 | 2005-10-13 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | 9 | 2005-10-13 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> |
| 2 | 10 | ||
| 3 | * toolbar/diropen.xpm, toolbar/diropen.pbm: New versions made from | 11 | * toolbar/diropen.xpm, toolbar/diropen.pbm: New versions made from |
diff --git a/lisp/recentf.el b/lisp/recentf.el index dee7a8d438d..b14997d604f 100644 --- a/lisp/recentf.el +++ b/lisp/recentf.el | |||
| @@ -985,6 +985,54 @@ unchanged." | |||
| 985 | t))))) | 985 | t))))) |
| 986 | l)) | 986 | l)) |
| 987 | 987 | ||
| 988 | ;;; Hooks | ||
| 989 | ;; | ||
| 990 | (defun recentf-track-opened-file () | ||
| 991 | "Insert the name of the file just opened or written into the recent list." | ||
| 992 | (and buffer-file-name | ||
| 993 | (recentf-add-file buffer-file-name)) | ||
| 994 | ;; Must return nil because it is run from `write-file-functions'. | ||
| 995 | nil) | ||
| 996 | |||
| 997 | (defun recentf-track-closed-file () | ||
| 998 | "Update the recent list when a buffer is killed. | ||
| 999 | That is, remove a non kept file from the recent list." | ||
| 1000 | (and buffer-file-name | ||
| 1001 | (recentf-remove-if-non-kept buffer-file-name))) | ||
| 1002 | |||
| 1003 | (defun recentf-update-menu () | ||
| 1004 | "Update the recentf menu from the current recent list." | ||
| 1005 | (let ((cache (cons default-directory recentf-list))) | ||
| 1006 | ;; Does nothing, if nothing has changed. | ||
| 1007 | (unless (equal recentf-data-cache cache) | ||
| 1008 | (setq recentf-data-cache cache) | ||
| 1009 | (condition-case err | ||
| 1010 | (easy-menu-add-item | ||
| 1011 | (recentf-menu-bar) recentf-menu-path | ||
| 1012 | (easy-menu-create-menu recentf-menu-title | ||
| 1013 | (recentf-make-menu-items)) | ||
| 1014 | recentf-menu-before) | ||
| 1015 | (error | ||
| 1016 | (message "recentf update menu failed: %s" | ||
| 1017 | (error-message-string err))))))) | ||
| 1018 | |||
| 1019 | (defconst recentf-used-hooks | ||
| 1020 | '( | ||
| 1021 | (find-file-hook recentf-track-opened-file) | ||
| 1022 | (write-file-functions recentf-track-opened-file) | ||
| 1023 | (kill-buffer-hook recentf-track-closed-file) | ||
| 1024 | (menu-bar-update-hook recentf-update-menu) | ||
| 1025 | (kill-emacs-hook recentf-save-list) | ||
| 1026 | ) | ||
| 1027 | "Hooks used by recentf.") | ||
| 1028 | |||
| 1029 | (defsubst recentf-enabled-p () | ||
| 1030 | "Return non-nil if recentf mode is currently enabled." | ||
| 1031 | (memq 'recentf-update-menu menu-bar-update-hook)) | ||
| 1032 | |||
| 1033 | ;;; Commands | ||
| 1034 | ;; | ||
| 1035 | |||
| 988 | ;;; Common dialog stuff | 1036 | ;;; Common dialog stuff |
| 989 | ;; | 1037 | ;; |
| 990 | (defun recentf-cancel-dialog (&rest ignore) | 1038 | (defun recentf-cancel-dialog (&rest ignore) |
| @@ -1011,7 +1059,7 @@ Go to the beginning of buffer if not found." | |||
| 1011 | (let ((km (copy-keymap recentf--shortcuts-keymap))) | 1059 | (let ((km (copy-keymap recentf--shortcuts-keymap))) |
| 1012 | (set-keymap-parent km widget-keymap) | 1060 | (set-keymap-parent km widget-keymap) |
| 1013 | (define-key km "q" 'recentf-cancel-dialog) | 1061 | (define-key km "q" 'recentf-cancel-dialog) |
| 1014 | (define-key km [down-mouse-1] 'widget-button-click) | 1062 | (define-key km [follow-link] "\C-m") |
| 1015 | km) | 1063 | km) |
| 1016 | "Keymap used in recentf dialogs.") | 1064 | "Keymap used in recentf dialogs.") |
| 1017 | 1065 | ||
| @@ -1038,54 +1086,6 @@ Go to the beginning of buffer if not found." | |||
| 1038 | (widget-setup) | 1086 | (widget-setup) |
| 1039 | (switch-to-buffer (current-buffer)))) | 1087 | (switch-to-buffer (current-buffer)))) |
| 1040 | 1088 | ||
| 1041 | ;;; Hooks | ||
| 1042 | ;; | ||
| 1043 | (defun recentf-track-opened-file () | ||
| 1044 | "Insert the name of the file just opened or written into the recent list." | ||
| 1045 | (and buffer-file-name | ||
| 1046 | (recentf-add-file buffer-file-name)) | ||
| 1047 | ;; Must return nil because it is run from `write-file-functions'. | ||
| 1048 | nil) | ||
| 1049 | |||
| 1050 | (defun recentf-track-closed-file () | ||
| 1051 | "Update the recent list when a buffer is killed. | ||
| 1052 | That is, remove a non kept file from the recent list." | ||
| 1053 | (and buffer-file-name | ||
| 1054 | (recentf-remove-if-non-kept buffer-file-name))) | ||
| 1055 | |||
| 1056 | (defun recentf-update-menu () | ||
| 1057 | "Update the recentf menu from the current recent list." | ||
| 1058 | (let ((cache (cons default-directory recentf-list))) | ||
| 1059 | ;; Does nothing, if nothing has changed. | ||
| 1060 | (unless (equal recentf-data-cache cache) | ||
| 1061 | (setq recentf-data-cache cache) | ||
| 1062 | (condition-case err | ||
| 1063 | (easy-menu-add-item | ||
| 1064 | (recentf-menu-bar) recentf-menu-path | ||
| 1065 | (easy-menu-create-menu recentf-menu-title | ||
| 1066 | (recentf-make-menu-items)) | ||
| 1067 | recentf-menu-before) | ||
| 1068 | (error | ||
| 1069 | (message "recentf update menu failed: %s" | ||
| 1070 | (error-message-string err))))))) | ||
| 1071 | |||
| 1072 | (defconst recentf-used-hooks | ||
| 1073 | '( | ||
| 1074 | (find-file-hook recentf-track-opened-file) | ||
| 1075 | (write-file-functions recentf-track-opened-file) | ||
| 1076 | (kill-buffer-hook recentf-track-closed-file) | ||
| 1077 | (menu-bar-update-hook recentf-update-menu) | ||
| 1078 | (kill-emacs-hook recentf-save-list) | ||
| 1079 | ) | ||
| 1080 | "Hooks used by recentf.") | ||
| 1081 | |||
| 1082 | (defsubst recentf-enabled-p () | ||
| 1083 | "Return non-nil if recentf mode is currently enabled." | ||
| 1084 | (memq 'recentf-update-menu menu-bar-update-hook)) | ||
| 1085 | |||
| 1086 | ;;; Commands | ||
| 1087 | ;; | ||
| 1088 | |||
| 1089 | ;;; Edit list dialog | 1089 | ;;; Edit list dialog |
| 1090 | ;; | 1090 | ;; |
| 1091 | (defvar recentf-edit-list nil) | 1091 | (defvar recentf-edit-list nil) |
| @@ -1140,7 +1140,7 @@ Click on Cancel or type `q' to cancel.\n") | |||
| 1140 | :notify 'recentf-cancel-dialog | 1140 | :notify 'recentf-cancel-dialog |
| 1141 | "Cancel") | 1141 | "Cancel") |
| 1142 | (recentf-dialog-goto-first 'checkbox))) | 1142 | (recentf-dialog-goto-first 'checkbox))) |
| 1143 | 1143 | ||
| 1144 | ;;; Open file dialog | 1144 | ;;; Open file dialog |
| 1145 | ;; | 1145 | ;; |
| 1146 | (defun recentf-open-files-action (widget &rest ignore) | 1146 | (defun recentf-open-files-action (widget &rest ignore) |
| @@ -1252,7 +1252,7 @@ Optional argument N must be a valid digit number. It defaults to 1. | |||
| 1252 | (when recentf--files-with-key | 1252 | (when recentf--files-with-key |
| 1253 | (kill-buffer (current-buffer))) | 1253 | (kill-buffer (current-buffer))) |
| 1254 | (funcall recentf-menu-action file))) | 1254 | (funcall recentf-menu-action file))) |
| 1255 | 1255 | ||
| 1256 | ;;; Save/load/cleanup the recent list | 1256 | ;;; Save/load/cleanup the recent list |
| 1257 | ;; | 1257 | ;; |
| 1258 | (defconst recentf-save-file-header | 1258 | (defconst recentf-save-file-header |
| @@ -1316,7 +1316,9 @@ That is, remove duplicates, non-kept, and excluded files." | |||
| 1316 | (message "File %s removed from the recentf list" f))) | 1316 | (message "File %s removed from the recentf list" f))) |
| 1317 | (message "Cleaning up the recentf list...done (%d removed)" n) | 1317 | (message "Cleaning up the recentf list...done (%d removed)" n) |
| 1318 | (setq recentf-list (nreverse newlist)))) | 1318 | (setq recentf-list (nreverse newlist)))) |
| 1319 | 1319 | ||
| 1320 | ;;; The minor mode | ||
| 1321 | ;; | ||
| 1320 | (defvar recentf-mode-map (make-sparse-keymap) | 1322 | (defvar recentf-mode-map (make-sparse-keymap) |
| 1321 | "Keymap to use in recentf mode.") | 1323 | "Keymap to use in recentf mode.") |
| 1322 | 1324 | ||