[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org 793cdbea68: fixup! org-fold: Honor :extend face pro
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org 793cdbea68: fixup! org-fold: Honor :extend face property in folded headings/blocks/drawers |
Date: |
Mon, 22 Jan 2024 12:58:35 -0500 (EST) |
branch: externals/org
commit 793cdbea68ae9f6eb4270315df6ff3419c3d8c20
Author: Ihor Radchenko <yantar92@posteo.net>
Commit: Ihor Radchenko <yantar92@posteo.net>
fixup! org-fold: Honor :extend face property in folded
headings/blocks/drawers
---
lisp/org-fold-core.el | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/lisp/org-fold-core.el b/lisp/org-fold-core.el
index 4619b48c41..80d9e8a5c7 100644
--- a/lisp/org-fold-core.el
+++ b/lisp/org-fold-core.el
@@ -1044,7 +1044,15 @@ If SPEC-OR-ALIAS is omitted and FLAG is nil, unfold
everything in the region."
;; unfolding
(dolist (region (org-fold-core-get-regions :from from :to to :specs
spec))
(when (equal ?\n (char-after (cadr region)))
- (font-lock-flush (cadr region) (1+ (cadr region))))))
+ (if-let ((specs (remq spec (org-fold-core-get-folding-spec 'all
(1- (cadr region))))))
+ ;; There are multiple folds, re-apply 'face according
+ ;; to the folds that will stay after unfolding SPEC.
+ (put-text-property
+ (cadr region) (1+ (cadr region)) 'face
+ (get-text-property
+ (car (org-fold-core-get-region-at-point (car specs) (1-
(cadr region))))
+ 'face))
+ (font-lock-flush (cadr region) (1+ (cadr region)))))))
(when (eq org-fold-core-style 'overlays)
(if org-fold-core--keep-overlays
(mapc
@@ -1104,7 +1112,14 @@ If SPEC-OR-ALIAS is omitted and FLAG is nil, unfold
everything in the region."
(setq pos next))
(setq pos (next-single-char-property-change pos
'invisible nil to)))))))
(when (eq org-fold-core-style 'text-properties)
- (remove-text-properties from to (list
(org-fold-core--property-symbol-get-create spec) nil)))))))))
+ (remove-text-properties from to (list
(org-fold-core--property-symbol-get-create spec) nil)))
+ ;; FROM..TO may represent only a part of the fold. Transfer
+ ;; 'face from the new char before fold, if there is any.
+ (when-let ((trailing-fold (org-fold-core-get-region-at-point spec
to)))
+ (when (equal ?\n (char-after (cdr trailing-fold)))
+ (put-text-property
+ (cdr trailing-fold) (1+ (cdr trailing-fold))
+ 'face (get-text-property to 'face))))))))))
(cl-defmacro org-fold-core-regions (regions &key override clean-markers
relative)
"Fold every region in REGIONS list in current buffer.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/org 793cdbea68: fixup! org-fold: Honor :extend face property in folded headings/blocks/drawers,
ELPA Syncer <=