~bzg/org-mode

513534f2a78a25ba99a199d428047a783b765a5c — Ihor Radchenko 7 days ago 93492b8
lisp/org.el: allow org-return to call org-open-at-point on citations

* lisp/org.el (org-return): When `org-return-follows-link' is non-nil
and point is over an org-cite citation or citation reference, call `org-open-at-point'.

TINYCHANGE
3 files changed, 11 insertions(+), 5 deletions(-)

M etc/ORG-NEWS
M lisp/org-keys.el
M lisp/org.el
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.