1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-26 07:33:47 +00:00

Respect fontification region calculated by major mode. Fixes bug #22316.

* lisp/font-lock.el (font-lock-extend-jit-lock-region-after-change): when a
fontification region has been calculated by a function on
font-lock-extend-after-change-region-function use this region rather than
changing the end position to somewhere else.
This commit is contained in:
Alan Mackenzie 2016-01-08 14:41:58 +00:00
parent 4b37cba3d5
commit 8be046f453

View File

@ -1302,15 +1302,18 @@ This function does 2 things:
(point-min))))
(when (< end (point-max))
(setq end
(if (get-text-property end 'font-lock-multiline)
(or (text-property-any end (point-max)
'font-lock-multiline nil)
(point-max))
(cond
((get-text-property end 'font-lock-multiline)
(or (text-property-any end (point-max)
'font-lock-multiline nil)
(point-max)))
;; If `end' has been set by the function above, don't corrupt it.
(font-lock-extend-after-change-region-function end)
;; Rounding up to a whole number of lines should include the
;; line right after `end'. Typical case: the first char of
;; the line was deleted. Or a \n was inserted in the middle
;; of a line.
(1+ end))))
(t (1+ end)))))
;; Finally, pre-enlarge the region to a whole number of lines, to try
;; and anticipate what font-lock-default-fontify-region will do, so as to
;; avoid double-redisplay.