From c7331f859d1cc53d5c5f2c6ec58691af15f60b80 Mon Sep 17 00:00:00 2001 From: Bastien Date: Mon, 3 May 2021 06:23:03 +0200 Subject: [PATCH] lisp/org.el: Fix indentation when `org-adapt-indentation' is 'headline-data * lisp/org.el (org--get-expected-indentation): Fix indentation of non-headllines with `org-adapt-indentation' set to 'headline-data. (org-indent-line): When `org-adapt-indentation' is 'headline-data, don't indent when point is at the first line after a headline. Update the docstring to make it explicit that indenting relatively to current level only happens when `org-adapt-indentation' is set to `t'. --- lisp/org.el | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index 4a6aa1d4a..fbe9e8a5b 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -18895,7 +18895,7 @@ ELEMENT." (org--get-expected-indentation (org-element-property :parent previous) t)))))))))) ;; Otherwise, move to the first non-blank line above. - ((not (eq org-adapt-indentation 'headline-data)) + (t (beginning-of-line) (let ((pos (point))) (skip-chars-backward " \r\t\n") @@ -18972,7 +18972,7 @@ Indentation is done according to the following rules: Else, indent like parent's first line. 3. Otherwise, indent relatively to current level, if - `org-adapt-indentation' is non-nil, or to left margin. + `org-adapt-indentation' is `t', or to left margin. - On a blank line at the end of an element, indent according to the type of the element. More precisely @@ -18997,7 +18997,11 @@ list structure. Instead, use \\`\\[org-shiftmetaleft]' or \ Also align node properties according to `org-property-format'." (interactive) - (unless (org-at-heading-p) + (unless (or (org-at-heading-p) + (and (eq org-adapt-indentation 'headline-data) + (save-excursion + (move-beginning-of-line 0) + (org-at-heading-p)))) (let* ((element (save-excursion (beginning-of-line) (org-element-at-point))) (type (org-element-type element))) (cond ((and (memq type '(plain-list item))