From: Francois Fleuret Date: Sun, 5 Dec 2010 18:56:16 +0000 (-0800) Subject: Added an option to save the selected file in file-name-history. X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=commitdiff_plain;h=f5ad24fcd82297711a7684d7a0fb32017477439c;p=elisp.git Added an option to save the selected file in file-name-history. --- diff --git a/selector.el b/selector.el index 17a5b23..197a8af 100644 --- a/selector.el +++ b/selector.el @@ -63,6 +63,11 @@ Otherwise use the mode-line." :type 'bool :group 'selector) +(defcustom selector/add-to-file-name-history t + "If non-nil, file selected with selector/quick-pick-recent will be added to the mini-buffer filename history." + :type 'bool + :group 'selector) + (defcustom selector/mode-hook nil "Hook called at the end of the selector mode initialization." :type 'hook @@ -344,18 +349,23 @@ There seems to be header-line refreshing problems with emacs21." ) (defun selector/find-file (filename) + (if selector/add-to-file-name-history + (add-to-list 'file-name-history filename t)) + (find-file filename)) + +(defun selector/pick-file (filename) "Callback function for `selector/quick-pick-recent'. When called with a universal argument, allows the user to edit the filename." (interactive) (if current-prefix-arg - (find-file (read-file-name - "Find file: " - (file-name-directory filename) - nil - nil - (file-name-nondirectory filename))) - (find-file filename))) + (selector/find-file (read-file-name + "Find file: " + (file-name-directory filename) + nil + nil + (file-name-nondirectory filename))) + (selector/find-file filename))) (defun selector/quick-pick-recent () "Open a file picked in `recentf-list' with the dynamic @@ -373,7 +383,7 @@ prefix argument, allows to edit the filename after selection." (cons (selector/filename-to-string s) s)) recentf-list) - 'selector/find-file + 'selector/pick-file "*selector find-file*" ))