From 96dd06b14498b8ac61948c92a3f2adc52855f34d Mon Sep 17 00:00:00 2001 From: Adam Porter Date: Thu, 10 May 2018 17:00:17 -0500 Subject: [PATCH] Few changes --- notes.org | 11 +++++++++++ org-agenda-ng.el | 17 +++++------------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/notes.org b/notes.org index 65209e9..c3979bd 100644 --- a/notes.org +++ b/notes.org @@ -176,6 +176,17 @@ Doesn't seem to make any difference. (done))) #+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 ** Using =org-element-parse-buffer= diff --git a/org-agenda-ng.el b/org-agenda-ng.el index 2101d12..e321801 100644 --- a/org-agenda-ng.el +++ b/org-agenda-ng.el @@ -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 (org-element-timestamp-interpreter scheduled-date 'ignore))) (difference-days (- today-day-number scheduled-day-number)) - (relative-due-date (pcase difference-days - (0 "today") - (_ (org-add-props (org-agenda-ng--format-relative-date difference-days) nil - 'help-echo (org-element-property :raw-value scheduled-date))))) + (relative-due-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)) ((< today-day-number scheduled-day-number) scheduled-day-number) (t (org-time-string-to-absolute @@ -309,10 +307,8 @@ property." (deadline-day-number (org-time-string-to-absolute (org-element-timestamp-interpreter deadline-date 'ignore))) (difference-days (- today-day-number deadline-day-number)) - (relative-due-date (pcase difference-days - (0 "today") - (_ (org-add-props (org-agenda-ng--format-relative-date difference-days) nil - 'help-echo (org-element-property :raw-value deadline-date))))) + (relative-due-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)) (done-p (member todo-keyword org-done-keywords)) (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))))) (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. TYPE should be a keyword symbol, like :scheduled or :deadline. @@ -402,9 +395,9 @@ like one returned by `date-to-day'." ;; Compare dates ((pred functionp) (let ((target-day-number (cl-typecase target-date + (null (+ (org-get-wdays timestamp) (org-today))) ;; Append time to target-date ;; because `date-to-day' requires it - (null (+ (org-get-wdays timestamp) (org-today))) (string (date-to-day (concat target-date " 00:00"))) (integer target-date)))) (pcase (org-element-property :type date-element)