1 ;;; -*- lexical-binding: t -*-
5 (setq recentf-exclude (list
9 (setq recentf-max-saved-items 1000)
11 (run-with-idle-timer 30 t #'my/recentf-periodic)
13 (defvar my/recentf-list-prev nil)
15 (defun my/recentf-periodic ()
16 (my/with-silence #'recentf-cleanup)
17 (unless (equal recentf-list my/recentf-list-prev)
18 (my/with-silence #'recentf-save-list)
19 (setq my/recentf-list-prev recentf-list)))
21 (defun my/with-silence (function)
22 (advice-add 'message :around #'my/with-silence/advice-message)
23 (advice-add 'write-region :around #'my/with-silence/advice-write-region)
26 (advice-remove 'message #'my/with-silence/advice-message)
27 (advice-remove 'write-region #'my/with-silence/advice-write-region)))
29 (defun my/with-silence/advice-message (original-function &rest args)
30 (ignore original-function)
31 (apply #'format args))
33 (defun my/with-silence/advice-write-region (original-function &rest args)
34 (setf (nth 4 args) 'nomsg)
35 (apply original-function args)
36 (set-buffer-modified-p nil))