(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")
(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)
--- /dev/null
+(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)