summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2021-04-19 22:16:41 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2021-07-09 08:47:14 +0200
commita20a3ad5f11f85af73c15ac153dd2e945a79df93 (patch)
treef683322dbe77b5ad0996b80e402a43dfd6557191
parent2c2b7203947a7ab18e3d74bf9238b06c89bf9aaa (diff)
downloadorg-mode-a20a3ad5f11f85af73c15ac153dd2e945a79df93.tar.gz
Plug citations into `org-open-at-point'
* lisp/org.el (org-open-at-point): Follow citations and citation references.
-rw-r--r--lisp/org.el10
1 files changed, 6 insertions, 4 deletions
diff --git a/lisp/org.el b/lisp/org.el
index 297e882..9548155 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -8955,9 +8955,10 @@ a link."
;; closest one.
(org-element-lineage
(org-element-context)
- '(clock comment comment-block footnote-definition
- footnote-reference headline inline-src-block inlinetask
- keyword link node-property planning src-block timestamp)
+ '(citation citation-reference clock comment comment-block
+ footnote-definition footnote-reference headline
+ inline-src-block inlinetask keyword link node-property
+ planning src-block timestamp)
t))
(type (org-element-type context))
(value (org-element-property :value context)))
@@ -8968,7 +8969,7 @@ a link."
((memq type '(comment comment-block node-property keyword))
(call-interactively #'org-open-at-point-global))
;; On a headline or an inlinetask, but not on a timestamp,
- ;; a link, a footnote reference.
+ ;; a link, a footnote reference or a citation.
((memq type '(headline inlinetask))
(org-match-line org-complex-heading-regexp)
(let ((tags-beg (match-beginning 5))
@@ -9031,6 +9032,7 @@ a link."
((eq type 'inline-src-block) (org-babel-open-src-block-result))
((eq type 'timestamp) (org-follow-timestamp-link))
((eq type 'link) (org-link-open context arg))
+ ((memq type '(citation citation-reference)) (org-cite-follow context arg))
(t (user-error "No link found")))))
(run-hook-with-args 'org-follow-link-hook))