[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Bug: org-src-font-lock-fontify-block should be wrapped with save-match-d
From: |
Tobias Zawada |
Subject: |
Bug: org-src-font-lock-fontify-block should be wrapped with save-match-data [9.3.7 (9.3.7-4-gba6ca7-elpaplus @ mixed installation! /mnt/c/Users/toz/Weiterbildung/Soft/Emacs/ and /mnt/c/Users/toz/.emacs.d/elpa/org-plus-contrib-20200615/) |
Date: |
Fri, 20 Aug 2021 12:07:29 +0200 (CEST) |
~org-src-font-lock-fontify-block~ modifies ~match-data~ through the
fontification of the temporary source buffer. But
~org-src-font-lock-fontify-block~ is also called in
~org-fontify-meta-lines-and-blocks-1~ by
~font-lock-fontify-region~. There it puts the text property
~font-lock-multiline~ on some text from the beginning up to the end of
the last match in the Org buffer. Since the source buffer is smaller than the
Org buffer
~match-beginning~ is smaller than it should be.
This can slow down editing operations in org-mode with large source blocks to
an extent to which
org-mode becomes unusable.
An easy workaround is:
#+begin_src emacs-lisp
(defun org+-with-save-match-data (fun &rest args)
"Run FUN with ARGS but save `match-data'."
(save-match-data
(apply fun args)))
(advice-add 'org-src-font-lock-fontify-block :around
#'org+-with-save-match-data)
#+end_src
Emacs : GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.20,
cairo version 1.16.0)
of 2020-09-19
Package: Org mode version 9.3.7 (9.3.7-4-gba6ca7-elpaplus @ mixed installation!
/mnt/c/Users/toz/Weiterbildung/Soft/Emacs/ and
/mnt/c/Users/toz/.emacs.d/elpa/org-plus-contrib-20200615/)
- Bug: org-src-font-lock-fontify-block should be wrapped with save-match-data [9.3.7 (9.3.7-4-gba6ca7-elpaplus @ mixed installation! /mnt/c/Users/toz/Weiterbildung/Soft/Emacs/ and /mnt/c/Users/toz/.emacs.d/elpa/org-plus-contrib-20200615/),
Tobias Zawada <=