emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Things got very slow: profiler output


From: Ihor Radchenko
Subject: Re: Things got very slow: profiler output
Date: Sat, 16 Mar 2024 08:56:09 +0000

Bruno Cardoso <cardoso.bc@gmail.com> writes:

> My call count is in fact higher:
>
> org-fold-core--property-symbol-get-create  196278      3.2828460320  
> 1.672...e-05

Makes sense.

What if you try the following version of `org-activate-folds'?

(defun org-activate-folds (limit)
  "Arrange trailing newlines after folds to inherit face before the fold."
  (let ((next-unfolded-newline (search-forward "\n" limit 'move)))
    (while (and next-unfolded-newline (org-fold-folded-p) (not (eobp)))
      (goto-char (org-fold-core-next-visibility-change nil limit 'only-folds))
      (setq next-unfolded-newline (search-forward "\n" limit 'move)))
    (when next-unfolded-newline
      (org-with-wide-buffer
       (when (and (> (match-beginning 0) (point-min))
                  (org-fold-folded-p (1- (match-beginning 0)))
                  (not (org-fold-folded-p (1- (match-beginning 0)) 'org-link)))
         (put-text-property
          (match-beginning 0) (match-end 0)
          'face
          (get-text-property
           (org-fold-previous-visibility-change
            (1- (match-beginning 0)))
           'face)))
       t))))

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]