]> git.eshelyaron.com Git - emacs.git/commitdiff
(font-lock-extend-region-function, font-lock-extend-region):
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 1 Aug 2006 19:09:11 +0000 (19:09 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 1 Aug 2006 19:09:11 +0000 (19:09 +0000)
Move from font-core.el.  Simplify.

lisp/ChangeLog
lisp/font-lock.el

index 039c0ad90fcf4018af7d89cf9795e890539367f6..960200f8721d99366aa425606bf2ad589c1f8798 100644 (file)
@@ -1,5 +1,17 @@
 2006-08-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+       * font-core.el (font-lock-extend-region-function)
+       (font-lock-extend-region): Move to font-lock.el.
+
+       * font-lock.el (font-lock-extend-region-function)
+       (font-lock-extend-region): Move from font-core.el.  Simplify.
+
+       * jit-lock.el (jit-lock-fontify-now): Cause a second redisplay
+       if needed.
+       (jit-lock-start, jit-lock-end): New dynamic scoped vars.
+       (jit-lock-after-change-extend-region-functions): New hook.
+       (jit-lock-after-change): Use it instead of hard-coding font-lock code.
+
        * font-lock.el (font-lock-extend-jit-lock-region-after-change): New fun.
        (font-lock-turn-on-thing-lock): Use it.
 
index ecf54895c1cbc95210dc5733eb0024a3f3efdee2..201d236f7aca3a9d892e183e35084c83a6a4723c 100644 (file)
@@ -975,6 +975,31 @@ The value of this variable is used when Font Lock mode is turned on."
 ;; directives correctly and cleanly.  (It is the same problem as fontifying
 ;; multi-line strings and comments; regexps are not appropriate for the job.)
 
+(defvar font-lock-extend-region-function nil
+  "A function that determines the region to fontify after a change.
+
+This variable is either nil, or is a function that determines the
+region to refontify after a change.
+It is usually set by the major mode via `font-lock-defaults'.
+Font-lock calls this function after each buffer change.
+
+The function is given three parameters, the standard BEG, END, and OLD-LEN
+from `after-change-functions'.  It should return either a cons of the beginning
+and end buffer positions \(in that order) of the region to fontify, or nil
+\(which directs the caller to fontify a default region).  This function
+should preserve point and the match-data.
+The region it returns may start or end in the middle of a line.")
+
+(defun font-lock-extend-region (beg end old-len)
+  "Determine the region to fontify after a buffer change.
+
+BEG END and OLD-LEN are the standard parameters from `after-change-functions'.
+The return value is either nil \(which directs the caller to chose the region
+itself), or a cons of the beginning and end \(in that order) of the region.
+The region returned may start or end in the middle of a line."
+  (if font-lock-extend-region-function
+      (funcall font-lock-extend-region-function beg end old-len)))
+
 (defun font-lock-fontify-buffer ()
   "Fontify the current buffer the way the function `font-lock-mode' would."
   (interactive)