Skip to content

Commit

Permalink
org-indent-region: Fix when `org-adapt-indentation' is 'headline-data
Browse files Browse the repository at this point in the history
* lisp/org.el (org--get-expected-indentation): Remove the extra
condition added in e3b79ad in the cond branch for first line in an
element.  Checking `org-adapt-indentation' t value here trigger the
last default cond branch that assumes that we are _not_ at the first
line.

The new logic explicitly avoids inheriting indentation from previous
sibling when `org-adapt-indentation' is set to 'headline-data and the
previous sibling is satisfying "headline data" condition as in
`org-indent-line'.  The case when `org-adapt-indentation' is set to t
is already handled correctly when calculating the CONTENTSP
indentation for parent headline.

Fixes https://orgmode.org/list/c13cab60-bbc9-e69e-6d0d-7fe75c5908d6@kalysto.org
  • Loading branch information
yantar92 committed Jul 18, 2022
1 parent 057df6c commit 9917d69
Showing 1 changed file with 18 additions and 3 deletions.
21 changes: 18 additions & 3 deletions lisp/org.el
Original file line number Diff line number Diff line change
Expand Up @@ -18455,9 +18455,9 @@ ELEMENT."
(org-element-property :parent element) t))
;; At first line: indent according to previous sibling, if any,
;; ignoring footnote definitions and inline tasks, or parent's
;; contents.
((and ( = (line-beginning-position) start)
(eq org-adapt-indentation t))
;; contents. If `org-adapt-indentation' is `headline-data', ignore
;; previous headline data siblings.
((= (line-beginning-position) start)
(catch 'exit
(while t
(if (= (point-min) start) (throw 'exit 0)
Expand All @@ -18474,6 +18474,21 @@ ELEMENT."
((memq (org-element-type previous)
'(footnote-definition inlinetask))
(setq start (org-element-property :begin previous)))
;; Do not indent like previous when the previous
;; element is headline data and `org-adapt-indentation'
;; is set to `headline-data'.
((save-excursion
(goto-char start)
(and
(eq org-adapt-indentation 'headline-data)
(not (or (org-at-clock-log-p)
(org-at-planning-p)))
(progn
(beginning-of-line 1)
(skip-chars-backward "\n")
(or (org-at-heading-p)
(looking-back ":END:.*" (point-at-bol))))))
(throw 'exit 0))
(t (goto-char (org-element-property :begin previous))
(throw 'exit
(if (bolp) (current-indentation)
Expand Down

0 comments on commit 9917d69

Please sign in to comment.