[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/font-lock.el
From: |
Kenichi Handa |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/font-lock.el |
Date: |
Thu, 05 Jun 2003 08:58:44 -0400 |
Index: emacs/lisp/font-lock.el
diff -c emacs/lisp/font-lock.el:1.209 emacs/lisp/font-lock.el:1.210
*** emacs/lisp/font-lock.el:1.209 Mon Apr 14 11:04:16 2003
--- emacs/lisp/font-lock.el Mon Apr 14 19:07:39 2003
***************
*** 565,570 ****
--- 565,578 ----
Currently, valid mode names are `fast-lock-mode', `jit-lock-mode' and
`lazy-lock-mode'. This is normally set via `font-lock-defaults'.")
+ (defvar font-lock-multiline nil
+ "Whether font-lock should cater to multiline keywords.
+ If nil, don't try to handle multiline patterns.
+ If t, always handle multiline patterns.
+ If `undecided', don't try to handle multiline patterns until you see one.
+ Major/minor modes can set this variable if they know which option applies.")
+
+ (defvar font-lock-fontified nil) ; Whether we have fontified the buffer.
;; Font Lock mode.
***************
*** 598,603 ****
--- 606,633 ----
(defvar font-lock-face-attributes)) ; Obsolete but respected if set.
;;;###autoload
+ (defun font-lock-mode-internal (arg)
+ ;; Turn on Font Lock mode.
+ (when arg
+ (add-hook 'after-change-functions 'font-lock-after-change-function t t)
+ (font-lock-set-defaults)
+ (font-lock-turn-on-thing-lock)
+ ;; Fontify the buffer if we have to.
+ (let ((max-size (font-lock-value-in-major-mode font-lock-maximum-size)))
+ (cond (font-lock-fontified
+ nil)
+ ((or (null max-size) (> max-size (buffer-size)))
+ (font-lock-fontify-buffer))
+ (font-lock-verbose
+ (message "Fontifying %s...buffer size greater than
font-lock-maximum-size"
+ (buffer-name))))))
+ ;; Turn off Font Lock mode.
+ (unless font-lock-mode
+ (remove-hook 'after-change-functions 'font-lock-after-change-function t)
+ (font-lock-unfontify-buffer)
+ (font-lock-turn-off-thing-lock)))
+
+ ;;;###autoload
(defun font-lock-add-keywords (mode keywords &optional append)
"Add highlighting KEYWORDS for MODE.
MODE should be a symbol, the major mode command name, such as `c-mode'
***************
*** 1446,1496 ****
(t
(car keywords))))
! (defun font-lock-set-defaults-1 ()
! (let* ((defaults (or font-lock-defaults
! (cdr (assq major-mode font-lock-defaults-alist))))
! (keywords
! (font-lock-choose-keywords (nth 0 defaults)
! (font-lock-value-in-major-mode
font-lock-maximum-decoration)))
! (local (cdr (assq major-mode font-lock-keywords-alist)))
! (removed-keywords
! (cdr-safe (assq major-mode font-lock-removed-keywords-alist))))
! (set (make-local-variable 'font-lock-defaults) defaults)
! ;; Syntactic fontification?
! (when (nth 1 defaults)
! (set (make-local-variable 'font-lock-keywords-only) t))
! ;; Case fold during regexp fontification?
! (when (nth 2 defaults)
! (set (make-local-variable 'font-lock-keywords-case-fold-search) t))
! ;; Syntax table for regexp and syntactic fontification?
! (when (nth 3 defaults)
! (set (make-local-variable 'font-lock-syntax-table)
! (copy-syntax-table (syntax-table)))
! (dolist (selem (nth 3 defaults))
! ;; The character to modify may be a single CHAR or a STRING.
! (let ((syntax (cdr selem)))
! (dolist (char (if (numberp (car selem))
! (list (car selem))
! (mapcar 'identity (car selem))))
! (modify-syntax-entry char syntax font-lock-syntax-table)))))
! ;; Syntax function for syntactic fontification?
! (when (nth 4 defaults)
! (set (make-local-variable 'font-lock-beginning-of-syntax-function)
! (nth 4 defaults)))
! ;; Variable alist?
! (dolist (x (nthcdr 5 defaults))
! (set (make-local-variable (car x)) (cdr x)))
! ;; Setup `font-lock-keywords' last because its value might depend
! ;; on other settings (e.g. font-lock-compile-keywords uses
! ;; font-lock-beginning-of-syntax-function).
! (set (make-local-variable 'font-lock-keywords)
! (font-lock-compile-keywords (font-lock-eval-keywords keywords) t))
! ;; Local fontification?
! (while local
! (font-lock-add-keywords nil (car (car local)) (cdr (car local)))
! (setq local (cdr local)))
! (when removed-keywords
! (font-lock-remove-keywords nil removed-keywords))))
;;; Colour etc. support.
--- 1476,1536 ----
(t
(car keywords))))
! (defvar font-lock-set-defaults nil) ; Whether we have set up defaults.
!
! (defun font-lock-set-defaults ()
! "Set fontification defaults appropriately for this mode.
! Sets various variables using `font-lock-defaults' (or, if nil, using
! `font-lock-defaults-alist') and `font-lock-maximum-decoration'."
! ;; Set fontification defaults iff not previously set.
! (unless font-lock-set-defaults
! (set (make-local-variable 'font-lock-set-defaults) t)
! (make-local-variable 'font-lock-fontified)
! (make-local-variable 'font-lock-multiline)
! (let* ((defaults (or font-lock-defaults
! (cdr (assq major-mode font-lock-defaults-alist))))
! (keywords
! (font-lock-choose-keywords (nth 0 defaults)
! (font-lock-value-in-major-mode
font-lock-maximum-decoration)))
! (local (cdr (assq major-mode font-lock-keywords-alist)))
! (removed-keywords
! (cdr-safe (assq major-mode font-lock-removed-keywords-alist))))
! (set (make-local-variable 'font-lock-defaults) defaults)
! ;; Syntactic fontification?
! (when (nth 1 defaults)
! (set (make-local-variable 'font-lock-keywords-only) t))
! ;; Case fold during regexp fontification?
! (when (nth 2 defaults)
! (set (make-local-variable 'font-lock-keywords-case-fold-search) t))
! ;; Syntax table for regexp and syntactic fontification?
! (when (nth 3 defaults)
! (set (make-local-variable 'font-lock-syntax-table)
! (copy-syntax-table (syntax-table)))
! (dolist (selem (nth 3 defaults))
! ;; The character to modify may be a single CHAR or a STRING.
! (let ((syntax (cdr selem)))
! (dolist (char (if (numberp (car selem))
! (list (car selem))
! (mapcar 'identity (car selem))))
! (modify-syntax-entry char syntax font-lock-syntax-table)))))
! ;; Syntax function for syntactic fontification?
! (when (nth 4 defaults)
! (set (make-local-variable 'font-lock-beginning-of-syntax-function)
! (nth 4 defaults)))
! ;; Variable alist?
! (dolist (x (nthcdr 5 defaults))
! (set (make-local-variable (car x)) (cdr x)))
! ;; Setup `font-lock-keywords' last because its value might depend
! ;; on other settings (e.g. font-lock-compile-keywords uses
! ;; font-lock-beginning-of-syntax-function).
! (set (make-local-variable 'font-lock-keywords)
! (font-lock-compile-keywords (font-lock-eval-keywords keywords) t))
! ;; Local fontification?
! (while local
! (font-lock-add-keywords nil (car (car local)) (cdr (car local)))
! (setq local (cdr local)))
! (when removed-keywords
! (font-lock-remove-keywords nil removed-keywords)))))
;;; Colour etc. support.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/lisp/font-lock.el,
Kenichi Handa <=