;;; font-core.el --- Core interface to font-lock
;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-;; 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+;; 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+;; Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: languages, faces
(KEYWORDS [KEYWORDS-ONLY [CASE-FOLD [SYNTAX-ALIST [SYNTAX-BEGIN ...]]]])
-KEYWORDS may be a symbol (a variable or function whose value is the keywords to
-use for fontification) or a list of symbols. If KEYWORDS-ONLY is non-nil,
-syntactic fontification (strings and comments) is not performed.
+KEYWORDS may be a symbol (a variable or function whose value is the keywords
+to use for fontification) or a list of symbols (specifying different levels
+of fontification).
+
+If KEYWORDS-ONLY is non-nil, syntactic fontification (strings and
+comments) is not performed.
+
If CASE-FOLD is non-nil, the case of the keywords is ignored when fontifying.
+
If SYNTAX-ALIST is non-nil, it should be a list of cons pairs of the form
\(CHAR-OR-STRING . STRING) used to set the local Font Lock syntax table, for
keyword and syntactic fontification (see `modify-syntax-entry').
known to move outside a syntactic block). If nil, the beginning of the buffer
is used as a position outside of a syntactic block, in the worst case.
+\(See also Info node `(elisp)Font Lock Basics'.)
+
These item elements are used by Font Lock mode to set the variables
`font-lock-keywords', `font-lock-keywords-only',
`font-lock-keywords-case-fold-search', `font-lock-syntax-table' and
functions, `font-lock-fontify-buffer-function',
`font-lock-unfontify-buffer-function', `font-lock-fontify-region-function',
`font-lock-unfontify-region-function', and `font-lock-inhibit-thing-lock'.")
+;;;###autoload
+(put 'font-lock-defaults 'risky-local-variable t)
(make-variable-buffer-local 'font-lock-defaults)
(defvar font-lock-defaults-alist nil
`font-lock-mode'.")
;; The mode for which font-lock was initialized, or nil if none.
-(defvar font-lock-mode-major-mode)
+(defvar font-lock-major-mode)
(define-minor-mode font-lock-mode
"Toggle Font Lock mode.
With arg, turn Font Lock mode off if and only if arg is a non-positive
;; Arrange to unfontify this buffer if we change major mode later.
(if font-lock-mode
(add-hook 'change-major-mode-hook 'font-lock-change-mode nil t)
- (remove-hook 'change-major-mode-hook 'font-lock-change-mode t))
- (when font-lock-mode
- (setq font-lock-mode-major-mode major-mode)))
+ (remove-hook 'change-major-mode-hook 'font-lock-change-mode t)))
;; Get rid of fontification for the old major mode.
;; We do this when changing major modes.
(and mode
(boundp 'font-lock-set-defaults)
font-lock-set-defaults
- font-lock-mode-major-mode
- (not (eq font-lock-mode-major-mode major-mode))))
+ font-lock-major-mode
+ (not (eq font-lock-major-mode major-mode))))
(font-lock-mode-internal mode)))
(defun turn-on-font-lock ()
;; would also be contrary to the Principle of Least Surprise. sm.
(defcustom font-lock-global-modes t
- "*Modes for which Font Lock mode is automagically turned on.
+ "Modes for which Font Lock mode is automagically turned on.
Global Font Lock mode is controlled by the command `global-font-lock-mode'.
If nil, means no modes have Font Lock mode automatically turned on.
If t, all modes that support Font Lock mode have it automatically turned on.
t)
((eq (car-safe font-lock-global-modes) 'not)
(not (memq major-mode (cdr font-lock-global-modes))))
- (t (memq major-mode (cdr font-lock-global-modes))))
+ (t (memq major-mode font-lock-global-modes)))
(let (inhibit-quit)
(turn-on-font-lock))))
(define-globalized-minor-mode global-font-lock-mode
font-lock-mode turn-on-font-lock-if-desired
- :extra-args (dummy)
- :initialize 'custom-initialize-safe-default
+ ;; What was this :extra-args thingy for? --Stef
+ ;; :extra-args (dummy)
+ :initialize 'custom-initialize-delay
:init-value (not (or noninteractive emacs-basic-display))
:group 'font-lock
:version "22.1")