fix agenda loading bug
This commit is contained in:
parent
df1d1c328b
commit
40f20528c6
60
conf.el
60
conf.el
|
@ -317,34 +317,6 @@
|
||||||
(setq org-agenda-dim-blocked-tasks nil)
|
(setq org-agenda-dim-blocked-tasks nil)
|
||||||
(setq org-agenda-compact-blocks t)
|
(setq org-agenda-compact-blocks t)
|
||||||
|
|
||||||
(setq org-agenda-tags-todo-honor-ignore-options t)
|
|
||||||
(setq org-agenda-custom-commands
|
|
||||||
`(("t"
|
|
||||||
"Task view"
|
|
||||||
((agenda "" nil)
|
|
||||||
,(macroexpand '(nd/agenda-base-task-command "Next Project" 'nd/skip-non-next-project-tasks))
|
|
||||||
,(macroexpand '(nd/agenda-base-task-command "Waiting Project" 'nd/skip-non-waiting-project-tasks))
|
|
||||||
,(macroexpand '(nd/agenda-base-task-command "Atomic" 'nd/skip-non-atomic-tasks))
|
|
||||||
,(macroexpand '(nd/agenda-base-task-command "Held Project" 'nd/skip-non-held-project-tasks))))
|
|
||||||
("o"
|
|
||||||
"Project Overview"
|
|
||||||
(,(macroexpand '(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Stuck" 10))
|
|
||||||
,(macroexpand '(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Waiting" 30))
|
|
||||||
,(macroexpand '(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Active" 40))
|
|
||||||
,(macroexpand '(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Held" 20))))
|
|
||||||
("r"
|
|
||||||
"Refile and errors"
|
|
||||||
((tags "REFILE" ((org-agenda-overriding-header "Tasks to Refile")) (org-tags-match-list-sublevels nil))
|
|
||||||
,(macroexpand '(nd/agenda-base-task-command "Discontinous Project" 'nd/skip-non-discontinuous-project-tasks))
|
|
||||||
,(macroexpand '(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Unmarked Completed" 0))
|
|
||||||
,(macroexpand '(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/" "Invalid" 50))))
|
|
||||||
("a"
|
|
||||||
"Archive"
|
|
||||||
((tags "-REFILE/"
|
|
||||||
((org-agenda-overriding-header "Atomic Tasks to Archive")
|
|
||||||
(org-agenda-skip-function 'nd/skip-non-archivable-atomic-tasks)
|
|
||||||
(org-tags-match-list-sublevels nil)))))))
|
|
||||||
|
|
||||||
(defvar nd/agenda-limit-project-toplevel t
|
(defvar nd/agenda-limit-project-toplevel t
|
||||||
"used to filter projects by all levels or top-level only")
|
"used to filter projects by all levels or top-level only")
|
||||||
|
|
||||||
|
@ -355,7 +327,7 @@
|
||||||
(org-agenda-redo))
|
(org-agenda-redo))
|
||||||
(message "Showing %s project view in agenda" (if nd/agenda-limit-project-toplevel "toplevel" "complete")))
|
(message "Showing %s project view in agenda" (if nd/agenda-limit-project-toplevel "toplevel" "complete")))
|
||||||
|
|
||||||
(defmacro nd/agenda-base-task-command (keyword skip-fun)
|
(defun nd/agenda-base-task-command (keyword skip-fun)
|
||||||
"shorter syntax to define task agenda commands"
|
"shorter syntax to define task agenda commands"
|
||||||
`(tags-todo
|
`(tags-todo
|
||||||
"-NA-REFILE/!"
|
"-NA-REFILE/!"
|
||||||
|
@ -364,7 +336,7 @@
|
||||||
(org-agenda-todo-ignore-with-date 'all)
|
(org-agenda-todo-ignore-with-date 'all)
|
||||||
(org-agenda-sorting-strategy '(category-keep)))))
|
(org-agenda-sorting-strategy '(category-keep)))))
|
||||||
|
|
||||||
(defmacro nd/agenda-base-project-command (match keyword statuscode)
|
(defun nd/agenda-base-project-command (match keyword statuscode)
|
||||||
"shorter syntax to define project agenda commands"
|
"shorter syntax to define project agenda commands"
|
||||||
`(tags
|
`(tags
|
||||||
,match
|
,match
|
||||||
|
@ -627,6 +599,34 @@ Using this scheme, we simply compare the magnitude of the statuscodes"
|
||||||
;; t if children match the statuscode we ask
|
;; t if children match the statuscode we ask
|
||||||
(if (= statuscode child-statuscode) keyword))))))))
|
(if (= statuscode child-statuscode) keyword))))))))
|
||||||
|
|
||||||
|
(setq org-agenda-tags-todo-honor-ignore-options t)
|
||||||
|
(setq org-agenda-custom-commands
|
||||||
|
`(("t"
|
||||||
|
"Task view"
|
||||||
|
((agenda "" nil)
|
||||||
|
,(nd/agenda-base-task-command "Next Project" ''nd/skip-non-next-project-tasks)
|
||||||
|
,(nd/agenda-base-task-command "Waiting Project" ''nd/skip-non-waiting-project-tasks)
|
||||||
|
,(nd/agenda-base-task-command "Atomic" ''nd/skip-non-atomic-tasks)
|
||||||
|
,(nd/agenda-base-task-command "Held Project" ''nd/skip-non-held-project-tasks)))
|
||||||
|
("o"
|
||||||
|
"Project Overview"
|
||||||
|
(,(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Stuck" 10)
|
||||||
|
,(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Waiting" 30)
|
||||||
|
,(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Active" 40)
|
||||||
|
,(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Held" 20)))
|
||||||
|
("r"
|
||||||
|
"Refile and errors"
|
||||||
|
((tags "REFILE" ((org-agenda-overriding-header "Tasks to Refile")) (org-tags-match-list-sublevels nil))
|
||||||
|
,(nd/agenda-base-task-command "Discontinous Project" ''nd/skip-non-discontinuous-project-tasks)
|
||||||
|
,(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Unmarked Completed" 0)
|
||||||
|
,(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/" "Invalid" 50)))
|
||||||
|
("A"
|
||||||
|
"Archive"
|
||||||
|
((tags "-NA-REFILE/"
|
||||||
|
((org-agenda-overriding-header "Atomic Tasks to Archive")
|
||||||
|
(org-agenda-skip-function 'nd/skip-non-archivable-atomic-tasks)
|
||||||
|
(org-tags-match-list-sublevels nil)))))))
|
||||||
|
|
||||||
(evil-define-key 'motion org-agenda-mode-map "T" 'nd/toggle-project-toplevel-display)
|
(evil-define-key 'motion org-agenda-mode-map "T" 'nd/toggle-project-toplevel-display)
|
||||||
|
|
||||||
(setq org-agenda-span 'day)
|
(setq org-agenda-span 'day)
|
||||||
|
|
66
conf.org
66
conf.org
|
@ -480,37 +480,6 @@ I use tags for filtering in the agenda view to narrow down tasks by project/cont
|
||||||
(setq org-agenda-dim-blocked-tasks nil)
|
(setq org-agenda-dim-blocked-tasks nil)
|
||||||
(setq org-agenda-compact-blocks t)
|
(setq org-agenda-compact-blocks t)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
*** custom commands
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(setq org-agenda-tags-todo-honor-ignore-options t)
|
|
||||||
(setq org-agenda-custom-commands
|
|
||||||
`(("t"
|
|
||||||
"Task view"
|
|
||||||
((agenda "" nil)
|
|
||||||
,(macroexpand '(nd/agenda-base-task-command "Next Project" 'nd/skip-non-next-project-tasks))
|
|
||||||
,(macroexpand '(nd/agenda-base-task-command "Waiting Project" 'nd/skip-non-waiting-project-tasks))
|
|
||||||
,(macroexpand '(nd/agenda-base-task-command "Atomic" 'nd/skip-non-atomic-tasks))
|
|
||||||
,(macroexpand '(nd/agenda-base-task-command "Held Project" 'nd/skip-non-held-project-tasks))))
|
|
||||||
("o"
|
|
||||||
"Project Overview"
|
|
||||||
(,(macroexpand '(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Stuck" 10))
|
|
||||||
,(macroexpand '(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Waiting" 30))
|
|
||||||
,(macroexpand '(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Active" 40))
|
|
||||||
,(macroexpand '(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Held" 20))))
|
|
||||||
("r"
|
|
||||||
"Refile and errors"
|
|
||||||
((tags "REFILE" ((org-agenda-overriding-header "Tasks to Refile")) (org-tags-match-list-sublevels nil))
|
|
||||||
,(macroexpand '(nd/agenda-base-task-command "Discontinous Project" 'nd/skip-non-discontinuous-project-tasks))
|
|
||||||
,(macroexpand '(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Unmarked Completed" 0))
|
|
||||||
,(macroexpand '(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/" "Invalid" 50))))
|
|
||||||
("a"
|
|
||||||
"Archive"
|
|
||||||
((tags "-NA-REFILE/"
|
|
||||||
((org-agenda-overriding-header "Atomic Tasks to Archive")
|
|
||||||
(org-agenda-skip-function 'nd/skip-non-archivable-atomic-tasks)
|
|
||||||
(org-tags-match-list-sublevels nil)))))))
|
|
||||||
|
|
||||||
#+END_SRC
|
|
||||||
*** interactive view functions
|
*** interactive view functions
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(defvar nd/agenda-limit-project-toplevel t
|
(defvar nd/agenda-limit-project-toplevel t
|
||||||
|
@ -523,7 +492,7 @@ I use tags for filtering in the agenda view to narrow down tasks by project/cont
|
||||||
(org-agenda-redo))
|
(org-agenda-redo))
|
||||||
(message "Showing %s project view in agenda" (if nd/agenda-limit-project-toplevel "toplevel" "complete")))
|
(message "Showing %s project view in agenda" (if nd/agenda-limit-project-toplevel "toplevel" "complete")))
|
||||||
|
|
||||||
(defmacro nd/agenda-base-task-command (keyword skip-fun)
|
(defun nd/agenda-base-task-command (keyword skip-fun)
|
||||||
"shorter syntax to define task agenda commands"
|
"shorter syntax to define task agenda commands"
|
||||||
`(tags-todo
|
`(tags-todo
|
||||||
"-NA-REFILE/!"
|
"-NA-REFILE/!"
|
||||||
|
@ -532,7 +501,7 @@ I use tags for filtering in the agenda view to narrow down tasks by project/cont
|
||||||
(org-agenda-todo-ignore-with-date 'all)
|
(org-agenda-todo-ignore-with-date 'all)
|
||||||
(org-agenda-sorting-strategy '(category-keep)))))
|
(org-agenda-sorting-strategy '(category-keep)))))
|
||||||
|
|
||||||
(defmacro nd/agenda-base-project-command (match keyword statuscode)
|
(defun nd/agenda-base-project-command (match keyword statuscode)
|
||||||
"shorter syntax to define project agenda commands"
|
"shorter syntax to define project agenda commands"
|
||||||
`(tags
|
`(tags
|
||||||
,match
|
,match
|
||||||
|
@ -803,6 +772,37 @@ These are the building blocks for skip functions.
|
||||||
;; t if children match the statuscode we ask
|
;; t if children match the statuscode we ask
|
||||||
(if (= statuscode child-statuscode) keyword))))))))
|
(if (= statuscode child-statuscode) keyword))))))))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
*** custom commands
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq org-agenda-tags-todo-honor-ignore-options t)
|
||||||
|
(setq org-agenda-custom-commands
|
||||||
|
`(("t"
|
||||||
|
"Task view"
|
||||||
|
((agenda "" nil)
|
||||||
|
,(nd/agenda-base-task-command "Next Project" ''nd/skip-non-next-project-tasks)
|
||||||
|
,(nd/agenda-base-task-command "Waiting Project" ''nd/skip-non-waiting-project-tasks)
|
||||||
|
,(nd/agenda-base-task-command "Atomic" ''nd/skip-non-atomic-tasks)
|
||||||
|
,(nd/agenda-base-task-command "Held Project" ''nd/skip-non-held-project-tasks)))
|
||||||
|
("o"
|
||||||
|
"Project Overview"
|
||||||
|
(,(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Stuck" 10)
|
||||||
|
,(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Waiting" 30)
|
||||||
|
,(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Active" 40)
|
||||||
|
,(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Held" 20)))
|
||||||
|
("r"
|
||||||
|
"Refile and errors"
|
||||||
|
((tags "REFILE" ((org-agenda-overriding-header "Tasks to Refile")) (org-tags-match-list-sublevels nil))
|
||||||
|
,(nd/agenda-base-task-command "Discontinous Project" ''nd/skip-non-discontinuous-project-tasks)
|
||||||
|
,(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/!" "Unmarked Completed" 0)
|
||||||
|
,(nd/agenda-base-project-command "-NA-REFILE-ATOMIC/" "Invalid" 50)))
|
||||||
|
("A"
|
||||||
|
"Archive"
|
||||||
|
((tags "-NA-REFILE/"
|
||||||
|
((org-agenda-overriding-header "Atomic Tasks to Archive")
|
||||||
|
(org-agenda-skip-function 'nd/skip-non-archivable-atomic-tasks)
|
||||||
|
(org-tags-match-list-sublevels nil)))))))
|
||||||
|
|
||||||
|
#+END_SRC
|
||||||
*** keymap
|
*** keymap
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(evil-define-key 'motion org-agenda-mode-map "T" 'nd/toggle-project-toplevel-display)
|
(evil-define-key 'motion org-agenda-mode-map "T" 'nd/toggle-project-toplevel-display)
|
||||||
|
|
Loading…
Reference in New Issue