Few changes

This commit is contained in:
Adam Porter 2018-05-10 17:00:17 -05:00
parent 5da0b80513
commit 96dd06b144
2 changed files with 16 additions and 12 deletions

View file

@ -176,6 +176,17 @@ Doesn't seem to make any difference.
(done))) (done)))
#+END_SRC #+END_SRC
** Screenshot code
#+BEGIN_SRC elisp
(org-super-agenda--test-with-org-today-date "2017-07-08 00:00"
(org-agenda-ng "~/src/emacs/org-super-agenda/test/test.org"
(and (or (date = today)
(deadline <=)
(scheduled <= today))
(not (done)))))
#+END_SRC
* Profiling * Profiling
** Using =org-element-parse-buffer= ** Using =org-element-parse-buffer=

View file

@ -253,10 +253,8 @@ Its property list should be the second item in the list, as returned by `org-ele
(scheduled-day-number (org-time-string-to-absolute (scheduled-day-number (org-time-string-to-absolute
(org-element-timestamp-interpreter scheduled-date 'ignore))) (org-element-timestamp-interpreter scheduled-date 'ignore)))
(difference-days (- today-day-number scheduled-day-number)) (difference-days (- today-day-number scheduled-day-number))
(relative-due-date (pcase difference-days (relative-due-date (org-add-props (org-agenda-ng--format-relative-date difference-days) nil
(0 "today") 'help-echo (org-element-property :raw-value scheduled-date)))
(_ (org-add-props (org-agenda-ng--format-relative-date difference-days) nil
'help-echo (org-element-property :raw-value scheduled-date)))))
(repeat-day-number (cond (sexp-p (org-time-string-to-absolute scheduled-date)) (repeat-day-number (cond (sexp-p (org-time-string-to-absolute scheduled-date))
((< today-day-number scheduled-day-number) scheduled-day-number) ((< today-day-number scheduled-day-number) scheduled-day-number)
(t (org-time-string-to-absolute (t (org-time-string-to-absolute
@ -309,10 +307,8 @@ property."
(deadline-day-number (org-time-string-to-absolute (deadline-day-number (org-time-string-to-absolute
(org-element-timestamp-interpreter deadline-date 'ignore))) (org-element-timestamp-interpreter deadline-date 'ignore)))
(difference-days (- today-day-number deadline-day-number)) (difference-days (- today-day-number deadline-day-number))
(relative-due-date (pcase difference-days (relative-due-date (org-add-props (org-agenda-ng--format-relative-date difference-days) nil
(0 "today") 'help-echo (org-element-property :raw-value deadline-date)))
(_ (org-add-props (org-agenda-ng--format-relative-date difference-days) nil
'help-echo (org-element-property :raw-value deadline-date)))))
(todo-keyword (org-element-property :todo-keyword element)) (todo-keyword (org-element-property :todo-keyword element))
(done-p (member todo-keyword org-done-keywords)) (done-p (member todo-keyword org-done-keywords))
(today-p (= today-day-number deadline-day-number)) (today-p (= today-day-number deadline-day-number))
@ -371,9 +367,6 @@ With KEYWORDS, return non-nil if its keyword is one of KEYWORDS."
(otherwise (seq-intersection tags tags-at))))) (otherwise (seq-intersection tags tags-at)))))
(defun org-agenda-ng--date-p (type &optional comparator target-date) (defun org-agenda-ng--date-p (type &optional comparator target-date)
;; TODO: Make this a macro so we don't have to quote comparator and test it for every item.
;; TODO: Make separate date, scheduled, deadline macros.
"Return non-nil if current heading has a date property of TYPE. "Return non-nil if current heading has a date property of TYPE.
TYPE should be a keyword symbol, like :scheduled or :deadline. TYPE should be a keyword symbol, like :scheduled or :deadline.
@ -402,9 +395,9 @@ like one returned by `date-to-day'."
;; Compare dates ;; Compare dates
((pred functionp) ((pred functionp)
(let ((target-day-number (cl-typecase target-date (let ((target-day-number (cl-typecase target-date
(null (+ (org-get-wdays timestamp) (org-today)))
;; Append time to target-date ;; Append time to target-date
;; because `date-to-day' requires it ;; because `date-to-day' requires it
(null (+ (org-get-wdays timestamp) (org-today)))
(string (date-to-day (concat target-date " 00:00"))) (string (date-to-day (concat target-date " 00:00")))
(integer target-date)))) (integer target-date))))
(pcase (org-element-property :type date-element) (pcase (org-element-property :type date-element)