X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/8a1f4a98c1b8e3abaf1b46394a88d09531ce4c2d..678fb7066698ebfe3aecba722294025ed26da01b:/lisp/font-lock.el?ds=sidebyside diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 3dbae271a4..95bdc815e1 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1,8 +1,6 @@ ;;; font-lock.el --- Electric font lock mode -;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 -;; Free Software Foundation, Inc. +;; Copyright (C) 1992-2012 Free Software Foundation, Inc. ;; Author: Jamie Zawinski ;; Richard Stallman @@ -230,8 +228,11 @@ ;; User variables. (defcustom font-lock-maximum-size 256000 - "Maximum size of a buffer for buffer fontification. -Only buffers less than this can be fontified when Font Lock mode is turned on. + "Maximum buffer size for unsupported buffer fontification. +When `font-lock-support-mode' is nil, only buffers smaller than +this are fontified. This variable has no effect if a Font Lock +support mode (usually `jit-lock-mode') is enabled. + If nil, means size is irrelevant. If a list, each element should be a cons pair of the form (MAJOR-MODE . SIZE), where MAJOR-MODE is a symbol or t (meaning the default). For example: @@ -250,12 +251,14 @@ for buffers in Rmail mode, and size is irrelevant otherwise." (const :tag "none" nil) (integer :tag "size"))))) :group 'font-lock) +(make-obsolete-variable 'font-lock-maximum-size nil "24.1") (defcustom font-lock-maximum-decoration t "Maximum decoration level for fontification. If nil, use the default decoration (typically the minimum available). If t, use the maximum decoration available. If a number, use that level of decoration (or if not available the maximum). +The higher the number, the more decoration is done. If a list, each element should be a cons pair of the form (MAJOR-MODE . LEVEL), where MAJOR-MODE is a symbol or t (meaning the default). For example: ((c-mode . t) (c++-mode . 2) (t . 1)) @@ -291,7 +294,7 @@ If a number, only buffers greater than this size have fontification messages." ;; and they give users another mechanism for changing face appearance. ;; We now allow a FACENAME in `font-lock-keywords' to be any expression that ;; returns a face. So the easiest thing is to continue using these variables, -;; rather than sometimes evaling FACENAME and sometimes not. sm. +;; rather than sometimes evalling FACENAME and sometimes not. sm. ;; Note that in new code, in the vast majority of cases there is no ;; need to create variables that specify face names. Simply using @@ -565,7 +568,7 @@ we recommend setting `syntax-begin-function' instead. This is normally set via `font-lock-defaults'.") (make-obsolete-variable 'font-lock-beginning-of-syntax-function - 'syntax-begin-function "23.3") + 'syntax-begin-function "23.3" 'set) (defvar font-lock-mark-block-function nil "*Non-nil means use this function to mark a block of text. @@ -978,7 +981,7 @@ The value of this variable is used when Font Lock mode is turned on." ;; rules one way and C code another. Neat! ;; ;; A further reason to use the fontification indirection feature is when the -;; default syntactual fontification, or the default fontification in general, +;; default syntactic fontification, or the default fontification in general, ;; is not flexible enough for a particular major mode. For example, perhaps ;; comments are just too hairy for `font-lock-fontify-syntactically-region' to ;; cope with. You need to write your own version of that function, e.g., @@ -1019,14 +1022,20 @@ The region it returns may start or end in the middle of a line.") (funcall font-lock-unfontify-buffer-function)) (defun font-lock-fontify-region (beg end &optional loudly) + "Fontify the text between BEG and END. +If LOUDLY is non-nil, print status messages while fontifying. +This works by calling `font-lock-fontify-region-function'." (font-lock-set-defaults) (funcall font-lock-fontify-region-function beg end loudly)) (defun font-lock-unfontify-region (beg end) + "Unfontify the text between BEG and END. +This works by calling `font-lock-unfontify-region-function'." (save-buffer-state (funcall font-lock-unfontify-region-function beg end))) (defun font-lock-default-fontify-buffer () + "Fontify the whole buffer using `font-lock-fontify-region-function'." (let ((verbose (if (numberp font-lock-verbose) (> (buffer-size) font-lock-verbose) font-lock-verbose))) @@ -1046,6 +1055,7 @@ The region it returns may start or end in the middle of a line.") (quit (font-lock-unfontify-buffer))))))) (defun font-lock-default-unfontify-buffer () + "Unfontify the whole buffer using `font-lock-unfontify-region-function'." ;; Make sure we unfontify etc. in the whole buffer. (save-restriction (widen) @@ -1115,6 +1125,9 @@ Put first the functions more likely to cause a change and cheaper to compute.") changed)) (defun font-lock-default-fontify-region (beg end loudly) + "Fontify the text between BEG and END. +If LOUDLY is non-nil, print status messages while fontifying. +This function is the default `font-lock-fontify-region-function'." (save-buffer-state ;; Use the fontification syntax table, if any. (with-syntax-table (or font-lock-syntax-table (syntax-table)) @@ -1163,6 +1176,8 @@ This is used by `font-lock-default-unfontify-region' to decide what properties to clear before refontifying a region.") (defun font-lock-default-unfontify-region (beg end) + "Unfontify the text between BEG and END. +This function is the default `font-lock-unfontify-region-function'." (remove-list-of-text-properties beg end (append font-lock-extra-managed-props @@ -1727,7 +1742,7 @@ If SYNTACTIC-KEYWORDS is non-nil, it means these keywords are used for keyword))) (defun font-lock-eval-keywords (keywords) - "Evalulate KEYWORDS if a function (funcall) or variable (eval) name." + "Evaluate KEYWORDS if a function (funcall) or variable (eval) name." (if (listp keywords) keywords (font-lock-eval-keywords (if (fboundp keywords) @@ -1767,8 +1782,7 @@ variables directly. Note: This function will erase modifications done by `font-lock-add-keywords' or `font-lock-remove-keywords', but will preserve `hi-lock-mode' highlighting patterns." - (let ((hi-lock--inhibit-font-lock-hook t)) - (font-lock-mode -1)) + (font-lock-mode -1) (kill-local-variable 'font-lock-set-defaults) (font-lock-mode 1)) @@ -1859,19 +1873,13 @@ Sets various variables using `font-lock-defaults' and (((class color) (min-colors 8) (background light)) (:foreground "red")) (((class color) (min-colors 8) (background dark)) - ) + (:foreground "yellow")) (t (:weight bold :slant italic))) "Font Lock mode face used to highlight comments." :group 'font-lock-faces) (defface font-lock-comment-delimiter-face - '((default :inherit font-lock-comment-face) - (((class grayscale))) - (((class color) (min-colors 16))) - (((class color) (min-colors 8) (background light)) - :foreground "red") - (((class color) (min-colors 8) (background dark)) - :foreground "red1")) + '((default :inherit font-lock-comment-face)) "Font Lock mode face used to highlight comment delimiters." :group 'font-lock-faces) @@ -1907,7 +1915,7 @@ Sets various variables using `font-lock-defaults' and (defface font-lock-builtin-face '((((class grayscale) (background light)) (:foreground "LightGray" :weight bold)) (((class grayscale) (background dark)) (:foreground "DimGray" :weight bold)) - (((class color) (min-colors 88) (background light)) (:foreground "MediumOrchid4")) + (((class color) (min-colors 88) (background light)) (:foreground "dark slate blue")) (((class color) (min-colors 88) (background dark)) (:foreground "LightSteelBlue")) (((class color) (min-colors 16) (background light)) (:foreground "Orchid")) (((class color) (min-colors 16) (background dark)) (:foreground "LightSteelBlue")) @@ -1967,12 +1975,7 @@ Sets various variables using `font-lock-defaults' and :group 'font-lock-faces) (defface font-lock-warning-face - '((((class color) (min-colors 88) (background light)) (:foreground "Red1" :weight bold)) - (((class color) (min-colors 88) (background dark)) (:foreground "Pink" :weight bold)) - (((class color) (min-colors 16) (background light)) (:foreground "Red1" :weight bold)) - (((class color) (min-colors 16) (background dark)) (:foreground "Pink" :weight bold)) - (((class color) (min-colors 8)) (:foreground "red")) - (t (:inverse-video t :weight bold))) + '((t :inherit error)) "Font Lock mode face used to highlight warnings." :group 'font-lock-faces) @@ -2244,7 +2247,7 @@ in which C preprocessor directives are used. e.g. `asm-mode' and "\\)\\)\\>" ;; Any whitespace and defined object. "[ \t'\(]*" - "\\(setf[ \t]+\\sw+)\\|\\sw+\\)?") + "\\(setf[ \t]+\\sw+\\|\\sw+\\)?") (1 font-lock-keyword-face) (9 (cond ((match-beginning 3) font-lock-function-name-face) ((match-beginning 6) font-lock-variable-name-face)