From bb478870e23a25fff8c80b2e4d21d7f2f66b5038 Mon Sep 17 00:00:00 2001 From: James Bunton Date: Fri, 22 Jul 2016 21:21:28 +1000 Subject: [PATCH] recentf-mode should be quiet --- init.el | 1 + lisp/my-other-modes.el | 5 ----- lisp/my-recentf.el | 31 +++++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 lisp/my-recentf.el diff --git a/init.el b/init.el index 7b90112..398500c 100644 --- a/init.el +++ b/init.el @@ -11,6 +11,7 @@ (load-library "my-gui") (load-library "my-keys") (load-library "my-completion") +(load-library "my-recentf") (load-library "my-other-modes") (load-library "my-minor-modes") (load-library "my-file-modes") diff --git a/lisp/my-other-modes.el b/lisp/my-other-modes.el index de34dfc..58848b6 100644 --- a/lisp/my-other-modes.el +++ b/lisp/my-other-modes.el @@ -14,11 +14,6 @@ (unless (eq ibuffer-sorting-mode 'alphabetic) (ibuffer-do-sort-by-alphabetic)))) -(require 'recentf) -(recentf-mode 1) -(setq recentf-max-saved-items 50) -(run-at-time nil 600 'recentf-save-list) - (setq require-final-newline t) (require 'restclient) diff --git a/lisp/my-recentf.el b/lisp/my-recentf.el new file mode 100644 index 0000000..977d153 --- /dev/null +++ b/lisp/my-recentf.el @@ -0,0 +1,31 @@ +(require 'recentf) + +(setq recentf-exclude '("recentf")) +(setq recentf-max-saved-items 1000) +(run-with-idle-timer 30 t #'my/recentf-periodic) + +(defvar my/recentf-list-prev nil) + +(defun my/recentf-periodic () + (my/with-silence #'recentf-cleanup) + (unless (equal recentf-list my/recentf-list-prev) + (my/with-silence #'recentf-save-list) + (setq my/recentf-list-prev recentf-list))) + +(defun my/with-silence (function) + (advice-add 'message :around #'my/advice/silent-message) + (advice-add 'write-region :around #'my/advice/silent-write-region) + (unwind-protect + (funcall function) + (advice-remove 'message #'my/advice/silent-message) + (advice-remove 'write-region #'my/advice/silent-write-region))) + +(defun my/advice/silent-write-region (original-function &rest args) + (setf (nth 4 args) 'nomsg) + (apply original-function args) + (set-buffer-modified-p nil)) + +(defun my/advice/silent-message (original-function &rest args) + (apply #'format args)) + +(recentf-mode 1) -- 2.39.2