FIX a bunch of task display bugs
This commit is contained in:
parent
c350eff7df
commit
c41b0bb473
|
@ -416,10 +416,6 @@ highest in the tree."
|
||||||
(->> (plist-get org-x-dag :dag)
|
(->> (plist-get org-x-dag :dag)
|
||||||
(dag-get-children id)))
|
(dag-get-children id)))
|
||||||
|
|
||||||
(defun org-x-dag-id->buffer-parent (id)
|
|
||||||
"Return the buffer parent id (if any) of ID."
|
|
||||||
(org-x-dag-id->hl-meta-prop id :buffer-parent))
|
|
||||||
|
|
||||||
(defun org-x-dag-id->split-parents-2 (id)
|
(defun org-x-dag-id->split-parents-2 (id)
|
||||||
"Return the buffer and non-buffer parents of ID.
|
"Return the buffer and non-buffer parents of ID.
|
||||||
|
|
||||||
|
@ -1330,7 +1326,7 @@ used for optimization."
|
||||||
;; headline if the parent also has a keyword.
|
;; headline if the parent also has a keyword.
|
||||||
(setq this-point (car (match-data t))
|
(setq this-point (car (match-data t))
|
||||||
this-level (length (match-string 1))
|
this-level (length (match-string 1))
|
||||||
this-todo (match-string 2)
|
this-todo (match-string-no-properties 2)
|
||||||
this-title (match-string 3)
|
this-title (match-string 3)
|
||||||
this-tags (match-string-no-properties 4)
|
this-tags (match-string-no-properties 4)
|
||||||
next-pos (or (org-x-dag-next-headline) (point-max)))
|
next-pos (or (org-x-dag-next-headline) (point-max)))
|
||||||
|
@ -1367,9 +1363,11 @@ used for optimization."
|
||||||
:node-meta
|
:node-meta
|
||||||
`(,@file-meta
|
`(,@file-meta
|
||||||
:point ,this-point
|
:point ,this-point
|
||||||
|
:effort ,(when this-title
|
||||||
|
(get-text-property 0 'effort this-title))
|
||||||
:level ,this-level
|
:level ,this-level
|
||||||
:todo ,this-todo
|
:todo ,this-todo
|
||||||
:title ,(or this-title "")
|
:title ,(if this-title (substring-no-properties this-title) "")
|
||||||
:tags ,this-tags
|
:tags ,this-tags
|
||||||
:planning ,(org-x-dag-parse-this-planning (nth 0 this-pblock))
|
:planning ,(org-x-dag-parse-this-planning (nth 0 this-pblock))
|
||||||
:props ,(org-x-dag-get-local-properties pbeg pend pps)))
|
:props ,(org-x-dag-get-local-properties pbeg pend pps)))
|
||||||
|
@ -1608,7 +1606,7 @@ used for optimization."
|
||||||
(child-bss
|
(child-bss
|
||||||
(org-x-dag-bs-error-kw "Project action" it-todo))
|
(org-x-dag-bs-error-kw "Project action" it-todo))
|
||||||
(t
|
(t
|
||||||
task-default))))))
|
(org-x-dag-bs :valid task-default)))))))
|
||||||
|
|
||||||
(defun org-x-dag-node-data-is-iterator-p (node-data)
|
(defun org-x-dag-node-data-is-iterator-p (node-data)
|
||||||
(-let (((&plist :props) node-data))
|
(-let (((&plist :props) node-data))
|
||||||
|
@ -2720,9 +2718,14 @@ except it ignores inactive timestamps."
|
||||||
(-let* ((tags* (org-x-dag-prepare-tags tags))
|
(-let* ((tags* (org-x-dag-prepare-tags tags))
|
||||||
(category (org-x-dag-id->hl-meta-prop id :category))
|
(category (org-x-dag-id->hl-meta-prop id :category))
|
||||||
(todo-state (org-x-dag-id->todo id))
|
(todo-state (org-x-dag-id->todo id))
|
||||||
|
;; (todo-state (--> (org-x-dag-id->todo id)
|
||||||
|
;; (org-add-props it nil
|
||||||
|
;; 'face (org-get-todo-face it))))
|
||||||
;; TODO the only reason this format thing is here is to satisfy
|
;; TODO the only reason this format thing is here is to satisfy
|
||||||
;; `org-agenda-format-item' (which I should probably just rewrite)
|
;; `org-agenda-format-item' (which I should probably just rewrite)
|
||||||
(head (format "%s %s" todo-state (org-x-dag-id->title id)))
|
(effort (org-x-dag-id->hl-meta-prop id :effort))
|
||||||
|
(head (-> (format "%s %s" todo-state (org-x-dag-id->title id))
|
||||||
|
(org-add-props nil 'effort effort)))
|
||||||
(level (org-x-dag-id->formatted-level id))
|
(level (org-x-dag-id->formatted-level id))
|
||||||
(marker (org-agenda-new-marker (org-x-dag-id->marker id)))
|
(marker (org-agenda-new-marker (org-x-dag-id->marker id)))
|
||||||
((ts . ts-type) (org-x-dag-id->agenda-timestamp id))
|
((ts . ts-type) (org-x-dag-id->agenda-timestamp id))
|
||||||
|
@ -3219,7 +3222,7 @@ except it ignores inactive timestamps."
|
||||||
(cl-flet
|
(cl-flet
|
||||||
((format-key
|
((format-key
|
||||||
(id s)
|
(id s)
|
||||||
(-let (((_ sched dead) s))
|
(-let (((todo sched dead) s))
|
||||||
(pcase (org-x-dag-id->ns id)
|
(pcase (org-x-dag-id->ns id)
|
||||||
(`(:valid ,ns)
|
(`(:valid ,ns)
|
||||||
(-let (((&plist :committed c) ns))
|
(-let (((&plist :committed c) ns))
|
||||||
|
@ -3229,16 +3232,20 @@ except it ignores inactive timestamps."
|
||||||
(-> (org-x-dag-format-tag-node tags id)
|
(-> (org-x-dag-format-tag-node tags id)
|
||||||
(org-add-props nil
|
(org-add-props nil
|
||||||
'x-is-standalone (not bp)
|
'x-is-standalone (not bp)
|
||||||
'x-status :task-active))))))))))
|
'x-status :active))))))))))
|
||||||
(->> (org-x-dag->action-files)
|
;; TODO this is silly and it adds 0.1 seconds to this function's runtime;
|
||||||
(org-x-dag-files->ids)
|
;; it is only needed to get the todo keyword the right color
|
||||||
(--reduce-from (pcase (org-x-dag-id->bs it)
|
(with-temp-buffer
|
||||||
(`(:valid (:sp-task :task-active ,s))
|
(org-mode)
|
||||||
(-if-let (new (format-key it s))
|
(->> (org-x-dag->action-files)
|
||||||
(cons new acc)
|
(org-x-dag-files->ids)
|
||||||
acc))
|
(--reduce-from (pcase (org-x-dag-id->bs it)
|
||||||
(_ acc))
|
(`(:valid (:sp-task :task-active ,s))
|
||||||
nil))))
|
(-if-let (new (format-key it s))
|
||||||
|
(cons new acc)
|
||||||
|
acc))
|
||||||
|
(_ acc))
|
||||||
|
nil)))))
|
||||||
|
|
||||||
;; (org-x-dag-with-files (org-x-dag->action-files)
|
;; (org-x-dag-with-files (org-x-dag->action-files)
|
||||||
;; (org-x-dag-id->is-toplevel-p it)
|
;; (org-x-dag-id->is-toplevel-p it)
|
||||||
|
|
Loading…
Reference in New Issue