Refactor A LITTLE BIT the skip function

Still not perfect, should be something macroexpandible
This commit is contained in:
Benson Chu 2022-09-24 13:33:17 -05:00
parent 86257cca6a
commit cb12fc2cfd

View file

@ -168,6 +168,21 @@
((org-ql-block-header "Hold projects")
(org-ql-indent-levels t)))))
(defun my/org-agenda-skip-function (tag)
(let ((skip-fun-name (intern (format "my/org-agenda-skip-unless-%s-tag" tag))))
(eval
`(defun ,skip-fun-name ()
(let ((tags (org-get-tags)))
(unless (and (or (member ,tag tags)
(member "PLAN" tags))
(let ((delayed (org-entry-get (point) "DELAYED")))
(or (null delayed)
(org-time< delayed (org-matcher-time "<now>"))))
(not (member (org-get-todo-state) '("HOLD" "TICKLER"))))
(outline-next-heading)
(point)))))
(eval `(function ,skip-fun-name))))
(defun org-agenda-minimal-view (tag)
`((org-ql-block '(and (tags ,tag)
(todo "TODO" "ONE" "META" "META1" "EMPTY" "SEQ")
@ -182,15 +197,7 @@
(org-ql-indent-levels t)))
(agenda ""
((org-agenda-show-log '(closed clock))
(org-agenda-skip-function (lambda ()
(let ((tags (org-get-tags)))
(unless (and (or (member ,tag tags)
(member "PLAN" tags))
(let ((delayed (org-entry-get (point) "DELAYED")))
(or (null delayed)
(org-time< delayed (org-matcher-time "<now>"))))
(not (member (org-get-todo-state) '("HOLD" "TICKLER"))))
(outline-next-heading)))))
(org-agenda-skip-function #',(my/org-agenda-skip-function tag))
(org-super-agenda-groups '((:name "Delayed" :pred
((lambda (item)
(when-let (marker (or (get-text-property 0 'org-marker item)
@ -230,15 +237,7 @@
(org-ql-indentor-function #'my/pinned-indent-level)))
(agenda ""
((org-agenda-show-log '(closed clock))
(org-agenda-skip-function (lambda ()
(let ((tags (org-get-tags)))
(unless (and (or (member ,tag tags)
(member "PLAN" tags))
(let ((delayed (org-entry-get (point) "DELAYED")))
(or (null delayed)
(org-time< delayed (org-matcher-time "<now>"))))
(not (member (org-get-todo-state) '("HOLD" "TICKLER"))))
(outline-next-heading)))))
(org-agenda-skip-function #',(my/org-agenda-skip-function tag))
(org-super-agenda-groups '((:name "Delayed" :pred
((lambda (item)
(when-let (marker (or (get-text-property 0 'org-marker item)