changeset 25395:9d8fff117316

(jit-lock-function): Extend the fontified range to the beginning of the line containing the range start and the beginning of the line following the range end.
author Gerd Moellmann <gerd@gnu.org>
date Wed, 25 Aug 1999 13:03:22 +0000
parents ed9fe1a2c8ae
children a704f7231f73
files lisp/jit-lock.el
diffstat 1 files changed, 12 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/jit-lock.el	Wed Aug 25 10:57:56 1999 +0000
+++ b/lisp/jit-lock.el	Wed Aug 25 13:03:22 1999 +0000
@@ -246,7 +246,7 @@
 	   (parse-sexp-lookup-properties font-lock-syntactic-keywords)
 	   (old-syntax-table (syntax-table))
 	   (font-lock-beginning-of-syntax-function nil)
-	   next)
+	   next font-lock-start font-lock-end)
        (when font-lock-syntax-table
 	 (set-syntax-table font-lock-syntax-table))
        (save-excursion
@@ -261,17 +261,20 @@
 		   ;; Determine the end of this chunk.
 		   (setq next (or (text-property-any start end 'fontified t)
 				  end))
-		   
-		   ;; Goto to the start of the chunk.  Make sure we
-		   ;; start fontifying at the beginning of the line
-		   ;; containing the chunk start because font-lock
-		   ;; functions seem to expects this, if I believe
-		   ;; lazy-lock.
+
+		   ;; Decide which range of text should be fontified.
+		   ;; The problem is that START and NEXT may be in the
+		   ;; middle of something matched by a font-lock regexp.
+		   ;; Until someone has a better idea, let's start
+		   ;; at the start of the line containing START and
+		   ;; stop at the start of the line following NEXT.
+		   (goto-char next)
+		   (setq font-lock-end (line-beginning-position 2))
 		   (goto-char start)
-		   (setq start (line-beginning-position))
+		   (setq font-lock-start (line-beginning-position))
 		   
 		   ;; Fontify the chunk, and mark it as fontified.
-		   (font-lock-fontify-region start end nil)
+		   (font-lock-fontify-region font-lock-start font-lock-end nil)
 		   (add-text-properties start next '(fontified t))
 		   
 		   ;; Find the start of the next chunk, if any.