[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [BUG] List: org-shiftright brake list by indentation. Patch. [9.6.28
From: |
Ihor Radchenko |
Subject: |
Re: [BUG] List: org-shiftright brake list by indentation. Patch. [9.6.28 ( @ /home/u/.emacs.d/elpa/org-9.6.28/)] |
Date: |
Thu, 11 Jul 2024 13:40:39 +0000 |
[ Adding Org mailing list back to CC to keep the conversation public ]
Vitaliy Chepelev <vitalij@gmx.com> writes:
> I made much better patch for my org-9.6.28/org-list.el, now indentation
> is working and list don't breaks:
May you please explain in more details what is better in the proposed
patch compared to the already installed fix?
> diff --git a/org-list.el b/org-list.el
> index 502e61b..27617c5 100644
> --- a/org-list.el
> +++ b/org-list.el
> @@ -1813,6 +1813,14 @@ This function modifies STRUCT."
> (setq end-list (sort end-list (lambda (e1 e2) (< (cdr e1) (cdr e2)))))
> (org-list-struct-assoc-end struct end-list)))
>
> +(defcustom org-list-static-bullet-length t
> + "Assume that bullet length always equal one character.
> +Oterwise indent list items according to calculated length of
> +bullet."
> + :group 'org-plain-lists
> + :group 'org-cycle
> + :type 'boolean)
> +
> (defun org-list-struct-apply-struct (struct old-struct)
> "Apply set difference between STRUCT and OLD-STRUCT to the buffer.
>
> @@ -1900,8 +1908,12 @@ Initial position of cursor is restored after the
> changes."
> (ind-old (org-list-get-ind pos old-struct))
> (bul-pos (org-list-get-bullet pos struct))
> (bul-old (org-list-get-bullet pos old-struct))
> - (ind-shift (- (+ ind-pos (length bul-pos))
> - (+ ind-old (length bul-old))))
> + (ind-shift (if org-list-static-bullet-length
> + (- (+ ind-pos 1)
> + (+ ind-old 1))
> + ;; else
> + (- (+ ind-pos (length bul-pos))
> + (+ ind-old (length bul-old)))))
> (end-pos (org-list-get-item-end pos old-struct)))
> (push (cons pos ind-shift) itm-shift)
> (unless (assq end-pos old-struct)
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>