mirror of
https://github.com/protesilaos/denote.git
synced 2026-09-10 07:16:20 -04:00
Use a major mode instead of a function that sets up special-mode
It is about the same code plus we can easily have a keymap there, get the option of a hook, and potentially are more flexible with what we can do.
This commit is contained in:
parent
a1148a5da5
commit
8ab4fac181
32
denote.el
32
denote.el
|
|
@ -1828,16 +1828,26 @@ If REVERSE is nil, use the value of the user option
|
|||
(or sort-by-component denote-sort-dired-default-sort-component 'identifier)
|
||||
(or reverse denote-sort-dired-default-reverse-sort nil)))
|
||||
|
||||
(defun denote-sort-dired--revert-to-empty ()
|
||||
"Revert current Dired buffer to an empty buffer with a warning."
|
||||
(when (derived-mode-p 'dired-mode)
|
||||
(let ((inhibit-read-only t))
|
||||
(special-mode)
|
||||
(erase-buffer)
|
||||
(delete-all-overlays)
|
||||
(insert (propertize "Denote Dired" 'face 'bold))
|
||||
(insert "\n\n")
|
||||
(insert (propertize "No more matching files" 'face 'warning)))))
|
||||
(defvar denote-dired-empty-mode-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map (kbd "q") #'quit-window)
|
||||
(define-key map (kbd "k") #'kill-buffer-and-window)
|
||||
;; TODO 2025-07-08: Maybe this is worth implementing. The idea is
|
||||
;; to go back to the search.
|
||||
;;
|
||||
;; (define-key map (kbd "g") #'denote-dired-empty-revert-buffer)
|
||||
map)
|
||||
"Key map for `denote-dired-empty-mode'.")
|
||||
|
||||
(define-derived-mode denote-dired-empty-mode special-mode "Denote Dired Empty"
|
||||
"Major mode of a `denote-sort-dired' that no longer matches anything."
|
||||
:interactive nil
|
||||
(let ((inhibit-read-only t))
|
||||
(erase-buffer)
|
||||
(delete-all-overlays)
|
||||
(insert (propertize "Denote Dired" 'face 'bold))
|
||||
(insert "\n\n")
|
||||
(insert (propertize "No more matching files" 'face 'warning))))
|
||||
|
||||
(defun denote-sort-dired--prepare-buffer (directory files-fn dired-name buffer-name)
|
||||
"Prepare buffer for `denote-sort-dired'.
|
||||
|
|
@ -1863,7 +1873,7 @@ BUFFER-NAME is the name of the resulting buffer."
|
|||
(progn
|
||||
(setq-local dired-directory (cons dired-name files))
|
||||
(dired-revert))
|
||||
(denote-sort-dired--revert-to-empty)))))
|
||||
(denote-dired-empty-mode)))))
|
||||
buffer-name))
|
||||
|
||||
(defun denote-sort-dired--find-common-directory (directories)
|
||||
|
|
|
|||
Loading…
Reference in a new issue