commit - deed628864ee2f765ad8f278be075050ab7776b5
commit + 4a2b1b6cc96593fe80ccb13eccdd933bc41f21b4
blob - 2e29f7fde721051b463a47f05c6968a0e6106391
blob + e4d2c76e4526238abcdd64b08f21930827fac7b1
--- init.el
+++ init.el
load-path)
(require 'lh)
+(require 'lh-resurrect)
(require 'iso-transl)
(with-eval-after-load 'paredit
'(inferior-lisp-program "ros run")
'(kept-new-versions 10)
'(kept-old-versions 5)
+ '(lh/global-resurrect-mode t)
'(marginalia-mode t)
'(mouse-wheel-progressive-speed nil)
'(mouse-wheel-scroll-amount '(5 ((shift) . hscroll) ((meta)) ((control) . text-scale)))
blob - /dev/null
blob + 552275fa9244b0893f5a71a0b5862d40ada37d36 (mode 644)
--- /dev/null
+++ lisp/lh-resurrect.el
+;; -*- lexical-binding: t; -*-
+
+(defgroup lh/resurrect nil
+ "Records killed buffers and allows them to be resurrected."
+ :group 'convenience
+ :prefix "lh/resurrect")
+
+(defvar lh/resurrect-recently-killed nil)
+
+(defvar lh/resurrect-mode-map
+ (let ((map (make-sparse-keymap)))
+ (define-key map (kbd "C-x R") #'lh/resurrect-latest)
+ map))
+
+(defun lh/resurrect--kill-buffer-hook ()
+ (when buffer-file-name
+ (push buffer-file-name lh/resurrect-recently-killed)))
+
+(defun lh/resurrect-latest ()
+ (interactive)
+ (when-let (fn (pop lh/resurrect-recently-killed))
+ (find-file fn)))
+
+(define-minor-mode lh/global-resurrect-mode
+ "Records killed buffers and allows them to be resurrected."
+ :global t
+ :group 'lh/resurrect
+ :keymap lh/resurrect-mode-map
+ (if lh/global-resurrect-mode
+ (add-hook 'kill-buffer-hook #'lh/resurrect--kill-buffer-hook)
+ (remove-hook 'kill-buffer-hook #'lh/resurrect--kill-buffer-hook)))
+
+(provide 'lh-resurrect)