[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/taxy 8db95ff 2/3: Examples: Update taxy-org-ql-view
From: |
ELPA Syncer |
Subject: |
[elpa] externals/taxy 8db95ff 2/3: Examples: Update taxy-org-ql-view |
Date: |
Mon, 30 Aug 2021 01:57:18 -0400 (EDT) |
branch: externals/taxy
commit 8db95ffca4c827cf4e5e17d21c4bc662c349496b
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>
Examples: Update taxy-org-ql-view
---
examples/taxy-org-ql-view.el | 37 ++++++++++++++++++++++++++++---------
1 file changed, 28 insertions(+), 9 deletions(-)
diff --git a/examples/taxy-org-ql-view.el b/examples/taxy-org-ql-view.el
index c5bf431..6dac1c7 100644
--- a/examples/taxy-org-ql-view.el
+++ b/examples/taxy-org-ql-view.el
@@ -82,15 +82,27 @@ If KEYWORD, return whether it matches that."
((pred (equal keyword))
(format-keyword element-keyword))))))))
+(taxy-org-ql-view-define-key tags (&rest tags)
+ "Return the tags for ELEMENT.
+If TAGS, return whether it matches them."
+ (cl-flet ((tags-at
+ (pos) (apply #'append (delq 'org-ql-nil (org-ql--tags-at pos)))))
+ (org-with-point-at (org-element-property :org-hd-marker element)
+ (pcase tags
+ ('nil (tags-at (point)))
+ (_ (when-let (common-tags (seq-intersection tags (tags-at (point))
+ #'cl-equalp))
+ (format "Tags: %s" (string-join common-tags ", "))))))))
+
(taxy-org-ql-view-define-key priority (&optional priority)
"Return ELEMENT's priority as a string.
If PRIORITY, return it if it matches ELEMENT's priority."
- (cl-flet ((format-priority
- (num) (format "Priority: %s" num)))
- (when-let ((priority-number (org-element-property :priority element)))
+ (when-let ((priority-number (org-element-property :priority element)))
+ (cl-flet ((format-priority
+ (num) (format "Priority: %s" num)))
;; FIXME: Priority numbers may be wildly larger, right?
(pcase priority
- ('nil (format-priority (char-to-string number)))
+ ('nil (format-priority (char-to-string priority-number)))
(_ (pcase (char-to-string priority-number)
((and (pred (equal priority)) string)
(format-priority string))))))))
@@ -101,7 +113,7 @@ Returns in format \"%Y-%m (%B)\"."
(when-let ((planning-element (or (org-element-property :deadline element)
(org-element-property :scheduled element)
(org-element-property :closed element))))
- (ts-format "%Y-%m (%B)" (ts-parse-org-element planning-element))))
+ (ts-format "Planning: %Y-%m (%B)" (ts-parse-org-element
planning-element))))
(taxy-org-ql-view-define-key planning-year ()
"Return ELEMENT's planning-date year, or nil.
@@ -109,7 +121,7 @@ Returns in format \"%Y\"."
(when-let ((planning-element (or (org-element-property :deadline element)
(org-element-property :scheduled element)
(org-element-property :closed element))))
- (ts-format "%Y" (ts-parse-org-element planning-element))))
+ (ts-format "Planning: %Y" (ts-parse-org-element planning-element))))
(taxy-org-ql-view-define-key planning-date ()
"Return ELEMENT's planning date, or nil.
@@ -117,7 +129,14 @@ Returns in format \"%Y-%m-%d\"."
(when-let ((planning-element (or (org-element-property :deadline element)
(org-element-property :scheduled element)
(org-element-property :closed element))))
- (ts-format "%Y-%m-%d" (ts-parse-org-element planning-element))))
+ (ts-format "Planning: %Y-%m-%d" (ts-parse-org-element planning-element))))
+
+(taxy-org-ql-view-define-key planning ()
+ "Return non-nil if ELEMENT has a planning date."
+ (when (or (org-element-property :deadline element)
+ (org-element-property :scheduled element)
+ (org-element-property :closed element))
+ "Planned"))
(defun taxy-org-ql-view-take-fn (keys)
"Return a `taxy' \"take\" function for KEYS.
@@ -185,7 +204,7 @@ KEYS is passed to `taxy-org-ql-view-take-fn', which see."
(erase-buffer)
(delete-all-overlays)
(magit-section-mode)
- (use-local-map (make-composed-keymap (list org-ql-view-map
magit-section-mode-map)))
+ (use-local-map (make-composed-keymap (list magit-section-mode-map
org-ql-view-map)))
(taxy-magit-section-insert
(thread-last taxy
(taxy-fill items)
@@ -193,7 +212,7 @@ KEYS is passed to `taxy-org-ql-view-take-fn', which see."
(setf (taxy-taxys taxy)
(cl-sort (taxy-taxys taxy) #'string<
:key #'taxy-name)))))
- :objects 'last))
+ :items 'last))
(pop-to-buffer (current-buffer)))))
;;;; Footer