org.el/org--get-local-tags: Add cache support

This commit is contained in:
Ihor Radchenko 2021-10-16 23:30:52 +08:00
parent 7159ec0be0
commit 38b632d2ea
No known key found for this signature in database
GPG Key ID: 6470762A7DA11D8B
1 changed files with 9 additions and 4 deletions

View File

@ -12472,10 +12472,15 @@ TAGS is a list of strings."
(defun org--get-local-tags ()
"Return list of tags for the current headline.
Assume point is at the beginning of the headline."
(and (looking-at org-tag-line-re)
(split-string (match-string-no-properties 2) ":" t)))
(defun org-get-tags (&optional pos local)
(let* ((cached (and (org-element--cache-active-p) (org-element-at-point nil 'cached)))
(cached-tags (org-element-property :tags cached)))
(if cached
;; If we do not wrap result into `cl-copy-list', reference would
;; be returned and cache element might be modified directly.
(cl-copy-list cached-tags)
;; Parse tags manually.
(and (looking-at org-tag-line-re)
(split-string (match-string-no-properties 2) ":" t)))))
"Get the list of tags specified in the current headline.
When argument POS is non-nil, retrieve tags for headline at POS.