]> code.delx.au - dotemacs/blob - lisp/my-recentf.el
counsel improvements
[dotemacs] / lisp / my-recentf.el
1 ;;; -*- lexical-binding: t -*-
2
3 (require 'recentf)
4
5 (setq recentf-exclude (list
6 "/\\.emacs\\.d/recentf$"
7 "/\\.git/"))
8
9 (setq recentf-max-saved-items 1000)
10
11 (run-with-idle-timer 30 t #'my/recentf-periodic)
12
13 (defvar my/recentf-list-prev nil)
14
15 (defun my/recentf-periodic ()
16 (when (my/recentf-has-changed)
17 (my/with-inhibit-message #'recentf-cleanup)
18 (when (equal recentf-list my/recentf-list-prev)
19 (my/with-inhibit-message #'recentf-save-list)
20 (setq my/recentf-list-prev recentf-list))))
21
22 (defun my/recentf-has-changed ()
23 (not (equal recentf-list my/recentf-list-prev)))
24
25 (defun my/with-inhibit-message (function)
26 (let ((old-inhibit-message inhibit-message))
27 (setq inhibit-message t)
28 (unwind-protect
29 (funcall function)
30 (setq inhibit-message old-inhibit-message))))
31
32 (recentf-mode 1)