Mercurial > emacs
annotate lisp/font-lock.el @ 24206:d3649b38bb37
(w32_wnd_proc): Fix bug introduced by previous change;
the lwindow, rwindow and apps keys could not be used as function
keys, because they were being passed to TranslateMessage which
ignores them. Also, key was being changed to SPC.
author | Andrew Innes <andrewi@gnu.org> |
---|---|
date | Wed, 27 Jan 1999 21:53:27 +0000 |
parents | c6bfff41f2b5 |
children | 45e1b3418311 |
rev | line source |
---|---|
13440
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1 ;;; font-lock.el --- Electric font lock mode |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
2 |
20923
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
3 ;; Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc. |
4053 | 4 |
20190
bc7fabb22520
Allow any number of ::foos in declarative items.
Simon Marshall <simon@gnu.org>
parents:
19935
diff
changeset
|
5 ;; Author: jwz, then rms, then sm <simon@gnu.org> |
4053 | 6 ;; Maintainer: FSF |
7 ;; Keywords: languages, faces | |
8 | |
9 ;; This file is part of GNU Emacs. | |
10 | |
11 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
12 ;; it under the terms of the GNU General Public License as published by | |
13 ;; the Free Software Foundation; either version 2, or (at your option) | |
14 ;; any later version. | |
15 | |
16 ;; GNU Emacs is distributed in the hope that it will be useful, | |
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 ;; GNU General Public License for more details. | |
20 | |
21 ;; You should have received a copy of the GNU General Public License | |
14169 | 22 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
24 ;; Boston, MA 02111-1307, USA. | |
4053 | 25 |
26 ;;; Commentary: | |
27 | |
9487
f80b2a33df03
* font-lock.el: To make font-lock.el dumpable: (font-lock-display-type,
Simon Marshall <simon@gnu.org>
parents:
9444
diff
changeset
|
28 ;; Font Lock mode is a minor mode that causes your comments to be displayed in |
f80b2a33df03
* font-lock.el: To make font-lock.el dumpable: (font-lock-display-type,
Simon Marshall <simon@gnu.org>
parents:
9444
diff
changeset
|
29 ;; one face, strings in another, reserved words in another, and so on. |
4053 | 30 ;; |
31 ;; Comments will be displayed in `font-lock-comment-face'. | |
32 ;; Strings will be displayed in `font-lock-string-face'. | |
9389
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
33 ;; Regexps are used to display selected patterns in other faces. |
4053 | 34 ;; |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
35 ;; To make the text you type be fontified, use M-x font-lock-mode RET. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
36 ;; When this minor mode is on, the faces of the current line are updated with |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
37 ;; every insertion or deletion. |
4053 | 38 ;; |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
39 ;; To turn Font Lock mode on automatically, add this to your ~/.emacs file: |
4053 | 40 ;; |
9487
f80b2a33df03
* font-lock.el: To make font-lock.el dumpable: (font-lock-display-type,
Simon Marshall <simon@gnu.org>
parents:
9444
diff
changeset
|
41 ;; (add-hook 'emacs-lisp-mode-hook 'turn-on-font-lock) |
4053 | 42 ;; |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
43 ;; Or if you want to turn Font Lock mode on in many modes: |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
44 ;; |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
45 ;; (global-font-lock-mode t) |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
46 ;; |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
47 ;; Fontification for a particular mode may be available in a number of levels |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
48 ;; of decoration. The higher the level, the more decoration, but the more time |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
49 ;; it takes to fontify. See the variable `font-lock-maximum-decoration', and |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
50 ;; also the variable `font-lock-maximum-size'. Support modes for Font Lock |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
51 ;; mode can be used to speed up Font Lock mode. See `font-lock-support-mode'. |
15653
1653d3208c05
1. Use new font-lock-comment-start-regexp for matching a comment---it can be faster than comment-start-skip.
Simon Marshall <simon@gnu.org>
parents:
15500
diff
changeset
|
52 |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
53 ;;; How Font Lock mode fontifies: |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
54 |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
55 ;; When Font Lock mode is turned on in a buffer, it (a) fontifies the entire |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
56 ;; buffer and (b) installs one of its fontification functions on one of the |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
57 ;; hook variables that are run by Emacs after every buffer change (i.e., an |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
58 ;; insertion or deletion). Fontification means the replacement of `face' text |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
59 ;; properties in a given region; Emacs displays text with these `face' text |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
60 ;; properties appropriately. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
61 ;; |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
62 ;; Fontification normally involves syntactic (i.e., strings and comments) and |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
63 ;; regexp (i.e., keywords and everything else) passes. There are actually |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
64 ;; three passes; (a) the syntactic keyword pass, (b) the syntactic pass and (c) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
65 ;; the keyword pass. Confused? |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
66 ;; |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
67 ;; The syntactic keyword pass places `syntax-table' text properties in the |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
68 ;; buffer according to the variable `font-lock-syntactic-keywords'. It is |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
69 ;; necessary because Emacs' syntax table is not powerful enough to describe all |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
70 ;; the different syntactic constructs required by the sort of people who decide |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
71 ;; that a single quote can be syntactic or not depending on the time of day. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
72 ;; (What sort of person could decide to overload the meaning of a quote?) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
73 ;; Obviously the syntactic keyword pass must occur before the syntactic pass. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
74 ;; |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
75 ;; The syntactic pass places `face' text properties in the buffer according to |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
76 ;; syntactic context, i.e., according to the buffer's syntax table and buffer |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
77 ;; text's `syntax-table' text properties. It involves using a syntax parsing |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
78 ;; function to determine the context of different parts of a region of text. A |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
79 ;; syntax parsing function is necessary because generally strings and/or |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
80 ;; comments can span lines, and so the context of a given region is not |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
81 ;; necessarily apparent from the content of that region. Because the keyword |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
82 ;; pass only works within a given region, it is not generally appropriate for |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
83 ;; syntactic fontification. This is the first fontification pass that makes |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
84 ;; changes visible to the user; it fontifies strings and comments. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
85 ;; |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
86 ;; The keyword pass places `face' text properties in the buffer according to |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
87 ;; the variable `font-lock-keywords'. It involves searching for given regexps |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
88 ;; (or calling given search functions) within the given region. This is the |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
89 ;; second fontification pass that makes changes visible to the user; it |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
90 ;; fontifies language reserved words, etc. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
91 ;; |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
92 ;; Oh, and the answer is, "Yes, obviously just about everything should be done |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
93 ;; in a single syntactic pass, but the only syntactic parser available |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
94 ;; understands only strings and comments." Perhaps one day someone will write |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
95 ;; some syntactic parsers for common languages and a son-of-font-lock.el could |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
96 ;; use them rather then relying so heavily on the keyword (regexp) pass. |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
97 |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
98 ;;; How Font Lock mode supports modes or is supported by modes: |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
99 |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
100 ;; Modes that support Font Lock mode do so by defining one or more variables |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
101 ;; whose values specify the fontification. Font Lock mode knows of these |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
102 ;; variable names from (a) the buffer local variable `font-lock-defaults', if |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
103 ;; non-nil, or (b) the global variable `font-lock-defaults-alist', if the major |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
104 ;; mode has an entry. (Font Lock mode is set up via (a) where a mode's |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
105 ;; patterns are distributed with the mode's package library, and (b) where a |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
106 ;; mode's patterns are distributed with font-lock.el itself. An example of (a) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
107 ;; is Pascal mode, an example of (b) is Lisp mode. Normally, the mechanism is |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
108 ;; (a); (b) is used where it is not clear which package library should contain |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
109 ;; the pattern definitions.) Font Lock mode chooses which variable to use for |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
110 ;; fontification based on `font-lock-maximum-decoration'. |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
111 ;; |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
112 ;; Font Lock mode fontification behaviour can be modified in a number of ways. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
113 ;; See the below comments and the comments distributed throughout this file. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
114 |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
115 ;;; Constructing patterns: |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
116 |
15653
1653d3208c05
1. Use new font-lock-comment-start-regexp for matching a comment---it can be faster than comment-start-skip.
Simon Marshall <simon@gnu.org>
parents:
15500
diff
changeset
|
117 ;; See the documentation for the variable `font-lock-keywords'. |
1653d3208c05
1. Use new font-lock-comment-start-regexp for matching a comment---it can be faster than comment-start-skip.
Simon Marshall <simon@gnu.org>
parents:
15500
diff
changeset
|
118 ;; |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
119 ;; Efficient regexps for use as MATCHERs for `font-lock-keywords' and |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
120 ;; `font-lock-syntactic-keywords' can be generated via the function |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
121 ;; `regexp-opt', and their depth counted via the function `regexp-opt-depth'. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
122 |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
123 ;;; Adding patterns for modes that already support Font Lock: |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
124 |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
125 ;; Though Font Lock highlighting patterns already exist for many modes, it's |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
126 ;; likely there's something that you want fontified that currently isn't, even |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
127 ;; at the maximum fontification level. You can add highlighting patterns via |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
128 ;; `font-lock-add-keywords'. For example, say in some C |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
129 ;; header file you #define the token `and' to expand to `&&', etc., to make |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
130 ;; your C code almost readable. In your ~/.emacs there could be: |
15653
1653d3208c05
1. Use new font-lock-comment-start-regexp for matching a comment---it can be faster than comment-start-skip.
Simon Marshall <simon@gnu.org>
parents:
15500
diff
changeset
|
131 ;; |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
132 ;; (font-lock-add-keywords 'c-mode '("\\<\\(and\\|or\\|not\\)\\>")) |
15653
1653d3208c05
1. Use new font-lock-comment-start-regexp for matching a comment---it can be faster than comment-start-skip.
Simon Marshall <simon@gnu.org>
parents:
15500
diff
changeset
|
133 ;; |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
134 ;; Some modes provide specific ways to modify patterns based on the values of |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
135 ;; other variables. For example, additional C types can be specified via the |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
136 ;; variable `c-font-lock-extra-types'. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
137 |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
138 ;;; Adding patterns for modes that do not support Font Lock: |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
139 |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
140 ;; Not all modes support Font Lock mode. If you (as a user of the mode) add |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
141 ;; patterns for a new mode, you must define in your ~/.emacs a variable or |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
142 ;; variables that specify regexp fontification. Then, you should indicate to |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
143 ;; Font Lock mode, via the mode hook setting `font-lock-defaults', exactly what |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
144 ;; support is required. For example, say Foo mode should have the following |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
145 ;; regexps fontified case-sensitively, and comments and strings should not be |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
146 ;; fontified automagically. In your ~/.emacs there could be: |
15653
1653d3208c05
1. Use new font-lock-comment-start-regexp for matching a comment---it can be faster than comment-start-skip.
Simon Marshall <simon@gnu.org>
parents:
15500
diff
changeset
|
147 ;; |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
148 ;; (defvar foo-font-lock-keywords |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
149 ;; '(("\\<\\(one\\|two\\|three\\)\\>" . font-lock-keyword-face) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
150 ;; ("\\<\\(four\\|five\\|six\\)\\>" . font-lock-type-face)) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
151 ;; "Default expressions to highlight in Foo mode.") |
9487
f80b2a33df03
* font-lock.el: To make font-lock.el dumpable: (font-lock-display-type,
Simon Marshall <simon@gnu.org>
parents:
9444
diff
changeset
|
152 ;; |
f80b2a33df03
* font-lock.el: To make font-lock.el dumpable: (font-lock-display-type,
Simon Marshall <simon@gnu.org>
parents:
9444
diff
changeset
|
153 ;; (add-hook 'foo-mode-hook |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
154 ;; (function (lambda () |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
155 ;; (make-local-variable 'font-lock-defaults) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
156 ;; (setq font-lock-defaults '(foo-font-lock-keywords t))))) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
157 |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
158 ;;; Adding Font Lock support for modes: |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
159 |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
160 ;; Of course, it would be better that the mode already supports Font Lock mode. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
161 ;; The package author would do something similar to above. The mode must |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
162 ;; define at the top-level a variable or variables that specify regexp |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
163 ;; fontification. Then, the mode command should indicate to Font Lock mode, |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
164 ;; via `font-lock-defaults', exactly what support is required. For example, |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
165 ;; say Bar mode should have the following regexps fontified case-insensitively, |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
166 ;; and comments and strings should be fontified automagically. In bar.el there |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
167 ;; could be: |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
168 ;; |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
169 ;; (defvar bar-font-lock-keywords |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
170 ;; '(("\\<\\(uno\\|due\\|tre\\)\\>" . font-lock-keyword-face) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
171 ;; ("\\<\\(quattro\\|cinque\\|sei\\)\\>" . font-lock-type-face)) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
172 ;; "Default expressions to highlight in Bar mode.") |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
173 ;; |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
174 ;; and within `bar-mode' there could be: |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
175 ;; |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
176 ;; (make-local-variable 'font-lock-defaults) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
177 ;; (setq font-lock-defaults '(bar-font-lock-keywords nil t)) |
15653
1653d3208c05
1. Use new font-lock-comment-start-regexp for matching a comment---it can be faster than comment-start-skip.
Simon Marshall <simon@gnu.org>
parents:
15500
diff
changeset
|
178 |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
179 ;; What is fontification for? You might say, "It's to make my code look nice." |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
180 ;; I think it should be for adding information in the form of cues. These cues |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
181 ;; should provide you with enough information to both (a) distinguish between |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
182 ;; different items, and (b) identify the item meanings, without having to read |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
183 ;; the items and think about it. Therefore, fontification allows you to think |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
184 ;; less about, say, the structure of code, and more about, say, why the code |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
185 ;; doesn't work. Or maybe it allows you to think less and drift off to sleep. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
186 ;; |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
187 ;; So, here are my opinions/advice/guidelines: |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
188 ;; |
13701
1dab6f0d9239
Don't turn on in any buffer with a leading space in its name.
Simon Marshall <simon@gnu.org>
parents:
13641
diff
changeset
|
189 ;; - Highlight conceptual objects, such as function and variable names, and |
1dab6f0d9239
Don't turn on in any buffer with a leading space in its name.
Simon Marshall <simon@gnu.org>
parents:
13641
diff
changeset
|
190 ;; different objects types differently, i.e., (a) and (b) above, highlight |
1dab6f0d9239
Don't turn on in any buffer with a leading space in its name.
Simon Marshall <simon@gnu.org>
parents:
13641
diff
changeset
|
191 ;; function names differently to variable names. |
1dab6f0d9239
Don't turn on in any buffer with a leading space in its name.
Simon Marshall <simon@gnu.org>
parents:
13641
diff
changeset
|
192 ;; - Keep the faces distinct from each other as far as possible. |
1dab6f0d9239
Don't turn on in any buffer with a leading space in its name.
Simon Marshall <simon@gnu.org>
parents:
13641
diff
changeset
|
193 ;; i.e., (a) above. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
194 ;; - Use the same face for the same conceptual object, across all modes. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
195 ;; i.e., (b) above, all modes that have items that can be thought of as, say, |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
196 ;; keywords, should be highlighted with the same face, etc. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
197 ;; - Make the face attributes fit the concept as far as possible. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
198 ;; i.e., function names might be a bold colour such as blue, comments might |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
199 ;; be a bright colour such as red, character strings might be brown, because, |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
200 ;; err, strings are brown (that was not the reason, please believe me). |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
201 ;; - Don't use a non-nil OVERRIDE unless you have a good reason. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
202 ;; Only use OVERRIDE for special things that are easy to define, such as the |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
203 ;; way `...' quotes are treated in strings and comments in Emacs Lisp mode. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
204 ;; Don't use it to, say, highlight keywords in commented out code or strings. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
205 ;; - Err, that's it. |
9389
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
206 |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
207 ;;; Code: |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
208 |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
209 ;; Define core `font-lock' group. |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
210 (defgroup font-lock nil |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
211 "Font Lock mode text highlighting package." |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
212 :link '(custom-manual "(emacs)Font Lock") |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
213 :group 'faces) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
214 |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
215 (defgroup font-lock-highlighting-faces nil |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
216 "Faces for highlighting text." |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
217 :prefix "font-lock-" |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
218 :group 'font-lock) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
219 |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
220 (defgroup font-lock-extra-types nil |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
221 "Extra mode-specific type names for highlighting declarations." |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
222 :group 'font-lock) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
223 |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
224 ;; Define support mode groups here to impose `font-lock' group order. |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
225 (defgroup fast-lock nil |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
226 "Font Lock support mode to cache fontification." |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
227 :link '(custom-manual "(emacs)Support Modes") |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
228 :load 'fast-lock |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
229 :group 'font-lock) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
230 |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
231 (defgroup lazy-lock nil |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
232 "Font Lock support mode to fontify lazily." |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
233 :link '(custom-manual "(emacs)Support Modes") |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
234 :load 'lazy-lock |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
235 :group 'font-lock) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
236 |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
237 ;; User variables. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
238 |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
239 (defcustom font-lock-maximum-size 256000 |
18332
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
240 "*Maximum size of a buffer for buffer fontification. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
241 Only buffers less than this can be fontified when Font Lock mode is turned on. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
242 If nil, means size is irrelevant. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
243 If a list, each element should be a cons pair of the form (MAJOR-MODE . SIZE), |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
244 where MAJOR-MODE is a symbol or t (meaning the default). For example: |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
245 ((c-mode . 256000) (c++-mode . 256000) (rmail-mode . 1048576)) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
246 means that the maximum size is 250K for buffers in C or C++ modes, one megabyte |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
247 for buffers in Rmail mode, and size is irrelevant otherwise." |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
248 :type '(choice (const :tag "none" nil) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
249 (integer :tag "size") |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
250 (repeat :menu-tag "mode specific" :tag "mode specific" |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
251 :value ((t . nil)) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
252 (cons :tag "Instance" |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
253 (radio :tag "Mode" |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
254 (const :tag "all" t) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
255 (symbol :tag "name")) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
256 (radio :tag "Size" |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
257 (const :tag "none" nil) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
258 (integer :tag "size"))))) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
259 :group 'font-lock) |
4053 | 260 |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
261 (defcustom font-lock-maximum-decoration t |
14780
1d10e4a2fb51
Treat font-lock-keywords of (t) the same as nil.
Simon Marshall <simon@gnu.org>
parents:
14778
diff
changeset
|
262 "*Maximum decoration level for fontification. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
263 If nil, use the default decoration (typically the minimum available). |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
264 If t, use the maximum decoration available. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
265 If a number, use that level of decoration (or if not available the maximum). |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
266 If a list, each element should be a cons pair of the form (MAJOR-MODE . LEVEL), |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
267 where MAJOR-MODE is a symbol or t (meaning the default). For example: |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
268 ((c-mode . t) (c++-mode . 2) (t . 1)) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
269 means use the maximum decoration available for buffers in C mode, level 2 |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
270 decoration for buffers in C++ mode, and level 1 decoration otherwise." |
17507
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
271 :type '(choice (const :tag "default" nil) |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
272 (const :tag "maximum" t) |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
273 (integer :tag "level" 1) |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
274 (repeat :menu-tag "mode specific" :tag "mode specific" |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
275 :value ((t . t)) |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
276 (cons :tag "Instance" |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
277 (radio :tag "Mode" |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
278 (const :tag "all" t) |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
279 (symbol :tag "name")) |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
280 (radio :tag "Decoration" |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
281 (const :tag "default" nil) |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
282 (const :tag "maximum" t) |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
283 (integer :tag "level" 1))))) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
284 :group 'font-lock) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
285 |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
286 (defcustom font-lock-verbose 0 |
18332
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
287 "*If non-nil, means show status messages for buffer fontification. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
288 If a number, only buffers greater than this size have fontification messages." |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
289 :type '(choice (const :tag "never" nil) |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
290 (other :tag "always" t) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
291 (integer :tag "size")) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
292 :group 'font-lock) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
293 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
294 ;; Fontification variables: |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
295 |
4053 | 296 (defvar font-lock-keywords nil |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
297 "A list of the keywords to highlight. |
20851
26c5d61bc3fd
(font-lock-keywords): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20761
diff
changeset
|
298 Each element should have one of these forms: |
9389
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
299 |
11515
0ebfc7701ebf
Make font-lock.el use compiled keywords; added FN as possible matcher.
Simon Marshall <simon@gnu.org>
parents:
11467
diff
changeset
|
300 MATCHER |
0ebfc7701ebf
Make font-lock.el use compiled keywords; added FN as possible matcher.
Simon Marshall <simon@gnu.org>
parents:
11467
diff
changeset
|
301 (MATCHER . MATCH) |
0ebfc7701ebf
Make font-lock.el use compiled keywords; added FN as possible matcher.
Simon Marshall <simon@gnu.org>
parents:
11467
diff
changeset
|
302 (MATCHER . FACENAME) |
0ebfc7701ebf
Make font-lock.el use compiled keywords; added FN as possible matcher.
Simon Marshall <simon@gnu.org>
parents:
11467
diff
changeset
|
303 (MATCHER . HIGHLIGHT) |
0ebfc7701ebf
Make font-lock.el use compiled keywords; added FN as possible matcher.
Simon Marshall <simon@gnu.org>
parents:
11467
diff
changeset
|
304 (MATCHER HIGHLIGHT ...) |
14468
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
305 (eval . FORM) |
4053 | 306 |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
307 where HIGHLIGHT should be either MATCH-HIGHLIGHT or MATCH-ANCHORED. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
308 |
14468
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
309 FORM is an expression, whose value should be a keyword element, evaluated when |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
310 the keyword is (first) used in a buffer. This feature can be used to provide a |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
311 keyword that can only be generated when Font Lock mode is actually turned on. |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
312 |
20923
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
313 For highlighting single items, for example each instance of the word \"foo\", |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
314 typically only MATCH-HIGHLIGHT is required. |
13982 | 315 However, if an item or (typically) items are to be highlighted following the |
20923
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
316 instance of another item (the anchor), for example each instance of the |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
317 word \"bar\" following the word \"anchor\" then MATCH-ANCHORED may be required. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
318 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
319 MATCH-HIGHLIGHT should be of the form: |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
320 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
321 (MATCH FACENAME OVERRIDE LAXMATCH) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
322 |
20851
26c5d61bc3fd
(font-lock-keywords): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20761
diff
changeset
|
323 where MATCHER can be either the regexp to search for, or the function name to |
20190
bc7fabb22520
Allow any number of ::foos in declarative items.
Simon Marshall <simon@gnu.org>
parents:
19935
diff
changeset
|
324 call to make the search (called with one argument, the limit of the search) and |
bc7fabb22520
Allow any number of ::foos in declarative items.
Simon Marshall <simon@gnu.org>
parents:
19935
diff
changeset
|
325 return non-nil if it succeeds (and set `match-data' appropriately). |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
326 MATCHER regexps can be generated via the function `regexp-opt'. MATCH is the |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
327 subexpression of MATCHER to be highlighted. MATCH can be calculated via the |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
328 function `regexp-opt-depth'. FACENAME is an expression whose value is the face |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
329 name to use. Face default attributes can be modified via \\[customize]. |
4053 | 330 |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
331 OVERRIDE and LAXMATCH are flags. If OVERRIDE is t, existing fontification can |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
332 be overwritten. If `keep', only parts not already fontified are highlighted. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
333 If `prepend' or `append', existing fontification is merged with the new, in |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
334 which the new or existing fontification, respectively, takes precedence. |
13982 | 335 If LAXMATCH is non-nil, no error is signaled if there is no MATCH in MATCHER. |
4053 | 336 |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
337 For example, an element of the form highlights (if not already highlighted): |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
338 |
20923
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
339 \"\\\\\\=<foo\\\\\\=>\" discrete occurrences of \"foo\" in the value of the |
13440
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
340 variable `font-lock-keyword-face'. |
20923
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
341 (\"fu\\\\(bar\\\\)\" . 1) substring \"bar\" within all occurrences of \"fubar\" in |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
342 the value of `font-lock-keyword-face'. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
343 (\"fubar\" . fubar-face) Occurrences of \"fubar\" in the value of `fubar-face'. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
344 (\"foo\\\\|bar\" 0 foo-bar-face t) |
20923
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
345 occurrences of either \"foo\" or \"bar\" in the value |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
346 of `foo-bar-face', even if already highlighted. |
20190
bc7fabb22520
Allow any number of ::foos in declarative items.
Simon Marshall <simon@gnu.org>
parents:
19935
diff
changeset
|
347 (fubar-match 1 fubar-face) |
20923
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
348 the first subexpression within all occurrences of |
20190
bc7fabb22520
Allow any number of ::foos in declarative items.
Simon Marshall <simon@gnu.org>
parents:
19935
diff
changeset
|
349 whatever the function `fubar-match' finds and matches |
bc7fabb22520
Allow any number of ::foos in declarative items.
Simon Marshall <simon@gnu.org>
parents:
19935
diff
changeset
|
350 in the value of `fubar-face'. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
351 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
352 MATCH-ANCHORED should be of the form: |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
353 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
354 (MATCHER PRE-MATCH-FORM POST-MATCH-FORM MATCH-HIGHLIGHT ...) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
355 |
20923
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
356 where MATCHER is a regexp to search for or the function name to call to make |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
357 the search, as for MATCH-HIGHLIGHT above, but with one exception; see below. |
13440
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
358 PRE-MATCH-FORM and POST-MATCH-FORM are evaluated before the first, and after |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
359 the last, instance MATCH-ANCHORED's MATCHER is used. Therefore they can be |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
360 used to initialise before, and cleanup after, MATCHER is used. Typically, |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
361 PRE-MATCH-FORM is used to move to some position relative to the original |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
362 MATCHER, before starting with MATCH-ANCHORED's MATCHER. POST-MATCH-FORM might |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
363 be used to move, before resuming with MATCH-ANCHORED's parent's MATCHER. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
364 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
365 For example, an element of the form highlights (if not already highlighted): |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
366 |
13440
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
367 (\"\\\\\\=<anchor\\\\\\=>\" (0 anchor-face) (\"\\\\\\=<item\\\\\\=>\" nil nil (0 item-face))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
368 |
20923
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
369 discrete occurrences of \"anchor\" in the value of `anchor-face', and subsequent |
13440
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
370 discrete occurrences of \"item\" (on the same line) in the value of `item-face'. |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
371 (Here PRE-MATCH-FORM and POST-MATCH-FORM are nil. Therefore \"item\" is |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
372 initially searched for starting from the end of the match of \"anchor\", and |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
373 searching for subsequent instance of \"anchor\" resumes from where searching |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
374 for \"item\" concluded.) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
375 |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
376 The above-mentioned exception is as follows. The limit of the MATCHER search |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
377 defaults to the end of the line after PRE-MATCH-FORM is evaluated. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
378 However, if PRE-MATCH-FORM returns a position greater than the position after |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
379 PRE-MATCH-FORM is evaluated, that position is used as the limit of the search. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
380 It is generally a bad idea to return a position greater than the end of the |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
381 line, i.e., cause the MATCHER search to span lines. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
382 |
9389
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
383 These regular expressions should not match text which spans lines. While |
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
384 \\[font-lock-fontify-buffer] handles multi-line patterns correctly, updating |
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
385 when you edit the buffer does not, since it considers text one line at a time. |
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
386 |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
387 This variable is set by major modes via the variable `font-lock-defaults'. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
388 Be careful when composing regexps for this list; a poorly written pattern can |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
389 dramatically slow things down!") |
4053 | 390 |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
391 ;; This variable is used by mode packages that support Font Lock mode by |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
392 ;; defining their own keywords to use for `font-lock-keywords'. (The mode |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
393 ;; command should make it buffer-local and set it to provide the set up.) |
9487
f80b2a33df03
* font-lock.el: To make font-lock.el dumpable: (font-lock-display-type,
Simon Marshall <simon@gnu.org>
parents:
9444
diff
changeset
|
394 (defvar font-lock-defaults nil |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
395 "Defaults for Font Lock mode specified by the major mode. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
396 Defaults should be of the form: |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
397 |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
398 (KEYWORDS KEYWORDS-ONLY CASE-FOLD SYNTAX-ALIST SYNTAX-BEGIN ...) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
399 |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
400 KEYWORDS may be a symbol (a variable or function whose value is the keywords to |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
401 use for fontification) or a list of symbols. If KEYWORDS-ONLY is non-nil, |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
402 syntactic fontification (strings and comments) is not performed. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
403 If CASE-FOLD is non-nil, the case of the keywords is ignored when fontifying. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
404 If SYNTAX-ALIST is non-nil, it should be a list of cons pairs of the form |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
405 \(CHAR-OR-STRING . STRING) used to set the local Font Lock syntax table, for |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
406 keyword and syntactic fontification (see `modify-syntax-entry'). |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
407 |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
408 If SYNTAX-BEGIN is non-nil, it should be a function with no args used to move |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
409 backwards outside any enclosing syntactic block, for syntactic fontification. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
410 Typical values are `beginning-of-line' (i.e., the start of the line is known to |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
411 be outside a syntactic block), or `beginning-of-defun' for programming modes or |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
412 `backward-paragraph' for textual modes (i.e., the mode-dependent function is |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
413 known to move outside a syntactic block). If nil, the beginning of the buffer |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
414 is used as a position outside of a syntactic block, in the worst case. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
415 |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
416 These item elements are used by Font Lock mode to set the variables |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
417 `font-lock-keywords', `font-lock-keywords-only', |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
418 `font-lock-keywords-case-fold-search', `font-lock-syntax-table' and |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
419 `font-lock-beginning-of-syntax-function', respectively. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
420 |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
421 Further item elements are alists of the form (VARIABLE . VALUE) and are in no |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
422 particular order. Each VARIABLE is made buffer-local before set to VALUE. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
423 |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
424 Currently, appropriate variables include `font-lock-mark-block-function'. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
425 If this is non-nil, it should be a function with no args used to mark any |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
426 enclosing block of text, for fontification via \\[font-lock-fontify-block]. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
427 Typical values are `mark-defun' for programming modes or `mark-paragraph' for |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
428 textual modes (i.e., the mode-dependent function is known to put point and mark |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
429 around a text block relevant to that mode). |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
430 |
23751
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
431 Other variables include that for syntactic keyword fontification, |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
432 `font-lock-syntactic-keywords' |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
433 and those for buffer-specialised fontification functions, |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
434 `font-lock-fontify-buffer-function', `font-lock-unfontify-buffer-function', |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
435 `font-lock-fontify-region-function', `font-lock-unfontify-region-function', |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
436 `font-lock-inhibit-thing-lock' and `font-lock-maximum-size'.") |
9487
f80b2a33df03
* font-lock.el: To make font-lock.el dumpable: (font-lock-display-type,
Simon Marshall <simon@gnu.org>
parents:
9444
diff
changeset
|
437 |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
438 ;; This variable is used where font-lock.el itself supplies the keywords. |
9487
f80b2a33df03
* font-lock.el: To make font-lock.el dumpable: (font-lock-display-type,
Simon Marshall <simon@gnu.org>
parents:
9444
diff
changeset
|
439 (defvar font-lock-defaults-alist |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
440 (let (;; We use `beginning-of-defun', rather than nil, for SYNTAX-BEGIN. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
441 ;; Thus the calculation of the cache is usually faster but not |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
442 ;; infallible, so we risk mis-fontification. sm. |
12385
c80966dc0b60
Specify in font-lock-defaults/font-lock-defaults-alist which keywords we can
Simon Marshall <simon@gnu.org>
parents:
12268
diff
changeset
|
443 (c-mode-defaults |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
444 '((c-font-lock-keywords c-font-lock-keywords-1 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
445 c-font-lock-keywords-2 c-font-lock-keywords-3) |
14468
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
446 nil nil ((?_ . "w")) beginning-of-defun |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
447 (font-lock-mark-block-function . mark-defun))) |
12385
c80966dc0b60
Specify in font-lock-defaults/font-lock-defaults-alist which keywords we can
Simon Marshall <simon@gnu.org>
parents:
12268
diff
changeset
|
448 (c++-mode-defaults |
c80966dc0b60
Specify in font-lock-defaults/font-lock-defaults-alist which keywords we can
Simon Marshall <simon@gnu.org>
parents:
12268
diff
changeset
|
449 '((c++-font-lock-keywords c++-font-lock-keywords-1 |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
450 c++-font-lock-keywords-2 c++-font-lock-keywords-3) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
451 nil nil ((?_ . "w")) beginning-of-defun |
14468
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
452 (font-lock-mark-block-function . mark-defun))) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
453 (objc-mode-defaults |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
454 '((objc-font-lock-keywords objc-font-lock-keywords-1 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
455 objc-font-lock-keywords-2 objc-font-lock-keywords-3) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
456 nil nil ((?_ . "w") (?$ . "w")) nil |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
457 (font-lock-mark-block-function . mark-defun))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
458 (java-mode-defaults |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
459 '((java-font-lock-keywords java-font-lock-keywords-1 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
460 java-font-lock-keywords-2 java-font-lock-keywords-3) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
461 nil nil ((?_ . "w") (?$ . "w") (?. . "w")) nil |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
462 (font-lock-mark-block-function . mark-defun))) |
12385
c80966dc0b60
Specify in font-lock-defaults/font-lock-defaults-alist which keywords we can
Simon Marshall <simon@gnu.org>
parents:
12268
diff
changeset
|
463 (lisp-mode-defaults |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
464 '((lisp-font-lock-keywords |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
465 lisp-font-lock-keywords-1 lisp-font-lock-keywords-2) |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
466 nil nil (("+-*/.<>=!?$%_&~^:" . "w")) beginning-of-defun |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
467 (font-lock-mark-block-function . mark-defun))) |
12813
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
468 ;; For TeX modes we could use `backward-paragraph' for the same reason. |
14468
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
469 ;; But we don't, because paragraph breaks are arguably likely enough to |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
470 ;; occur within a genuine syntactic block to make it too risky. |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
471 ;; However, we do specify a MARK-BLOCK function as that cannot result |
23751
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
472 ;; in a mis-fontification even if it might not fontify enough. sm. |
15653
1653d3208c05
1. Use new font-lock-comment-start-regexp for matching a comment---it can be faster than comment-start-skip.
Simon Marshall <simon@gnu.org>
parents:
15500
diff
changeset
|
473 (tex-mode-defaults |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
474 '((tex-font-lock-keywords |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
475 tex-font-lock-keywords-1 tex-font-lock-keywords-2) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
476 nil nil ((?$ . "\"")) nil |
15653
1653d3208c05
1. Use new font-lock-comment-start-regexp for matching a comment---it can be faster than comment-start-skip.
Simon Marshall <simon@gnu.org>
parents:
15500
diff
changeset
|
477 (font-lock-mark-block-function . mark-paragraph))) |
12813
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
478 ) |
11515
0ebfc7701ebf
Make font-lock.el use compiled keywords; added FN as possible matcher.
Simon Marshall <simon@gnu.org>
parents:
11467
diff
changeset
|
479 (list |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
480 (cons 'c-mode c-mode-defaults) |
12813
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
481 (cons 'c++-mode c++-mode-defaults) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
482 (cons 'objc-mode objc-mode-defaults) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
483 (cons 'java-mode java-mode-defaults) |
12813
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
484 (cons 'emacs-lisp-mode lisp-mode-defaults) |
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
485 (cons 'latex-mode tex-mode-defaults) |
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
486 (cons 'lisp-mode lisp-mode-defaults) |
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
487 (cons 'lisp-interaction-mode lisp-mode-defaults) |
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
488 (cons 'plain-tex-mode tex-mode-defaults) |
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
489 (cons 'slitex-mode tex-mode-defaults) |
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
490 (cons 'tex-mode tex-mode-defaults))) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
491 "Alist of fall-back Font Lock defaults for major modes. |
9487
f80b2a33df03
* font-lock.el: To make font-lock.el dumpable: (font-lock-display-type,
Simon Marshall <simon@gnu.org>
parents:
9444
diff
changeset
|
492 Each item should be a list of the form: |
12813
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
493 |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
494 (MAJOR-MODE . FONT-LOCK-DEFAULTS) |
12813
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
495 |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
496 where MAJOR-MODE is a symbol and FONT-LOCK-DEFAULTS is a list of default |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
497 settings. See the variable `font-lock-defaults', which takes precedence.") |
12813
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
498 |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
499 (defvar font-lock-keywords-alist nil |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
500 "*Alist of `font-lock-keywords' local to a `major-mode'. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
501 This is normally set via `font-lock-add-keywords'.") |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
502 |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
503 (defvar font-lock-keywords-only nil |
12813
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
504 "*Non-nil means Font Lock should not fontify comments or strings. |
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
505 This is normally set via `font-lock-defaults'.") |
9487
f80b2a33df03
* font-lock.el: To make font-lock.el dumpable: (font-lock-display-type,
Simon Marshall <simon@gnu.org>
parents:
9444
diff
changeset
|
506 |
4053 | 507 (defvar font-lock-keywords-case-fold-search nil |
12813
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
508 "*Non-nil means the patterns in `font-lock-keywords' are case-insensitive. |
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
509 This is normally set via `font-lock-defaults'.") |
4053 | 510 |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
511 (defvar font-lock-syntactic-keywords nil |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
512 "A list of the syntactic keywords to highlight. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
513 Can be the list or the name of a function or variable whose value is the list. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
514 See `font-lock-keywords' for a description of the form of this list; |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
515 the differences are listed below. MATCH-HIGHLIGHT should be of the form: |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
516 |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
517 (MATCH SYNTAX OVERRIDE LAXMATCH) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
518 |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
519 where SYNTAX can be of the form (SYNTAX-CODE . MATCHING-CHAR), the name of a |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
520 syntax table, or an expression whose value is such a form or a syntax table. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
521 OVERRIDE cannot be `prepend' or `append'. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
522 |
20923
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
523 For example, an element of the form highlights syntactically: |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
524 |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
525 (\"\\\\$\\\\(#\\\\)\" 1 (1 . nil)) |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
526 |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
527 a hash character when following a dollar character, with a SYNTAX-CODE of |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
528 1 (meaning punctuation syntax). Assuming that the buffer syntax table does |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
529 specify hash characters to have comment start syntax, the element will only |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
530 highlight hash characters that do not follow dollar characters as comments |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
531 syntactically. |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
532 |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
533 (\"\\\\('\\\\).\\\\('\\\\)\" |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
534 (1 (7 . ?')) |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
535 (2 (7 . ?'))) |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
536 |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
537 both single quotes which surround a single character, with a SYNTAX-CODE of |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
538 7 (meaning string quote syntax) and a MATCHING-CHAR of a single quote (meaning |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
539 a single quote matches a single quote). Assuming that the buffer syntax table |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
540 does not specify single quotes to have quote syntax, the element will only |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
541 highlight single quotes of the form 'c' as strings syntactically. |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
542 Other forms, such as foo'bar or 'fubar', will not be highlighted as strings. |
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
543 |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
544 This is normally set via `font-lock-defaults'.") |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
545 |
8457
c0492d7043b2
(font-lock-syntax-table): New syntax table.
Richard M. Stallman <rms@gnu.org>
parents:
7915
diff
changeset
|
546 (defvar font-lock-syntax-table nil |
10879
73ce8261c2ce
Added font-lock-maximum-decoration; use it to set lisp-font-lock-keywords, and
Simon Marshall <simon@gnu.org>
parents:
10545
diff
changeset
|
547 "Non-nil means use this syntax table for fontifying. |
12813
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
548 If this is nil, the major mode's syntax table is used. |
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
549 This is normally set via `font-lock-defaults'.") |
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
550 |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
551 ;; If this is nil, we only use the beginning of the buffer if we can't use |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
552 ;; `font-lock-cache-position' and `font-lock-cache-state'. |
12813
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
553 (defvar font-lock-beginning-of-syntax-function nil |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
554 "*Non-nil means use this function to move back outside of a syntactic block. |
14468
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
555 When called with no args it should leave point at the beginning of any |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
556 enclosing syntactic block. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
557 If this is nil, the beginning of the buffer is used (in the worst case). |
12813
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
558 This is normally set via `font-lock-defaults'.") |
8457
c0492d7043b2
(font-lock-syntax-table): New syntax table.
Richard M. Stallman <rms@gnu.org>
parents:
7915
diff
changeset
|
559 |
14468
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
560 (defvar font-lock-mark-block-function nil |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
561 "*Non-nil means use this function to mark a block of text. |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
562 When called with no args it should leave point at the beginning of any |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
563 enclosing textual block and mark at the end. |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
564 This is normally set via `font-lock-defaults'.") |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
565 |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
566 (defvar font-lock-fontify-buffer-function 'font-lock-default-fontify-buffer |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
567 "Function to use for fontifying the buffer. |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
568 This is normally set via `font-lock-defaults'.") |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
569 |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
570 (defvar font-lock-unfontify-buffer-function 'font-lock-default-unfontify-buffer |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
571 "Function to use for unfontifying the buffer. |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
572 This is used when turning off Font Lock mode. |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
573 This is normally set via `font-lock-defaults'.") |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
574 |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
575 (defvar font-lock-fontify-region-function 'font-lock-default-fontify-region |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
576 "Function to use for fontifying a region. |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
577 It should take two args, the beginning and end of the region, and an optional |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
578 third arg VERBOSE. If non-nil, the function should print status messages. |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
579 This is normally set via `font-lock-defaults'.") |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
580 |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
581 (defvar font-lock-unfontify-region-function 'font-lock-default-unfontify-region |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
582 "Function to use for unfontifying a region. |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
583 It should take two args, the beginning and end of the region. |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
584 This is normally set via `font-lock-defaults'.") |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
585 |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
586 (defvar font-lock-inhibit-thing-lock nil |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
587 "List of Font Lock mode related modes that should not be turned on. |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
588 Currently, valid mode names as `fast-lock-mode' and `lazy-lock-mode'. |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
589 This is normally set via `font-lock-defaults'.") |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
590 |
16852
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
591 (defvar font-lock-mode nil) ; Whether we are turned on/modeline. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
592 (defvar font-lock-fontified nil) ; Whether we have fontified the buffer. |
10879
73ce8261c2ce
Added font-lock-maximum-decoration; use it to set lisp-font-lock-keywords, and
Simon Marshall <simon@gnu.org>
parents:
10545
diff
changeset
|
593 |
73ce8261c2ce
Added font-lock-maximum-decoration; use it to set lisp-font-lock-keywords, and
Simon Marshall <simon@gnu.org>
parents:
10545
diff
changeset
|
594 ;;;###autoload |
4053 | 595 (defvar font-lock-mode-hook nil |
596 "Function or functions to run on entry to Font Lock mode.") | |
9389
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
597 |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
598 ;; Font Lock mode. |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
599 |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
600 (eval-when-compile |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
601 ;; |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
602 ;; We don't do this at the top-level as we only use non-autoloaded macros. |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
603 (require 'cl) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
604 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
605 ;; Borrowed from lazy-lock.el. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
606 ;; We use this to preserve or protect things when modifying text properties. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
607 (defmacro save-buffer-state (varlist &rest body) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
608 "Bind variables according to VARLIST and eval BODY restoring buffer state." |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
609 (` (let* ((,@ (append varlist |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
610 '((modified (buffer-modified-p)) (buffer-undo-list t) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
611 (inhibit-read-only t) (inhibit-point-motion-hooks t) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
612 before-change-functions after-change-functions |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
613 deactivate-mark buffer-file-name buffer-file-truename)))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
614 (,@ body) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
615 (when (and (not modified) (buffer-modified-p)) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
616 (set-buffer-modified-p nil))))) |
19846
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
617 (put 'save-buffer-state 'lisp-indent-function 1) |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
618 ;; |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
619 ;; Shut up the byte compiler. |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
620 (defvar global-font-lock-mode) ; Now a defcustom. |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
621 (defvar font-lock-face-attributes) ; Obsolete but respected if set. |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
622 (defvar font-lock-string-face) ; Used in syntactic fontification. |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
623 (defvar font-lock-comment-face)) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
624 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
625 ;;;###autoload |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
626 (defun font-lock-mode (&optional arg) |
13452
5aab5c1f2c33
Oops; left a note in a doc-string.
Simon Marshall <simon@gnu.org>
parents:
13440
diff
changeset
|
627 "Toggle Font Lock mode. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
628 With arg, turn Font Lock mode on if and only if arg is positive. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
629 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
630 When Font Lock mode is enabled, text is fontified as you type it: |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
631 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
632 - Comments are displayed in `font-lock-comment-face'; |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
633 - Strings are displayed in `font-lock-string-face'; |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
634 - Certain other expressions are displayed in other faces according to the |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
635 value of the variable `font-lock-keywords'. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
636 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
637 You can enable Font Lock mode in any major mode automatically by turning on in |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
638 the major mode's hook. For example, put in your ~/.emacs: |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
639 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
640 (add-hook 'c-mode-hook 'turn-on-font-lock) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
641 |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
642 Alternatively, you can use Global Font Lock mode to automagically turn on Font |
15500
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
643 Lock mode in buffers whose major mode supports it and whose major mode is one |
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
644 of `font-lock-global-modes'. For example, put in your ~/.emacs: |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
645 |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
646 (global-font-lock-mode t) |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
647 |
15500
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
648 There are a number of support modes that may be used to speed up Font Lock mode |
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
649 in various ways, specified via the variable `font-lock-support-mode'. Where |
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
650 major modes support different levels of fontification, you can use the variable |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
651 `font-lock-maximum-decoration' to specify which level you generally prefer. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
652 When you turn Font Lock mode on/off the buffer is fontified/defontified, though |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
653 fontification occurs only if the buffer is less than `font-lock-maximum-size'. |
13701
1dab6f0d9239
Don't turn on in any buffer with a leading space in its name.
Simon Marshall <simon@gnu.org>
parents:
13641
diff
changeset
|
654 |
15500
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
655 For example, to specify that Font Lock mode use use Lazy Lock mode as a support |
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
656 mode and use maximum levels of fontification, put in your ~/.emacs: |
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
657 |
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
658 (setq font-lock-support-mode 'lazy-lock-mode) |
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
659 (setq font-lock-maximum-decoration t) |
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
660 |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
661 To add your own highlighting for some major mode, and modify the highlighting |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
662 selected automatically via the variable `font-lock-maximum-decoration', you can |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
663 use `font-lock-add-keywords'. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
664 |
13701
1dab6f0d9239
Don't turn on in any buffer with a leading space in its name.
Simon Marshall <simon@gnu.org>
parents:
13641
diff
changeset
|
665 To fontify a buffer, without turning on Font Lock mode and regardless of buffer |
1dab6f0d9239
Don't turn on in any buffer with a leading space in its name.
Simon Marshall <simon@gnu.org>
parents:
13641
diff
changeset
|
666 size, you can use \\[font-lock-fontify-buffer]. |
14468
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
667 |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
668 To fontify a block (the function or paragraph containing point, or a number of |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
669 lines around point), perhaps because modification on the current line caused |
15500
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
670 syntactic change on other lines, you can use \\[font-lock-fontify-block]. |
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
671 |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
672 See the variable `font-lock-defaults-alist' for the Font Lock mode default |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
673 settings. You can set your own default settings for some mode, by setting a |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
674 buffer local value for `font-lock-defaults', via its mode hook." |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
675 (interactive "P") |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
676 ;; Don't turn on Font Lock mode if we don't have a display (we're running a |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
677 ;; batch job) or if the buffer is invisible (the name starts with a space). |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
678 (let ((on-p (and (not noninteractive) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
679 (not (eq (aref (buffer-name) 0) ?\ )) |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
680 (if arg |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
681 (> (prefix-numeric-value arg) 0) |
14708
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
682 (not font-lock-mode))))) |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
683 (set (make-local-variable 'font-lock-mode) on-p) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
684 ;; Turn on Font Lock mode. |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
685 (when on-p |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
686 (make-local-hook 'after-change-functions) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
687 (add-hook 'after-change-functions 'font-lock-after-change-function nil t) |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
688 (font-lock-set-defaults) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
689 (font-lock-turn-on-thing-lock) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
690 (run-hooks 'font-lock-mode-hook) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
691 ;; Fontify the buffer if we have to. |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
692 (let ((max-size (font-lock-value-in-major-mode font-lock-maximum-size))) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
693 (cond (font-lock-fontified |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
694 nil) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
695 ((or (null max-size) (> max-size (buffer-size))) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
696 (font-lock-fontify-buffer)) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
697 (font-lock-verbose |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
698 (message "Fontifying %s...buffer too big" (buffer-name)))))) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
699 ;; Turn off Font Lock mode. |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
700 (unless on-p |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
701 (remove-hook 'after-change-functions 'font-lock-after-change-function t) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
702 (font-lock-unfontify-buffer) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
703 (font-lock-turn-off-thing-lock) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
704 (font-lock-unset-defaults)) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
705 (force-mode-line-update))) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
706 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
707 ;;;###autoload |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
708 (defun turn-on-font-lock () |
14516
9360c3107669
Moved `supported' from turn-on-font-lock-if-supported to turn-on-font-lock.
Simon Marshall <simon@gnu.org>
parents:
14468
diff
changeset
|
709 "Turn on Font Lock mode conditionally. |
15500
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
710 Turn on only if the terminal can display it." |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
711 (when (and (not font-lock-mode) window-system) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
712 (font-lock-mode))) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
713 |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
714 ;;;###autoload |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
715 (defun font-lock-add-keywords (major-mode keywords &optional append) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
716 "Add highlighting KEYWORDS for MAJOR-MODE. |
16852
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
717 MAJOR-MODE should be a symbol, the major mode command name, such as `c-mode' |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
718 or nil. If nil, highlighting keywords are added for the current buffer. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
719 KEYWORDS should be a list; see the variable `font-lock-keywords'. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
720 By default they are added at the beginning of the current highlighting list. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
721 If optional argument APPEND is `set', they are used to replace the current |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
722 highlighting list. If APPEND is any other non-nil value, they are added at the |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
723 end of the current highlighting list. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
724 |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
725 For example: |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
726 |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
727 (font-lock-add-keywords 'c-mode |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
728 '((\"\\\\\\=<\\\\(FIXME\\\\):\" 1 font-lock-warning-face prepend) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
729 (\"\\\\\\=<\\\\(and\\\\|or\\\\|not\\\\)\\\\\\=>\" . font-lock-keyword-face))) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
730 |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
731 adds two fontification patterns for C mode, to fontify `FIXME:' words, even in |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
732 comments, and to fontify `and', `or' and `not' words as keywords. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
733 |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
734 Note that some modes have specialised support for additional patterns, e.g., |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
735 see the variables `c-font-lock-extra-types', `c++-font-lock-extra-types', |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
736 `objc-font-lock-extra-types' and `java-font-lock-extra-types'." |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
737 (cond (major-mode |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
738 ;; If MAJOR-MODE is non-nil, add the KEYWORDS and APPEND spec to |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
739 ;; `font-lock-keywords-alist' so `font-lock-set-defaults' uses them. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
740 (let ((spec (cons keywords append)) cell) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
741 (if (setq cell (assq major-mode font-lock-keywords-alist)) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
742 (setcdr cell (append (cdr cell) (list spec))) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
743 (push (list major-mode spec) font-lock-keywords-alist)))) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
744 (font-lock-mode |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
745 ;; Otherwise if Font Lock mode is on, set or add the keywords now. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
746 (if (eq append 'set) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
747 (setq font-lock-keywords keywords) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
748 (let ((old (if (eq (car-safe font-lock-keywords) t) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
749 (cdr font-lock-keywords) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
750 font-lock-keywords))) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
751 (setq font-lock-keywords (if append |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
752 (append old keywords) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
753 (append keywords old)))))))) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
754 |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
755 ;;; Global Font Lock mode. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
756 |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
757 ;; A few people have hassled in the past for a way to make it easier to turn on |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
758 ;; Font Lock mode, without the user needing to know for which modes s/he has to |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
759 ;; turn it on, perhaps the same way hilit19.el/hl319.el does. I've always |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
760 ;; balked at that way, as I see it as just re-moulding the same problem in |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
761 ;; another form. That is; some person would still have to keep track of which |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
762 ;; modes (which may not even be distributed with Emacs) support Font Lock mode. |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
763 ;; The list would always be out of date. And that person might have to be me. |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
764 |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
765 ;; Implementation. |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
766 ;; |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
767 ;; In a previous discussion the following hack came to mind. It is a gross |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
768 ;; hack, but it generally works. We use the convention that major modes start |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
769 ;; by calling the function `kill-all-local-variables', which in turn runs |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
770 ;; functions on the hook variable `change-major-mode-hook'. We attach our |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
771 ;; function `font-lock-change-major-mode' to that hook. Of course, when this |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
772 ;; hook is run, the major mode is in the process of being changed and we do not |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
773 ;; know what the final major mode will be. So, `font-lock-change-major-mode' |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
774 ;; only (a) notes the name of the current buffer, and (b) adds our function |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
775 ;; `turn-on-font-lock-if-enabled' to the hook variables `find-file-hooks' and |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
776 ;; `post-command-hook' (for buffers that are not visiting files). By the time |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
777 ;; the functions on the first of these hooks to be run are run, the new major |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
778 ;; mode is assumed to be in place. This way we get a Font Lock function run |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
779 ;; when a major mode is turned on, without knowing major modes or their hooks. |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
780 ;; |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
781 ;; Naturally this requires that (a) major modes run `kill-all-local-variables', |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
782 ;; as they are supposed to do, and (b) the major mode is in place after the |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
783 ;; file is visited or the command that ran `kill-all-local-variables' has |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
784 ;; finished, whichever the sooner. Arguably, any major mode that does not |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
785 ;; follow the convension (a) is broken, and I can't think of any reason why (b) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
786 ;; would not be met (except `gnudoit' on non-files). However, it is not clean. |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
787 ;; |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
788 ;; Probably the cleanest solution is to have each major mode function run some |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
789 ;; hook, e.g., `major-mode-hook', but maybe implementing that change is |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
790 ;; impractical. I am personally against making `setq' a macro or be advised, |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
791 ;; or have a special function such as `set-major-mode', but maybe someone can |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
792 ;; come up with another solution? |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
793 |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
794 ;; User interface. |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
795 ;; |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
796 ;; Although Global Font Lock mode is a pseudo-mode, I think that the user |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
797 ;; interface should conform to the usual Emacs convention for modes, i.e., a |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
798 ;; command to toggle the feature (`global-font-lock-mode') with a variable for |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
799 ;; finer control of the mode's behaviour (`font-lock-global-modes'). |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
800 ;; |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
801 ;; The feature should not be enabled by loading font-lock.el, since other |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
802 ;; mechanisms for turning on Font Lock mode, such as M-x font-lock-mode RET or |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
803 ;; (add-hook 'c-mode-hook 'turn-on-font-lock), would cause Font Lock mode to be |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
804 ;; turned on everywhere. That would not be intuitive or informative because |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
805 ;; loading a file tells you nothing about the feature or how to control it. It |
16852
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
806 ;; would also be contrary to the Principle of Least Surprise. sm. |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
807 |
14780
1d10e4a2fb51
Treat font-lock-keywords of (t) the same as nil.
Simon Marshall <simon@gnu.org>
parents:
14778
diff
changeset
|
808 (defvar font-lock-buffers nil) ; For remembering buffers. |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
809 |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
810 ;;;###autoload |
14708
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
811 (defun global-font-lock-mode (&optional arg message) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
812 "Toggle Global Font Lock mode. |
14708
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
813 With prefix ARG, turn Global Font Lock mode on if and only if ARG is positive. |
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
814 Displays a message saying whether the mode is on or off if MESSAGE is non-nil. |
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
815 Returns the new status of Global Font Lock mode (non-nil means on). |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
816 |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
817 When Global Font Lock mode is enabled, Font Lock mode is automagically |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
818 turned on in a buffer if its major mode is one of `font-lock-global-modes'." |
14708
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
819 (interactive "P\np") |
19783
c833b837a3fd
(global-font-lock-mode): When turning off
Richard M. Stallman <rms@gnu.org>
parents:
19033
diff
changeset
|
820 (let ((on-p (if arg |
c833b837a3fd
(global-font-lock-mode): When turning off
Richard M. Stallman <rms@gnu.org>
parents:
19033
diff
changeset
|
821 (> (prefix-numeric-value arg) 0) |
c833b837a3fd
(global-font-lock-mode): When turning off
Richard M. Stallman <rms@gnu.org>
parents:
19033
diff
changeset
|
822 (not global-font-lock-mode)))) |
c833b837a3fd
(global-font-lock-mode): When turning off
Richard M. Stallman <rms@gnu.org>
parents:
19033
diff
changeset
|
823 (cond (on-p |
c833b837a3fd
(global-font-lock-mode): When turning off
Richard M. Stallman <rms@gnu.org>
parents:
19033
diff
changeset
|
824 (add-hook 'find-file-hooks 'turn-on-font-lock-if-enabled) |
c833b837a3fd
(global-font-lock-mode): When turning off
Richard M. Stallman <rms@gnu.org>
parents:
19033
diff
changeset
|
825 (add-hook 'post-command-hook 'turn-on-font-lock-if-enabled) |
c833b837a3fd
(global-font-lock-mode): When turning off
Richard M. Stallman <rms@gnu.org>
parents:
19033
diff
changeset
|
826 (setq font-lock-buffers (buffer-list))) |
c833b837a3fd
(global-font-lock-mode): When turning off
Richard M. Stallman <rms@gnu.org>
parents:
19033
diff
changeset
|
827 (t |
c833b837a3fd
(global-font-lock-mode): When turning off
Richard M. Stallman <rms@gnu.org>
parents:
19033
diff
changeset
|
828 (remove-hook 'find-file-hooks 'turn-on-font-lock-if-enabled) |
c833b837a3fd
(global-font-lock-mode): When turning off
Richard M. Stallman <rms@gnu.org>
parents:
19033
diff
changeset
|
829 (mapcar (function (lambda (buffer) |
c833b837a3fd
(global-font-lock-mode): When turning off
Richard M. Stallman <rms@gnu.org>
parents:
19033
diff
changeset
|
830 (with-current-buffer buffer |
c833b837a3fd
(global-font-lock-mode): When turning off
Richard M. Stallman <rms@gnu.org>
parents:
19033
diff
changeset
|
831 (when font-lock-mode |
c833b837a3fd
(global-font-lock-mode): When turning off
Richard M. Stallman <rms@gnu.org>
parents:
19033
diff
changeset
|
832 (font-lock-mode))))) |
c833b837a3fd
(global-font-lock-mode): When turning off
Richard M. Stallman <rms@gnu.org>
parents:
19033
diff
changeset
|
833 (buffer-list)))) |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
834 (when message |
19846
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
835 (message "Global Font Lock mode %s." (if on-p "enabled" "disabled"))) |
19783
c833b837a3fd
(global-font-lock-mode): When turning off
Richard M. Stallman <rms@gnu.org>
parents:
19033
diff
changeset
|
836 (setq global-font-lock-mode on-p))) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
837 |
18332
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
838 ;; Naughty hack. This variable was originally a `defvar' to keep track of |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
839 ;; whether Global Font Lock mode was turned on or not. As a `defcustom' with |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
840 ;; special `:set' and `:require' forms, we can provide custom mode control. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
841 (defcustom global-font-lock-mode nil |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
842 "Toggle Global Font Lock mode. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
843 When Global Font Lock mode is enabled, Font Lock mode is automagically |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
844 turned on in a buffer if its major mode is one of `font-lock-global-modes'. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
845 You must modify via \\[customize] for this variable to have an effect." |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
846 :set (lambda (symbol value) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
847 (global-font-lock-mode (or value 0))) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
848 :type 'boolean |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
849 :group 'font-lock |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
850 :require 'font-lock) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
851 |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
852 (defcustom font-lock-global-modes t |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
853 "*Modes for which Font Lock mode is automagically turned on. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
854 Global Font Lock mode is controlled by the `global-font-lock-mode' command. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
855 If nil, means no modes have Font Lock mode automatically turned on. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
856 If t, all modes that support Font Lock mode have it automatically turned on. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
857 If a list, it should be a list of `major-mode' symbol names for which Font Lock |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
858 mode should be automatically turned on. The sense of the list is negated if it |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
859 begins with `not'. For example: |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
860 (c-mode c++-mode) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
861 means that Font Lock mode is turned on for buffers in C and C++ modes only." |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
862 :type '(choice (const :tag "none" nil) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
863 (const :tag "all" t) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
864 (set :menu-tag "mode specific" :tag "modes" |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
865 :value (not) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
866 (const :tag "Except" not) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
867 (repeat :inline t (symbol :tag "mode")))) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
868 :group 'font-lock) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
869 |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
870 (defun font-lock-change-major-mode () |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
871 ;; Turn off Font Lock mode if it's on. |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
872 (when font-lock-mode |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
873 (font-lock-mode)) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
874 ;; Gross hack warning: Delicate readers should avert eyes now. |
14708
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
875 ;; Something is running `kill-all-local-variables', which generally means the |
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
876 ;; major mode is being changed. Run `turn-on-font-lock-if-enabled' after the |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
877 ;; file is visited or the current command has finished. |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
878 (when global-font-lock-mode |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
879 (add-hook 'post-command-hook 'turn-on-font-lock-if-enabled) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
880 (add-to-list 'font-lock-buffers (current-buffer)))) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
881 |
14516
9360c3107669
Moved `supported' from turn-on-font-lock-if-supported to turn-on-font-lock.
Simon Marshall <simon@gnu.org>
parents:
14468
diff
changeset
|
882 (defun turn-on-font-lock-if-enabled () |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
883 ;; Gross hack warning: Delicate readers should avert eyes now. |
15500
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
884 ;; Turn on Font Lock mode if it's supported by the major mode and enabled by |
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
885 ;; the user. |
14516
9360c3107669
Moved `supported' from turn-on-font-lock-if-supported to turn-on-font-lock.
Simon Marshall <simon@gnu.org>
parents:
14468
diff
changeset
|
886 (remove-hook 'post-command-hook 'turn-on-font-lock-if-enabled) |
14780
1d10e4a2fb51
Treat font-lock-keywords of (t) the same as nil.
Simon Marshall <simon@gnu.org>
parents:
14778
diff
changeset
|
887 (while font-lock-buffers |
16852
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
888 (when (buffer-live-p (car font-lock-buffers)) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
889 (save-excursion |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
890 (set-buffer (car font-lock-buffers)) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
891 (when (and (or font-lock-defaults |
15500
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
892 (assq major-mode font-lock-defaults-alist)) |
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
893 (or (eq font-lock-global-modes t) |
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
894 (if (eq (car-safe font-lock-global-modes) 'not) |
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
895 (not (memq major-mode (cdr font-lock-global-modes))) |
5c60db96bc32
Put fewer conditions in turn-on-font-lock and more in turn-on-font-lock-if-enabled, so a user can put the former on hooks.
Simon Marshall <simon@gnu.org>
parents:
15492
diff
changeset
|
896 (memq major-mode font-lock-global-modes)))) |
16852
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
897 (let (inhibit-quit) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
898 (turn-on-font-lock))))) |
14780
1d10e4a2fb51
Treat font-lock-keywords of (t) the same as nil.
Simon Marshall <simon@gnu.org>
parents:
14778
diff
changeset
|
899 (setq font-lock-buffers (cdr font-lock-buffers)))) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
900 |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
901 (add-hook 'change-major-mode-hook 'font-lock-change-major-mode) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
902 |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
903 ;;; End of Global Font Lock mode. |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
904 |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
905 ;;; Font Lock Support mode. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
906 |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
907 ;; This is the code used to interface font-lock.el with any of its add-on |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
908 ;; packages, and provide the user interface. Packages that have their own |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
909 ;; local buffer fontification functions (see below) may have to call |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
910 ;; `font-lock-after-fontify-buffer' and/or `font-lock-after-unfontify-buffer' |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
911 ;; themselves. |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
912 |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
913 (defcustom font-lock-support-mode nil |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
914 "*Support mode for Font Lock mode. |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
915 Support modes speed up Font Lock mode by being choosy about when fontification |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
916 occurs. Known support modes are Fast Lock mode (symbol `fast-lock-mode') and |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
917 Lazy Lock mode (symbol `lazy-lock-mode'). See those modes for more info. |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
918 If nil, means support for Font Lock mode is never performed. |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
919 If a symbol, use that support mode. |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
920 If a list, each element should be of the form (MAJOR-MODE . SUPPORT-MODE), |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
921 where MAJOR-MODE is a symbol or t (meaning the default). For example: |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
922 ((c-mode . fast-lock-mode) (c++-mode . fast-lock-mode) (t . lazy-lock-mode)) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
923 means that Fast Lock mode is used to support Font Lock mode for buffers in C or |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
924 C++ modes, and Lazy Lock mode is used to support Font Lock mode otherwise. |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
925 |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
926 The value of this variable is used when Font Lock mode is turned on." |
17507
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
927 :type '(choice (const :tag "none" nil) |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
928 (const :tag "fast lock" fast-lock-mode) |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
929 (const :tag "lazy lock" lazy-lock-mode) |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
930 (repeat :menu-tag "mode specific" :tag "mode specific" |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
931 :value ((t . lazy-lock-mode)) |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
932 (cons :tag "Instance" |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
933 (radio :tag "Mode" |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
934 (const :tag "all" t) |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
935 (symbol :tag "name")) |
22892
850946452989
(lisp-font-lock-keywords-1): Fix previous change.
Simon Marshall <simon@gnu.org>
parents:
22857
diff
changeset
|
936 (radio :tag "Support" |
850946452989
(lisp-font-lock-keywords-1): Fix previous change.
Simon Marshall <simon@gnu.org>
parents:
22857
diff
changeset
|
937 (const :tag "none" nil) |
17507
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
938 (const :tag "fast lock" fast-lock-mode) |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
939 (const :tag "lazy lock" lazy-lock-mode))) |
fd87760f20cd
Cleaned up custom support.
Simon Marshall <simon@gnu.org>
parents:
17495
diff
changeset
|
940 )) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
941 :group 'font-lock) |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
942 |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
943 (defvar fast-lock-mode nil) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
944 (defvar lazy-lock-mode nil) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
945 |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
946 (defun font-lock-turn-on-thing-lock () |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
947 (let ((thing-mode (font-lock-value-in-major-mode font-lock-support-mode))) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
948 (cond ((eq thing-mode 'fast-lock-mode) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
949 (fast-lock-mode t)) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
950 ((eq thing-mode 'lazy-lock-mode) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
951 (lazy-lock-mode t))))) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
952 |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
953 (defun font-lock-turn-off-thing-lock () |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
954 (cond (fast-lock-mode |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
955 (fast-lock-mode nil)) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
956 (lazy-lock-mode |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
957 (lazy-lock-mode nil)))) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
958 |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
959 (defun font-lock-after-fontify-buffer () |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
960 (cond (fast-lock-mode |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
961 (fast-lock-after-fontify-buffer)) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
962 (lazy-lock-mode |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
963 (lazy-lock-after-fontify-buffer)))) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
964 |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
965 (defun font-lock-after-unfontify-buffer () |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
966 (cond (fast-lock-mode |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
967 (fast-lock-after-unfontify-buffer)) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
968 (lazy-lock-mode |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
969 (lazy-lock-after-unfontify-buffer)))) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
970 |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
971 ;;; End of Font Lock Support mode. |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
972 |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
973 ;;; Fontification functions. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
974 |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
975 ;; Rather than the function, e.g., `font-lock-fontify-region' containing the |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
976 ;; code to fontify a region, the function runs the function whose name is the |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
977 ;; value of the variable, e.g., `font-lock-fontify-region-function'. Normally, |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
978 ;; the value of this variable is, e.g., `font-lock-default-fontify-region' |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
979 ;; which does contain the code to fontify a region. However, the value of the |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
980 ;; variable could be anything and thus, e.g., `font-lock-fontify-region' could |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
981 ;; do anything. The indirection of the fontification functions gives major |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
982 ;; modes the capability of modifying the way font-lock.el fontifies. Major |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
983 ;; modes can modify the values of, e.g., `font-lock-fontify-region-function', |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
984 ;; via the variable `font-lock-defaults'. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
985 ;; |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
986 ;; For example, Rmail mode sets the variable `font-lock-defaults' so that |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
987 ;; font-lock.el uses its own function for buffer fontification. This function |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
988 ;; makes fontification be on a message-by-message basis and so visiting an |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
989 ;; RMAIL file is much faster. A clever implementation of the function might |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
990 ;; fontify the headers differently than the message body. (It should, and |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
991 ;; correspondingly for Mail mode, but I can't be bothered to do the work. Can |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
992 ;; you?) This hints at a more interesting use... |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
993 ;; |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
994 ;; Languages that contain text normally contained in different major modes |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
995 ;; could define their own fontification functions that treat text differently |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
996 ;; depending on its context. For example, Perl mode could arrange that here |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
997 ;; docs are fontified differently than Perl code. Or Yacc mode could fontify |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
998 ;; rules one way and C code another. Neat! |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
999 ;; |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1000 ;; A further reason to use the fontification indirection feature is when the |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1001 ;; default syntactual fontification, or the default fontification in general, |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1002 ;; is not flexible enough for a particular major mode. For example, perhaps |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1003 ;; comments are just too hairy for `font-lock-fontify-syntactically-region' to |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1004 ;; cope with. You need to write your own version of that function, e.g., |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1005 ;; `hairy-fontify-syntactically-region', and make your own version of |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1006 ;; `hairy-fontify-region' call that function before calling |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1007 ;; `font-lock-fontify-keywords-region' for the normal regexp fontification |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1008 ;; pass. And Hairy mode would set `font-lock-defaults' so that font-lock.el |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1009 ;; would call your region fontification function instead of its own. For |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1010 ;; example, TeX modes could fontify {\foo ...} and \bar{...} etc. multi-line |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1011 ;; directives correctly and cleanly. (It is the same problem as fontifying |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1012 ;; multi-line strings and comments; regexps are not appropriate for the job.) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1013 |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1014 ;;;###autoload |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1015 (defun font-lock-fontify-buffer () |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1016 "Fontify the current buffer the way `font-lock-mode' would." |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1017 (interactive) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1018 (let ((font-lock-verbose (or font-lock-verbose (interactive-p)))) |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1019 (funcall font-lock-fontify-buffer-function))) |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1020 |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1021 (defun font-lock-unfontify-buffer () |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1022 (funcall font-lock-unfontify-buffer-function)) |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1023 |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1024 (defun font-lock-fontify-region (beg end &optional loudly) |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1025 (funcall font-lock-fontify-region-function beg end loudly)) |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1026 |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1027 (defun font-lock-unfontify-region (beg end) |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1028 (funcall font-lock-unfontify-region-function beg end)) |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1029 |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1030 (defun font-lock-default-fontify-buffer () |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
1031 (let ((verbose (if (numberp font-lock-verbose) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
1032 (> (buffer-size) font-lock-verbose) |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
1033 font-lock-verbose))) |
23751
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1034 (with-temp-message |
24002
c6bfff41f2b5
* font-lock.el (font-lock-default-fontify-buffer): When using
Simon Marshall <simon@gnu.org>
parents:
23826
diff
changeset
|
1035 (when verbose |
c6bfff41f2b5
* font-lock.el (font-lock-default-fontify-buffer): When using
Simon Marshall <simon@gnu.org>
parents:
23826
diff
changeset
|
1036 (format "Fontifying %s..." (buffer-name))) |
23751
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1037 ;; Make sure we have the right `font-lock-keywords' etc. |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1038 (unless font-lock-mode |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1039 (font-lock-set-defaults)) |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1040 ;; Make sure we fontify etc. in the whole buffer. |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1041 (save-restriction |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1042 (widen) |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1043 (condition-case nil |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1044 (save-excursion |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1045 (save-match-data |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1046 (font-lock-fontify-region (point-min) (point-max) verbose) |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1047 (font-lock-after-fontify-buffer) |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1048 (setq font-lock-fontified t))) |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1049 ;; We don't restore the old fontification, so it's best to unfontify. |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1050 (quit (font-lock-unfontify-buffer)))) |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1051 ;; Make sure we undo `font-lock-keywords' etc. |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1052 (unless font-lock-mode |
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1053 (font-lock-unset-defaults))))) |
13701
1dab6f0d9239
Don't turn on in any buffer with a leading space in its name.
Simon Marshall <simon@gnu.org>
parents:
13641
diff
changeset
|
1054 |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1055 (defun font-lock-default-unfontify-buffer () |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1056 ;; Make sure we unfontify etc. in the whole buffer. |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1057 (save-restriction |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1058 (widen) |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1059 (font-lock-unfontify-region (point-min) (point-max)) |
14374
e2423983be05
Support for local fontification.
Simon Marshall <simon@gnu.org>
parents:
14365
diff
changeset
|
1060 (font-lock-after-unfontify-buffer) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1061 (setq font-lock-fontified nil))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1062 |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1063 (defun font-lock-default-fontify-region (beg end loudly) |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1064 (save-buffer-state |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1065 ((parse-sexp-lookup-properties font-lock-syntactic-keywords) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1066 (old-syntax-table (syntax-table))) |
13440
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1067 (unwind-protect |
14468
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1068 (save-restriction |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1069 (widen) |
13440
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1070 ;; Use the fontification syntax table, if any. |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1071 (when font-lock-syntax-table |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1072 (set-syntax-table font-lock-syntax-table)) |
13440
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1073 ;; Now do the fontification. |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1074 (font-lock-unfontify-region beg end) |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1075 (when font-lock-syntactic-keywords |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1076 (font-lock-fontify-syntactic-keywords-region beg end)) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1077 (unless font-lock-keywords-only |
13440
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1078 (font-lock-fontify-syntactically-region beg end loudly)) |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1079 (font-lock-fontify-keywords-region beg end loudly)) |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1080 ;; Clean up. |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1081 (set-syntax-table old-syntax-table)))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1082 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1083 ;; The following must be rethought, since keywords can override fontification. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1084 ; ;; Now scan for keywords, but not if we are inside a comment now. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1085 ; (or (and (not font-lock-keywords-only) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1086 ; (let ((state (parse-partial-sexp beg end nil nil |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1087 ; font-lock-cache-state))) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1088 ; (or (nth 4 state) (nth 7 state)))) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1089 ; (font-lock-fontify-keywords-region beg end)) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1090 |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1091 (defun font-lock-default-unfontify-region (beg end) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1092 (save-buffer-state nil |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1093 (remove-text-properties beg end '(face nil syntax-table nil)))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1094 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1095 ;; Called when any modification is made to buffer text. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1096 (defun font-lock-after-change-function (beg end old-len) |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1097 (let ((inhibit-point-motion-hooks t)) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1098 (save-excursion |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1099 (save-match-data |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1100 ;; Rescan between start of lines enclosing the region. |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1101 (font-lock-fontify-region |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1102 (progn (goto-char beg) (beginning-of-line) (point)) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1103 (progn (goto-char end) (forward-line 1) (point))))))) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1104 |
14468
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1105 (defun font-lock-fontify-block (&optional arg) |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1106 "Fontify some lines the way `font-lock-fontify-buffer' would. |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1107 The lines could be a function or paragraph, or a specified number of lines. |
14516
9360c3107669
Moved `supported' from turn-on-font-lock-if-supported to turn-on-font-lock.
Simon Marshall <simon@gnu.org>
parents:
14468
diff
changeset
|
1108 If ARG is given, fontify that many lines before and after point, or 16 lines if |
9360c3107669
Moved `supported' from turn-on-font-lock-if-supported to turn-on-font-lock.
Simon Marshall <simon@gnu.org>
parents:
14468
diff
changeset
|
1109 no ARG is given and `font-lock-mark-block-function' is nil. |
14468
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1110 If `font-lock-mark-block-function' non-nil and no ARG is given, it is used to |
14516
9360c3107669
Moved `supported' from turn-on-font-lock-if-supported to turn-on-font-lock.
Simon Marshall <simon@gnu.org>
parents:
14468
diff
changeset
|
1111 delimit the region to fontify." |
14468
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1112 (interactive "P") |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1113 (let ((inhibit-point-motion-hooks t) font-lock-beginning-of-syntax-function |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1114 deactivate-mark) |
14468
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1115 ;; Make sure we have the right `font-lock-keywords' etc. |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1116 (if (not font-lock-mode) (font-lock-set-defaults)) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1117 (save-excursion |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1118 (save-match-data |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1119 (condition-case error-data |
14468
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1120 (if (or arg (not font-lock-mark-block-function)) |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1121 (let ((lines (if arg (prefix-numeric-value arg) 16))) |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1122 (font-lock-fontify-region |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1123 (save-excursion (forward-line (- lines)) (point)) |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1124 (save-excursion (forward-line lines) (point)))) |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1125 (funcall font-lock-mark-block-function) |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1126 (font-lock-fontify-region (point) (mark))) |
15442
b4c8360e450e
(global-font-lock-mode): Set up find-file-hooks.
Richard M. Stallman <rms@gnu.org>
parents:
14780
diff
changeset
|
1127 ((error quit) (message "Fontifying block...%s" error-data))))))) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1128 |
14778
af95abc39d75
(font-lock-fontify-block): Use facemenu-keymap to make the binding.
Richard M. Stallman <rms@gnu.org>
parents:
14735
diff
changeset
|
1129 (define-key facemenu-keymap "\M-g" 'font-lock-fontify-block) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1130 |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1131 ;;; End of Fontification functions. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1132 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1133 ;;; Additional text property functions. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1134 |
16852
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1135 ;; The following text property functions should be builtins. This means they |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1136 ;; should be written in C and put with all the other text property functions. |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1137 ;; In the meantime, those that are used by font-lock.el are defined in Lisp |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1138 ;; below and given a `font-lock-' prefix. Those that are not used are defined |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1139 ;; in Lisp below and commented out. sm. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1140 |
16852
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1141 (defun font-lock-prepend-text-property (start end prop value &optional object) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1142 "Prepend to one property of the text from START to END. |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1143 Arguments PROP and VALUE specify the property and value to prepend to the value |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1144 already in place. The resulting property values are always lists. |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1145 Optional argument OBJECT is the string or buffer containing the text." |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1146 (let ((val (if (listp value) value (list value))) next prev) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1147 (while (/= start end) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1148 (setq next (next-single-property-change start prop object end) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1149 prev (get-text-property start prop object)) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1150 (put-text-property start next prop |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1151 (append val (if (listp prev) prev (list prev))) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1152 object) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1153 (setq start next)))) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1154 |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1155 (defun font-lock-append-text-property (start end prop value &optional object) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1156 "Append to one property of the text from START to END. |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1157 Arguments PROP and VALUE specify the property and value to append to the value |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1158 already in place. The resulting property values are always lists. |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1159 Optional argument OBJECT is the string or buffer containing the text." |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1160 (let ((val (if (listp value) value (list value))) next prev) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1161 (while (/= start end) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1162 (setq next (next-single-property-change start prop object end) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1163 prev (get-text-property start prop object)) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1164 (put-text-property start next prop |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1165 (append (if (listp prev) prev (list prev)) val) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1166 object) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1167 (setq start next)))) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1168 |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1169 (defun font-lock-fillin-text-property (start end prop value &optional object) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1170 "Fill in one property of the text from START to END. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1171 Arguments PROP and VALUE specify the property and value to put where none are |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1172 already in place. Therefore existing property values are not overwritten. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1173 Optional argument OBJECT is the string or buffer containing the text." |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1174 (let ((start (text-property-any start end prop nil object)) next) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1175 (while start |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1176 (setq next (next-single-property-change start prop object end)) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1177 (put-text-property start next prop value object) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1178 (setq start (text-property-any next end prop nil object))))) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1179 |
16852
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1180 ;; For completeness: this is to `remove-text-properties' as `put-text-property' |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1181 ;; is to `add-text-properties', etc. |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1182 ;(defun remove-text-property (start end property &optional object) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1183 ; "Remove a property from text from START to END. |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1184 ;Argument PROPERTY is the property to remove. |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1185 ;Optional argument OBJECT is the string or buffer containing the text. |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1186 ;Return t if the property was actually removed, nil otherwise." |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1187 ; (remove-text-properties start end (list property) object)) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1188 |
16852
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1189 ;; For consistency: maybe this should be called `remove-single-property' like |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1190 ;; `next-single-property-change' (not `next-single-text-property-change'), etc. |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1191 ;(defun remove-single-text-property (start end prop value &optional object) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1192 ; "Remove a specific property value from text from START to END. |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1193 ;Arguments PROP and VALUE specify the property and value to remove. The |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1194 ;resulting property values are not equal to VALUE nor lists containing VALUE. |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1195 ;Optional argument OBJECT is the string or buffer containing the text." |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1196 ; (let ((start (text-property-not-all start end prop nil object)) next prev) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1197 ; (while start |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1198 ; (setq next (next-single-property-change start prop object end) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1199 ; prev (get-text-property start prop object)) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1200 ; (cond ((and (symbolp prev) (eq value prev)) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1201 ; (remove-text-property start next prop object)) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1202 ; ((and (listp prev) (memq value prev)) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1203 ; (let ((new (delq value prev))) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1204 ; (cond ((null new) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1205 ; (remove-text-property start next prop object)) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1206 ; ((= (length new) 1) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1207 ; (put-text-property start next prop (car new) object)) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1208 ; (t |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1209 ; (put-text-property start next prop new object)))))) |
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1210 ; (setq start (text-property-not-all next end prop nil object))))) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1211 |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1212 ;;; End of Additional text property functions. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1213 |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1214 ;;; Syntactic regexp fontification functions. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1215 |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1216 ;; These syntactic keyword pass functions are identical to those keyword pass |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1217 ;; functions below, with the following exceptions; (a) they operate on |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1218 ;; `font-lock-syntactic-keywords' of course, (b) they are all `defun' as speed |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1219 ;; is less of an issue, (c) eval of property value does not occur JIT as speed |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1220 ;; is less of an issue, (d) OVERRIDE cannot be `prepend' or `append' as it |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1221 ;; makes no sense for `syntax-table' property values, (e) they do not do it |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1222 ;; LOUDLY as it is not likely to be intensive. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1223 |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1224 (defun font-lock-apply-syntactic-highlight (highlight) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1225 "Apply HIGHLIGHT following a match. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1226 HIGHLIGHT should be of the form MATCH-HIGHLIGHT, |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1227 see `font-lock-syntactic-keywords'." |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1228 (let* ((match (nth 0 highlight)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1229 (start (match-beginning match)) (end (match-end match)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1230 (value (nth 1 highlight)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1231 (override (nth 2 highlight))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1232 (unless (numberp (car value)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1233 (setq value (eval value))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1234 (cond ((not start) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1235 ;; No match but we might not signal an error. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1236 (or (nth 3 highlight) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1237 (error "No match %d in highlight %S" match highlight))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1238 ((not override) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1239 ;; Cannot override existing fontification. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1240 (or (text-property-not-all start end 'syntax-table nil) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1241 (put-text-property start end 'syntax-table value))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1242 ((eq override t) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1243 ;; Override existing fontification. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1244 (put-text-property start end 'syntax-table value)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1245 ((eq override 'keep) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1246 ;; Keep existing fontification. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1247 (font-lock-fillin-text-property start end 'syntax-table value))))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1248 |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1249 (defun font-lock-fontify-syntactic-anchored-keywords (keywords limit) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1250 "Fontify according to KEYWORDS until LIMIT. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1251 KEYWORDS should be of the form MATCH-ANCHORED, see `font-lock-keywords', |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1252 LIMIT can be modified by the value of its PRE-MATCH-FORM." |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1253 (let ((matcher (nth 0 keywords)) (lowdarks (nthcdr 3 keywords)) highlights |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1254 ;; Evaluate PRE-MATCH-FORM. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1255 (pre-match-value (eval (nth 1 keywords)))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1256 ;; Set LIMIT to value of PRE-MATCH-FORM or the end of line. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1257 (if (and (numberp pre-match-value) (> pre-match-value (point))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1258 (setq limit pre-match-value) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1259 (save-excursion (end-of-line) (setq limit (point)))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1260 (save-match-data |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1261 ;; Find an occurrence of `matcher' before `limit'. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1262 (while (if (stringp matcher) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1263 (re-search-forward matcher limit t) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1264 (funcall matcher limit)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1265 ;; Apply each highlight to this instance of `matcher'. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1266 (setq highlights lowdarks) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1267 (while highlights |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1268 (font-lock-apply-syntactic-highlight (car highlights)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1269 (setq highlights (cdr highlights))))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1270 ;; Evaluate POST-MATCH-FORM. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1271 (eval (nth 2 keywords)))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1272 |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1273 (defun font-lock-fontify-syntactic-keywords-region (start end) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1274 "Fontify according to `font-lock-syntactic-keywords' between START and END. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1275 START should be at the beginning of a line." |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1276 ;; If `font-lock-syntactic-keywords' is a symbol, get the real keywords. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1277 (when (symbolp font-lock-syntactic-keywords) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1278 (setq font-lock-syntactic-keywords (font-lock-eval-keywords |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1279 font-lock-syntactic-keywords))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1280 ;; If `font-lock-syntactic-keywords' is not compiled, compile it. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1281 (unless (eq (car font-lock-syntactic-keywords) t) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1282 (setq font-lock-syntactic-keywords (font-lock-compile-keywords |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1283 font-lock-syntactic-keywords))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1284 ;; Get down to business. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1285 (let ((case-fold-search font-lock-keywords-case-fold-search) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1286 (keywords (cdr font-lock-syntactic-keywords)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1287 keyword matcher highlights) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1288 (while keywords |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1289 ;; Find an occurrence of `matcher' from `start' to `end'. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1290 (setq keyword (car keywords) matcher (car keyword)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1291 (goto-char start) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1292 (while (if (stringp matcher) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1293 (re-search-forward matcher end t) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1294 (funcall matcher end)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1295 ;; Apply each highlight to this instance of `matcher', which may be |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1296 ;; specific highlights or more keywords anchored to `matcher'. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1297 (setq highlights (cdr keyword)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1298 (while highlights |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1299 (if (numberp (car (car highlights))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1300 (font-lock-apply-syntactic-highlight (car highlights)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1301 (font-lock-fontify-syntactic-anchored-keywords (car highlights) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1302 end)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1303 (setq highlights (cdr highlights)))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1304 (setq keywords (cdr keywords))))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1305 |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1306 ;;; End of Syntactic regexp fontification functions. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1307 |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1308 ;;; Syntactic fontification functions. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1309 |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1310 ;; These record the parse state at a particular position, always the start of a |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1311 ;; line. Used to make `font-lock-fontify-syntactically-region' faster. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1312 ;; Previously, `font-lock-cache-position' was just a buffer position. However, |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1313 ;; under certain situations, this occasionally resulted in mis-fontification. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1314 ;; I think the "situations" were deletion with Lazy Lock mode's deferral. sm. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1315 (defvar font-lock-cache-state nil) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1316 (defvar font-lock-cache-position nil) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1317 |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1318 (defun font-lock-fontify-syntactically-region (start end &optional loudly) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1319 "Put proper face on each string and comment between START and END. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1320 START should be at the beginning of a line." |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1321 (let ((cache (marker-position font-lock-cache-position)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1322 state string beg) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1323 (if loudly (message "Fontifying %s... (syntactically...)" (buffer-name))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1324 (goto-char start) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1325 ;; |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1326 ;; Find the state at the `beginning-of-line' before `start'. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1327 (if (eq start cache) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1328 ;; Use the cache for the state of `start'. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1329 (setq state font-lock-cache-state) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1330 ;; Find the state of `start'. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1331 (if (null font-lock-beginning-of-syntax-function) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1332 ;; Use the state at the previous cache position, if any, or |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1333 ;; otherwise calculate from `point-min'. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1334 (if (or (null cache) (< start cache)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1335 (setq state (parse-partial-sexp (point-min) start)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1336 (setq state (parse-partial-sexp cache start nil nil |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1337 font-lock-cache-state))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1338 ;; Call the function to move outside any syntactic block. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1339 (funcall font-lock-beginning-of-syntax-function) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1340 (setq state (parse-partial-sexp (point) start))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1341 ;; Cache the state and position of `start'. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1342 (setq font-lock-cache-state state) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1343 (set-marker font-lock-cache-position start)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1344 ;; |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1345 ;; If the region starts inside a string or comment, show the extent of it. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1346 (when (or (nth 3 state) (nth 4 state)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1347 (setq string (nth 3 state) beg (point)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1348 (setq state (parse-partial-sexp (point) end nil nil state 'syntax-table)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1349 (put-text-property beg (point) 'face |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1350 (if string |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1351 font-lock-string-face |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1352 font-lock-comment-face))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1353 ;; |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1354 ;; Find each interesting place between here and `end'. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1355 (while (and (< (point) end) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1356 (progn |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1357 (setq state (parse-partial-sexp (point) end nil nil state |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1358 'syntax-table)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1359 (or (nth 3 state) (nth 4 state)))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1360 (setq string (nth 3 state) beg (nth 8 state)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1361 (setq state (parse-partial-sexp (point) end nil nil state 'syntax-table)) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1362 (put-text-property beg (point) 'face |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1363 (if string |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1364 font-lock-string-face |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1365 font-lock-comment-face))))) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1366 |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1367 ;;; End of Syntactic fontification functions. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1368 |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1369 ;;; Keyword regexp fontification functions. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1370 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1371 (defsubst font-lock-apply-highlight (highlight) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1372 "Apply HIGHLIGHT following a match. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1373 HIGHLIGHT should be of the form MATCH-HIGHLIGHT, see `font-lock-keywords'." |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1374 (let* ((match (nth 0 highlight)) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1375 (start (match-beginning match)) (end (match-end match)) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1376 (override (nth 2 highlight))) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1377 (cond ((not start) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1378 ;; No match but we might not signal an error. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1379 (or (nth 3 highlight) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1380 (error "No match %d in highlight %S" match highlight))) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1381 ((not override) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1382 ;; Cannot override existing fontification. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1383 (or (text-property-not-all start end 'face nil) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1384 (put-text-property start end 'face (eval (nth 1 highlight))))) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1385 ((eq override t) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1386 ;; Override existing fontification. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1387 (put-text-property start end 'face (eval (nth 1 highlight)))) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1388 ((eq override 'prepend) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1389 ;; Prepend to existing fontification. |
16852
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1390 (font-lock-prepend-text-property start end 'face (eval (nth 1 highlight)))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1391 ((eq override 'append) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1392 ;; Append to existing fontification. |
16852
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1393 (font-lock-append-text-property start end 'face (eval (nth 1 highlight)))) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1394 ((eq override 'keep) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1395 ;; Keep existing fontification. |
16852
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1396 (font-lock-fillin-text-property start end 'face (eval (nth 1 highlight))))))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1397 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1398 (defsubst font-lock-fontify-anchored-keywords (keywords limit) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1399 "Fontify according to KEYWORDS until LIMIT. |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1400 KEYWORDS should be of the form MATCH-ANCHORED, see `font-lock-keywords', |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1401 LIMIT can be modified by the value of its PRE-MATCH-FORM." |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1402 (let ((matcher (nth 0 keywords)) (lowdarks (nthcdr 3 keywords)) highlights |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1403 ;; Evaluate PRE-MATCH-FORM. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1404 (pre-match-value (eval (nth 1 keywords)))) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1405 ;; Set LIMIT to value of PRE-MATCH-FORM or the end of line. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1406 (if (and (numberp pre-match-value) (> pre-match-value (point))) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1407 (setq limit pre-match-value) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1408 (save-excursion (end-of-line) (setq limit (point)))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1409 (save-match-data |
13440
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1410 ;; Find an occurrence of `matcher' before `limit'. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1411 (while (if (stringp matcher) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1412 (re-search-forward matcher limit t) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1413 (funcall matcher limit)) |
13440
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1414 ;; Apply each highlight to this instance of `matcher'. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1415 (setq highlights lowdarks) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1416 (while highlights |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1417 (font-lock-apply-highlight (car highlights)) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1418 (setq highlights (cdr highlights))))) |
13440
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1419 ;; Evaluate POST-MATCH-FORM. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1420 (eval (nth 2 keywords)))) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1421 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1422 (defun font-lock-fontify-keywords-region (start end &optional loudly) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1423 "Fontify according to `font-lock-keywords' between START and END. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1424 START should be at the beginning of a line." |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1425 (unless (eq (car font-lock-keywords) t) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1426 (setq font-lock-keywords (font-lock-compile-keywords font-lock-keywords))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1427 (let ((case-fold-search font-lock-keywords-case-fold-search) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1428 (keywords (cdr font-lock-keywords)) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1429 (bufname (buffer-name)) (count 0) |
13440
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1430 keyword matcher highlights) |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1431 ;; |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1432 ;; Fontify each item in `font-lock-keywords' from `start' to `end'. |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1433 (while keywords |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1434 (if loudly (message "Fontifying %s... (regexps..%s)" bufname |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1435 (make-string (incf count) ?.))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1436 ;; |
13440
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1437 ;; Find an occurrence of `matcher' from `start' to `end'. |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1438 (setq keyword (car keywords) matcher (car keyword)) |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1439 (goto-char start) |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1440 (while (if (stringp matcher) |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1441 (re-search-forward matcher end t) |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1442 (funcall matcher end)) |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1443 ;; Apply each highlight to this instance of `matcher', which may be |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1444 ;; specific highlights or more keywords anchored to `matcher'. |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1445 (setq highlights (cdr keyword)) |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1446 (while highlights |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1447 (if (numberp (car (car highlights))) |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1448 (font-lock-apply-highlight (car highlights)) |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1449 (font-lock-fontify-anchored-keywords (car highlights) end)) |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1450 (setq highlights (cdr highlights)))) |
e8cd2c9309c8
1. Use local hooks, not local variables.
Simon Marshall <simon@gnu.org>
parents:
13337
diff
changeset
|
1451 (setq keywords (cdr keywords))))) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1452 |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1453 ;;; End of Keyword regexp fontification functions. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1454 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1455 ;; Various functions. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1456 |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1457 (defun font-lock-compile-keywords (keywords) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1458 ;; Compile KEYWORDS into the form (t KEYWORD ...) where KEYWORD is of the |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1459 ;; form (MATCHER HIGHLIGHT ...) as shown in `font-lock-keywords' doc string. |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1460 (if (eq (car-safe keywords) t) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1461 keywords |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1462 (cons t (mapcar 'font-lock-compile-keyword keywords)))) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1463 |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1464 (defun font-lock-compile-keyword (keyword) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1465 (cond ((nlistp keyword) ; MATCHER |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1466 (list keyword '(0 font-lock-keyword-face))) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1467 ((eq (car keyword) 'eval) ; (eval . FORM) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1468 (font-lock-compile-keyword (eval (cdr keyword)))) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1469 ((eq (car-safe (cdr keyword)) 'quote) ; (MATCHER . 'FORM) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1470 ;; If FORM is a FACENAME then quote it. Otherwise ignore the quote. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1471 (if (symbolp (nth 2 keyword)) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1472 (list (car keyword) (list 0 (cdr keyword))) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1473 (font-lock-compile-keyword (cons (car keyword) (nth 2 keyword))))) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1474 ((numberp (cdr keyword)) ; (MATCHER . MATCH) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1475 (list (car keyword) (list (cdr keyword) 'font-lock-keyword-face))) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1476 ((symbolp (cdr keyword)) ; (MATCHER . FACENAME) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1477 (list (car keyword) (list 0 (cdr keyword)))) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1478 ((nlistp (nth 1 keyword)) ; (MATCHER . HIGHLIGHT) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1479 (list (car keyword) (cdr keyword))) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1480 (t ; (MATCHER HIGHLIGHT ...) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1481 keyword))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1482 |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1483 (defun font-lock-eval-keywords (keywords) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1484 ;; Evalulate KEYWORDS if a function (funcall) or variable (eval) name. |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1485 (if (listp keywords) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1486 keywords |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1487 (font-lock-eval-keywords (if (fboundp keywords) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1488 (funcall keywords) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1489 (eval keywords))))) |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1490 |
14708
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
1491 (defun font-lock-value-in-major-mode (alist) |
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
1492 ;; Return value in ALIST for `major-mode', or ALIST if it is not an alist. |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1493 ;; Structure is ((MAJOR-MODE . VALUE) ...) where MAJOR-MODE may be t. |
14708
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
1494 (if (consp alist) |
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
1495 (cdr (or (assq major-mode alist) (assq t alist))) |
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
1496 alist)) |
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
1497 |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1498 (defun font-lock-choose-keywords (keywords level) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1499 ;; Return LEVELth element of KEYWORDS. A LEVEL of nil is equal to a |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1500 ;; LEVEL of 0, a LEVEL of t is equal to (1- (length KEYWORDS)). |
14708
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
1501 (cond ((symbolp keywords) |
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
1502 keywords) |
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
1503 ((numberp level) |
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
1504 (or (nth level keywords) (car (reverse keywords)))) |
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
1505 ((eq level t) |
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
1506 (car (reverse keywords))) |
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
1507 (t |
da278f255507
Make global-font-lock-mode show status messages, and fontification interruptable.
Simon Marshall <simon@gnu.org>
parents:
14516
diff
changeset
|
1508 (car keywords)))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1509 |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1510 (defvar font-lock-set-defaults nil) ; Whether we have set up defaults. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1511 |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1512 (defun font-lock-set-defaults () |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1513 "Set fontification defaults appropriately for this mode. |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1514 Sets various variables using `font-lock-defaults' (or, if nil, using |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1515 `font-lock-defaults-alist') and `font-lock-maximum-decoration'." |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1516 ;; Set fontification defaults. |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1517 (make-local-variable 'font-lock-fontified) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1518 ;; Set iff not previously set. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1519 (unless font-lock-set-defaults |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1520 (set (make-local-variable 'font-lock-set-defaults) t) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1521 (set (make-local-variable 'font-lock-cache-state) nil) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1522 (set (make-local-variable 'font-lock-cache-position) (make-marker)) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1523 (let* ((defaults (or font-lock-defaults |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1524 (cdr (assq major-mode font-lock-defaults-alist)))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1525 (keywords |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1526 (font-lock-choose-keywords (nth 0 defaults) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1527 (font-lock-value-in-major-mode font-lock-maximum-decoration))) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1528 (local (cdr (assq major-mode font-lock-keywords-alist)))) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1529 ;; Regexp fontification? |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1530 (set (make-local-variable 'font-lock-keywords) |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1531 (font-lock-compile-keywords (font-lock-eval-keywords keywords))) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1532 ;; Local fontification? |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1533 (while local |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1534 (font-lock-add-keywords nil (car (car local)) (cdr (car local))) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1535 (setq local (cdr local))) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1536 ;; Syntactic fontification? |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1537 (when (nth 1 defaults) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1538 (set (make-local-variable 'font-lock-keywords-only) t)) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1539 ;; Case fold during regexp fontification? |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1540 (when (nth 2 defaults) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1541 (set (make-local-variable 'font-lock-keywords-case-fold-search) t)) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1542 ;; Syntax table for regexp and syntactic fontification? |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1543 (when (nth 3 defaults) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1544 (let ((slist (nth 3 defaults))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1545 (set (make-local-variable 'font-lock-syntax-table) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1546 (copy-syntax-table (syntax-table))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1547 (while slist |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1548 ;; The character to modify may be a single CHAR or a STRING. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1549 (let ((chars (if (numberp (car (car slist))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1550 (list (car (car slist))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1551 (mapcar 'identity (car (car slist))))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1552 (syntax (cdr (car slist)))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1553 (while chars |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1554 (modify-syntax-entry (car chars) syntax |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1555 font-lock-syntax-table) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1556 (setq chars (cdr chars))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1557 (setq slist (cdr slist)))))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1558 ;; Syntax function for syntactic fontification? |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1559 (when (nth 4 defaults) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1560 (set (make-local-variable 'font-lock-beginning-of-syntax-function) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1561 (nth 4 defaults))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1562 ;; Variable alist? |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1563 (let ((alist (nthcdr 5 defaults))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1564 (while alist |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1565 (let ((variable (car (car alist))) (value (cdr (car alist)))) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1566 (unless (boundp variable) |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1567 (set variable nil)) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1568 (set (make-local-variable variable) value) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1569 (setq alist (cdr alist)))))))) |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1570 |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1571 (defun font-lock-unset-defaults () |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1572 "Unset fontification defaults. See `font-lock-set-defaults'." |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1573 (setq font-lock-set-defaults nil |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1574 font-lock-keywords nil |
14365
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1575 font-lock-keywords-only nil |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1576 font-lock-keywords-case-fold-search nil |
ef148b168aad
Support for buffer local fontification functions.
Simon Marshall <simon@gnu.org>
parents:
14266
diff
changeset
|
1577 font-lock-syntax-table nil |
14468
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1578 font-lock-beginning-of-syntax-function nil) |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1579 (let* ((defaults (or font-lock-defaults |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1580 (cdr (assq major-mode font-lock-defaults-alist)))) |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1581 (alist (nthcdr 5 defaults))) |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1582 (while alist |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1583 (set (car (car alist)) (default-value (car (car alist)))) |
e41a60d26291
Correct specialised fontification and associated stuff.
Simon Marshall <simon@gnu.org>
parents:
14374
diff
changeset
|
1584 (setq alist (cdr alist))))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1585 |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1586 ;;; Colour etc. support. |
4053 | 1587 |
19846
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1588 ;; Originally these variable values were face names such as `bold' etc. |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1589 ;; Now we create our own faces, but we keep these variables for compatibility |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1590 ;; and they give users another mechanism for changing face appearance. |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1591 ;; We now allow a FACENAME in `font-lock-keywords' to be any expression that |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1592 ;; returns a face. So the easiest thing is to continue using these variables, |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1593 ;; rather than sometimes evaling FACENAME and sometimes not. sm. |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1594 (defvar font-lock-comment-face 'font-lock-comment-face |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1595 "Face name to use for comments.") |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1596 |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1597 (defvar font-lock-string-face 'font-lock-string-face |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1598 "Face name to use for strings.") |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1599 |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1600 (defvar font-lock-keyword-face 'font-lock-keyword-face |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1601 "Face name to use for keywords.") |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1602 |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1603 (defvar font-lock-builtin-face 'font-lock-builtin-face |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1604 "Face name to use for builtins.") |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1605 |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1606 (defvar font-lock-function-name-face 'font-lock-function-name-face |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1607 "Face name to use for function names.") |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1608 |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1609 (defvar font-lock-variable-name-face 'font-lock-variable-name-face |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1610 "Face name to use for variable names.") |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1611 |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1612 (defvar font-lock-type-face 'font-lock-type-face |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
1613 "Face name to use for type and class names.") |
19846
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1614 |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
1615 (defvar font-lock-constant-face 'font-lock-constant-face |
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
1616 "Face name to use for constant and label names.") |
19846
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1617 |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1618 (defvar font-lock-warning-face 'font-lock-warning-face |
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
1619 "Face name to use for things that should stand out.") |
9389
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
1620 |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
1621 (defvar font-lock-reference-face 'font-lock-constant-face |
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
1622 "This variable is obsolete. Use font-lock-constant-face.") |
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
1623 |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1624 ;; Originally face attributes were specified via `font-lock-face-attributes'. |
18332
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
1625 ;; Users then changed the default face attributes by setting that variable. |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1626 ;; However, we try and be back-compatible and respect its value if set except |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1627 ;; for faces where M-x customize has been used to save changes for the face. |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1628 (when (boundp 'font-lock-face-attributes) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1629 (let ((face-attributes font-lock-face-attributes)) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1630 (while face-attributes |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1631 (let* ((face-attribute (pop face-attributes)) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1632 (face (car face-attribute))) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1633 ;; Rustle up a `defface' SPEC from a `font-lock-face-attributes' entry. |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1634 (unless (get face 'saved-face) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1635 (let ((foreground (nth 1 face-attribute)) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1636 (background (nth 2 face-attribute)) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1637 (bold-p (nth 3 face-attribute)) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1638 (italic-p (nth 4 face-attribute)) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1639 (underline-p (nth 5 face-attribute)) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1640 face-spec) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1641 (when foreground |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1642 (setq face-spec (cons ':foreground (cons foreground face-spec)))) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1643 (when background |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1644 (setq face-spec (cons ':background (cons background face-spec)))) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1645 (when bold-p |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1646 (setq face-spec (append '(:bold t) face-spec))) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1647 (when italic-p |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1648 (setq face-spec (append '(:italic t) face-spec))) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1649 (when underline-p |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1650 (setq face-spec (append '(:underline t) face-spec))) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1651 (custom-declare-face face (list (list t face-spec)) nil))))))) |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1652 |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1653 ;; But now we do it the custom way. Note that `defface' will not overwrite any |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1654 ;; faces declared above via `custom-declare-face'. |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1655 (defface font-lock-comment-face |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1656 '((((class grayscale) (background light)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1657 (:foreground "DimGray" :bold t :italic t)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1658 (((class grayscale) (background dark)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1659 (:foreground "LightGray" :bold t :italic t)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1660 (((class color) (background light)) (:foreground "Firebrick")) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1661 (((class color) (background dark)) (:foreground "OrangeRed")) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1662 (t (:bold t :italic t))) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1663 "Font Lock mode face used to highlight comments." |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1664 :group 'font-lock-highlighting-faces) |
16852
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1665 |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1666 (defface font-lock-string-face |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1667 '((((class grayscale) (background light)) (:foreground "DimGray" :italic t)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1668 (((class grayscale) (background dark)) (:foreground "LightGray" :italic t)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1669 (((class color) (background light)) (:foreground "RosyBrown")) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1670 (((class color) (background dark)) (:foreground "LightSalmon")) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1671 (t (:italic t))) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1672 "Font Lock mode face used to highlight strings." |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1673 :group 'font-lock-highlighting-faces) |
9389
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
1674 |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1675 (defface font-lock-keyword-face |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1676 '((((class grayscale) (background light)) (:foreground "LightGray" :bold t)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1677 (((class grayscale) (background dark)) (:foreground "DimGray" :bold t)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1678 (((class color) (background light)) (:foreground "Purple")) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1679 (((class color) (background dark)) (:foreground "Cyan")) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1680 (t (:bold t))) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1681 "Font Lock mode face used to highlight keywords." |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1682 :group 'font-lock-highlighting-faces) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1683 |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1684 (defface font-lock-builtin-face |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1685 '((((class grayscale) (background light)) (:foreground "LightGray" :bold t)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1686 (((class grayscale) (background dark)) (:foreground "DimGray" :bold t)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1687 (((class color) (background light)) (:foreground "Orchid")) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1688 (((class color) (background dark)) (:foreground "LightSteelBlue")) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1689 (t (:bold t))) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1690 "Font Lock mode face used to highlight builtins." |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1691 :group 'font-lock-highlighting-faces) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1692 |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1693 (defface font-lock-function-name-face |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1694 '((((class color) (background light)) (:foreground "Blue")) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1695 (((class color) (background dark)) (:foreground "LightSkyBlue")) |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1696 (t (:inverse-video t :bold t))) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1697 "Font Lock mode face used to highlight function names." |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1698 :group 'font-lock-highlighting-faces) |
9487
f80b2a33df03
* font-lock.el: To make font-lock.el dumpable: (font-lock-display-type,
Simon Marshall <simon@gnu.org>
parents:
9444
diff
changeset
|
1699 |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1700 (defface font-lock-variable-name-face |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1701 '((((class grayscale) (background light)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1702 (:foreground "Gray90" :bold t :italic t)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1703 (((class grayscale) (background dark)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1704 (:foreground "DimGray" :bold t :italic t)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1705 (((class color) (background light)) (:foreground "DarkGoldenrod")) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1706 (((class color) (background dark)) (:foreground "LightGoldenrod")) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1707 (t (:bold t :italic t))) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1708 "Font Lock mode face used to highlight variable names." |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1709 :group 'font-lock-highlighting-faces) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1710 |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1711 (defface font-lock-type-face |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1712 '((((class grayscale) (background light)) (:foreground "Gray90" :bold t)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1713 (((class grayscale) (background dark)) (:foreground "DimGray" :bold t)) |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1714 (((class color) (background light)) (:foreground "ForestGreen")) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1715 (((class color) (background dark)) (:foreground "PaleGreen")) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1716 (t (:bold t :underline t))) |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
1717 "Font Lock mode face used to highlight type and classes." |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1718 :group 'font-lock-highlighting-faces) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1719 |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
1720 (defface font-lock-constant-face |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1721 '((((class grayscale) (background light)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1722 (:foreground "LightGray" :bold t :underline t)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1723 (((class grayscale) (background dark)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1724 (:foreground "Gray50" :bold t :underline t)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1725 (((class color) (background light)) (:foreground "CadetBlue")) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1726 (((class color) (background dark)) (:foreground "Aquamarine")) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1727 (t (:bold t :underline t))) |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
1728 "Font Lock mode face used to highlight constants and labels." |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1729 :group 'font-lock-highlighting-faces) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1730 |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1731 (defface font-lock-warning-face |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1732 '((((class color) (background light)) (:foreground "Red" :bold t)) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1733 (((class color) (background dark)) (:foreground "Pink" :bold t)) |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1734 (t (:inverse-video t :bold t))) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1735 "Font Lock mode face used to highlight warnings." |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
1736 :group 'font-lock-highlighting-faces) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1737 |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1738 ;;; End of Colour etc. support. |
9389
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
1739 |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1740 ;;; Menu support. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1741 |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1742 ;; This section of code is commented out because Emacs does not have real menu |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1743 ;; buttons. (We can mimic them by putting "( ) " or "(X) " at the beginning of |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1744 ;; the menu entry text, but with Xt it looks both ugly and embarrassingly |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1745 ;; amateur.) If/When Emacs gets real menus buttons, put in menu-bar.el after |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1746 ;; the entry for "Text Properties" something like: |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1747 ;; |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1748 ;; (define-key menu-bar-edit-menu [font-lock] |
20923
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
1749 ;; (cons "Syntax Highlighting" font-lock-menu)) |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1750 ;; |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1751 ;; and remove a single ";" from the beginning of each line in the rest of this |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1752 ;; section. Probably the mechanism for telling the menu code what are menu |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1753 ;; buttons and when they are on or off needs tweaking. I have assumed that the |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1754 ;; mechanism is via `menu-toggle' and `menu-selected' symbol properties. sm. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1755 |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1756 ;;;;###autoload |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1757 ;(progn |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1758 ; ;; Make the Font Lock menu. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1759 ; (defvar font-lock-menu (make-sparse-keymap "Syntax Highlighting")) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1760 ; ;; Add the menu items in reverse order. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1761 ; (define-key font-lock-menu [fontify-less] |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1762 ; '("Less In Current Buffer" . font-lock-fontify-less)) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1763 ; (define-key font-lock-menu [fontify-more] |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1764 ; '("More In Current Buffer" . font-lock-fontify-more)) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1765 ; (define-key font-lock-menu [font-lock-sep] |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1766 ; '("--")) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1767 ; (define-key font-lock-menu [font-lock-mode] |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1768 ; '("In Current Buffer" . font-lock-mode)) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1769 ; (define-key font-lock-menu [global-font-lock-mode] |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1770 ; '("In All Buffers" . global-font-lock-mode))) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1771 ; |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1772 ;;;;###autoload |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1773 ;(progn |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1774 ; ;; We put the appropriate `menu-enable' etc. symbol property values on when |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1775 ; ;; font-lock.el is loaded, so we don't need to autoload the three variables. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1776 ; (put 'global-font-lock-mode 'menu-toggle t) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1777 ; (put 'font-lock-mode 'menu-toggle t) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1778 ; (put 'font-lock-fontify-more 'menu-enable '(identity)) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1779 ; (put 'font-lock-fontify-less 'menu-enable '(identity))) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1780 ; |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1781 ;;; Put the appropriate symbol property values on now. See above. |
20923
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
1782 ;(put 'global-font-lock-mode 'menu-selected 'global-font-lock-mode) |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1783 ;(put 'font-lock-mode 'menu-selected 'font-lock-mode) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1784 ;(put 'font-lock-fontify-more 'menu-enable '(nth 2 font-lock-fontify-level)) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1785 ;(put 'font-lock-fontify-less 'menu-enable '(nth 1 font-lock-fontify-level)) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1786 ; |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1787 ;(defvar font-lock-fontify-level nil) ; For less/more fontification. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1788 ; |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1789 ;(defun font-lock-fontify-level (level) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1790 ; (let ((font-lock-maximum-decoration level)) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1791 ; (when font-lock-mode |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1792 ; (font-lock-mode)) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1793 ; (font-lock-mode) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1794 ; (when font-lock-verbose |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1795 ; (message "Fontifying %s... level %d" (buffer-name) level)))) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1796 ; |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1797 ;(defun font-lock-fontify-less () |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1798 ; "Fontify the current buffer with less decoration. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1799 ;See `font-lock-maximum-decoration'." |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1800 ; (interactive) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1801 ; ;; Check in case we get called interactively. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1802 ; (if (nth 1 font-lock-fontify-level) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1803 ; (font-lock-fontify-level (1- (car font-lock-fontify-level))) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1804 ; (error "No less decoration"))) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1805 ; |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1806 ;(defun font-lock-fontify-more () |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1807 ; "Fontify the current buffer with more decoration. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1808 ;See `font-lock-maximum-decoration'." |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1809 ; (interactive) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1810 ; ;; Check in case we get called interactively. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1811 ; (if (nth 2 font-lock-fontify-level) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1812 ; (font-lock-fontify-level (1+ (car font-lock-fontify-level))) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1813 ; (error "No more decoration"))) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1814 ; |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1815 ;;; This should be called by `font-lock-set-defaults'. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1816 ;(defun font-lock-set-menu () |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1817 ; ;; Activate less/more fontification entries if there are multiple levels for |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1818 ; ;; the current buffer. Sets `font-lock-fontify-level' to be of the form |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1819 ; ;; (CURRENT-LEVEL IS-LOWER-LEVEL-P IS-HIGHER-LEVEL-P) for menu activation. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1820 ; (let ((keywords (or (nth 0 font-lock-defaults) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1821 ; (nth 1 (assq major-mode font-lock-defaults-alist)))) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1822 ; (level (font-lock-value-in-major-mode font-lock-maximum-decoration))) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1823 ; (make-local-variable 'font-lock-fontify-level) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1824 ; (if (or (symbolp keywords) (= (length keywords) 1)) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1825 ; (font-lock-unset-menu) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1826 ; (cond ((eq level t) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1827 ; (setq level (1- (length keywords)))) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1828 ; ((or (null level) (zerop level)) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1829 ; ;; The default level is usually, but not necessarily, level 1. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1830 ; (setq level (- (length keywords) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1831 ; (length (member (eval (car keywords)) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1832 ; (mapcar 'eval (cdr keywords)))))))) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1833 ; (setq font-lock-fontify-level (list level (> level 1) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1834 ; (< level (1- (length keywords)))))))) |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1835 ; |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1836 ;;; This should be called by `font-lock-unset-defaults'. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1837 ;(defun font-lock-unset-menu () |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1838 ; ;; Deactivate less/more fontification entries. |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1839 ; (setq font-lock-fontify-level nil)) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1840 |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1841 ;;; End of Menu support. |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1842 |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
1843 ;;; Various regexp information shared by several modes. |
9389
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
1844 ;;; Information specific to a single mode should go in its load library. |
4053 | 1845 |
16852
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
1846 ;; Font Lock support for C, C++, Objective-C and Java modes will one day be in |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1847 ;; some cc-font.el (and required by cc-mode.el). However, the below function |
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1848 ;; should stay in font-lock.el, since it is used by other libraries. sm. |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1849 |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1850 (defun font-lock-match-c-style-declaration-item-and-skip-to-next (limit) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1851 "Match, and move over, any declaration/definition item after point. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1852 Matches after point, but ignores leading whitespace and `*' characters. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1853 Does not move further than LIMIT. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1854 |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1855 The expected syntax of a declaration/definition item is `word' (preceded by |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1856 optional whitespace and `*' characters and proceeded by optional whitespace) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1857 optionally followed by a `('. Everything following the item (but belonging to |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1858 it) is expected to by skip-able by `scan-sexps', and items are expected to be |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1859 separated with a `,' and to be terminated with a `;'. |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1860 |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1861 Thus the regexp matches after point: word ( |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1862 ^^^^ ^ |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1863 Where the match subexpressions are: 1 2 |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1864 |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1865 The item is delimited by (match-beginning 1) and (match-end 1). |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1866 If (match-beginning 2) is non-nil, the item is followed by a `('. |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1867 |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1868 This function could be MATCHER in a MATCH-ANCHORED `font-lock-keywords' item." |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1869 (when (looking-at "[ \t*]*\\(\\sw+\\)[ \t]*\\((\\)?") |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1870 (save-match-data |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1871 (condition-case nil |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1872 (save-restriction |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1873 ;; Restrict to the end of line, currently guaranteed to be LIMIT. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1874 (narrow-to-region (point-min) limit) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1875 (goto-char (match-end 1)) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1876 ;; Move over any item value, etc., to the next item. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1877 (while (not (looking-at "[ \t]*\\(\\(,\\)\\|;\\|$\\)")) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1878 (goto-char (or (scan-sexps (point) 1) (point-max)))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1879 (goto-char (match-end 2))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1880 (error t))))) |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1881 |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1882 ;; Lisp. |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1883 |
4053 | 1884 (defconst lisp-font-lock-keywords-1 |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1885 (eval-when-compile |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1886 (list |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1887 ;; |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1888 ;; Definitions. |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1889 (list (concat "(\\(def\\(" |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1890 ;; Function declarations. |
20923
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
1891 "\\(advice\\|alias\\|generic\\|macro\\*?\\|method\\|" |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1892 "setf\\|subst\\*?\\|un\\*?\\|" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1893 "ine-\\(condition\\|derived-mode\\|function\\|" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1894 "method-combination\\|setf-expander\\|skeleton\\|widget\\|" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1895 "\\(compiler\\|modify\\|symbol\\)-macro\\)\\)\\|" |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1896 ;; Variable declarations. |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1897 "\\(const\\(ant\\)?\\|custom\\|face\\|parameter\\|var\\)\\|" |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1898 ;; Structure declarations. |
21946
b22c98ed245f
move defpackage to lisp-font-lock-keywords-1
Simon Marshall <simon@gnu.org>
parents:
21751
diff
changeset
|
1899 "\\(class\\|group\\|package\\|struct\\|type\\)" |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1900 "\\)\\)\\>" |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1901 ;; Any whitespace and defined object. |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1902 "[ \t'\(]*" |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1903 "\\(\\sw+\\)?") |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1904 '(1 font-lock-keyword-face) |
22857
33b46ddf75b7
(lisp-font-lock-keywords-1): Fontify `defconstant' and `defparameter'.
Richard M. Stallman <rms@gnu.org>
parents:
22757
diff
changeset
|
1905 '(9 (cond ((match-beginning 3) font-lock-function-name-face) |
22757
c4e492a7cb07
(lisp-font-lock-keywords-2): support `handler-*',
Richard M. Stallman <rms@gnu.org>
parents:
22730
diff
changeset
|
1906 ((match-beginning 6) font-lock-variable-name-face) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
1907 (t font-lock-type-face)) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1908 nil t)) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1909 ;; |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1910 ;; Emacs Lisp autoload cookies. |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
1911 '("^;;;###\\(autoload\\)\\>" 1 font-lock-warning-face prepend) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1912 )) |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
1913 "Subdued level highlighting for Lisp modes.") |
4053 | 1914 |
1915 (defconst lisp-font-lock-keywords-2 | |
10879
73ce8261c2ce
Added font-lock-maximum-decoration; use it to set lisp-font-lock-keywords, and
Simon Marshall <simon@gnu.org>
parents:
10545
diff
changeset
|
1916 (append lisp-font-lock-keywords-1 |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1917 (eval-when-compile |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1918 (list |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1919 ;; |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1920 ;; Control structures. Emacs Lisp forms. |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1921 (cons (concat |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1922 "(" (regexp-opt |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1923 '("cond" "if" "while" "let" "let*" |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1924 "prog" "progn" "progv" "prog1" "prog2" "prog*" |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1925 "inline" "lambda" "save-restriction" "save-excursion" |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1926 "save-window-excursion" "save-selected-window" |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1927 "save-match-data" "save-current-buffer" "unwind-protect" |
20923
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
1928 "condition-case" "track-mouse" |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1929 "eval-after-load" "eval-and-compile" "eval-when-compile" |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1930 "eval-when" |
20190
bc7fabb22520
Allow any number of ::foos in declarative items.
Simon Marshall <simon@gnu.org>
parents:
19935
diff
changeset
|
1931 "with-current-buffer" "with-electric-help" |
bc7fabb22520
Allow any number of ::foos in declarative items.
Simon Marshall <simon@gnu.org>
parents:
19935
diff
changeset
|
1932 "with-output-to-string" "with-output-to-temp-buffer" |
23751
3fdde7281f9b
* font-lock.el (font-lock-defaults): Doc fix.
Simon Marshall <simon@gnu.org>
parents:
23163
diff
changeset
|
1933 "with-temp-buffer" "with-temp-file" "with-temp-message" |
20190
bc7fabb22520
Allow any number of ::foos in declarative items.
Simon Marshall <simon@gnu.org>
parents:
19935
diff
changeset
|
1934 "with-timeout") t) |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1935 "\\>") |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1936 1) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1937 ;; |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1938 ;; Control structures. Common Lisp forms. |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1939 (cons (concat |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1940 "(" (regexp-opt |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1941 '("when" "unless" "case" "ecase" "typecase" "etypecase" |
22757
c4e492a7cb07
(lisp-font-lock-keywords-2): support `handler-*',
Richard M. Stallman <rms@gnu.org>
parents:
22730
diff
changeset
|
1942 "ccase" "ctypecase" "handler-case" "handler-bind" |
22857
33b46ddf75b7
(lisp-font-lock-keywords-1): Fontify `defconstant' and `defparameter'.
Richard M. Stallman <rms@gnu.org>
parents:
22757
diff
changeset
|
1943 "restart-bind" "restart-case" "in-package" |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1944 "cerror" "break" "ignore-errors" |
22857
33b46ddf75b7
(lisp-font-lock-keywords-1): Fontify `defconstant' and `defparameter'.
Richard M. Stallman <rms@gnu.org>
parents:
22757
diff
changeset
|
1945 "loop" "do" "do*" "dotimes" "dolist" "the" "locally" |
22757
c4e492a7cb07
(lisp-font-lock-keywords-2): support `handler-*',
Richard M. Stallman <rms@gnu.org>
parents:
22730
diff
changeset
|
1946 "proclaim" "declaim" "declare" "symbol-macrolet" |
c4e492a7cb07
(lisp-font-lock-keywords-2): support `handler-*',
Richard M. Stallman <rms@gnu.org>
parents:
22730
diff
changeset
|
1947 "lexical-let" "lexical-let*" "flet" "labels" "compiler-let" |
c4e492a7cb07
(lisp-font-lock-keywords-2): support `handler-*',
Richard M. Stallman <rms@gnu.org>
parents:
22730
diff
changeset
|
1948 "destructuring-bind" "macrolet" "tagbody" "block" |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1949 "return" "return-from") t) |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
1950 "\\>") |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1951 1) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
1952 ;; |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1953 ;; Exit/Feature symbols as constants. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1954 (list (concat "(\\(catch\\|throw\\|featurep\\|provide\\|require\\)\\>" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1955 "[ \t']*\\(\\sw+\\)?") |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1956 '(1 font-lock-keyword-face) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1957 '(2 font-lock-constant-face nil t)) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1958 ;; |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1959 ;; Erroneous structures. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
1960 '("(\\(abort\\|assert\\|error\\|signal\\)\\>" 1 font-lock-warning-face) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1961 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1962 ;; Words inside \\[] tend to be for `substitute-command-keys'. |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
1963 '("\\\\\\\\\\[\\(\\sw+\\)]" 1 font-lock-constant-face prepend) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1964 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1965 ;; Words inside `' tend to be symbol names. |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
1966 '("`\\(\\sw\\sw+\\)'" 1 font-lock-constant-face prepend) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1967 ;; |
20923
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
1968 ;; Constant values. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
1969 '("\\<:\\sw\\sw+\\>" 0 font-lock-builtin-face) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1970 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1971 ;; ELisp and CLisp `&' keywords as types. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1972 '("\\<\\&\\sw+\\>" . font-lock-type-face) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1973 ))) |
12385
c80966dc0b60
Specify in font-lock-defaults/font-lock-defaults-alist which keywords we can
Simon Marshall <simon@gnu.org>
parents:
12268
diff
changeset
|
1974 "Gaudy level highlighting for Lisp modes.") |
4053 | 1975 |
12385
c80966dc0b60
Specify in font-lock-defaults/font-lock-defaults-alist which keywords we can
Simon Marshall <simon@gnu.org>
parents:
12268
diff
changeset
|
1976 (defvar lisp-font-lock-keywords lisp-font-lock-keywords-1 |
c80966dc0b60
Specify in font-lock-defaults/font-lock-defaults-alist which keywords we can
Simon Marshall <simon@gnu.org>
parents:
12268
diff
changeset
|
1977 "Default expressions to highlight in Lisp modes.") |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1978 |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1979 ;; TeX. |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1980 |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
1981 ;(defvar tex-font-lock-keywords |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1982 ; ;; Regexps updated with help from Ulrik Dickow <dickow@nbi.dk>. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1983 ; '(("\\\\\\(begin\\|end\\|newcommand\\){\\([a-zA-Z0-9\\*]+\\)}" |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1984 ; 2 font-lock-function-name-face) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1985 ; ("\\\\\\(cite\\|label\\|pageref\\|ref\\){\\([^} \t\n]+\\)}" |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
1986 ; 2 font-lock-constant-face) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1987 ; ;; It seems a bit dubious to use `bold' and `italic' faces since we might |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1988 ; ;; not be able to display those fonts. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1989 ; ("{\\\\bf\\([^}]+\\)}" 1 'bold keep) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1990 ; ("{\\\\\\(em\\|it\\|sl\\)\\([^}]+\\)}" 2 'italic keep) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1991 ; ("\\\\\\([a-zA-Z@]+\\|.\\)" . font-lock-keyword-face) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
1992 ; ("^[ \t\n]*\\\\def[\\\\@]\\(\\w+\\)" 1 font-lock-function-name-face keep)) |
18332
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
1993 ; ;; Rewritten and extended for LaTeX2e by Ulrik Dickow <dickow@nbi.dk>. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
1994 ; '(("\\\\\\(begin\\|end\\|newcommand\\){\\([a-zA-Z0-9\\*]+\\)}" |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
1995 ; 2 font-lock-function-name-face) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
1996 ; ("\\\\\\(cite\\|label\\|pageref\\|ref\\){\\([^} \t\n]+\\)}" |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
1997 ; 2 font-lock-constant-face) |
18332
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
1998 ; ("^[ \t]*\\\\def\\\\\\(\\(\\w\\|@\\)+\\)" 1 font-lock-function-name-face) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
1999 ; "\\\\\\([a-zA-Z@]+\\|.\\)" |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2000 ; ;; It seems a bit dubious to use `bold' and `italic' faces since we might |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2001 ; ;; not be able to display those fonts. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2002 ; ;; LaTeX2e: \emph{This is emphasized}. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2003 ; ("\\\\emph{\\([^}]+\\)}" 1 'italic keep) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2004 ; ;; LaTeX2e: \textbf{This is bold}, \textit{...}, \textsl{...} |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2005 ; ("\\\\text\\(\\(bf\\)\\|it\\|sl\\){\\([^}]+\\)}" |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2006 ; 3 (if (match-beginning 2) 'bold 'italic) keep) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2007 ; ;; Old-style bf/em/it/sl. Stop at `\\' and un-escaped `&', for tables. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2008 ; ("\\\\\\(\\(bf\\)\\|em\\|it\\|sl\\)\\>\\(\\([^}&\\]\\|\\\\[^\\]\\)+\\)" |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2009 ; 3 (if (match-beginning 2) 'bold 'italic) keep)) |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2010 |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2011 ;; Rewritten with the help of Alexandra Bac <abac@welcome.disi.unige.it>. |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2012 (defconst tex-font-lock-keywords-1 |
18332
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2013 (eval-when-compile |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2014 (let* (;; |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2015 ;; Names of commands whose arg should be fontified as heading, etc. |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2016 (headings (regexp-opt '("title" "begin" "end") t)) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2017 ;; These commands have optional args. |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2018 (headings-opt (regexp-opt |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2019 '("chapter" "part" |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2020 "section" "subsection" "subsubsection" |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2021 "section*" "subsection*" "subsubsection*" |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2022 "paragraph" "subparagraph" "subsubparagraph" |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2023 "paragraph*" "subparagraph*" "subsubparagraph*" |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2024 "newcommand" "renewcommand" "newenvironment" |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2025 "newtheorem" |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2026 "newcommand*" "renewcommand*" "newenvironment*" |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2027 "newtheorem*") |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2028 t)) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2029 (variables (regexp-opt |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2030 '("newcounter" "newcounter*" "setcounter" "addtocounter" |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2031 "setlength" "addtolength" "settowidth") |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2032 t)) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2033 (includes (regexp-opt |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2034 '("input" "include" "includeonly" "bibliography" |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2035 "epsfig" "psfig" "epsf") |
18332
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2036 t)) |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2037 (includes-opt (regexp-opt |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2038 '("nofiles" "usepackage" |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2039 "includegraphics" "includegraphics*") |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2040 t)) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2041 ;; Miscellany. |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2042 (slash "\\\\") |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2043 (opt "\\(\\[[^]]*\\]\\)?") |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2044 (arg "{\\([^}]+\\)") |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2045 (opt-depth (regexp-opt-depth opt)) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2046 (arg-depth (regexp-opt-depth arg)) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2047 ) |
18332
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2048 (list |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2049 ;; |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2050 ;; Heading args. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2051 (list (concat slash headings arg) |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2052 (+ (regexp-opt-depth headings) arg-depth) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2053 'font-lock-function-name-face) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2054 (list (concat slash headings-opt opt arg) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2055 (+ (regexp-opt-depth headings-opt) opt-depth arg-depth) |
18332
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2056 'font-lock-function-name-face) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2057 ;; |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2058 ;; Variable args. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2059 (list (concat slash variables arg) |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2060 (+ (regexp-opt-depth variables) arg-depth) |
18332
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2061 'font-lock-variable-name-face) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2062 ;; |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2063 ;; Include args. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2064 (list (concat slash includes arg) |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2065 (+ (regexp-opt-depth includes) arg-depth) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2066 'font-lock-builtin-face) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2067 (list (concat slash includes-opt opt arg) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2068 (+ (regexp-opt-depth includes-opt) opt-depth arg-depth) |
18332
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2069 'font-lock-builtin-face) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2070 ;; |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2071 ;; Definitions. I think. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2072 '("^[ \t]*\\\\def\\\\\\(\\(\\w\\|@\\)+\\)" |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2073 1 font-lock-function-name-face) |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2074 ))) |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2075 "Subdued expressions to highlight in TeX modes.") |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2076 |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2077 (defconst tex-font-lock-keywords-2 |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2078 (append tex-font-lock-keywords-1 |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2079 (eval-when-compile |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2080 (let* (;; |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2081 ;; Names of commands whose arg should be fontified with fonts. |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2082 (bold (regexp-opt '("bf" "textbf" "textsc" "textup" |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2083 "boldsymbol" "pmb") t)) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2084 (italic (regexp-opt '("it" "textit" "textsl" "emph") t)) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2085 (type (regexp-opt '("texttt" "textmd" "textrm" "textsf") t)) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2086 ;; |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2087 ;; Names of commands whose arg should be fontified as a citation. |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2088 (citations (regexp-opt |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2089 '("label" "ref" "pageref" "vref" "eqref") |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2090 t)) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2091 (citations-opt (regexp-opt |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2092 '("cite" "nocite" "caption" "index" "glossary" |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2093 "footnote" "footnotemark" "footnotetext") |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2094 t)) |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2095 ;; |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2096 ;; Names of commands that should be fontified. |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2097 (specials (regexp-opt |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2098 '("\\" |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2099 "linebreak" "nolinebreak" "pagebreak" "nopagebreak" |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2100 "newline" "newpage" "clearpage" "cleardoublepage" |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2101 "displaybreak" "allowdisplaybreaks" "enlargethispage") |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2102 t)) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2103 (general "\\([a-zA-Z@]+\\**\\|[^ \t\n]\\)") |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2104 ;; |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2105 ;; Miscellany. |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2106 (slash "\\\\") |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2107 (opt "\\(\\[[^]]*\\]\\)?") |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2108 (arg "{\\([^}]+\\)") |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2109 (opt-depth (regexp-opt-depth opt)) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2110 (arg-depth (regexp-opt-depth arg)) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2111 ) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2112 (list |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2113 ;; |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2114 ;; Citation args. |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2115 (list (concat slash citations arg) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2116 (+ (regexp-opt-depth citations) arg-depth) |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
2117 'font-lock-constant-face) |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2118 (list (concat slash citations-opt opt arg) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2119 (+ (regexp-opt-depth citations-opt) opt-depth arg-depth) |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
2120 'font-lock-constant-face) |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2121 ;; |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2122 ;; Command names, special and general. |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2123 (cons (concat slash specials) 'font-lock-warning-face) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2124 (concat slash general) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2125 ;; |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2126 ;; Font environments. It seems a bit dubious to use `bold' etc. faces |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2127 ;; since we might not be able to display those fonts. |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2128 (list (concat slash bold arg) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2129 (+ (regexp-opt-depth bold) arg-depth) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2130 '(quote bold) 'keep) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2131 (list (concat slash italic arg) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2132 (+ (regexp-opt-depth italic) arg-depth) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2133 '(quote italic) 'keep) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2134 (list (concat slash type arg) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2135 (+ (regexp-opt-depth type) arg-depth) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2136 '(quote bold-italic) 'keep) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2137 ;; |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2138 ;; Old-style bf/em/it/sl. Stop at `\\' and un-escaped `&', for tables. |
19935
e7e61f0cc9f4
Don't fontify \item like \it.
Simon Marshall <simon@gnu.org>
parents:
19846
diff
changeset
|
2139 (list (concat "\\\\\\(\\(bf\\)\\|em\\|it\\|sl\\)\\>" |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2140 "\\(\\([^}&\\]\\|\\\\[^\\]\\)+\\)") |
19935
e7e61f0cc9f4
Don't fontify \item like \it.
Simon Marshall <simon@gnu.org>
parents:
19846
diff
changeset
|
2141 3 '(if (match-beginning 2) 'bold 'italic) 'keep) |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2142 )))) |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2143 "Gaudy expressions to highlight in TeX modes.") |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2144 |
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2145 (defvar tex-font-lock-keywords tex-font-lock-keywords-1 |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2146 "Default expressions to highlight in TeX modes.") |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2147 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2148 ;;; User choices. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2149 |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2150 ;; These provide a means to fontify types not defined by the language. Those |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2151 ;; types might be the user's own or they might be generally accepted and used. |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2152 ;; Generally accepted types are used to provide default variable values. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2153 |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2154 (define-widget 'font-lock-extra-types-widget 'radio |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2155 "Widget `:type' for members of the custom group `font-lock-extra-types'. |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2156 Members should `:load' the package `font-lock' to use this widget." |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2157 :args '((const :tag "none" nil) |
18463
4f630b3e8f43
split up scheme and tex support; wrap inhibit-point-motion-hooks where nec.
Simon Marshall <simon@gnu.org>
parents:
18332
diff
changeset
|
2158 (repeat :tag "types" regexp))) |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2159 |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2160 (defcustom c-font-lock-extra-types '("FILE" "\\sw+_t") |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2161 "*List of extra types to fontify in C mode. |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2162 Each list item should be a regexp not containing word-delimiters. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2163 For example, a value of (\"FILE\" \"\\\\sw+_t\") means the word FILE and words |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2164 ending in _t are treated as type names. |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2165 |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2166 The value of this variable is used when Font Lock mode is turned on." |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2167 :type 'font-lock-extra-types-widget |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2168 :group 'font-lock-extra-types) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2169 |
20646
a951fec2326c
(c++-font-lock-extra-types): Add some container classes.
Simon Marshall <simon@gnu.org>
parents:
20645
diff
changeset
|
2170 (defcustom c++-font-lock-extra-types |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2171 '("\\sw+_t" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2172 "\\([iof]\\|str\\)+stream\\(buf\\)?" "ios" |
20646
a951fec2326c
(c++-font-lock-extra-types): Add some container classes.
Simon Marshall <simon@gnu.org>
parents:
20645
diff
changeset
|
2173 "string" "rope" |
a951fec2326c
(c++-font-lock-extra-types): Add some container classes.
Simon Marshall <simon@gnu.org>
parents:
20645
diff
changeset
|
2174 "list" "slist" |
a951fec2326c
(c++-font-lock-extra-types): Add some container classes.
Simon Marshall <simon@gnu.org>
parents:
20645
diff
changeset
|
2175 "deque" "vector" "bit_vector" |
a951fec2326c
(c++-font-lock-extra-types): Add some container classes.
Simon Marshall <simon@gnu.org>
parents:
20645
diff
changeset
|
2176 "set" "multiset" |
a951fec2326c
(c++-font-lock-extra-types): Add some container classes.
Simon Marshall <simon@gnu.org>
parents:
20645
diff
changeset
|
2177 "map" "multimap" |
a951fec2326c
(c++-font-lock-extra-types): Add some container classes.
Simon Marshall <simon@gnu.org>
parents:
20645
diff
changeset
|
2178 "hash\\(_\\(m\\(ap\\|ulti\\(map\\|set\\)\\)\\|set\\)\\)?" |
a951fec2326c
(c++-font-lock-extra-types): Add some container classes.
Simon Marshall <simon@gnu.org>
parents:
20645
diff
changeset
|
2179 "stack" "queue" "priority_queue" |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2180 "iterator" "const_iterator" "reverse_iterator" "const_reverse_iterator" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2181 "reference" "const_reference") |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2182 "*List of extra types to fontify in C++ mode. |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2183 Each list item should be a regexp not containing word-delimiters. |
20646
a951fec2326c
(c++-font-lock-extra-types): Add some container classes.
Simon Marshall <simon@gnu.org>
parents:
20645
diff
changeset
|
2184 For example, a value of (\"string\") means the word string is treated as a type |
a951fec2326c
(c++-font-lock-extra-types): Add some container classes.
Simon Marshall <simon@gnu.org>
parents:
20645
diff
changeset
|
2185 name. |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2186 |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2187 The value of this variable is used when Font Lock mode is turned on." |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2188 :type 'font-lock-extra-types-widget |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2189 :group 'font-lock-extra-types) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2190 |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2191 (defcustom objc-font-lock-extra-types '("Class" "BOOL" "IMP" "SEL") |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2192 "*List of extra types to fontify in Objective-C mode. |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2193 Each list item should be a regexp not containing word-delimiters. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2194 For example, a value of (\"Class\" \"BOOL\" \"IMP\" \"SEL\") means the words |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2195 Class, BOOL, IMP and SEL are treated as type names. |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2196 |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2197 The value of this variable is used when Font Lock mode is turned on." |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2198 :type 'font-lock-extra-types-widget |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2199 :group 'font-lock-extra-types) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2200 |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2201 (defcustom java-font-lock-extra-types '("[A-Z\300-\326\330-\337]\\sw+") |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2202 "*List of extra types to fontify in Java mode. |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2203 Each list item should be a regexp not containing word-delimiters. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2204 For example, a value of (\"[A-Z\300-\326\330-\337]\\\\sw+\") means capitalised |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2205 words (and words conforming to the Java id spec) are treated as type names. |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2206 |
17543
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2207 The value of this variable is used when Font Lock mode is turned on." |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2208 :type 'font-lock-extra-types-widget |
9b75a01e03e5
Respect font-lock-face-attributes and custom fixes.
Simon Marshall <simon@gnu.org>
parents:
17507
diff
changeset
|
2209 :group 'font-lock-extra-types) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2210 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2211 ;;; C. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2212 |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2213 ;; [Murmur murmur murmur] Maestro, drum-roll please... [Murmur murmur murmur.] |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2214 ;; Ahem. [Murmur murmur murmur] Lay-dees an Gennel-men. [Murmur murmur shhh!] |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2215 ;; I am most proud and humbly honoured today [murmur murmur cough] to present |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2216 ;; to you good people, the winner of the Second Millennium Award for The Most |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2217 ;; Hairy Language Syntax. [Ahhh!] All rise please. [Shuffle shuffle |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2218 ;; shuffle.] And a round of applause please. For... The C Language! [Roar.] |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2219 ;; |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2220 ;; Thank you... You are too kind... It is with a feeling of great privilege |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2221 ;; and indeed emotion [sob] that I accept this award. It has been a long hard |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2222 ;; road. But we know our destiny. And our future. For we must not rest. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2223 ;; There are more tokens to overload, more shoehorn, more methodologies. But |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2224 ;; more is a plus! [Ha ha ha.] And more means plus! [Ho ho ho.] The future |
16852
70e9b1d69d0d
Fix additional text prop fns to behave as proposed builtins.
Simon Marshall <simon@gnu.org>
parents:
16578
diff
changeset
|
2225 ;; is C++! [Ohhh!] The Third Millennium Award... Will be ours! [Roar.] |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2226 |
4053 | 2227 (defconst c-font-lock-keywords-1 nil |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2228 "Subdued level highlighting for C mode.") |
4053 | 2229 |
2230 (defconst c-font-lock-keywords-2 nil | |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2231 "Medium level highlighting for C mode. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2232 See also `c-font-lock-extra-types'.") |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2233 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2234 (defconst c-font-lock-keywords-3 nil |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2235 "Gaudy level highlighting for C mode. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2236 See also `c-font-lock-extra-types'.") |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2237 |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2238 (let* ((c-keywords |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2239 (eval-when-compile |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2240 (regexp-opt '("break" "continue" "do" "else" "for" "if" "return" |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2241 "switch" "while" "sizeof" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2242 ;; Type related, but we don't do anything special. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2243 "typedef" "extern" "auto" "register" "static" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2244 "volatile" "const") t))) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2245 (c-type-specs |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2246 (eval-when-compile |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2247 (regexp-opt '("enum" "struct" "union") t))) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2248 (c-type-specs-depth |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2249 (regexp-opt-depth c-type-specs)) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2250 (c-type-names |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2251 `(mapconcat 'identity |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2252 (cons |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2253 (,@ (eval-when-compile |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2254 (regexp-opt |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2255 '("char" "short" "int" "long" "signed" "unsigned" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2256 "float" "double" "void")))) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2257 c-font-lock-extra-types) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2258 "\\|")) |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2259 (c-type-names-depth |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2260 `(regexp-opt-depth (,@ c-type-names))) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2261 ) |
6093
00cee8387866
Clean up c-font-lock-keywords; now slightly more consistent about highlighting
Karl Heuer <kwzh@gnu.org>
parents:
5878
diff
changeset
|
2262 (setq c-font-lock-keywords-1 |
00cee8387866
Clean up c-font-lock-keywords; now slightly more consistent about highlighting
Karl Heuer <kwzh@gnu.org>
parents:
5878
diff
changeset
|
2263 (list |
00cee8387866
Clean up c-font-lock-keywords; now slightly more consistent about highlighting
Karl Heuer <kwzh@gnu.org>
parents:
5878
diff
changeset
|
2264 ;; |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2265 ;; These are all anchored at the beginning of line for speed. |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2266 ;; Note that `c++-font-lock-keywords-1' depends on `c-font-lock-keywords-1'. |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2267 ;; |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2268 ;; Fontify function name definitions (GNU style; without type on line). |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2269 '("^\\(\\sw+\\)[ \t]*(" 1 font-lock-function-name-face) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2270 ;; |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2271 ;; Fontify error directives. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2272 '("^#[ \t]*error[ \t]+\\(.+\\)" 1 font-lock-warning-face prepend) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2273 ;; |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2274 ;; Fontify filenames in #include <...> preprocessor directives as strings. |
20923
c6e733c90ed8
Keyword doc fixes and keyword tweaks.
Simon Marshall <simon@gnu.org>
parents:
20851
diff
changeset
|
2275 '("^#[ \t]*\\(import\\|include\\)[ \t]*\\(<[^>\"\n]*>?\\)" |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2276 2 font-lock-string-face) |
6093
00cee8387866
Clean up c-font-lock-keywords; now slightly more consistent about highlighting
Karl Heuer <kwzh@gnu.org>
parents:
5878
diff
changeset
|
2277 ;; |
9389
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
2278 ;; Fontify function macro names. |
13701
1dab6f0d9239
Don't turn on in any buffer with a leading space in its name.
Simon Marshall <simon@gnu.org>
parents:
13641
diff
changeset
|
2279 '("^#[ \t]*define[ \t]+\\(\\sw+\\)(" 1 font-lock-function-name-face) |
6093
00cee8387866
Clean up c-font-lock-keywords; now slightly more consistent about highlighting
Karl Heuer <kwzh@gnu.org>
parents:
5878
diff
changeset
|
2280 ;; |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
2281 ;; Fontify symbol names in #elif or #if ... defined preprocessor directives. |
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
2282 '("^#[ \t]*\\(elif\\|if\\)\\>" |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2283 ("\\<\\(defined\\)\\>[ \t]*(?\\(\\sw+\\)?" nil nil |
20646
a951fec2326c
(c++-font-lock-extra-types): Add some container classes.
Simon Marshall <simon@gnu.org>
parents:
20645
diff
changeset
|
2284 (1 font-lock-builtin-face) (2 font-lock-variable-name-face nil t))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2285 ;; |
9389
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
2286 ;; Fontify otherwise as symbol names, and the preprocessor directive names. |
20646
a951fec2326c
(c++-font-lock-extra-types): Add some container classes.
Simon Marshall <simon@gnu.org>
parents:
20645
diff
changeset
|
2287 '("^#[ \t]*\\(\\sw+\\)\\>[ \t!]*\\(\\sw+\\)?" |
a951fec2326c
(c++-font-lock-extra-types): Add some container classes.
Simon Marshall <simon@gnu.org>
parents:
20645
diff
changeset
|
2288 (1 font-lock-builtin-face) (2 font-lock-variable-name-face nil t)) |
6093
00cee8387866
Clean up c-font-lock-keywords; now slightly more consistent about highlighting
Karl Heuer <kwzh@gnu.org>
parents:
5878
diff
changeset
|
2289 )) |
00cee8387866
Clean up c-font-lock-keywords; now slightly more consistent about highlighting
Karl Heuer <kwzh@gnu.org>
parents:
5878
diff
changeset
|
2290 |
00cee8387866
Clean up c-font-lock-keywords; now slightly more consistent about highlighting
Karl Heuer <kwzh@gnu.org>
parents:
5878
diff
changeset
|
2291 (setq c-font-lock-keywords-2 |
00cee8387866
Clean up c-font-lock-keywords; now slightly more consistent about highlighting
Karl Heuer <kwzh@gnu.org>
parents:
5878
diff
changeset
|
2292 (append c-font-lock-keywords-1 |
4053 | 2293 (list |
2294 ;; | |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2295 ;; Simple regexps for speed. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2296 ;; |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2297 ;; Fontify all type names. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2298 `(eval . |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2299 (cons (concat "\\<\\(" (,@ c-type-names) "\\)\\>") 'font-lock-type-face)) |
4053 | 2300 ;; |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2301 ;; Fontify all builtin keywords (except case, default and goto; see below). |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2302 (concat "\\<\\(" c-keywords "\\|" c-type-specs "\\)\\>") |
9487
f80b2a33df03
* font-lock.el: To make font-lock.el dumpable: (font-lock-display-type,
Simon Marshall <simon@gnu.org>
parents:
9444
diff
changeset
|
2303 ;; |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2304 ;; Fontify case/goto keywords and targets, and case default/goto tags. |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
2305 '("\\<\\(case\\|goto\\)\\>[ \t]*\\(-?\\sw+\\)?" |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
2306 (1 font-lock-keyword-face) (2 font-lock-constant-face nil t)) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2307 ;; Anders Lindgren <andersl@csd.uu.se> points out that it is quicker to use |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2308 ;; MATCH-ANCHORED to effectively anchor the regexp on the left. |
19846
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
2309 ;; This must come after the one for keywords and targets. |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2310 '(":" ("^[ \t]*\\(\\sw+\\)[ \t]*:" |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2311 (beginning-of-line) (end-of-line) |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
2312 (1 font-lock-constant-face))) |
6093
00cee8387866
Clean up c-font-lock-keywords; now slightly more consistent about highlighting
Karl Heuer <kwzh@gnu.org>
parents:
5878
diff
changeset
|
2313 ))) |
6219
d960f0463014
(c++-font-lock-keywords-1, c++-font-lock-keywords-2): New variables.
Richard M. Stallman <rms@gnu.org>
parents:
6093
diff
changeset
|
2314 |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2315 (setq c-font-lock-keywords-3 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2316 (append c-font-lock-keywords-2 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2317 ;; |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2318 ;; More complicated regexps for more complete highlighting for types. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2319 ;; We still have to fontify type specifiers individually, as C is so hairy. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2320 (list |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2321 ;; |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2322 ;; Fontify all storage types, plus their items. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2323 `(eval . |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2324 (list (concat "\\<\\(" (,@ c-type-names) "\\)\\>" |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2325 "\\([ \t*&]+\\sw+\\>\\)*") |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2326 ;; Fontify each declaration item. |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2327 (list 'font-lock-match-c-style-declaration-item-and-skip-to-next |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2328 ;; Start with point after all type specifiers. |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2329 (list 'goto-char (list 'or |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2330 (list 'match-beginning |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2331 (+ (,@ c-type-names-depth) 2)) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2332 '(match-end 1))) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2333 ;; Finish with point after first type specifier. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2334 '(goto-char (match-end 1)) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2335 ;; Fontify as a variable or function name. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2336 '(1 (if (match-beginning 2) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2337 font-lock-function-name-face |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2338 font-lock-variable-name-face))))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2339 ;; |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2340 ;; Fontify all storage specs and types, plus their items. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2341 `(eval . |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2342 (list (concat "\\<\\(" (,@ c-type-specs) "\\)\\>" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2343 "[ \t]*\\(\\sw+\\)?") |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2344 (list 1 'font-lock-keyword-face) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2345 (list (+ (,@ c-type-specs-depth) 2) 'font-lock-type-face nil t) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2346 (list 'font-lock-match-c-style-declaration-item-and-skip-to-next |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2347 nil nil |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2348 ;; Fontify as a variable or function name. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2349 '(1 (if (match-beginning 2) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2350 font-lock-function-name-face |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2351 font-lock-variable-name-face) nil t)))) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2352 ;; |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2353 ;; Fontify structures, or typedef names, plus their items. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2354 '("\\(}\\)[ \t*]*\\sw" |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2355 (font-lock-match-c-style-declaration-item-and-skip-to-next |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2356 (goto-char (match-end 1)) nil |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2357 (1 font-lock-type-face))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2358 ;; |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2359 ;; Fontify anything at beginning of line as a declaration or definition. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2360 '("^\\(\\sw+\\)\\>\\([ \t*]+\\sw+\\>\\)*" |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2361 (1 font-lock-type-face) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2362 (font-lock-match-c-style-declaration-item-and-skip-to-next |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2363 (goto-char (or (match-beginning 2) (match-end 1))) nil |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2364 (1 (if (match-beginning 2) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2365 font-lock-function-name-face |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2366 font-lock-variable-name-face)))) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2367 ))) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2368 ) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2369 |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2370 (defvar c-font-lock-keywords c-font-lock-keywords-1 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2371 "Default expressions to highlight in C mode. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2372 See also `c-font-lock-extra-types'.") |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2373 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2374 ;;; C++. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2375 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2376 (defconst c++-font-lock-keywords-1 nil |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2377 "Subdued level highlighting for C++ mode.") |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2378 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2379 (defconst c++-font-lock-keywords-2 nil |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2380 "Medium level highlighting for C++ mode. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2381 See also `c++-font-lock-extra-types'.") |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2382 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2383 (defconst c++-font-lock-keywords-3 nil |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2384 "Gaudy level highlighting for C++ mode. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2385 See also `c++-font-lock-extra-types'.") |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2386 |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2387 (defun font-lock-match-c++-style-declaration-item-and-skip-to-next (limit) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2388 ;; Regexp matches after point: word<word>::word ( |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2389 ;; ^^^^ ^^^^ ^^^^ ^ |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2390 ;; Where the match subexpressions are: 1 3 5 6 |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2391 ;; |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2392 ;; Item is delimited by (match-beginning 1) and (match-end 1). |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2393 ;; If (match-beginning 3) is non-nil, that part of the item incloses a `<>'. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2394 ;; If (match-beginning 5) is non-nil, that part of the item follows a `::'. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2395 ;; If (match-beginning 6) is non-nil, the item is followed by a `('. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2396 (when (looking-at (eval-when-compile |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2397 (concat |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2398 ;; Skip any leading whitespace. |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2399 "[ \t*&]*" |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2400 ;; This is `c++-type-spec' from below. (Hint hint!) |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2401 "\\(\\sw+\\)" ; The instance? |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2402 "\\([ \t]*<\\([^>\n]+\\)[ \t*&]*>\\)?" ; Or template? |
20190
bc7fabb22520
Allow any number of ::foos in declarative items.
Simon Marshall <simon@gnu.org>
parents:
19935
diff
changeset
|
2403 "\\([ \t]*::[ \t*~]*\\(\\sw+\\)\\)*" ; Or member? |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2404 ;; Match any trailing parenthesis. |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2405 "[ \t]*\\((\\)?"))) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2406 (save-match-data |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2407 (condition-case nil |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2408 (save-restriction |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2409 ;; Restrict to the end of line, currently guaranteed to be LIMIT. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2410 (narrow-to-region (point-min) limit) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2411 (goto-char (match-end 1)) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2412 ;; Move over any item value, etc., to the next item. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2413 (while (not (looking-at "[ \t]*\\(\\(,\\)\\|;\\|$\\)")) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2414 (goto-char (or (scan-sexps (point) 1) (point-max)))) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2415 (goto-char (match-end 2))) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2416 (error t))))) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2417 |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2418 (let* ((c++-keywords |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2419 (eval-when-compile |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2420 (regexp-opt |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2421 '("break" "continue" "do" "else" "for" "if" "return" "switch" |
19846
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
2422 "while" "asm" "catch" "delete" "new" "sizeof" "this" "throw" "try" |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2423 ;; Branko Cibej <branko.cibej@hermes.si> says this is new. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2424 "export" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2425 ;; Mark Mitchell <mmitchell@usa.net> says these are new. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2426 "mutable" "explicit" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2427 ;; Alain Picard <ap@abelard.apana.org.au> suggests treating these |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2428 ;; as keywords not types. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2429 "typedef" "template" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2430 "extern" "auto" "register" "const" "volatile" "static" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2431 "inline" "friend" "virtual") t))) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2432 (c++-operators |
18332
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2433 (eval-when-compile |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2434 (regexp-opt |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2435 ;; Taken from Stroustrup, minus keywords otherwise fontified. |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2436 '("+" "-" "*" "/" "%" "^" "&" "|" "~" "!" "=" "<" ">" "+=" "-=" |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2437 "*=" "/=" "%=" "^=" "&=" "|=" "<<" ">>" ">>=" "<<=" "==" "!=" |
ee997de5b74b
Rearrange custom options. Also enable custom control of Global Font Lock mode.
Simon Marshall <simon@gnu.org>
parents:
18025
diff
changeset
|
2438 "<=" ">=" "&&" "||" "++" "--" "->*" "," "->" "[]" "()")))) |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2439 (c++-type-specs |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2440 (eval-when-compile |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2441 (regexp-opt |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2442 '("class" "public" "private" "protected" "typename" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2443 "struct" "union" "enum" "namespace" "using" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2444 ;; Eric Hopper <hopper@omnifarious.mn.org> says these are new. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2445 "static_cast" "dynamic_cast" "const_cast" "reinterpret_cast") t))) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2446 (c++-type-specs-depth |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2447 (regexp-opt-depth c++-type-specs)) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2448 (c++-type-names |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2449 `(mapconcat 'identity |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2450 (cons |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2451 (,@ (eval-when-compile |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2452 (regexp-opt |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2453 '("signed" "unsigned" "short" "long" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2454 "int" "char" "float" "double" "void" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2455 "bool" "complex")))) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2456 c++-font-lock-extra-types) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2457 "\\|")) |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2458 (c++-type-names-depth `(regexp-opt-depth (,@ c++-type-names))) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2459 ;; |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2460 ;; A brave attempt to match templates following a type and/or match |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2461 ;; class membership. See and sync the above function |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2462 ;; `font-lock-match-c++-style-declaration-item-and-skip-to-next'. |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2463 (c++-type-suffix (concat "\\([ \t]*<\\([^>\n]+\\)[ \t*&]*>\\)?" |
20190
bc7fabb22520
Allow any number of ::foos in declarative items.
Simon Marshall <simon@gnu.org>
parents:
19935
diff
changeset
|
2464 "\\([ \t]*::[ \t*~]*\\(\\sw+\\)\\)*")) |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2465 (c++-type-suffix-depth (regexp-opt-depth c++-type-suffix)) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2466 ;; If the string is a type, it may be followed by the cruft above. |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2467 (c++-type-spec (concat "\\(\\sw+\\)\\>" c++-type-suffix)) |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2468 (c++-type-spec-depth (regexp-opt-depth c++-type-spec)) |
17495
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2469 ;; |
83dabcc0a796
Customise. And a few code cleanups.
Simon Marshall <simon@gnu.org>
parents:
17468
diff
changeset
|
2470 ;; Parenthesis depth of user-defined types not forgetting their cruft. |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2471 (c++-type-depth `(regexp-opt-depth |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2472 (concat (,@ c++-type-names) (,@ c++-type-suffix)))) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2473 ) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2474 (setq c++-font-lock-keywords-1 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2475 (append |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2476 ;; |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2477 ;; The list `c-font-lock-keywords-1' less that for function names. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2478 (cdr c-font-lock-keywords-1) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2479 (list |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2480 ;; |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2481 ;; Fontify function name definitions, possibly incorporating class names. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2482 (list (concat "^" c++-type-spec "[ \t]*(") |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2483 '(1 (if (or (match-beginning 2) (match-beginning 4)) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2484 font-lock-type-face |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2485 font-lock-function-name-face)) |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2486 '(3 font-lock-type-face nil t) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2487 '(5 font-lock-function-name-face nil t)) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2488 ))) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2489 |
6219
d960f0463014
(c++-font-lock-keywords-1, c++-font-lock-keywords-2): New variables.
Richard M. Stallman <rms@gnu.org>
parents:
6093
diff
changeset
|
2490 (setq c++-font-lock-keywords-2 |
9487
f80b2a33df03
* font-lock.el: To make font-lock.el dumpable: (font-lock-display-type,
Simon Marshall <simon@gnu.org>
parents:
9444
diff
changeset
|
2491 (append c++-font-lock-keywords-1 |
9389
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
2492 (list |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2493 ;; |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2494 ;; The list `c-font-lock-keywords-2' for C++ plus operator overloading. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2495 `(eval . |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2496 (cons (concat "\\<\\(" (,@ c++-type-names) "\\)\\>") |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2497 'font-lock-type-face)) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2498 ;; |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2499 ;; Fontify operator overloading. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2500 (list (concat "\\<\\(operator\\)\\>[ \t]*\\(" c++-operators "\\)?") |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2501 '(1 font-lock-keyword-face) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2502 '(2 font-lock-builtin-face nil t)) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2503 ;; |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2504 ;; Fontify case/goto keywords and targets, and case default/goto tags. |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
2505 '("\\<\\(case\\|goto\\)\\>[ \t]*\\(-?\\sw+\\)?" |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
2506 (1 font-lock-keyword-face) (2 font-lock-constant-face nil t)) |
19846
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
2507 ;; This must come after the one for keywords and targets. |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2508 '(":" ("^[ \t]*\\(\\sw+\\)[ \t]*:\\($\\|[^:]\\)" |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2509 (beginning-of-line) (end-of-line) |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
2510 (1 font-lock-constant-face))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2511 ;; |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2512 ;; Fontify other builtin keywords. |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2513 (concat "\\<\\(" c++-keywords "\\|" c++-type-specs "\\)\\>") |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2514 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2515 ;; Eric Hopper <hopper@omnifarious.mn.org> says `true' and `false' are new. |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
2516 '("\\<\\(false\\|true\\)\\>" . font-lock-constant-face) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2517 ))) |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2518 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2519 (setq c++-font-lock-keywords-3 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2520 (append c++-font-lock-keywords-2 |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2521 ;; |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2522 ;; More complicated regexps for more complete highlighting for types. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2523 (list |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2524 ;; |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2525 ;; Fontify all storage classes and type specifiers, plus their items. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2526 `(eval . |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2527 (list (concat "\\<\\(" (,@ c++-type-names) "\\)\\>" (,@ c++-type-suffix) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2528 "\\([ \t*&]+" (,@ c++-type-spec) "\\)*") |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2529 ;; The name of any template type. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2530 (list (+ (,@ c++-type-names-depth) 3) 'font-lock-type-face nil t) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2531 ;; Fontify each declaration item. |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2532 (list 'font-lock-match-c++-style-declaration-item-and-skip-to-next |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2533 ;; Start with point after all type specifiers. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2534 (list 'goto-char (list 'or (list 'match-beginning |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2535 (+ (,@ c++-type-depth) 2)) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2536 '(match-end 1))) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2537 ;; Finish with point after first type specifier. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2538 '(goto-char (match-end 1)) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2539 ;; Fontify as a variable or function name. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2540 '(1 (cond ((or (match-beginning 2) (match-beginning 4)) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2541 font-lock-type-face) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2542 ((match-beginning 6) font-lock-function-name-face) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2543 (t font-lock-variable-name-face))) |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2544 '(3 font-lock-type-face nil t) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2545 '(5 (if (match-beginning 6) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2546 font-lock-function-name-face |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2547 font-lock-variable-name-face) nil t)))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2548 ;; |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2549 ;; Fontify all storage specs and types, plus their items. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2550 `(eval . |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2551 (list (concat "\\<" (,@ c++-type-specs) "\\>" (,@ c++-type-suffix) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2552 "[ \t]*\\(" (,@ c++-type-spec) "\\)?") |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2553 ;; The name of any template type. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2554 (list (+ (,@ c++-type-specs-depth) 2) 'font-lock-type-face nil t) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2555 ;; The name of any type. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2556 (list (+ (,@ c++-type-specs-depth) (,@ c++-type-suffix-depth) 2) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2557 'font-lock-type-face nil t) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2558 ;; Fontify each declaration item. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2559 (list 'font-lock-match-c++-style-declaration-item-and-skip-to-next |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2560 ;; Start with point after all type specifiers. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2561 nil |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2562 ;; Finish with point after first type specifier. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2563 nil |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2564 ;; Fontify as a variable or function name. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2565 '(1 (cond ((or (match-beginning 2) (match-beginning 4)) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2566 font-lock-type-face) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2567 ((match-beginning 6) font-lock-function-name-face) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2568 (t font-lock-variable-name-face))) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2569 '(3 font-lock-type-face nil t) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2570 '(5 (if (match-beginning 6) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2571 font-lock-function-name-face |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2572 font-lock-variable-name-face) nil t)) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2573 )) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2574 ;; |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2575 ;; Fontify structures, or typedef names, plus their items. |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2576 '("\\(}\\)[ \t*]*\\sw" |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2577 (font-lock-match-c++-style-declaration-item-and-skip-to-next |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2578 (goto-char (match-end 1)) nil |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2579 (1 font-lock-type-face))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2580 ;; |
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2581 ;; Fontify anything at beginning of line as a declaration or definition. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2582 (list (concat "^\\(" c++-type-spec "[ \t*&]*\\)+") |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2583 '(font-lock-match-c++-style-declaration-item-and-skip-to-next |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2584 (goto-char (match-beginning 1)) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2585 (goto-char (match-end 1)) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2586 (1 (cond ((or (match-beginning 2) (match-beginning 4)) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2587 font-lock-type-face) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2588 ((match-beginning 6) font-lock-function-name-face) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2589 (t font-lock-variable-name-face))) |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2590 (3 font-lock-type-face nil t) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2591 (5 (if (match-beginning 6) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2592 font-lock-function-name-face |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2593 font-lock-variable-name-face) nil t))) |
13299
d6bfe124472c
General reorganisation; moving and renaming etc.
Simon Marshall <simon@gnu.org>
parents:
12813
diff
changeset
|
2594 ))) |
6093
00cee8387866
Clean up c-font-lock-keywords; now slightly more consistent about highlighting
Karl Heuer <kwzh@gnu.org>
parents:
5878
diff
changeset
|
2595 ) |
4053 | 2596 |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2597 (defvar c++-font-lock-keywords c++-font-lock-keywords-1 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2598 "Default expressions to highlight in C++ mode. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2599 See also `c++-font-lock-extra-types'.") |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2600 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2601 ;;; Objective-C. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2602 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2603 (defconst objc-font-lock-keywords-1 nil |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2604 "Subdued level highlighting for Objective-C mode.") |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2605 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2606 (defconst objc-font-lock-keywords-2 nil |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2607 "Medium level highlighting for Objective-C mode. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2608 See also `objc-font-lock-extra-types'.") |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2609 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2610 (defconst objc-font-lock-keywords-3 nil |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2611 "Gaudy level highlighting for Objective-C mode. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2612 See also `objc-font-lock-extra-types'.") |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2613 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2614 ;; Regexps written with help from Stephen Peters <speters@us.oracle.com> and |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2615 ;; Jacques Duthen Prestataire <duthen@cegelec-red.fr>. |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2616 (let* ((objc-keywords |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2617 (eval-when-compile |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2618 (regexp-opt '("break" "continue" "do" "else" "for" "if" "return" |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2619 "switch" "while" "sizeof" "self" "super" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2620 "typedef" "auto" "extern" "static" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2621 "volatile" "const") t))) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2622 (objc-type-specs |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2623 (eval-when-compile |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2624 (regexp-opt |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2625 '("register" "struct" "union" "enum" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2626 "oneway" "in" "out" "inout" "bycopy" "byref") t))) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2627 (objc-type-specs-depth |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2628 (regexp-opt-depth objc-type-specs)) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2629 (objc-type-names |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2630 `(mapconcat 'identity |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2631 (cons |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2632 (,@ (eval-when-compile |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2633 (regexp-opt |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2634 '("signed" "unsigned" "short" "long" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2635 "int" "char" "float" "double" "void" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2636 "id")))) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2637 objc-font-lock-extra-types) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2638 "\\|")) |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2639 (objc-type-names-depth |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2640 `(regexp-opt-depth (,@ objc-type-names))) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2641 ) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2642 (setq objc-font-lock-keywords-1 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2643 (append |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2644 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2645 ;; The list `c-font-lock-keywords-1' less that for function names. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2646 (cdr c-font-lock-keywords-1) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2647 (list |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2648 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2649 ;; Fontify compiler directives. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2650 '("@\\(\\sw+\\)\\>" |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2651 (1 font-lock-keyword-face) |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2652 ("\\=[ \t:<,]*\\(\\sw+\\)" nil nil |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2653 (1 font-lock-type-face))) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2654 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2655 ;; Fontify method names and arguments. Oh Lordy! |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2656 ;; First, on the same line as the function declaration. |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2657 '("^[+-][ \t]*\\(PRIVATE\\>\\)?[ \t]*\\(([^)\n]+)\\)?[ \t]*\\(\\sw+\\)" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2658 (1 font-lock-keyword-face nil t) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2659 (3 font-lock-function-name-face) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2660 ("\\=[ \t]*\\(\\sw+\\)?:[ \t]*\\(([^)\n]+)\\)?[ \t]*\\(\\sw+\\)" |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2661 nil nil |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2662 (1 font-lock-function-name-face nil t) |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2663 (3 font-lock-variable-name-face))) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2664 ;; Second, on lines following the function declaration. |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2665 '(":" ("^[ \t]*\\(\\sw+\\)?:[ \t]*\\(([^)\n]+)\\)?[ \t]*\\(\\sw+\\)" |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2666 (beginning-of-line) (end-of-line) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2667 (1 font-lock-function-name-face nil t) |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2668 (3 font-lock-variable-name-face))) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2669 ))) |
4053 | 2670 |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2671 (setq objc-font-lock-keywords-2 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2672 (append objc-font-lock-keywords-1 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2673 (list |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2674 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2675 ;; Simple regexps for speed. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2676 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2677 ;; Fontify all type specifiers. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2678 `(eval . |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2679 (cons (concat "\\<\\(" (,@ objc-type-names) "\\)\\>") |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2680 'font-lock-type-face)) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2681 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2682 ;; Fontify all builtin keywords (except case, default and goto; see below). |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2683 (concat "\\<\\(" objc-keywords "\\|" objc-type-specs "\\)\\>") |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2684 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2685 ;; Fontify case/goto keywords and targets, and case default/goto tags. |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
2686 '("\\<\\(case\\|goto\\)\\>[ \t]*\\(-?\\sw+\\)?" |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
2687 (1 font-lock-keyword-face) (2 font-lock-constant-face nil t)) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2688 ;; Fontify tags iff sole statement on line, otherwise we detect selectors. |
19846
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
2689 ;; This must come after the one for keywords and targets. |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2690 '(":" ("^[ \t]*\\(\\sw+\\)[ \t]*:[ \t]*$" |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2691 (beginning-of-line) (end-of-line) |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
2692 (1 font-lock-constant-face))) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2693 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2694 ;; Fontify null object pointers. |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
2695 '("\\<[Nn]il\\>" . font-lock-constant-face) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2696 ))) |
4053 | 2697 |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2698 (setq objc-font-lock-keywords-3 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2699 (append objc-font-lock-keywords-2 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2700 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2701 ;; More complicated regexps for more complete highlighting for types. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2702 ;; We still have to fontify type specifiers individually, as C is so hairy. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2703 (list |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2704 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2705 ;; Fontify all storage classes and type specifiers, plus their items. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2706 `(eval . |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2707 (list (concat "\\<\\(" (,@ objc-type-names) "\\)\\>" |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2708 "\\([ \t*&]+\\sw+\\>\\)*") |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2709 ;; Fontify each declaration item. |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2710 (list 'font-lock-match-c-style-declaration-item-and-skip-to-next |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2711 ;; Start with point after all type specifiers. |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2712 (list 'goto-char |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2713 (list 'or (list 'match-beginning |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2714 (+ (,@ objc-type-names-depth) 2)) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2715 '(match-end 1))) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2716 ;; Finish with point after first type specifier. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2717 '(goto-char (match-end 1)) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2718 ;; Fontify as a variable or function name. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2719 '(1 (if (match-beginning 2) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2720 font-lock-function-name-face |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2721 font-lock-variable-name-face))))) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2722 ;; |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2723 ;; Fontify all storage specs and types, plus their items. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2724 `(eval . |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2725 (list (concat "\\<\\(" (,@ objc-type-specs) "[ \t]*\\)+\\>" |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2726 "[ \t]*\\(\\sw+\\)?") |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2727 ;; The name of any type. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2728 (list (+ (,@ objc-type-specs-depth) 2) 'font-lock-type-face nil t) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2729 ;; Fontify each declaration item. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2730 (list 'font-lock-match-c++-style-declaration-item-and-skip-to-next |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2731 nil nil |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2732 ;; Fontify as a variable or function name. |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2733 '(1 (if (match-beginning 2) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2734 font-lock-function-name-face |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2735 font-lock-variable-name-face))) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2736 )) |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2737 ;; |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2738 ;; Fontify structures, or typedef names, plus their items. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2739 '("\\(}\\)[ \t*]*\\sw" |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2740 (font-lock-match-c-style-declaration-item-and-skip-to-next |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2741 (goto-char (match-end 1)) nil |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2742 (1 font-lock-type-face))) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2743 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2744 ;; Fontify anything at beginning of line as a declaration or definition. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2745 '("^\\(\\sw+\\)\\>\\([ \t*]+\\sw+\\>\\)*" |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2746 (1 font-lock-type-face) |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2747 (font-lock-match-c-style-declaration-item-and-skip-to-next |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2748 (goto-char (or (match-beginning 2) (match-end 1))) nil |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2749 (1 (if (match-beginning 2) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2750 font-lock-function-name-face |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2751 font-lock-variable-name-face)))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2752 ))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2753 ) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2754 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2755 (defvar objc-font-lock-keywords objc-font-lock-keywords-1 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2756 "Default expressions to highlight in Objective-C mode. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2757 See also `objc-font-lock-extra-types'.") |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2758 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2759 ;;; Java. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2760 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2761 (defconst java-font-lock-keywords-1 nil |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2762 "Subdued level highlighting for Java mode.") |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2763 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2764 (defconst java-font-lock-keywords-2 nil |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2765 "Medium level highlighting for Java mode. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2766 See also `java-font-lock-extra-types'.") |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2767 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2768 (defconst java-font-lock-keywords-3 nil |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2769 "Gaudy level highlighting for Java mode. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2770 See also `java-font-lock-extra-types'.") |
12813
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
2771 |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2772 ;; Regexps written with help from Fred White <fwhite@bbn.com> and |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2773 ;; Anders Lindgren <andersl@csd.uu.se>. |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2774 (let* ((java-keywords |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2775 (eval-when-compile |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2776 (regexp-opt |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2777 '("catch" "do" "else" "super" "this" "finally" "for" "if" |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2778 ;; Anders Lindgren <andersl@csd.uu.se> says these have gone. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2779 ;; "cast" "byvalue" "future" "generic" "operator" "var" |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2780 ;; "inner" "outer" "rest" |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2781 "interface" "return" "switch" "throw" "try" "while") t))) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2782 ;; |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2783 ;; These are immediately followed by an object name. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2784 (java-minor-types |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2785 (eval-when-compile |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2786 (regexp-opt '("boolean" "char" "byte" "short" "int" "long" |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2787 "float" "double" "void")))) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2788 ;; |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2789 ;; These are eventually followed by an object name. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2790 (java-major-types |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2791 (eval-when-compile |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2792 (regexp-opt |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2793 '("abstract" "const" "final" "synchronized" "transient" "static" |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2794 ;; Anders Lindgren <andersl@csd.uu.se> says this has gone. |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2795 ;; "threadsafe" |
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2796 "volatile" "public" "private" "protected" "native")))) |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2797 ;; |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2798 ;; Random types immediately followed by an object name. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2799 (java-other-types |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2800 '(mapconcat 'identity (cons "\\sw+\\.\\sw+" java-font-lock-extra-types) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2801 "\\|")) |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2802 (java-other-depth |
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2803 `(regexp-opt-depth (,@ java-other-types))) |
18025
9f9f522cdc27
Update for syntax-table text properties.
Simon Marshall <simon@gnu.org>
parents:
17543
diff
changeset
|
2804 ) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2805 (setq java-font-lock-keywords-1 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2806 (list |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2807 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2808 ;; Fontify class names. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2809 '("\\<\\(class\\)\\>[ \t]*\\(\\sw+\\)?" |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2810 (1 font-lock-type-face) (2 font-lock-function-name-face nil t)) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2811 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2812 ;; Fontify package names in import directives. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2813 '("\\<\\(import\\|package\\)\\>[ \t]*\\(\\sw+\\)?" |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
2814 (1 font-lock-keyword-face) (2 font-lock-constant-face nil t)) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2815 )) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2816 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2817 (setq java-font-lock-keywords-2 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2818 (append java-font-lock-keywords-1 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2819 (list |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2820 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2821 ;; Fontify all builtin type specifiers. |
23826
f4646c30800a
wrap java-minor-types in java-font-lock-keywords-2.
Simon Marshall <simon@gnu.org>
parents:
23751
diff
changeset
|
2822 (cons (concat "\\<\\(" java-minor-types "\\)\\>") 'font-lock-type-face) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2823 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2824 ;; Fontify all builtin keywords (except below). |
23163
e754d3dcb5e8
(tex-font-lock-keywords-2): Fontify \nocite like \cite.
Simon Marshall <simon@gnu.org>
parents:
22892
diff
changeset
|
2825 (concat "\\<\\(" java-keywords "\\|" java-major-types "\\)\\>") |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2826 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2827 ;; Fontify keywords and targets, and case default/goto tags. |
17055
f0f8005780cc
1. If PRE-MATCH-FORM returns a suitable number, use that as a value for LIMIT.
Simon Marshall <simon@gnu.org>
parents:
16852
diff
changeset
|
2828 (list "\\<\\(break\\|case\\|continue\\|goto\\)\\>[ \t]*\\(-?\\sw+\\)?" |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
2829 '(1 font-lock-keyword-face) '(2 font-lock-constant-face nil t)) |
19846
f5f2feb0bd0f
Try to comment where font-lock-keyword order is important.
Simon Marshall <simon@gnu.org>
parents:
19788
diff
changeset
|
2830 ;; This must come after the one for keywords and targets. |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2831 '(":" ("^[ \t]*\\(\\sw+\\)[ \t]*:" |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2832 (beginning-of-line) (end-of-line) |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
2833 (1 font-lock-constant-face))) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2834 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2835 ;; Fontify keywords and types; the first can be followed by a type list. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2836 (list (concat "\\<\\(" |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2837 "implements\\|throws\\|" |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2838 "\\(extends\\|instanceof\\|new\\)" |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2839 "\\)\\>[ \t]*\\(\\sw+\\)?") |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2840 '(1 font-lock-keyword-face) '(3 font-lock-type-face nil t) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2841 '("\\=[ \t]*,[ \t]*\\(\\sw+\\)" |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2842 (if (match-beginning 2) (goto-char (match-end 2))) nil |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2843 (1 font-lock-type-face))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2844 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2845 ;; Fontify all constants. |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
2846 '("\\<\\(false\\|null\\|true\\)\\>" . font-lock-constant-face) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2847 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2848 ;; Javadoc tags within comments. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2849 '("@\\(author\\|exception\\|return\\|see\\|version\\)\\>" |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
2850 (1 font-lock-constant-face prepend)) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2851 '("@\\(param\\)\\>[ \t]*\\(\\sw+\\)?" |
20951
ae0c93b9ac1f
Renamed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20923
diff
changeset
|
2852 (1 font-lock-constant-face prepend) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2853 (2 font-lock-variable-name-face prepend t)) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2854 ))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2855 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2856 (setq java-font-lock-keywords-3 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2857 (append java-font-lock-keywords-2 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2858 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2859 ;; More complicated regexps for more complete highlighting for types. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2860 ;; We still have to fontify type specifiers individually, as Java is hairy. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2861 (list |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2862 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2863 ;; Fontify random types in casts. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2864 `(eval . |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2865 (list (concat "(\\(" (,@ java-other-types) "\\))" |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2866 "[ \t]*\\(\\sw\\|[\"\(]\\)") |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2867 ;; Fontify the type name. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2868 '(1 font-lock-type-face))) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2869 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2870 ;; Fontify random types immediately followed by an item or items. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2871 `(eval . |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2872 (list (concat "\\<\\(" (,@ java-other-types) "\\)\\>" |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2873 "\\([ \t]*\\[[ \t]*\\]\\)*" |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2874 "[ \t]*\\sw") |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2875 ;; Fontify the type name. |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2876 '(1 font-lock-type-face))) |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2877 `(eval . |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2878 (list (concat "\\<\\(" (,@ java-other-types) "\\)\\>" |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2879 "\\([ \t]*\\[[ \t]*\\]\\)*" |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2880 "\\([ \t]*\\sw\\)") |
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2881 ;; Fontify each declaration item. |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2882 (list 'font-lock-match-c-style-declaration-item-and-skip-to-next |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2883 ;; Start and finish with point after the type specifier. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2884 (list 'goto-char (list 'match-beginning |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2885 (+ (,@ java-other-depth) 3))) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2886 (list 'goto-char (list 'match-beginning |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2887 (+ (,@ java-other-depth) 3))) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2888 ;; Fontify as a variable or function name. |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2889 '(1 (if (match-beginning 2) |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2890 font-lock-function-name-face |
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2891 font-lock-variable-name-face))))) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2892 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2893 ;; Fontify those that are immediately followed by an item or items. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2894 (list (concat "\\<\\(" java-minor-types "\\)\\>" |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2895 "\\([ \t]*\\[[ \t]*\\]\\)*") |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2896 ;; Fontify each declaration item. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2897 '(font-lock-match-c-style-declaration-item-and-skip-to-next |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2898 ;; Start and finish with point after the type specifier. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2899 nil (goto-char (match-end 0)) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2900 ;; Fontify as a variable or function name. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2901 (1 (if (match-beginning 2) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2902 font-lock-function-name-face |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2903 font-lock-variable-name-face)))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2904 ;; |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2905 ;; Fontify those that are eventually followed by an item or items. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2906 (list (concat "\\<\\(" java-major-types "\\)\\>" |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2907 "\\([ \t]+\\sw+\\>" |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2908 "\\([ \t]*\\[[ \t]*\\]\\)*" |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2909 "\\)*") |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2910 ;; Fontify each declaration item. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2911 '(font-lock-match-c-style-declaration-item-and-skip-to-next |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2912 ;; Start with point after all type specifiers. |
17161
a2d3b455c6f4
Allow arbitrary regexps in *-font-lock-extra-types.
Simon Marshall <simon@gnu.org>
parents:
17055
diff
changeset
|
2913 (goto-char (or (match-beginning 5) (match-end 1))) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2914 ;; Finish with point after first type specifier. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2915 (goto-char (match-end 1)) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2916 ;; Fontify as a variable or function name. |
16578
c921b60ee783
(a) add font-lock-keywords-alist, (b) fix compilation of quoted conses in keyword form, (c) make simple font-lock-match-c-style-declaration-item-and-skip-to-next and more complex font-lock-match-c++-style-declaration-item-and-skip-to-next.
Simon Marshall <simon@gnu.org>
parents:
16456
diff
changeset
|
2917 (1 (if (match-beginning 2) |
16456
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2918 font-lock-function-name-face |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2919 font-lock-variable-name-face)))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2920 ))) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2921 ) |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2922 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2923 (defvar java-font-lock-keywords java-font-lock-keywords-1 |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2924 "Default expressions to highlight in Java mode. |
63b6583c9e5c
Changes to font-lock-fontify-syntactically-region: (a) the cache position must be a marker, (b) use a loop to look for comment start, some speedups.
Simon Marshall <simon@gnu.org>
parents:
15814
diff
changeset
|
2925 See also `java-font-lock-extra-types'.") |
12813
c9ed95ec05b6
Functionality for font-lock-beginning-of-syntax-function to be used by font-lock-fontify-region when calculating the cache state. Also wrap value of buffer-file-truename to guard against clash detection. Also add scheme-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents:
12626
diff
changeset
|
2926 |
9389
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
2927 ;; Install ourselves: |
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
2928 |
15492
348f0896b1e7
(font-lock-verbose): Default to 0. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15485
diff
changeset
|
2929 (unless (assq 'font-lock-mode minor-mode-alist) |
19033
b1e77e91eaae
don't add text for the modeline.
Simon Marshall <simon@gnu.org>
parents:
18979
diff
changeset
|
2930 (push '(font-lock-mode nil) minor-mode-alist)) |
9389
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
2931 |
fec6bd86e836
(compilation-mode-font-lock-keywords,
Richard M. Stallman <rms@gnu.org>
parents:
9350
diff
changeset
|
2932 ;; Provide ourselves: |
7491
621c162a80db
(font-lock-no-comments): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7298
diff
changeset
|
2933 |
4053 | 2934 (provide 'font-lock) |
2935 | |
2936 ;;; font-lock.el ends here |