Skip to content

Commit

Permalink
Change: Resolve Org element properties on 9.7+
Browse files Browse the repository at this point in the history
See #364.
  • Loading branch information
alphapapa committed Sep 12, 2023
1 parent eb53773 commit 068a6bc
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions org-ql-view.el
Original file line number Diff line number Diff line change
Expand Up @@ -818,6 +818,23 @@ When opened, the link searches the buffer it's opened from."

;;;; Faces/properties

(defalias 'org-ql-view--resolve-element-properties
;; It would be preferable to define this as an inline function, but
;; that would mean that users would have to recompile org-ql when
;; upgrading to Org 9.7 or else get weird errors.
;; TODO(someday): Define `org-ql-view--resolve-element-properties' as inline.
(if (version<= "9.7" org-version)
(lambda (node)
"Resolve NODE's properties using `org-element-properties-resolve'."
(with-no-warnings
;; Silence warnings about `org-element-properties-resolve' being unresolved on earlier Org versions.
(org-element-properties-resolve node 'force-undefer)))
(lambda (node)
"Return NODE unchanged.
On Org 9.7+, the alias pointing to this function resolves NODE's
properties using `org-element-properties-resolve'."
node)))

(defun org-ql-view--format-element (element)
;; This essentially needs to do what `org-agenda-format-item' does,
;; which is a lot. We are a long way from that, but it's a start.
Expand All @@ -827,6 +844,7 @@ returned by `org-element-parse-buffer'. If ELEMENT is nil,
return an empty string."
(if (not element)
""
(setf element (org-ql-view--resolve-element-properties element))
(let* ((properties (cadr element))
;; Remove the :parent property, which so bloats the size of
;; the properties list that it makes it essentially
Expand Down

0 comments on commit 068a6bc

Please sign in to comment.