Function: denote--handle-save-and-kill-buffer
denote--handle-save-and-kill-buffer is a byte-compiled function
defined in denote.el.
Signature
(denote--handle-save-and-kill-buffer MODE FILE INITIAL-STATE)
Documentation
Save and kill buffer of FILE according to MODE and INITIAL-STATE.
The values of denote-save-buffers and denote-kill-buffers are
used to decide whether to save and/or kill the buffer visiting
FILE.
MODE is one of the symbols creation or rename.
INITIAL-STATE is nil or one of the following symbols:
not-visited, visited. If a buffer was already visited at the
beginning of a rename operation, it is NOT killed automatically.
If a buffer needs to be killed, it is also automatically saved,
no matter the value of denote-save-buffers.
Source Code
;; Defined in ~/.emacs.d/elpa/denote-4.2.3/denote.el
(defun denote--handle-save-and-kill-buffer (mode file initial-state)
"Save and kill buffer of FILE according to MODE and INITIAL-STATE.
The values of `denote-save-buffers' and `denote-kill-buffers' are
used to decide whether to save and/or kill the buffer visiting
FILE.
MODE is one of the symbols `creation' or `rename'.
INITIAL-STATE is nil or one of the following symbols:
`not-visited', `visited'. If a buffer was already visited at the
beginning of a rename operation, it is NOT killed automatically.
If a buffer needs to be killed, it is also automatically saved,
no matter the value of `denote-save-buffers'."
(let* ((do-kill-buffer (and (not (eq initial-state 'visited))
(or (eq denote-kill-buffers t)
(and (eq mode 'creation)
(eq denote-kill-buffers 'on-creation))
(and (eq mode 'rename)
(eq denote-kill-buffers 'on-rename)))))
(do-save-buffer (or do-kill-buffer denote-save-buffers)))
(when-let* ((buffer (find-buffer-visiting file)))
(when do-save-buffer (with-current-buffer buffer (save-buffer)))
(when do-kill-buffer (kill-buffer buffer)))))