From 744fb218108f822025798bcc91a8a11fae8cea4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Bidar?= Date: Thu, 17 Nov 2022 12:08:02 +0200 Subject: [PATCH] feat: Append default-filter and unread tag to searches MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Append default filter and unread-status to search filters. Signed-off-by: Björn Bidar --- elfeed-summary.el | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/elfeed-summary.el b/elfeed-summary.el index 55ff32c..e818abd 100644 --- a/elfeed-summary.el +++ b/elfeed-summary.el @@ -56,6 +56,10 @@ ;; `elfeed-org' is available (declare-function rmh-elfeed-org-process "elfeed-org") +;; XXX Compatibility with elfeed-autotag. If this function is bound, then +;; `elfeed-autotag' is available +(declare-function elfeed-autotag-process "elfeed-autoag") + (define-widget 'elfeed-summary-query 'lazy "Type widget for the `' form of `elfeed-summary-settings'." :offset 4 @@ -558,7 +562,12 @@ PARAMS is a form as described in `elfeed-summary-settings'." ;; To silence the byte compiler (boundp 'rmh-elfeed-org-files) (boundp 'rmh-elfeed-org-tree-id)) - (rmh-elfeed-org-process rmh-elfeed-org-files rmh-elfeed-org-tree-id))) + (rmh-elfeed-org-process rmh-elfeed-org-files rmh-elfeed-org-tree-id)) + (when (and (fboundp #'elfeed-autotag-process) + ;; To silence the byte compiler + (boundp 'elfeed-autotag-files) + (boundp 'elfeed-autotag-tree-id)) + (elfeed-autotag-process elfeed-autotag-files elfeed-autotag-tree-id))) (defun elfeed-summary--get-data () "Create the summary details tree from scratch. @@ -844,13 +853,19 @@ descent." (propertize (alist-get :title search-data) 'face - (alist-get 'faces data))))) + (alist-get 'faces data)))) + (filter-wdefault (concat (alist-get :filter search-data) " " + elfeed-summary-default-filter)) + (filter-wdefault (if elfeed-summary--only-unread + (concat filter-wdefault + (format "+%s " elfeed-summary-unread-tag)) + filter-wdefault))) (widget-create 'push-button :notify (lambda (widget &rest _) (elfeed-summary--open-elfeed) (elfeed-search-set-filter - (widget-get widget :filter))) - :filter (alist-get :filter search-data) + filter-wdefault)) + :filter filter-wdefault text) (widget-insert "\n")))