feat(tools/emacs): Bindings for (un)collapsing notmuch subthreads
Modifies notmuch-show-open-or-close-subthread to take a parameter instead of using prefix to toggle the argument, and binds that function to C-, and C-. in notmuch-show-mode-map to enable convenient collapsing/uncollapsing of subthreads from point.
This commit is contained in:
parent
5aaeaa406a
commit
40d13cc87f
2 changed files with 15 additions and 7 deletions
|
@ -41,4 +41,14 @@
|
|||
;; Insert TODO comments
|
||||
(global-set-key (kbd "C-c t") 'insert-todo-comment)
|
||||
|
||||
;; Add subthread collapsing to notmuch-show.
|
||||
;;
|
||||
;; C-, closes a thread, C-. opens a thread. This mirrors stepping
|
||||
;; in/out of definitions.
|
||||
(define-key notmuch-show-mode-map (kbd "C-,") 'notmuch-show-open-or-close-subthread)
|
||||
(define-key notmuch-show-mode-map (kbd "C-.")
|
||||
(lambda ()
|
||||
(interactive)
|
||||
(notmuch-show-open-or-close-subthread t))) ;; open
|
||||
|
||||
(provide 'bindings)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
(require 'chart)
|
||||
(require 'dash)
|
||||
(require 'map)
|
||||
|
||||
(defun load-file-if-exists (filename)
|
||||
(if (file-exists-p filename)
|
||||
|
@ -289,17 +290,14 @@
|
|||
(-map #'car tag-counts) "Tag:"
|
||||
(-map #'cdr tag-counts) "Count:")))
|
||||
|
||||
(defun notmuch-show-open-or-close-subthread ()
|
||||
"Open or close the subthread from (and including) the message
|
||||
at point. Opens by default, closes if the prefix argument is
|
||||
set."
|
||||
(defun notmuch-show-open-or-close-subthread (&optional open)
|
||||
"Open or close the subthread from (and including) the message at point."
|
||||
(interactive)
|
||||
(save-excursion
|
||||
(let ((current-depth (map-elt (notmuch-show-get-message-properties) :depth 0)))
|
||||
(loop do (notmuch-show-message-visible (notmuch-show-get-message-properties)
|
||||
(not current-prefix-arg))
|
||||
(loop do (notmuch-show-message-visible (notmuch-show-get-message-properties) open)
|
||||
until (or (not (notmuch-show-goto-message-next))
|
||||
(= (map-elt (notmuch-show-get-message-properties) :depth 0) current-depth)))))
|
||||
(= (map-elt (notmuch-show-get-message-properties)) current-depth)))))
|
||||
(force-window-update))
|
||||
|
||||
(provide 'functions)
|
||||
|
|
Loading…
Reference in a new issue