;;; font-lock.el --- Electric font lock mode
-;; Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 1999
+;; Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 1999, 2000
;; Free Software Foundation, Inc.
-;; Author: jwz, then rms, then sm <simon@gnu.org>
+;; Author: jwz, then rms, then sm
;; Maintainer: FSF
;; Keywords: languages, faces
(MATCH SYNTAX OVERRIDE LAXMATCH)
-where SYNTAX can be of the form (SYNTAX-CODE . MATCHING-CHAR), the name of a
-syntax table, or an expression whose value is such a form or a syntax table.
-OVERRIDE cannot be `prepend' or `append'.
+where SYNTAX can be of the form (SYNTAX-CODE . MATCHING-CHAR) (see
+also `string-to-syntax'), the name of a syntax table, or an expression
+whose value is such a form or a syntax table. OVERRIDE cannot be
+`prepend' or `append'.
For example, an element of the form highlights syntactically:
(setq font-lock-buffers (buffer-list)))
(t
(remove-hook 'find-file-hooks 'turn-on-font-lock-if-enabled)
- (mapcar (function (lambda (buffer)
- (with-current-buffer buffer
- (when font-lock-mode
- (font-lock-mode)))))
+ (mapc (function (lambda (buffer)
+ (with-current-buffer buffer
+ (when font-lock-mode
+ (font-lock-mode)))))
(buffer-list))))
(when message
(message "Global Font Lock mode %s." (if on-p "enabled" "disabled")))
(const :tag "lazy lock" lazy-lock-mode)
(const :tag "JIT lock" jit-lock-mode)))
))
+ :version "21.1"
:group 'font-lock)
(defvar fast-lock-mode nil)
(defun font-lock-after-fontify-buffer ()
(cond (fast-lock-mode
(fast-lock-after-fontify-buffer))
- (jit-lock-mode
- (jit-lock-after-fontify-buffer))
+ ;; Useless now that jit-lock intercepts font-lock-fontify-buffer. -sm
+ ;; (jit-lock-mode
+ ;; (jit-lock-after-fontify-buffer))
(lazy-lock-mode
(lazy-lock-after-fontify-buffer))))
(defun font-lock-after-unfontify-buffer ()
(cond (fast-lock-mode
(fast-lock-after-unfontify-buffer))
- (jit-lock-mode
- (jit-lock-after-unfontify-buffer))
+ ;; Useless as well. It's only called when:
+ ;; - turning off font-lock: it does not matter if we leave spurious
+ ;; `fontified' text props around since jit-lock-mode is also off.
+ ;; - font-lock-default-fontify-buffer fails: this is not run
+ ;; any more anyway. -sm
+ ;;
+ ;; (jit-lock-mode
+ ;; (jit-lock-after-unfontify-buffer))
(lazy-lock-mode
(lazy-lock-after-unfontify-buffer))))
(start (match-beginning match)) (end (match-end match))
(value (nth 1 highlight))
(override (nth 2 highlight)))
- (unless (numberp (car-safe value))
- (setq value (eval value)))
+ (cond ((stringp value)
+ (setq value (string-to-syntax value)))
+ ((not (numberp (car-safe value)))
+ (setq value (eval value))))
(cond ((not start)
;; No match but we might not signal an error.
(or (nth 3 highlight)
(when (and font-lock-multiline
(funcall (if (eq font-lock-multiline t) '>= '>)
pre-match-value
- (save-excursion (forward-line 1) (point))))
+ (line-beginning-position 2)))
;; this is a multiline anchored match
(setq font-lock-multiline t)
(put-text-property (point) limit 'font-lock-multiline t)))
;; Function declarations.
"\\(advice\\|alias\\|generic\\|macro\\*?\\|method\\|"
"setf\\|subst\\*?\\|un\\*?\\|"
- "ine-\\(condition\\|derived-mode\\|function\\|"
+ "ine-\\(condition\\|\\(?:derived\\|minor\\)-mode\\|"
"method-combination\\|setf-expander\\|skeleton\\|widget\\|"
- "\\(compiler\\|modify\\|symbol\\)-macro\\)\\)\\|"
+ "function\\|\\(compiler\\|modify\\|symbol\\)-macro\\)\\)\\|"
;; Variable declarations.
"\\(const\\(ant\\)?\\|custom\\|face\\|parameter\\|var\\)\\|"
;; Structure declarations.
\f
;; Install ourselves:
+;; Useful for the popup-menu for mouse-3 on the modeline.
(unless (assq 'font-lock-mode minor-mode-alist)
(push '(font-lock-mode nil) minor-mode-alist))