summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien <bzg@gnu.org>2021-05-15 13:48:40 +0200
committerBastien <bzg@gnu.org>2021-05-15 13:48:40 +0200
commit4ce78810ac96ab86b18cb71bd8a76571ac067514 (patch)
tree7b9cd5ffd3db152a24cc7bc4a11aeef34064dbf1
parentd37e8a14b740158297580ad93d50db62f7eaa738 (diff)
downloadorg-mode-4ce78810ac96ab86b18cb71bd8a76571ac067514.tar.gz
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/
-rw-r--r--lisp/org.el15
1 files changed, 10 insertions, 5 deletions
diff --git a/lisp/org.el b/lisp/org.el
index f977c53..a197b5f 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -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)