diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 6b40198b5..ddf1e9110 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -221,6 +221,11 @@ Running shell blocks with the ~:session~ header freezes Emacs until execution completes. The new ~:async~ header allows users to continue editing with Emacs while a ~:session~ block executes. +*** ~org-return~ now acts on citations at point + +When ~org-return-follows-link~ is non-nil and cursor is over an +org-cite citation, ~org-return~ will call ~org-open-at-point~. + ** Miscellaneous *** =org-crypt.el= now applies initial visibility settings to decrypted entries diff --git a/lisp/org-keys.el b/lisp/org-keys.el index c62d62a1d..3dbf3c017 100644 --- a/lisp/org-keys.el +++ b/lisp/org-keys.el @@ -298,7 +298,7 @@ implementation is bad." :type 'hook) (defcustom org-return-follows-link nil - "Non-nil means on links RET will follow the link. + "Non-nil means on links RET will open links, timestamps, and citations. In tables, the special behavior of RET has precedence." :group 'org-link-follow :type 'boolean diff --git a/lisp/org.el b/lisp/org.el index 866af624e..04a7ffd8f 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -17774,8 +17774,8 @@ When optional INDENT argument is non-nil, call and INTERACTIVE. When `org-return-follows-link' is non-nil and point is on -a timestamp or a link, call `org-open-at-point'. However, it -will not happen if point is in a table or on a \"dead\" +a timestamp, a link or a citation, call `org-open-at-point'. +However, it will not happen if point is in a table or on a \"dead\" object (e.g., within a comment). In these case, you need to use `org-open-at-point' directly." (interactive "i\nP\np") @@ -17795,8 +17795,8 @@ object (e.g., within a comment). In these case, you need to use (insert "\n") (org-table-justify-field-maybe) (call-interactively #'org-table-next-row))) - ;; On a link or a timestamp, call `org-open-at-point' if - ;; `org-return-follows-link' allows it. Tolerate fuzzy + ;; On a link, a timestamp or a citation, call `org-open-at-point' + ;; if `org-return-follows-link' allows it. Tolerate fuzzy ;; locations, e.g., in a comment, as `org-open-at-point'. ((and org-return-follows-link (or (and (eq 'link element-type) @@ -17808,6 +17808,7 @@ object (e.g., within a comment). In these case, you need to use (> (point) origin)))) (org-in-regexp org-ts-regexp-both nil t) (org-in-regexp org-tsr-regexp-both nil t) + (org-element-lineage context '(citation citation-reference) 'include-self) (org-in-regexp org-link-any-re nil t))) (call-interactively #'org-open-at-point)) ;; Insert newline in heading, but preserve tags.