summary refs log tree commit diff stats
path: root/lisp/user-save.el
diff options
context:
space:
mode:
authorCase Duckworth2022-03-30 18:14:56 -0500
committerCase Duckworth2022-03-30 18:14:56 -0500
commit29c287a8c31bebe9dd40b499415511c96a1ef6fa (patch)
tree8c12bc6172b651839060da33ac4d6d2af3141534 /lisp/user-save.el
parentUh (diff)
downloademacs-29c287a8c31bebe9dd40b499415511c96a1ef6fa.tar.gz
emacs-29c287a8c31bebe9dd40b499415511c96a1ef6fa.zip
I waited way too long to make this commit
Diffstat (limited to 'lisp/user-save.el')
-rw-r--r--lisp/user-save.el18
1 files changed, 17 insertions, 1 deletions
diff --git a/lisp/user-save.el b/lisp/user-save.el index 8e01af1..33b6f4c 100644 --- a/lisp/user-save.el +++ b/lisp/user-save.el
@@ -8,6 +8,8 @@
8 8
9;;; Code: 9;;; Code:
10 10
11(require 'cl-lib)
12
11(defgroup user-save nil 13(defgroup user-save nil
12 "Group for `user-save-mode' customizations." 14 "Group for `user-save-mode' customizations."
13 :group 'emacs 15 :group 'emacs
@@ -19,11 +21,16 @@ This option is only useful is `user-save-mode' is active when
19Emacs is killed." 21Emacs is killed."
20 :type 'boolean) 22 :type 'boolean)
21 23
24(defcustom user-save-inhibit '(special-mode)
25 "List of modes to inhibit `user-save-mode' from activation in."
26 :type '(repeat symbol))
27
22(defvar user-save-hook nil 28(defvar user-save-hook nil
23 "Hook to run when the user, not Emacs, saves the buffer.") 29 "Hook to run when the user, not Emacs, saves the buffer.")
24 30
25(defvar user-save-mode-map (let ((map (make-sparse-keymap))) 31(defvar user-save-mode-map (let ((map (make-sparse-keymap)))
26 (define-key map (kbd "C-x C-s") #'user-save-buffer) 32 (define-key map (kbd "C-x C-s") #'user-save-buffer)
33 (define-key map (kbd "C-x s") #'user-save-some-buffers)
27 map) 34 map)
28 "Keymap for `user-save-mode'. 35 "Keymap for `user-save-mode'.
29This map shadows the default map for `save-buffer'.") 36This map shadows the default map for `save-buffer'.")
@@ -81,7 +88,16 @@ whether the buffer needs to be saved."
81 (user-save-mode -1)) 88 (user-save-mode -1))
82 89
83;;;###autoload 90;;;###autoload
84(define-globalized-minor-mode user-save-global-mode user-save-mode user-save-mode 91(defun user-save-mode-in-some-buffers ()
92 "Enable `user-save-mode', but only in some buffers.
93The mode will not be enabled in buffers derived from modes in
94`user-save-inhibit', or in the minibuffer."
95 (unless (or (cl-some #'derived-mode-p user-save-inhibit)
96 (minibufferp))
97 (user-save-mode +1)))
98
99;;;###autoload
100(define-globalized-minor-mode user-save-global-mode user-save-mode user-save-mode-in-some-buffers
85 (if user-save-global-mode 101 (if user-save-global-mode
86 (when user-save-hook-into-kill-emacs 102 (when user-save-hook-into-kill-emacs
87 (add-hook 'kill-emacs-hook #'user-save-some-buffers)) 103 (add-hook 'kill-emacs-hook #'user-save-some-buffers))