mirror of
https://github.com/pestctrl/emacs-config.git
synced 2026-06-14 12:21:20 +00:00
Refactor A LITTLE BIT the skip function
Still not perfect, should be something macroexpandible
This commit is contained in:
parent
86257cca6a
commit
cb12fc2cfd
1 changed files with 17 additions and 18 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in a new issue