Sfoglia il codice sorgente

Update notmuch shortcuts #emacs

Colin Powell 5 anni fa
parent
commit
40451d1f3f
1 ha cambiato i file con 124 aggiunte e 124 eliminazioni
  1. 124 124
      emacs/.config/doom/+mail.el

+ 124 - 124
emacs/.config/doom/+mail.el

@@ -20,7 +20,7 @@
   (map!
    (:leader
      (:prefix "e"
-       :desc "Open (i)nbox"     "i" #'=mail
+       :desc "Open (i)nbox"     "i" #'=notmuch
        :desc "Open (n)otmuch"   "n" #'notmuch
        :desc "(C)ompose mail"   "c" #'notmuch-mua-new-mail))))
 
@@ -34,8 +34,8 @@
   ;; (add-hook 'notmuch-message-mode-hook '+mail/buffer-face-mode-notmuch)
   (add-hook 'notmuch-message-mode-hook (lambda () (set (make-local-variable 'company-backends) '(notmuch-company (company-ispell :with company-yasnippet)))))
   (add-hook 'notmuch-tree-mode-hook (lambda () (setq-local line-spacing nil)))
-  (remove-hook 'message-mode-hook #'turn-on-auto-fill)
-  (remove-hook 'notmuch-message-mode-hook #'turn-on-auto-fill)
+  ;;(remove-hook 'message-mode-hook #'turn-on-auto-fill)
+  ;;(remove-hook 'notmuch-message-mode-hook #'turn-on-auto-fill)
   ;; (push 'notmuch-tree-mode evil-snipe-disabled-modes)
   ;; (push 'notmuch-hello-mode evil-snipe-disabled-modes)
   ;; (push 'notmuch-search-mode evil-snipe-disabled-modes)
@@ -318,127 +318,127 @@ matched."
         nil))))
 
 ;;;###autoload
-(defun +mail/notmuch-hello-insert-searches (title query-list &rest options)
-  "Insert a section with TITLE showing a list of buttons made from QUERY-LIST.
-QUERY-LIST should ideally be a plist but for backwards
-compatibility other forms are also accepted (see
-`notmuch-saved-searches' for details).  The plist should
-contain keys :name and :query; if :count-query is also present
-then it specifies an alternate query to be used to generate the
-count for the associated search.
-Supports the following entries in OPTIONS as a plist:
-:initially-hidden - if non-nil, section will be hidden on startup
-:show-empty-searches - show buttons with no matching messages
-:hide-if-empty - hide if no buttons would be shown
-   (only makes sense without :show-empty-searches)
-:filter - This can be a function that takes the search query as its argument and
-   returns a filter to be used in conjuction with the query for that search or nil
-   to hide the element. This can also be a string that is used as a combined with
-   each query using \"and\".
-:filter-count - Separate filter to generate the count displayed each search. Accepts
-   the same values as :filter. If :filter and :filter-count are specified, this
-   will be used instead of :filter, not in conjunction with it."
-  (widget-insert (propertize title 'face 'org-agenda-structure))
-  (if (and notmuch-hello-first-run (plist-get options :initially-hidden))
-      (add-to-list 'notmuch-hello-hidden-sections title))
-  (let ((is-hidden (member title notmuch-hello-hidden-sections))
-        (widget-push-button-prefix "")
-        (widget-push-button-suffix "")
-        (start (point)))
-    (if is-hidden
-        (widget-create 'push-button
-                       :notify `(lambda (widget &rest ignore)
-                                  (setq notmuch-hello-hidden-sections
-                                        (delete ,title notmuch-hello-hidden-sections))
-                                  (notmuch-hello-update))
-                       (propertize " +" 'face 'org-agenda-structure))
-      (widget-create 'push-button
-                     :notify `(lambda (widget &rest ignore)
-                                (add-to-list 'notmuch-hello-hidden-sections
-                                             ,title)
-                                (notmuch-hello-update))
-                     " -"))
-    (widget-insert "\n")
-    (when (not is-hidden)
-      (let ((searches (apply 'notmuch-hello-query-counts query-list options)))
-        (when (or (not (plist-get options :hide-if-empty))
-                  searches)
-          (widget-insert "\n")
-          (notmuch-hello-insert-buttons searches)
-          (indent-rigidly start (point) notmuch-hello-indent))))))
-
-;;;###autoload
-(defun +mail/notmuch-hello-insert-saved-searches ()
-  "Insert the saved-searches section."
-  (let ((searches (notmuch-hello-query-counts
-                   (if notmuch-saved-search-sort-function
-                       (funcall notmuch-saved-search-sort-function
-                                notmuch-saved-searches)
-                     notmuch-saved-searches)
-                   :show-empty-searches notmuch-show-empty-saved-searches)))
-    (when searches
-      (widget-insert (propertize "Notmuch" 'face 'org-agenda-date-today))
-      (widget-insert "\n\n")
-      (widget-insert (propertize "Saved searches" 'face 'org-agenda-structure))
-      (widget-insert "\n\n")
-      (let ((start (point)))
-        (notmuch-hello-insert-buttons searches)
-        (indent-rigidly start (point) notmuch-hello-indent)))))
-
-;;;###autoload
-(defun +mail/notmuch-hello-insert-buttons (searches)
-  "Insert buttons for SEARCHES.
-SEARCHES must be a list of plists each of which should contain at
-least the properties :name NAME :query QUERY and :count COUNT,
-where QUERY is the query to start when the button for the
-corresponding entry is activated, and COUNT should be the number
-of messages matching the query.  Such a plist can be computed
-with `notmuch-hello-query-counts'."
-  (let* ((widest (notmuch-hello-longest-label searches))
-         (tags-and-width (notmuch-hello-tags-per-line widest))
-         (tags-per-line (car tags-and-width))
-         (column-width (cdr tags-and-width))
-         (column-indent 0)
-         (count 0)
-         (reordered-list (notmuch-hello-reflect searches tags-per-line))
-         ;; Hack the display of the buttons used.
-         (widget-push-button-prefix "")
-         (widget-push-button-suffix ""))
-    ;; dme: It feels as though there should be a better way to
-    ;; implement this loop than using an incrementing counter.
-    (mapc (lambda (elem)
-            ;; (not elem) indicates an empty slot in the matrix.
-            (when elem
-              (if (> column-indent 0)
-                  (widget-insert (make-string column-indent ? )))
-              (let* ((name (plist-get elem :name))
-                     (query (plist-get elem :query))
-                     (oldest-first (case (plist-get elem :sort-order)
-                                     (newest-first nil)
-                                     (oldest-first t)
-                                     (otherwise notmuch-search-oldest-first)))
-                     (search-type (eq (plist-get elem :search-type) 'tree))
-                     (msg-count (plist-get elem :count)))
-                (widget-insert (format "\n%5s "
-                                       (notmuch-hello-nice-number msg-count)))
-                (widget-create 'push-button
-                               :notify #'notmuch-hello-widget-search
-                               :notmuch-search-terms query
-                               :notmuch-search-oldest-first oldest-first
-                               :notmuch-search-type search-type
-                               name)
-                (setq column-indent
-                      (1+ (max 0 (- column-width (length name)))))))
-            (setq count (1+ count))
-            (when (eq (% count tags-per-line) 0)
-              (setq column-indent 0)
-              (widget-insert "\n")))
-          reordered-list)
-
-    ;; If the last line was not full (and hence did not include a
-    ;; carriage return), insert one now.
-    (unless (eq (% count tags-per-line) 0)
-      (widget-insert "\n"))))
+;(defun +mail/notmuch-hello-insert-searches (title query-list &rest options)
+;  "Insert a section with TITLE showing a list of buttons made from QUERY-LIST.
+;QUERY-LIST should ideally be a plist but for backwards
+;compatibility other forms are also accepted (see
+;`notmuch-saved-searches' for details).  The plist should
+;contain keys :name and :query; if :count-query is also present
+;then it specifies an alternate query to be used to generate the
+;count for the associated search.
+;Supports the following entries in OPTIONS as a plist:
+;:initially-hidden - if non-nil, section will be hidden on startup
+;:show-empty-searches - show buttons with no matching messages
+;:hide-if-empty - hide if no buttons would be shown
+;   (only makes sense without :show-empty-searches)
+;:filter - This can be a function that takes the search query as its argument and
+;   returns a filter to be used in conjuction with the query for that search or nil
+;   to hide the element. This can also be a string that is used as a combined with
+;   each query using \"and\".
+;:filter-count - Separate filter to generate the count displayed each search. Accepts
+;   the same values as :filter. If :filter and :filter-count are specified, this
+;   will be used instead of :filter, not in conjunction with it."
+;  (widget-insert (propertize title 'face 'org-agenda-structure))
+;  (if (and notmuch-hello-first-run (plist-get options :initially-hidden))
+;      (add-to-list 'notmuch-hello-hidden-sections title))
+;  (let ((is-hidden (member title notmuch-hello-hidden-sections))
+;        (widget-push-button-prefix "")
+;        (widget-push-button-suffix "")
+;        (start (point)))
+;    (if is-hidden
+;        (widget-create 'push-button
+;                       :notify `(lambda (widget &rest ignore)
+;                                  (setq notmuch-hello-hidden-sections
+;                                        (delete ,title notmuch-hello-hidden-sections))
+;                                  (notmuch-hello-update))
+;                       (propertize " +" 'face 'org-agenda-structure))
+;      (widget-create 'push-button
+;                     :notify `(lambda (widget &rest ignore)
+;                                (add-to-list 'notmuch-hello-hidden-sections
+;                                             ,title)
+;                                (notmuch-hello-update))
+;                     " -"))
+;    (widget-insert "\n")
+;    (when (not is-hidden)
+;      (let ((searches (apply 'notmuch-hello-query-counts query-list options)))
+;        (when (or (not (plist-get options :hide-if-empty))
+;                  searches)
+;          (widget-insert "\n")
+;          (notmuch-hello-insert-buttons searches)
+;          (indent-rigidly start (point) notmuch-hello-indent))))))
+;
+;;;;###autoload
+;(defun +mail/notmuch-hello-insert-saved-searches ()
+;  "Insert the saved-searches section."
+;  (let ((searches (notmuch-hello-query-counts
+;                   (if notmuch-saved-search-sort-function
+;                       (funcall notmuch-saved-search-sort-function
+;                                notmuch-saved-searches)
+;                     notmuch-saved-searches)
+;                   :show-empty-searches notmuch-show-empty-saved-searches)))
+;    (when searches
+;      (widget-insert (propertize "Notmuch" 'face 'org-agenda-date-today))
+;      (widget-insert "\n\n")
+;      (widget-insert (propertize "Saved searches" 'face 'org-agenda-structure))
+;      (widget-insert "\n\n")
+;      (let ((start (point)))
+;        (notmuch-hello-insert-buttons searches)
+;        (indent-rigidly start (point) notmuch-hello-indent)))))
+;
+;;;;###autoload
+;(defun +mail/notmuch-hello-insert-buttons (searches)
+;  "Insert buttons for SEARCHES.
+;SEARCHES must be a list of plists each of which should contain at
+;least the properties :name NAME :query QUERY and :count COUNT,
+;where QUERY is the query to start when the button for the
+;corresponding entry is activated, and COUNT should be the number
+;of messages matching the query.  Such a plist can be computed
+;with `notmuch-hello-query-counts'."
+;  (let* ((widest (notmuch-hello-longest-label searches))
+;         (tags-and-width (notmuch-hello-tags-per-line widest))
+;         (tags-per-line (car tags-and-width))
+;         (column-width (cdr tags-and-width))
+;         (column-indent 0)
+;         (count 0)
+;         (reordered-list (notmuch-hello-reflect searches tags-per-line))
+;         ;; Hack the display of the buttons used.
+;         (widget-push-button-prefix "")
+;         (widget-push-button-suffix ""))
+;    ;; dme: It feels as though there should be a better way to
+;    ;; implement this loop than using an incrementing counter.
+;    (mapc (lambda (elem)
+;            ;; (not elem) indicates an empty slot in the matrix.
+;            (when elem
+;              (if (> column-indent 0)
+;                  (widget-insert (make-string column-indent ? )))
+;              (let* ((name (plist-get elem :name))
+;                     (query (plist-get elem :query))
+;                     (oldest-first (case (plist-get elem :sort-order)
+;                                     (newest-first nil)
+;                                     (oldest-first t)
+;                                     (otherwise notmuch-search-oldest-first)))
+;                     (search-type (eq (plist-get elem :search-type) 'tree))
+;                     (msg-count (plist-get elem :count)))
+;                (widget-insert (format "\n%5s "
+;                                       (notmuch-hello-nice-number msg-count)))
+;                (widget-create 'push-button
+;                               :notify #'notmuch-hello-widget-search
+;                               :notmuch-search-terms query
+;                               :notmuch-search-oldest-first oldest-first
+;                               :notmuch-search-type search-type
+;                               name)
+;                (setq column-indent
+;                      (1+ (max 0 (- column-width (length name)))))))
+;            (setq count (1+ count))
+;            (when (eq (% count tags-per-line) 0)
+;              (setq column-indent 0)
+;              (widget-insert "\n")))
+;          reordered-list)
+;
+;    ;; If the last line was not full (and hence did not include a
+;    ;; carriage return), insert one now.
+;    (unless (eq (% count tags-per-line) 0)
+;      (widget-insert "\n"))))
 
 
 ; Kill email message buffers when you close them