branch: externals/org commit 0d39ea6ef3ee55424a322c38eb6857299dca11f2 Author: Marco Wahl <marcowahls...@gmail.com> Commit: Marco Wahl <marcowahls...@gmail.com>
org-src: Add RET to go from overlay to edit buffer * lisp/org-src.el (org-edit-src-goto): org-edit-src-goto factors out the functionality from org-edit-src-continue. The latter needs an event. The return key is bound to org-edit-src-goto for the overlay. --- etc/ORG-NEWS | 2 ++ lisp/org-src.el | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 5828165340..ea78234e0d 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -291,6 +291,8 @@ purpose of the variable. The replacement variable accepts =listings= and =verbatim= in place of =t= and =nil= (which still work, but are no longer listed as valid options). +*** New function ~org-edit-src-goto~ + * Version 9.5 ** Important announcements and breaking changes diff --git a/lisp/org-src.el b/lisp/org-src.el index cc49181618..d0a7aedd81 100644 --- a/lisp/org-src.el +++ b/lisp/org-src.el @@ -413,6 +413,7 @@ END." (overlay-put overlay 'keymap (let ((map (make-sparse-keymap))) (define-key map [mouse-1] 'org-edit-src-continue) + (define-key map [return] #'org-edit-src-goto) map)) (let ((read-only (list @@ -1273,6 +1274,12 @@ Throw an error if there is no such buffer. EVENT is passed to `mouse-set-point'." (interactive "e") (mouse-set-point event) + (org-edit-src-goto)) + +(defun org-edit-src-goto () + "Unconditionally return to buffer editing area under point. +Throw an error if there is no such buffer." + (interactive) (let ((buf (get-char-property (point) 'edit-buffer))) (if buf (org-src-switch-to-buffer buf 'continue) (user-error "No sub-editing buffer for area at point"))))