all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [BUG] org-fold :extend face backgrounds break with trailing newlines [9.7-pre (release_9.6.20-1267-gb0c3c9 @ /home/st/.config/emacs/.local/straight/build-30.0.50/org/)]
@ 2024-03-10  3:51 StrawberryTea
  2024-03-12 12:47 ` Ihor Radchenko
  0 siblings, 1 reply; 2+ messages in thread
From: StrawberryTea @ 2024-03-10  3:51 UTC (permalink / raw)
  To: emacs-orgmode


Hello Org mode developer,

I've noticed that when using the :extend face property with org-fold,
the background color of the headline face will sometimes be left behind
after unfolding a heading. I have finally determined that this is
happening when the heading has a trailing newline and the heading is
after the last non-whitespace character in the heading's body.

Here is a minimal example to reproduce this issue from emacs -Q:

(let ((default-directory (file-name-directory load-file-name)))
  (when (file-exists-p (expand-file-name "default.el" default-directory))
    (load-file (expand-file-name "default.el" default-directory))))

(straight-use-package 'org)

(require 'org)
(load-theme 'leuven t)

(dolist (face '(org-level-1 org-level-2 org-level-3 org-level-4 org-level-5
                org-level-6 org-level-7 org-level-8))
  (set-face-attribute face nil :extend t))

(setq org-fontify-whole-heading-line t)
(setq org-startup-folded t)

(defvar org-extend-faces-bug-4-file "/tmp/org-extend-faces-bug-4.org"
  "The file to be used for the bug demo.")

(with-temp-buffer
  (insert
   (string-join
    '("* First heading"
      "Body text of the first heading"
      ""
      "* Second heading"
      "Body text of the second heading"
      "* Last heading"
      "Body text of the last heading")
    "\n"))
  (write-file org-extend-faces-bug-4-file))

(find-file org-extend-faces-bug-4-file)

Sincerely,
StrawberryTea

Emacs  : GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.18.0)
 of 2024-03-09
Package: Org mode version 9.7-pre (release_9.6.20-1267-gb0c3c9 @ /home/st/.config/emacs/.local/straight/build-30.0.50/org/)

current state:
==============
(setq
 org-special-ctrl-a/e t
 org-yank-image-file-name-function 'org-yank-image-autogen-filename
 org-persist-before-write-hook '(org-element--cache-persist-before-write)
 org-clock-persist 'history
 org-indirect-buffer-display 'current-window
 org-preview-latex-image-directory "/home/st/.config/emacs/.local/cache/org/latex/"
 org-after-todo-state-change-hook '(parrot--todo-party)
 org-default-notes-file "/home/st/org/notes.org"
 org-directory "~/org/"
 org-list-demote-modify-bullet '(("+" . "-") ("-" . "+") ("*" . "+") ("1." . "a."))
 org-M-RET-may-split-line nil
 org-clock-in-resume t
 org-clock-out-remove-zero-time-clocks t
 org-roam-list-files-commands '(fd fdfind rg find)
 org-display-remote-inline-images 'download
 org-roam-db-node-include-function #[0 "\300\207" [t] 1]
 org-roam-log-setup-hook '(org-roam--register-completion-functions-h)
 org-speed-command-hook '(org-speed-command-activate org-babel-speed-command-activate)
 org-persist-after-read-hook '(org-element--cache-persist-after-read)
 org-archive-subtree-save-file-p t
 org-id-locations-file "/home/st/org/.orgids"
 org-ai-talk-say-words-per-minute 210
 org-agenda-finalize-hook '(+org-exclude-agenda-buffers-from-workspace-h +org-defer-mode-in-agenda-buffers-h)
 org-roam-preview-function 'org-roam-preview-default-function
 org-log-done 'time
 org-agenda-window-setup 'current-window
 org-file-apps '((remote . emacs) (auto-mode . emacs) (directory . emacs) ("\\.mm\\'" . default) ("\\.x?html?\\'" . default)
                 ("\\.pdf\\'" . default))
 org-mode-hook '(doom--setq-yas-triggers-in-field-for-org-mode-h turn-on-org-cdlatex er/add-org-mode-expansions
                 +lookup--init-org-mode-handlers-h (closure (t) (&rest _) (add-hook 'before-save-hook 'org-encrypt-entries nil t))
                 #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-fold-show-all append local] 5]
                 #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-babel-show-result-all append local] 5]
                 org-babel-result-hide-spec org-babel-hide-all-hashes
                 #[0 "\301\211\207" [imenu-create-index-function org-imenu-get-tree] 2] beginend-org-mode
                 #[0 "\303\302!\210\304\305\n\300\"\301\"\211\207"
                   [nil ((eri/mark-inside-org-table-cell eri/mark-outside-org-table-cell)) eri/try-expand-list make-local-variable append
                    seq-difference]
                   4]
                 #[0 "\303\302!\210\304\305\n\300\"\301\"\211\207"
                   [nil
                    (org-mark-subtree '(er/mark-org-element er/mark-org-element-parent) er/mark-org-code-block er/mark-sentence
                     er/mark-paragraph)
                    eri/try-expand-list make-local-variable append seq-difference]
                   4]
                 iscroll-mode org-ai-mode locally-defer-font-lock org-appear-mode cae-unpackaged-org-fix-blank-lines-before-save
                 org-cdlatex-mode doom-disable-show-paren-mode-h doom-disable-show-trailing-whitespace-h +org-make-last-point-visible-h
                 evil-org-mode org-eldoc-load toc-org-enable embrace-org-mode-hook +corfu-add-cape-elisp-block-h
                 (closure (t) (&rest _) (set (make-local-variable 'tab-width) 8)))
 org-hide-emphasis-markers t
 org-load-hook '(+org-init-org-directory-h +org-init-appearance-h +org-init-agenda-h +org-init-attachments-h +org-init-babel-h
                 +org-init-babel-lazy-loader-h +org-init-capture-defaults-h +org-init-capture-frame-h +org-init-custom-links-h
                 +org-init-export-h +org-init-habit-h +org-init-hacks-h +org-init-keybinds-h +org-init-popup-rules-h
                 +org-init-smartparens-h +org-init-roam-h)
 org-ai-global-mode t
 org-hide-leading-stars t
 org-ai-oobabooga-create-prompt-function 'org-ai-oobabooga-create-prompt-default
 org-capture-templates '(("t" "Personal todo" entry (file+headline +org-capture-todo-file "Inbox") "* [ ] %?\n%i\n%a" :prepend t)
                         ("n" "Personal notes" entry (file+headline +org-capture-notes-file "Inbox") "* %u %?\n%i\n%a" :prepend t)
                         ("j" "Journal" entry (file+olp+datetree +org-capture-journal-file) "* %U %?\n%i\n%a" :prepend t)
                         ("p" "Templates for projects")
                         ("pt" "Project-local todo" entry (file+headline +org-capture-project-todo-file "Inbox") "* TODO %?\n%i\n%a"
                          :prepend t)
                         ("pn" "Project-local notes" entry (file+headline +org-capture-project-notes-file "Inbox") "* %U %?\n%i\n%a"
                          :prepend t)
                         ("pc" "Project-local changelog" entry (file+headline +org-capture-project-changelog-file "Unreleased")
                          "* %U %?\n%i\n%a" :prepend t)
                         ("o" "Centralized templates for projects")
                         ("ot" "Project todo" entry #'+org-capture-central-project-todo-file "* TODO %?\n %i\n %a" :heading "Tasks"
                          :prepend nil)
                         ("on" "Project notes" entry #'+org-capture-central-project-notes-file "* %U %?\n %i\n %a" :heading "Notes"
                          :prepend t)
                         ("oc" "Project changelog" entry #'+org-capture-central-project-changelog-file "* %U %?\n %i\n %a" :heading
                          "Changelog" :prepend t)
                         )
 outline-mode-hook '(beginend-outline-mode)
 org-refile-targets '((nil :maxlevel . 3) (org-agenda-files :maxlevel . 3))
 org-agenda-deadline-faces '((1.001 . error) (1.0 . org-warning) (0.5 . org-upcoming-deadline) (0.0 . org-upcoming-distant-deadline))
 org-confirm-shell-link-function 'yes-or-no-p
 org-agenda-inhibit-startup t
 org-attach-use-inheritance t
 org-archive-hook '(cae-multi-org-archive-push-changes-h org-attach-archive-delete-maybe)
 org-src-window-setup 'other-window
 org-mode-local-vars-hook '(+org-init-gifs-h)
 org-insert-heading-respect-content t
 org-roam-node-template-prefixes '(("doom-type" . "@") ("doom-tags" . "#") ("tags" . "#") ("todo" . "t:"))
 org-special-ctrl-k t
 org-metaup-hook '(org-babel-load-in-session-maybe)
 org-ai-use-auth-source nil
 org-fontify-whole-heading-line t
 org-occur-hook '(org-first-headline-recenter)
 org-ellipsis " ..."
 org-enforce-todo-dependencies t
 org-entities-user '(("flat" "\\flat" nil "" "" "266D" "♭") ("sharp" "\\sharp" nil "" "" "266F" "♯"))
 org-extend-today-until 3
 org-roam-node-annotation-function 'org-roam-node-read--annotation
 org-confirm-babel-evaluate nil
 org-roam-directory "/home/st/org/roam/"
 org-ai-on-project-modify-with-diffs t
 org-ai-talk-say-voice "Karen"
 org-roam-db-autosync-mode t
 org-roam-indirect-buffer-hook '(org-roam--register-completion-functions-h)
 org-priority-faces '((65 . nerd-icons-red) (66 . nerd-icons-orange) (67 . nerd-icons-yellow) (68 . nerd-icons-green)
                      (69 . nerd-icons-blue))
 org-link-abbrev-alist '(("doomdir" . "/home/st/.config/doom/%s") ("emacsdir" . "/home/st/.config/emacs/%s")
                         ("doom-repo" . "https://github.com/doomemacs/doomemacs/%s") ("wolfram" . "https://wolframalpha.com/input/?i=%s")
                         ("wikipedia" . "https://en.wikipedia.org/wiki/%s") ("duckduckgo" . "https://duckduckgo.com/?q=%s")
                         ("kagi" . "https://kagi.com/search?q=%s") ("gmap" . "https://maps.google.com/maps?q=%s")
                         ("gimages" . "https://google.com/images?q=%s") ("google" . "https://google.com/search?q=")
                         ("youtube" . "https://youtube.com/watch?v=%s") ("github" . "https://github.com/%s"))
 org-bibtex-headline-format-function 'org-bibtex-headline-format-default
 org-capture-prepare-finalize-hook '(org-roam-capture--install-finalize-h)
 org-link-parameters '(("bibtex" :follow org-bibtex-open :store org-bibtex-store-link)
                       ("orgit-rev" :store orgit-rev-store :follow orgit-rev-open :export orgit-rev-export :complete
                        orgit-rev-complete-link)
                       ("orgit-log" :store orgit-log-store :follow orgit-log-open :export orgit-log-export :complete
                        orgit-log-complete-link)
                       ("orgit" :store orgit-status-store :follow orgit-status-open :export orgit-status-export :complete
                        orgit-status-complete-link)
                       ("treemacs" :store treemacs-store-org-link) ("helpful" :store helpful--org-link-store)
                       ("mu4e" :follow mu4e-org-open :store mu4e-org-store-link)
                       ("download" :complete
                        (closure
                         ((dir-fn closure (t) nil (or org-download-image-dir org-attach-id-dir ".")) (requires . org-download)
                          (key . "download"))
                         nil (if requires (mapc #'require (ensure-list requires)))
                         (+org--relative-path (+org--read-link-path key (funcall dir-fn)) (funcall dir-fn)))
                        :follow
                        (closure ((dir-fn closure (t) nil (or org-download-image-dir org-attach-id-dir "."))) (link)
                         (org-link-open-as-file (expand-file-name link (funcall dir-fn)) nil))
                        :face
                        (closure ((dir-fn closure (t) nil (or org-download-image-dir org-attach-id-dir "."))) (link)
                         (let*
                          ((path (expand-file-name link (funcall dir-fn))) (option-index (string-match-p "::\\(.*\\)\\'" path))
                           (file-name (substring path 0 option-index)))
                          (if (file-exists-p file-name) 'org-link 'error))
                         )
                        :image-data-fun +org-image-file-data-fn :requires nil)
                       ("pdf" :follow
                        (closure ((fn . org-pdftools-open)) (&rest args)
                         (and (condition-case nil (progn (require 'org-pdftools nil t)) (error nil))
                          (file-executable-p pdf-info-epdfinfo-program) (apply fn args))
                         )
                        :complete
                        (closure ((fn . org-pdftools-complete-link)) (&rest args)
                         (and (condition-case nil (progn (require 'org-pdftools nil t)) (error nil))
                          (file-executable-p pdf-info-epdfinfo-program) (apply fn args))
                         )
                        :store
                        (closure ((fn . org-pdftools-store-link)) (&rest args)
                         (and (condition-case nil (progn (require 'org-pdftools nil t)) (error nil))
                          (file-executable-p pdf-info-epdfinfo-program) (apply fn args))
                         )
                        :export
                        (closure ((fn . org-pdftools-export)) (&rest args)
                         (and (condition-case nil (progn (require 'org-pdftools nil t)) (error nil))
                          (file-executable-p pdf-info-epdfinfo-program) (apply fn args))
                         )
                        )
                       ("elfeed" :follow elfeed-link-open :store elfeed-link-store-link)
                       ("orgit-topic" :store orgit-topic-store :follow orgit-topic-open :export orgit-topic-export :complete
                        orgit-topic-complete-link :insert-description orgit-topic-describe-link)
                       ("roam" :follow org-roam-link-follow-link)
                       ("yt" :follow org-yt-follow :image-data-fun org-yt-image-data-fun :export org-yt-export)
                       ("id" :follow org-roam-id-open :store org-id-store-link-maybe) ("img" :image-data-fun +org-inline-image-data-fn)
                       ("doom-changelog" :follow
                        (closure (t) (link) (find-file (doom-path doom-docs-dir "changelog.org")) (org-match-sparse-tree nil link)))
                       ("doom-user" :follow
                        (closure (t) (link)
                         (browse-url (format "https://github.com/%s" (string-remove-prefix "@" (+org-link-read-desc-at-point link)))))
                        :face (closure (t) (_) 'org-priority))
                       ("doom-ref" :follow
                        (closure (t) (link)
                         (let ((link (+org-link-read-desc-at-point link)) (url "https://github.com") (doom-repo "doomemacs/doomemacs"))
                          (let ((saved-match-data (match-data)))
                           (unwind-protect
                            (progn
                             (browse-url
                              (cond
                               ((string-match "^\\([^/]+\\(?:/[^/]+\\)?\\)?#\\([0-9]+\\(?:#.*\\)?\\)" link)
                                (format "%s/%s/issues/%s" url (or (match-string 1 link) doom-repo) (match-string 2 link)))
                               ((string-match "^\\([^/]+\\(?:/[^/]+\\)?@\\)?\\([a-z0-9]\\{7,\\}\\(?:#.*\\)?\\)" link)
                                (format "%s/%s/commit/%s" url (or (match-string 1 link) doom-repo) (match-string 2 link)))
                               ((user-error "Invalid doom-ref link: %S" link)))
                              )
                             )
                            (set-match-data saved-match-data t))
                           )
                          )
                         )
                        :face
                        (closure (t) (link)
                         (let ((link (+org-link-read-desc-at-point link)))
                          (if
                           (or (string-match "^\\([^/]+\\(?:/[^/]+\\)?\\)?#\\([0-9]+\\(?:#.*\\)?\\)" link)
                            (string-match "^\\([^/]+\\(?:/[^/]+\\)?@\\)?\\([a-z0-9]\\{7,\\}\\(?:#.*\\)?\\)" link))
                           'org-link 'error)
                          )
                         )
                        )
                       ("doom-executable" :activate-func +org-link--doom-executable-link-activate-fn :help-echo
                        +org-link-doom--help-echo-from-textprop :face org-verbatim)
                       ("doom-module" :follow +org-link--doom-module-link-follow-fn :activate-func +org-link--doom-module-link-activate-fn
                        :help-echo +org-link-doom--help-echo-from-textprop)
                       ("doom-package" :follow +org-link--doom-package-link-follow-fn :activate-func
                        +org-link--doom-package-link-activate-fn :help-echo +org-link-doom--help-echo-from-textprop)
                       ("cmd" :follow
                        (closure ((fn . describe-command)) (path _prefixarg)
                         (funcall fn (or (intern-soft path) (user-error "Can't find documentation for %S" path))))
                        :activate-func +org-link--command-link-activate-fn :face help-key-binding :help-echo
                        +org-link-doom--help-echo-from-textprop)
                       ("face" :follow
                        (closure ((fn . describe-face)) (path _prefixarg)
                         (funcall fn (or (intern-soft path) (user-error "Can't find documentation for %S" path))))
                        :activate-func +org-link--face-link-activate-fn :face (font-lock-type-face underline))
                       ("fn" :follow
                        (closure ((fn . helpful-callable)) (path _prefixarg)
                         (funcall fn (or (intern-soft path) (user-error "Can't find documentation for %S" path))))
                        :activate-func +org-link--fn-link-activate-fn :face (font-lock-function-name-face underline))
                       ("var" :follow
                        (closure ((fn . helpful-variable)) (path _prefixarg)
                         (funcall fn (or (intern-soft path) (user-error "Can't find documentation for %S" path))))
                        :activate-func +org-link--var-link-activate-fn :face (font-lock-variable-name-face underline))
                       ("kbd" :follow
                        (closure (t) (ev) (interactive "e")
                         (minibuffer-message "%s"
                          (+org-link-doom--help-echo-from-textprop nil (current-buffer) (posn-point (event-start ev))))
                         )
                        :help-echo +org-link-doom--help-echo-from-textprop :face help-key-binding)
                       ("doom-modules" :complete
                        (closure
                         ((dir-fn closure ((dir-var . doom-modules-dir)) nil (symbol-value dir-var)) (requires) (key . "doom-modules"))
                         nil (if requires (mapc #'require (ensure-list requires)))
                         (+org--relative-path (+org--read-link-path key (funcall dir-fn)) (funcall dir-fn)))
                        :follow
                        (closure ((dir-fn closure ((dir-var . doom-modules-dir)) nil (symbol-value dir-var))) (link)
                         (org-link-open-as-file (expand-file-name link (funcall dir-fn)) nil))
                        :face
                        (closure ((dir-fn closure ((dir-var . doom-modules-dir)) nil (symbol-value dir-var))) (link)
                         (let*
                          ((path (expand-file-name link (funcall dir-fn))) (option-index (string-match-p "::\\(.*\\)\\'" path))
                           (file-name (substring path 0 option-index)))
                          (if (file-exists-p file-name) 'org-link 'error))
                         )
                        :requires nil)
                       ("doom-docs" :complete
                        (closure ((dir-fn closure ((dir-var . doom-docs-dir)) nil (symbol-value dir-var)) (requires) (key . "doom-docs"))
                         nil (if requires (mapc #'require (ensure-list requires)))
                         (+org--relative-path (+org--read-link-path key (funcall dir-fn)) (funcall dir-fn)))
                        :follow
                        (closure ((dir-fn closure ((dir-var . doom-docs-dir)) nil (symbol-value dir-var))) (link)
                         (org-link-open-as-file (expand-file-name link (funcall dir-fn)) nil))
                        :face
                        (closure ((dir-fn closure ((dir-var . doom-docs-dir)) nil (symbol-value dir-var))) (link)
                         (let*
                          ((path (expand-file-name link (funcall dir-fn))) (option-index (string-match-p "::\\(.*\\)\\'" path))
                           (file-name (substring path 0 option-index)))
                          (if (file-exists-p file-name) 'org-link 'error))
                         )
                        :requires nil)
                       ("doom" :complete
                        (closure ((dir-fn closure ((dir-var . doom-emacs-dir)) nil (symbol-value dir-var)) (requires) (key . "doom")) nil
                         (if requires (mapc #'require (ensure-list requires)))
                         (+org--relative-path (+org--read-link-path key (funcall dir-fn)) (funcall dir-fn)))
                        :follow
                        (closure ((dir-fn closure ((dir-var . doom-emacs-dir)) nil (symbol-value dir-var))) (link)
                         (org-link-open-as-file (expand-file-name link (funcall dir-fn)) nil))
                        :face
                        (closure ((dir-fn closure ((dir-var . doom-emacs-dir)) nil (symbol-value dir-var))) (link)
                         (let*
                          ((path (expand-file-name link (funcall dir-fn))) (option-index (string-match-p "::\\(.*\\)\\'" path))
                           (file-name (substring path 0 option-index)))
                          (if (file-exists-p file-name) 'org-link 'error))
                         )
                        :requires nil)
                       ("org" :complete
                        (closure ((dir-fn closure ((dir-var . org-directory)) nil (symbol-value dir-var)) (requires) (key . "org")) nil
                         (if requires (mapc #'require (ensure-list requires)))
                         (+org--relative-path (+org--read-link-path key (funcall dir-fn)) (funcall dir-fn)))
                        :follow
                        (closure ((dir-fn closure ((dir-var . org-directory)) nil (symbol-value dir-var))) (link)
                         (org-link-open-as-file (expand-file-name link (funcall dir-fn)) nil))
                        :face
                        (closure ((dir-fn closure ((dir-var . org-directory)) nil (symbol-value dir-var))) (link)
                         (let*
                          ((path (expand-file-name link (funcall dir-fn))) (option-index (string-match-p "::\\(.*\\)\\'" path))
                           (file-name (substring path 0 option-index)))
                          (if (file-exists-p file-name) 'org-link 'error))
                         )
                        :requires nil)
                       ("attachment" :image-data-fun +org-inline-image-data-fn :follow org-attach-follow :complete
                        org-attach-complete-link)
                       ("file+sys") ("file+emacs") ("shell" :follow org-link--open-shell)
                       ("news" :follow #[514 "\301\300\302Q\"\207" ["news" browse-url ":"] 6 "\n\n(fn URL ARG)"])
                       ("mailto" :follow #[514 "\301\300\302Q\"\207" ["mailto" browse-url ":"] 6 "\n\n(fn URL ARG)"])
                       ("https" :follow #[514 "\301\300\302Q\"\207" ["https" browse-url ":"] 6 "\n\n(fn URL ARG)"] :image-data-fun
                        +org-http-image-data-fn)
                       ("http" :follow #[514 "\301\300\302Q\"\207" ["http" browse-url ":"] 6 "\n\n(fn URL ARG)"] :image-data-fun
                        +org-http-image-data-fn)
                       ("ftp" :follow #[514 "\301\300\302Q\"\207" ["ftp" browse-url ":"] 6 "\n\n(fn URL ARG)"])
                       ("help" :follow helpful--org-link-follow :store org-link--store-help)
                       ("file" :complete org-link-complete-file :face
                        (closure (t) (path)
                         (if (or (file-remote-p path) (if (featurep :system 'windows) (string-prefix-p "\\\\" path)) (file-exists-p path))
                          'org-link '(warning org-link))
                         )
                        )
                       ("elisp" :follow org-link--open-elisp))
 org-todo-keyword-faces '(("[-]" . +org-todo-active) ("STRT" . +org-todo-active) ("[?]" . +org-todo-onhold) ("WAIT" . +org-todo-onhold)
                          ("HOLD" . +org-todo-onhold) ("PROJ" . +org-todo-project) ("NO" . +org-todo-cancel) ("KILL" . +org-todo-cancel))
 org-persist-directory "/home/st/.config/emacs/.local/cache/org/persist/"
 org-log-buffer-setup-hook '(org-roam-log--setup)
 org-roam-completion-everywhere t
 org-ai-openai-api-token "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"
 org-refile-use-outline-path 'file
 org-cycle-tab-first-hook '(+org-yas-expand-maybe-h +org-indent-maybe-h org-babel-hide-result-toggle-maybe org-babel-header-arg-expand)
 org-roam-node-display-template #("${doom-hierarchy:*} ${doom-type:12} ${doom-tags:42}" 20 35 (face font-lock-keyword-face) 36 51 (face (:inherit org-tag :box nil)))
 org-imenu-depth 6
 org-todo-keywords '((sequence "TODO(t)" "PROJ(p)" "LOOP(r)" "STRT(s)" "WAIT(w)" "HOLD(h)" "IDEA(i)" "|" "DONE(d)" "KILL(k)")
                     (sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)") (sequence "|" "OKAY(o)" "YES(y)" "NO(n)"))
 org-agenda-before-write-hook '(org-agenda-add-entry-text)
 org-metadown-hook '(org-babel-pop-to-session-maybe)
 org-clock-history-length 20
 org-ai-default-chat-model "gpt-4-1106-preview"
 org-tab-first-hook '(+org-yas-expand-maybe-h +org-indent-maybe-h org-babel-hide-result-toggle-maybe org-babel-header-arg-expand)
 org-after-refile-insert-hook '(save-buffer)
 org-startup-folded nil
 org-babel-pre-tangle-hook '(save-buffer)
 org-src-preserve-indentation t
 org-roam-capture-new-node-hook '(org-roam-capture--insert-captured-ref-h)
 org-tags-column 0
 org-roam-db-gc-threshold 2305843009213693951
 org-babel-after-execute-hook '(+org-redisplay-inline-images-in-babel-result-h)
 org-export-before-parsing-hook '(org-attach-expand-links)
 org-link-shell-confirm-function 'yes-or-no-p
 org-fold-core-isearch-open-function 'org-fold-core--isearch-reveal
 org-agenda-skip-unavailable-files t
 org-roam-capture-preface-hook '(org-roam-capture--try-capture-to-ref-h)
 org-tags-exclude-from-inheritance '("crypt")
 outline-isearch-open-invisible-function 'outline-isearch-open-invisible
 org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer)
 org-agenda-span 10
 org-agenda-mode-hook '(+org-habit-resize-graph-h beginend-org-agenda-mode evil-org-agenda-mode)
 org-roam-find-file-hook '(doom--setq-org-id-link-to-org-use-id-for-org-roam-find-file-h org-roam-buffer--setup-redisplay-h
                           org-roam--register-completion-functions-h org-roam--replace-roam-links-on-save-h
                           org-roam-db-autosync--setup-update-on-save-h +org-roam-enable-auto-backlinks-buffer-h)
 org-fontify-quote-and-verse-blocks t
 org-capture-after-finalize-hook '(+org-capture-cleanup-frame-h)
 org-startup-with-inline-images t
 outline-minor-mode-hook '(outline-minor-faces-mode)
 org-modules '(ol-bibtex)
 org-roam-ref-annotation-function 'org-roam-ref-read--annotation
 org-agenda-loop-over-headlines-in-active-region nil
 org-priority-lowest 69
 org-agenda-start-on-weekday nil
 org-agenda-files '("~/org/")
 org-list-allow-alphabetical t
 org-attach-id-dir "/home/st/org/.attach/"
 org-capture-mode-hook '(+org-show-target-in-capture-header-h org-capture--insert-timestamp evil-insert-state)
 org-id-locations-file-relative t
 org-link-elisp-confirm-function nil
 org-outline-path-complete-in-steps nil
 org-ai-on-project-mode-hook '(#[0 "\301\300!\210\302\211\207" [show-trailing-whitespace make-local-variable nil] 2])
 org-startup-indented t
 org-roam-mode-hook '(+org-roam-detach-magit-section-mode-map-h turn-on-visual-line-mode)
 org-archive-location "~/org/.archive/%s::"
 org-read-date-force-compatible-dates nil
 org-clock-persist-file "/home/st/.config/emacs/.local/etc/org-clock-save.el"
 org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-show-empty-lines org-cycle-optimize-window-after-visibility-change
                  org-cycle-display-inline-images)
 org-persist-before-read-hook '(org-element--cache-persist-before-read)
 org-use-sub-superscripts '{}
 org-src-block-faces '(("latex" (:inherit default :extend t)))
 )


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [BUG] org-fold :extend face backgrounds break with trailing newlines [9.7-pre (release_9.6.20-1267-gb0c3c9 @ /home/st/.config/emacs/.local/straight/build-30.0.50/org/)]
  2024-03-10  3:51 [BUG] org-fold :extend face backgrounds break with trailing newlines [9.7-pre (release_9.6.20-1267-gb0c3c9 @ /home/st/.config/emacs/.local/straight/build-30.0.50/org/)] StrawberryTea
@ 2024-03-12 12:47 ` Ihor Radchenko
  0 siblings, 0 replies; 2+ messages in thread
From: Ihor Radchenko @ 2024-03-12 12:47 UTC (permalink / raw)
  To: StrawberryTea; +Cc: emacs-orgmode

StrawberryTea <look@strawberrytea.xyz> writes:

> I've noticed that when using the :extend face property with org-fold,
> the background color of the headline face will sometimes be left behind
> after unfolding a heading. I have finally determined that this is
> happening when the heading has a trailing newline and the heading is
> after the last non-whitespace character in the heading's body.
>
> Here is a minimal example to reproduce this issue from emacs -Q:

Thanks for reporting, but I am unable to reproduce the problem on my
side using the latest main. May you please provide more detailed
instruction about what exactly do I need fold/unfold to see the problem?

-- 
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>


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-03-12 12:53 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-10  3:51 [BUG] org-fold :extend face backgrounds break with trailing newlines [9.7-pre (release_9.6.20-1267-gb0c3c9 @ /home/st/.config/emacs/.local/straight/build-30.0.50/org/)] StrawberryTea
2024-03-12 12:47 ` Ihor Radchenko

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.