lisp/org.el: Don't let RET indent in source code blocks

* lisp/org.el (org-return): Don't try to indent in source code
blocks.

Reported-by: Nathaniel W Griswold <nate@manicmind.earth>
Link: https://orgmode.org/list/5DCBAF63-0E88-44AC-B892-1260F37E7E00@manicmind.earth/
This commit is contained in:
Bastien 2021-05-15 13:48:40 +02:00
parent d37e8a14b7
commit 4ce78810ac
1 changed files with 10 additions and 5 deletions

View File

@ -17816,12 +17816,13 @@ 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")
(let ((context (if org-return-follows-link (org-element-context)
(org-element-at-point))))
(let* ((context (if org-return-follows-link (org-element-context)
(org-element-at-point)))
(element-type (org-element-type context)))
(cond
;; In a table, call `org-table-next-row'. However, before first
;; column or after last one, split the table.
((or (and (eq 'table (org-element-type context))
((or (and (eq 'table element-type)
(not (eq 'table.el (org-element-property :type context)))
(>= (point) (org-element-property :contents-begin context))
(< (point) (org-element-property :contents-end context)))
@ -17835,7 +17836,7 @@ object (e.g., within a comment). In these case, you need to use
;; `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 (org-element-type context))
(or (and (eq 'link element-type)
;; Ensure point is not on the white spaces after
;; the link.
(let ((origin (point)))
@ -17875,6 +17876,10 @@ object (e.g., within a comment). In these case, you need to use
(delete-and-extract-region (point) (line-end-position))))
(org--newline indent arg interactive)
(save-excursion (insert trailing-data))))
;; FIXME: In a source block, don't try to indent as it may result
;; in weird results due to `electric-indent-mode' being `t'.
((eq element-type 'src-block)
(org--newline nil nil nil))
(t
;; Do not auto-fill when point is in an Org property drawer.
(let ((auto-fill-function (and (not (org-at-property-p))
@ -19021,7 +19026,7 @@ Also align node properties according to `org-property-format'."
(line-beginning-position 2))))
nil)
((and (eq type 'src-block)
org-src-tab-acts-natively
org-src-tab-acts-natively
(> (line-beginning-position)
(org-element-property :post-affiliated element))
(< (line-beginning-position)