M etc/ORG-NEWS => etc/ORG-NEWS +5 -0
@@ 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
M lisp/org-keys.el => lisp/org-keys.el +1 -1
@@ 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
M lisp/org.el => lisp/org.el +5 -4
@@ 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.