]> git.eshelyaron.com Git - emacs.git/commitdiff
Add a convenience function to be used when working on font locking
authorLars Ingebrigtsen <larsi@gnus.org>
Wed, 30 Oct 2019 12:08:55 +0000 (13:08 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Wed, 30 Oct 2019 12:16:44 +0000 (13:16 +0100)
* doc/lispref/modes.texi (Font Lock Basics): Document it.

* lisp/font-lock.el (font-lock-refontify): New convenience command.

doc/lispref/modes.texi
etc/NEWS
lisp/font-lock.el

index 2e0c9e4655ef696b1f4df9602dbf43d9f3873093..fda5a106bbe6f7fdf2d7a5e7705428513117e691 100644 (file)
@@ -2737,6 +2737,12 @@ This function should make sure the region between @var{beg} and
 @var{end} default to the beginning and the end of the buffer's
 accessible portion.  Calls the function specified by
 @code{font-lock-ensure-function}.
+
+@item font-lock-refontify
+This is a convenience command meant to be used when developing font
+locking for a mode, and should not be called from Lisp code.  It
+recomputes all the relevant variables and then calls
+@code{font-lock-ensure} on the entire buffer.
 @end ftable
 
   There are several variables that control how Font Lock mode highlights
index daf9e0e1f0cddf01d0fcc3e0dff78f15d0efdd62..3df50154e3ea68d99421ead7612983e85ef999ce 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -575,6 +575,12 @@ current and the previous or the next line, as before.
 \f
 * Changes in Specialized Modes and Packages in Emacs 27.1
 
++++
+** New command 'font-lock-refontify'.
+This is an interactive convenience function to be used when developing
+font locking for a mode.  It recomputes the font locking data and then
+re-fontifies the buffer.
+
 ---
 ** The 'C' command in 'tar-mode' will now preserve the timestamp of
 the extracted file if the new user option 'tar-copy-preserve-time' is
index 9ae082736cc96062daefa8c61eec28ed98fb36d7..971e37309e90bf7fd79c12594c1e6a1832886755 100644 (file)
@@ -1100,6 +1100,15 @@ accessible portion of the current buffer."
   "Function to make sure a region has been fontified.
 Called with two arguments BEG and END.")
 
+(defun font-lock-refontify ()
+  "Reinitialise the font-lock machinery and re-fontify the buffer.
+This functions is a convenience functions when developing font
+locking for a mode, and is not meant to be called from lisp functions."
+  (interactive)
+  (declare (interactive-only t))
+  (setq font-lock-major-mode nil)
+  (font-lock-ensure))
+
 (defun font-lock-ensure (&optional beg end)
   "Make sure the region BEG...END has been fontified.
 If the region is not specified, it defaults to the entire accessible