Mercurial > emacs
annotate lisp/hi-lock.el @ 106768:21fd634f447a
Make line<->pixel_y conversion macros aware of native menu/tool bars.
They are placed above the internal border. This supersedes special
treatment of native tool bars in the display code.
This fixes wrong display position of native menu bars and bogus mouse
highlighting of native tool bars, both of which can be found when
internal border width is large. Also it fixes wrong flashed part on
visible bell with native menu bars.
* frame.h (FRAME_TOP_MARGIN_HEIGHT): New macro.
(FRAME_LINE_TO_PIXEL_Y, FRAME_PIXEL_Y_TO_LINE): Take account of pseudo
windows above internal border.
* window.h (WINDOW_MENU_BAR_P, WINDOW_TOOL_BAR_P): New macros.
(WINDOW_TOP_EDGE_Y, WINDOW_BOTTOM_EDGE_Y): Take account of pseudo
windows above internal border.
* xdisp.c (get_glyph_string_clip_rects, init_glyph_string): Don't treat
tool bar windows specially.
* xfns.c (x_set_tool_bar_lines): Take account of menu bar height.
* xterm.c (x_after_update_window_line): Don't treat tool bar windows
specially.
(XTflash): Take account of menu bar height.
* w32term.c (x_after_update_window_line): Don't treat tool bar windows
specially.
author | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
---|---|
date | Sat, 09 Jan 2010 13:16:32 +0900 |
parents | 8f110099da5c |
children | 1d1d5d9bd884 |
rev | line source |
---|---|
38436
b174db545cfd
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36708
diff
changeset
|
1 ;;; hi-lock.el --- minor mode for interactive automatic highlighting |
30565 | 2 |
100550 | 3 ;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, |
100908 | 4 ;; 2008, 2009 Free Software Foundation, Inc. |
30565 | 5 |
100550 | 6 ;; Author: David M. Koppelman <koppel@ece.lsu.edu> |
30565 | 7 ;; Keywords: faces, minor-mode, matching, display |
8 | |
9 ;; This file is part of GNU Emacs. | |
10 | |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93434
diff
changeset
|
11 ;; GNU Emacs is free software: you can redistribute it and/or modify |
30565 | 12 ;; it under the terms of the GNU General Public License as published by |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93434
diff
changeset
|
13 ;; the Free Software Foundation, either version 3 of the License, or |
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93434
diff
changeset
|
14 ;; (at your option) any later version. |
30565 | 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 | |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93434
diff
changeset
|
22 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
30565 | 23 |
38436
b174db545cfd
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36708
diff
changeset
|
24 ;;; Commentary: |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48256
diff
changeset
|
25 ;; |
30565 | 26 ;; With the hi-lock commands text matching interactively entered |
27 ;; regexp's can be highlighted. For example, `M-x highlight-regexp | |
28 ;; RET clearly RET RET' will highlight all occurrences of `clearly' | |
29 ;; using a yellow background face. New occurrences of `clearly' will | |
30 ;; be highlighted as they are typed. `M-x unhighlight-regexp RET' | |
31 ;; will remove the highlighting. Any existing face can be used for | |
32 ;; highlighting and a set of appropriate faces is provided. The | |
33 ;; regexps can be written into the current buffer in a form that will | |
77343
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
34 ;; be recognized the next time the corresponding file is read (when |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
35 ;; file patterns is turned on). |
30565 | 36 ;; |
37 ;; Applications: | |
38 ;; | |
39 ;; In program source code highlight a variable to quickly see all | |
40 ;; places it is modified or referenced: | |
41 ;; M-x highlight-regexp ground_contact_switches_closed RET RET | |
42 ;; | |
43 ;; In a shell or other buffer that is showing lots of program | |
44 ;; output, highlight the parts of the output you're interested in: | |
45 ;; M-x highlight-regexp Total execution time [0-9]+ RET hi-blue-b RET | |
46 ;; | |
47 ;; In buffers displaying tables, highlight the lines you're interested in: | |
48 ;; M-x highlight-lines-matching-regexp January 2000 RET hi-black-b RET | |
49 ;; | |
50 ;; When writing text, highlight personal cliches. This can be | |
51 ;; amusing. | |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
52 ;; M-x highlight-phrase as can be seen RET RET |
30565 | 53 ;; |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
54 ;; Setup: |
30565 | 55 ;; |
56 ;; Put the following code in your .emacs file. This turns on | |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
57 ;; hi-lock mode and adds a "Regexp Highlighting" entry |
30565 | 58 ;; to the edit menu. |
59 ;; | |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
60 ;; (global-hi-lock-mode 1) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48256
diff
changeset
|
61 ;; |
77343
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
62 ;; To enable the use of patterns found in files (presumably placed |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
63 ;; there by hi-lock) include the following in your .emacs file: |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
64 ;; |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
65 ;; (setq hi-lock-file-patterns-policy 'ask) |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
66 ;; |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
67 ;; If you get tired of being asked each time a file is loaded replace |
77420
0e63897240ee
(hi-lock-file-patterns-policy): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
77384
diff
changeset
|
68 ;; `ask' with a function that returns t if patterns should be read. |
77343
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
69 ;; |
30565 | 70 ;; You might also want to bind the hi-lock commands to more |
71 ;; finger-friendly sequences: | |
72 | |
73 ;; (define-key hi-lock-map "\C-z\C-h" 'highlight-lines-matching-regexp) | |
74 ;; (define-key hi-lock-map "\C-zi" 'hi-lock-find-patterns) | |
75 ;; (define-key hi-lock-map "\C-zh" 'highlight-regexp) | |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
76 ;; (define-key hi-lock-map "\C-zp" 'highlight-phrase) |
30565 | 77 ;; (define-key hi-lock-map "\C-zr" 'unhighlight-regexp) |
78 ;; (define-key hi-lock-map "\C-zb" 'hi-lock-write-interactive-patterns)) | |
79 | |
80 ;; See the documentation for hi-lock-mode `C-h f hi-lock-mode' for | |
81 ;; additional instructions. | |
82 | |
83 ;; Sample file patterns: | |
84 | |
85 ; Hi-lock: (("^;;; .*" (0 (quote hi-black-hb) t))) | |
86 ; Hi-lock: ( ("make-variable-buffer-\\(local\\)" (0 font-lock-keyword-face)(1 'italic append))))) | |
87 ; Hi-lock: end | |
88 | |
89 ;;; Code: | |
90 | |
30584
b823f1c83a00
(toplevel): Require font-lock.
Eli Zaretskii <eliz@gnu.org>
parents:
30565
diff
changeset
|
91 (eval-and-compile |
30565 | 92 (require 'font-lock)) |
93 | |
66960
29560f2ff8ed
(hi-lock): Rename this defgroup from
Juri Linkov <juri@jurta.org>
parents:
66833
diff
changeset
|
94 (defgroup hi-lock nil |
30565 | 95 "Interactively add and remove font-lock patterns for highlighting text." |
66960
29560f2ff8ed
(hi-lock): Rename this defgroup from
Juri Linkov <juri@jurta.org>
parents:
66833
diff
changeset
|
96 :link '(custom-manual "(emacs)Highlight Interactively") |
29560f2ff8ed
(hi-lock): Rename this defgroup from
Juri Linkov <juri@jurta.org>
parents:
66833
diff
changeset
|
97 :group 'font-lock) |
30565 | 98 |
99 (defcustom hi-lock-file-patterns-range 10000 | |
100 "Limit of search in a buffer for hi-lock patterns. | |
68559
695ee8cc49c1
(hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents:
67768
diff
changeset
|
101 When a file is visited and hi-lock mode is on, patterns starting |
30565 | 102 up to this limit are added to font-lock's patterns. See documentation |
103 of functions `hi-lock-mode' and `hi-lock-find-patterns'." | |
104 :type 'integer | |
66960
29560f2ff8ed
(hi-lock): Rename this defgroup from
Juri Linkov <juri@jurta.org>
parents:
66833
diff
changeset
|
105 :group 'hi-lock) |
30565 | 106 |
67765
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
107 (defcustom hi-lock-highlight-range 200000 |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
108 "Size of area highlighted by hi-lock when font-lock not active. |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
109 Font-lock is not active in buffers that do their own highlighting, |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
110 such as the buffer created by `list-colors-display'. In those buffers |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
111 hi-lock patterns will only be applied over a range of |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
112 `hi-lock-highlight-range' characters. If font-lock is active then |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
113 highlighting will be applied throughout the buffer." |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
114 :type 'integer |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
115 :group 'hi-lock) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
116 |
30565 | 117 (defcustom hi-lock-exclude-modes |
118 '(rmail-mode mime/viewer-mode gnus-article-mode) | |
119 "List of major modes in which hi-lock will not run. | |
120 For security reasons since font lock patterns can specify function | |
121 calls." | |
35215
2be11f207ca8
(hi-lock-exclude-modes): Fix :type.
Dave Love <fx@gnu.org>
parents:
33974
diff
changeset
|
122 :type '(repeat symbol) |
66960
29560f2ff8ed
(hi-lock): Rename this defgroup from
Juri Linkov <juri@jurta.org>
parents:
66833
diff
changeset
|
123 :group 'hi-lock) |
30565 | 124 |
77553
871bc98458d9
(hi-lock-file-patterns-policy): Default to `ask'.
Richard M. Stallman <rms@gnu.org>
parents:
77420
diff
changeset
|
125 (defcustom hi-lock-file-patterns-policy 'ask |
77343
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
126 "Specify when hi-lock should use patterns found in file. |
77420
0e63897240ee
(hi-lock-file-patterns-policy): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
77384
diff
changeset
|
127 If `ask', prompt when patterns found in buffer; if bound to a function, |
77343
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
128 use patterns when function returns t (function is called with patterns |
77420
0e63897240ee
(hi-lock-file-patterns-policy): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
77384
diff
changeset
|
129 as first argument); if nil or `never' or anything else, don't use file |
77384
4c5740f0be2c
(hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents:
77343
diff
changeset
|
130 patterns." |
4c5740f0be2c
(hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents:
77343
diff
changeset
|
131 :type '(choice (const :tag "Do not use file patterns" never) |
4c5740f0be2c
(hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents:
77343
diff
changeset
|
132 (const :tag "Ask about file patterns" ask) |
4c5740f0be2c
(hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents:
77343
diff
changeset
|
133 (function :tag "Function to check file patterns")) |
4c5740f0be2c
(hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents:
77343
diff
changeset
|
134 :group 'hi-lock |
4c5740f0be2c
(hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents:
77343
diff
changeset
|
135 :version "22.1") |
4c5740f0be2c
(hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents:
77343
diff
changeset
|
136 |
4c5740f0be2c
(hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents:
77343
diff
changeset
|
137 ;; It can have a function value. |
4c5740f0be2c
(hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents:
77343
diff
changeset
|
138 (put 'hi-lock-file-patterns-policy 'risky-local-variable t) |
30565 | 139 |
140 (defgroup hi-lock-faces nil | |
141 "Faces for hi-lock." | |
66960
29560f2ff8ed
(hi-lock): Rename this defgroup from
Juri Linkov <juri@jurta.org>
parents:
66833
diff
changeset
|
142 :group 'hi-lock |
29560f2ff8ed
(hi-lock): Rename this defgroup from
Juri Linkov <juri@jurta.org>
parents:
66833
diff
changeset
|
143 :group 'faces) |
30565 | 144 |
145 (defface hi-yellow | |
61398 | 146 '((((min-colors 88) (background dark)) |
61394
31aa9a390538
* mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents:
60902
diff
changeset
|
147 (:background "yellow1" :foreground "black")) |
31aa9a390538
* mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents:
60902
diff
changeset
|
148 (((background dark)) (:background "yellow" :foreground "black")) |
31aa9a390538
* mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents:
60902
diff
changeset
|
149 (((min-colors 88)) (:background "yellow1")) |
30896
ca514eff4924
(hi-yellow, hi-pink, hi-green, hi-blue): Force the foreground color to
Miles Bader <miles@gnu.org>
parents:
30590
diff
changeset
|
150 (t (:background "yellow"))) |
30565 | 151 "Default face for hi-lock mode." |
152 :group 'hi-lock-faces) | |
153 | |
154 (defface hi-pink | |
33780
00803fb0f58e
(hi-lock-refontify): Don't call non-existent
Gerd Moellmann <gerd@gnu.org>
parents:
31745
diff
changeset
|
155 '((((background dark)) (:background "pink" :foreground "black")) |
30896
ca514eff4924
(hi-yellow, hi-pink, hi-green, hi-blue): Force the foreground color to
Miles Bader <miles@gnu.org>
parents:
30590
diff
changeset
|
156 (t (:background "pink"))) |
30565 | 157 "Face for hi-lock mode." |
158 :group 'hi-lock-faces) | |
159 | |
160 (defface hi-green | |
61398 | 161 '((((min-colors 88) (background dark)) |
61394
31aa9a390538
* mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents:
60902
diff
changeset
|
162 (:background "green1" :foreground "black")) |
31aa9a390538
* mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents:
60902
diff
changeset
|
163 (((background dark)) (:background "green" :foreground "black")) |
61398 | 164 (((min-colors 88)) (:background "green1")) |
30896
ca514eff4924
(hi-yellow, hi-pink, hi-green, hi-blue): Force the foreground color to
Miles Bader <miles@gnu.org>
parents:
30590
diff
changeset
|
165 (t (:background "green"))) |
30565 | 166 "Face for hi-lock mode." |
167 :group 'hi-lock-faces) | |
168 | |
169 (defface hi-blue | |
33780
00803fb0f58e
(hi-lock-refontify): Don't call non-existent
Gerd Moellmann <gerd@gnu.org>
parents:
31745
diff
changeset
|
170 '((((background dark)) (:background "light blue" :foreground "black")) |
30896
ca514eff4924
(hi-yellow, hi-pink, hi-green, hi-blue): Force the foreground color to
Miles Bader <miles@gnu.org>
parents:
30590
diff
changeset
|
171 (t (:background "light blue"))) |
30565 | 172 "Face for hi-lock mode." |
173 :group 'hi-lock-faces) | |
174 | |
175 (defface hi-black-b | |
176 '((t (:weight bold))) | |
177 "Face for hi-lock mode." | |
178 :group 'hi-lock-faces) | |
179 | |
180 (defface hi-blue-b | |
61394
31aa9a390538
* mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents:
60902
diff
changeset
|
181 '((((min-colors 88)) (:weight bold :foreground "blue1")) |
31aa9a390538
* mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents:
60902
diff
changeset
|
182 (t (:weight bold :foreground "blue"))) |
30565 | 183 "Face for hi-lock mode." |
184 :group 'hi-lock-faces) | |
185 | |
186 (defface hi-green-b | |
61394
31aa9a390538
* mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents:
60902
diff
changeset
|
187 '((((min-colors 88)) (:weight bold :foreground "green1")) |
31aa9a390538
* mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents:
60902
diff
changeset
|
188 (t (:weight bold :foreground "green"))) |
30565 | 189 "Face for hi-lock mode." |
190 :group 'hi-lock-faces) | |
191 | |
192 (defface hi-red-b | |
61394
31aa9a390538
* mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents:
60902
diff
changeset
|
193 '((((min-colors 88)) (:weight bold :foreground "red1")) |
31aa9a390538
* mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents:
60902
diff
changeset
|
194 (t (:weight bold :foreground "red"))) |
30565 | 195 "Face for hi-lock mode." |
196 :group 'hi-lock-faces) | |
197 | |
198 (defface hi-black-hb | |
31745 | 199 '((t (:weight bold :height 1.67 :inherit variable-pitch))) |
30565 | 200 "Face for hi-lock mode." |
201 :group 'hi-lock-faces) | |
202 | |
203 (defvar hi-lock-file-patterns nil | |
204 "Patterns found in file for hi-lock. Should not be changed.") | |
205 | |
206 (defvar hi-lock-interactive-patterns nil | |
207 "Patterns provided to hi-lock by user. Should not be changed.") | |
208 | |
96436
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
209 (defvar hi-lock-face-defaults |
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
210 '("hi-yellow" "hi-pink" "hi-green" "hi-blue" "hi-black-b" |
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
211 "hi-blue-b" "hi-red-b" "hi-green-b" "hi-black-hb") |
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
212 "Default faces for hi-lock interactive functions.") |
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
213 |
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
214 ;(dolist (f hi-lock-face-defaults) (unless (facep f) (error "%s not a face" f))) |
30565 | 215 |
96436
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
216 (define-obsolete-variable-alias 'hi-lock-face-history |
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
217 'hi-lock-face-defaults |
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
218 "23.1") |
30565 | 219 |
96436
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
220 (define-obsolete-variable-alias 'hi-lock-regexp-history |
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
221 'regexp-history |
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
222 "23.1") |
30565 | 223 |
224 (defvar hi-lock-file-patterns-prefix "Hi-lock" | |
77343
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
225 "Search target for finding hi-lock patterns at top of file.") |
30565 | 226 |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
227 (defvar hi-lock-archaic-interface-message-used nil |
67768
edd5b99fd103
(hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents:
67765
diff
changeset
|
228 "True if user alerted that `global-hi-lock-mode' is now the global switch. |
68559
695ee8cc49c1
(hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents:
67768
diff
changeset
|
229 Earlier versions of hi-lock used `hi-lock-mode' as the global switch; |
67768
edd5b99fd103
(hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents:
67765
diff
changeset
|
230 the message is issued if it appears that `hi-lock-mode' is used assuming |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
231 that older functionality. This variable avoids multiple reminders.") |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
232 |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
233 (defvar hi-lock-archaic-interface-deduce nil |
67768
edd5b99fd103
(hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents:
67765
diff
changeset
|
234 "If non-nil, sometimes assume that `hi-lock-mode' means `global-hi-lock-mode'. |
edd5b99fd103
(hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents:
67765
diff
changeset
|
235 Assumption is made if `hi-lock-mode' used in the *scratch* buffer while |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
236 a library is being loaded.") |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
237 |
30565 | 238 (make-variable-buffer-local 'hi-lock-interactive-patterns) |
239 (put 'hi-lock-interactive-patterns 'permanent-local t) | |
240 (make-variable-buffer-local 'hi-lock-file-patterns) | |
241 (put 'hi-lock-file-patterns 'permanent-local t) | |
242 | |
243 (defvar hi-lock-menu (make-sparse-keymap "Hi Lock") | |
244 "Menu for hi-lock mode.") | |
245 | |
246 (define-key-after hi-lock-menu [highlight-regexp] | |
247 '(menu-item "Highlight Regexp..." highlight-regexp | |
248 :help "Highlight text matching PATTERN (a regexp).")) | |
249 | |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
250 (define-key-after hi-lock-menu [highlight-phrase] |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
251 '(menu-item "Highlight Phrase..." highlight-phrase |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
252 :help "Highlight text matching PATTERN (a regexp processed to match phrases).")) |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
253 |
30565 | 254 (define-key-after hi-lock-menu [highlight-lines-matching-regexp] |
255 '(menu-item "Highlight Lines..." highlight-lines-matching-regexp | |
105275
b78ceb253d15
* speedbar.el (speedbar-item-delete):
Juanma Barranquero <lekktu@gmail.com>
parents:
103056
diff
changeset
|
256 :help "Highlight lines containing match of PATTERN (a regexp).")) |
30565 | 257 |
258 (define-key-after hi-lock-menu [unhighlight-regexp] | |
259 '(menu-item "Remove Highlighting..." unhighlight-regexp | |
260 :help "Remove previously entered highlighting pattern." | |
261 :enable hi-lock-interactive-patterns)) | |
262 | |
263 (define-key-after hi-lock-menu [hi-lock-write-interactive-patterns] | |
264 '(menu-item "Patterns to Buffer" hi-lock-write-interactive-patterns | |
265 :help "Insert interactively added REGEXPs into buffer at point." | |
266 :enable hi-lock-interactive-patterns)) | |
267 | |
268 (define-key-after hi-lock-menu [hi-lock-find-patterns] | |
269 '(menu-item "Patterns from Buffer" hi-lock-find-patterns | |
270 :help "Use patterns (if any) near top of buffer.")) | |
271 | |
272 (defvar hi-lock-map (make-sparse-keymap "Hi Lock") | |
273 "Key map for hi-lock.") | |
274 | |
275 (define-key hi-lock-map "\C-xwi" 'hi-lock-find-patterns) | |
276 (define-key hi-lock-map "\C-xwl" 'highlight-lines-matching-regexp) | |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
277 (define-key hi-lock-map "\C-xwp" 'highlight-phrase) |
30565 | 278 (define-key hi-lock-map "\C-xwh" 'highlight-regexp) |
279 (define-key hi-lock-map "\C-xwr" 'unhighlight-regexp) | |
280 (define-key hi-lock-map "\C-xwb" 'hi-lock-write-interactive-patterns) | |
281 | |
282 ;; Visible Functions | |
283 | |
284 ;;;###autoload | |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
285 (define-minor-mode hi-lock-mode |
30565 | 286 "Toggle minor mode for interactively adding font-lock highlighting patterns. |
287 | |
67768
edd5b99fd103
(hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents:
67765
diff
changeset
|
288 If ARG positive, turn hi-lock on. Issuing a hi-lock command will also |
edd5b99fd103
(hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents:
67765
diff
changeset
|
289 turn hi-lock on. To turn hi-lock on in all buffers use |
edd5b99fd103
(hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents:
67765
diff
changeset
|
290 `global-hi-lock-mode' or in your .emacs file (global-hi-lock-mode 1). |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
291 When hi-lock is turned on, a \"Regexp Highlighting\" submenu is added |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
292 to the \"Edit\" menu. The commands in the submenu, which can be |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
293 called interactively, are: |
30565 | 294 |
295 \\[highlight-regexp] REGEXP FACE | |
296 Highlight matches of pattern REGEXP in current buffer with FACE. | |
297 | |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
298 \\[highlight-phrase] PHRASE FACE |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
299 Highlight matches of phrase PHRASE in current buffer with FACE. |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
300 (PHRASE can be any REGEXP, but spaces will be replaced by matches |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
301 to whitespace and initial lower-case letters will become case insensitive.) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48256
diff
changeset
|
302 |
30565 | 303 \\[highlight-lines-matching-regexp] REGEXP FACE |
304 Highlight lines containing matches of REGEXP in current buffer with FACE. | |
305 | |
306 \\[unhighlight-regexp] REGEXP | |
307 Remove highlighting on matches of REGEXP in current buffer. | |
308 | |
309 \\[hi-lock-write-interactive-patterns] | |
77343
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
310 Write active REGEXPs into buffer as comments (if possible). They may |
30565 | 311 be read the next time file is loaded or when the \\[hi-lock-find-patterns] command |
312 is issued. The inserted regexps are in the form of font lock keywords. | |
84872
b39ee0f351f1
(hi-lock-write-interactive-patterns): Use `mapc' rather than `mapcar'.
Juanma Barranquero <lekktu@gmail.com>
parents:
82857
diff
changeset
|
313 (See `font-lock-keywords'.) They may be edited and re-loaded with \\[hi-lock-find-patterns], |
93434
d3e8f7c16304
(hi-lock-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
87649
diff
changeset
|
314 any valid `font-lock-keywords' form is acceptable. When a file is |
d3e8f7c16304
(hi-lock-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
87649
diff
changeset
|
315 loaded the patterns are read if `hi-lock-file-patterns-policy' is |
77343
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
316 'ask and the user responds y to the prompt, or if |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
317 `hi-lock-file-patterns-policy' is bound to a function and that |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
318 function returns t. |
30565 | 319 |
320 \\[hi-lock-find-patterns] | |
321 Re-read patterns stored in buffer (in the format produced by \\[hi-lock-write-interactive-patterns]). | |
322 | |
77343
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
323 When hi-lock is started and if the mode is not excluded or patterns |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
324 rejected, the beginning of the buffer is searched for lines of the |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
325 form: |
30565 | 326 Hi-lock: FOO |
68559
695ee8cc49c1
(hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents:
67768
diff
changeset
|
327 where FOO is a list of patterns. These are added to the font lock |
695ee8cc49c1
(hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents:
67768
diff
changeset
|
328 keywords already present. The patterns must start before position |
695ee8cc49c1
(hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents:
67768
diff
changeset
|
329 \(number of characters into buffer) `hi-lock-file-patterns-range'. |
695ee8cc49c1
(hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents:
67768
diff
changeset
|
330 Patterns will be read until |
30565 | 331 Hi-lock: end |
68559
695ee8cc49c1
(hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents:
67768
diff
changeset
|
332 is found. A mode is excluded if it's in the list `hi-lock-exclude-modes'." |
67112
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
333 :group 'hi-lock |
67768
edd5b99fd103
(hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents:
67765
diff
changeset
|
334 :lighter (:eval (if (or hi-lock-interactive-patterns |
edd5b99fd103
(hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents:
67765
diff
changeset
|
335 hi-lock-file-patterns) |
edd5b99fd103
(hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents:
67765
diff
changeset
|
336 " Hi" "")) |
67112
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
337 :global nil |
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
338 :keymap hi-lock-map |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
339 (when (and (equal (buffer-name) "*scratch*") |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
340 load-in-progress |
105372
bd2966850aac
Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents:
105275
diff
changeset
|
341 (not (called-interactively-p 'interactive)) |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
342 (not hi-lock-archaic-interface-message-used)) |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
343 (setq hi-lock-archaic-interface-message-used t) |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
344 (if hi-lock-archaic-interface-deduce |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
345 (global-hi-lock-mode hi-lock-mode) |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
346 (warn |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
347 "Possible archaic use of (hi-lock-mode). |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
348 Use (global-hi-lock-mode 1) in .emacs to enable hi-lock for all buffers, |
67768
edd5b99fd103
(hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents:
67765
diff
changeset
|
349 use (hi-lock-mode 1) for individual buffers. For compatibility with Emacs |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
350 versions before 22 use the following in your .emacs file: |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
351 |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
352 (if (functionp 'global-hi-lock-mode) |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
353 (global-hi-lock-mode 1) |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
354 (hi-lock-mode 1)) |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
355 "))) |
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
356 (if hi-lock-mode |
67112
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
357 ;; Turned on. |
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
358 (progn |
67115
152403ad207b
* hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents:
67114
diff
changeset
|
359 (unless font-lock-mode (font-lock-mode 1)) |
67112
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
360 (define-key-after menu-bar-edit-menu [hi-lock] |
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
361 (cons "Regexp Highlighting" hi-lock-menu)) |
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
362 (hi-lock-find-patterns) |
67115
152403ad207b
* hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents:
67114
diff
changeset
|
363 (add-hook 'font-lock-mode-hook 'hi-lock-font-lock-hook nil t)) |
30565 | 364 ;; Turned off. |
67115
152403ad207b
* hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents:
67114
diff
changeset
|
365 (when (or hi-lock-interactive-patterns |
152403ad207b
* hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents:
67114
diff
changeset
|
366 hi-lock-file-patterns) |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
367 (when hi-lock-interactive-patterns |
67115
152403ad207b
* hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents:
67114
diff
changeset
|
368 (font-lock-remove-keywords nil hi-lock-interactive-patterns) |
152403ad207b
* hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents:
67114
diff
changeset
|
369 (setq hi-lock-interactive-patterns nil)) |
152403ad207b
* hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents:
67114
diff
changeset
|
370 (when hi-lock-file-patterns |
152403ad207b
* hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents:
67114
diff
changeset
|
371 (font-lock-remove-keywords nil hi-lock-file-patterns) |
152403ad207b
* hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents:
67114
diff
changeset
|
372 (setq hi-lock-file-patterns nil)) |
67765
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
373 (remove-overlays nil nil 'hi-lock-overlay t) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
374 (when font-lock-fontified (font-lock-fontify-buffer))) |
67112
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
375 (define-key-after menu-bar-edit-menu [hi-lock] nil) |
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
376 (remove-hook 'font-lock-mode-hook 'hi-lock-font-lock-hook t))) |
66833
efab878cd2e1
* hi-lock.el (hi-lock-mode): Set the default value of
Chong Yidong <cyd@stupidchicken.com>
parents:
65582
diff
changeset
|
377 |
67112
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
378 ;;;###autoload |
75642
a27300a96e36
(global-hi-lock-mode): define-global-minor-mode changed to
Chong Yidong <cyd@stupidchicken.com>
parents:
75347
diff
changeset
|
379 (define-globalized-minor-mode global-hi-lock-mode |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
380 hi-lock-mode turn-on-hi-lock-if-enabled |
67114 | 381 :group 'hi-lock) |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
382 |
67112
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
383 (defun turn-on-hi-lock-if-enabled () |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
384 (setq hi-lock-archaic-interface-message-used t) |
67112
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
385 (unless (memq major-mode hi-lock-exclude-modes) |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
386 (hi-lock-mode 1))) |
30565 | 387 |
388 ;;;###autoload | |
389 (defalias 'highlight-lines-matching-regexp 'hi-lock-line-face-buffer) | |
390 ;;;###autoload | |
391 (defun hi-lock-line-face-buffer (regexp &optional face) | |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
392 "Set face of all lines containing a match of REGEXP to FACE. |
30565 | 393 |
394 Interactively, prompt for REGEXP then FACE. Buffer-local history | |
395 list maintained for regexps, global history maintained for faces. | |
96436
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
396 \\<minibuffer-local-map>Use \\[previous-history-element] to retrieve previous history items, |
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
397 and \\[next-history-element] to retrieve default values. |
68559
695ee8cc49c1
(hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents:
67768
diff
changeset
|
398 \(See info node `Minibuffer History'.)" |
30565 | 399 (interactive |
400 (list | |
97083
e4097ac146ee
(hi-lock-line-face-buffer, hi-lock-face-buffer)
Juri Linkov <juri@jurta.org>
parents:
96436
diff
changeset
|
401 (hi-lock-regexp-okay |
e4097ac146ee
(hi-lock-line-face-buffer, hi-lock-face-buffer)
Juri Linkov <juri@jurta.org>
parents:
96436
diff
changeset
|
402 (read-regexp "Regexp to highlight line" (car regexp-history))) |
30565 | 403 (hi-lock-read-face-name))) |
67208
af4b92018fde
* hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents:
67115
diff
changeset
|
404 (or (facep face) (setq face 'hi-yellow)) |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
405 (unless hi-lock-mode (hi-lock-mode 1)) |
30565 | 406 (hi-lock-set-pattern |
36708
0e09b49d21b8
(hi-lock-line-face-buffer): Wrap the regexp in a group
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
36357
diff
changeset
|
407 ;; The \\(?:...\\) grouping construct ensures that a leading ^, +, * or ? |
0e09b49d21b8
(hi-lock-line-face-buffer): Wrap the regexp in a group
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
36357
diff
changeset
|
408 ;; or a trailing $ in REGEXP will be interpreted correctly. |
67112
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
409 (concat "^.*\\(?:" regexp "\\).*$") face)) |
30565 | 410 |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
411 |
30565 | 412 ;;;###autoload |
413 (defalias 'highlight-regexp 'hi-lock-face-buffer) | |
414 ;;;###autoload | |
415 (defun hi-lock-face-buffer (regexp &optional face) | |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
416 "Set face of each match of REGEXP to FACE. |
30565 | 417 |
418 Interactively, prompt for REGEXP then FACE. Buffer-local history | |
419 list maintained for regexps, global history maintained for faces. | |
96436
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
420 \\<minibuffer-local-map>Use \\[previous-history-element] to retrieve previous history items, |
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
421 and \\[next-history-element] to retrieve default values. |
68559
695ee8cc49c1
(hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents:
67768
diff
changeset
|
422 \(See info node `Minibuffer History'.)" |
30565 | 423 (interactive |
424 (list | |
97083
e4097ac146ee
(hi-lock-line-face-buffer, hi-lock-face-buffer)
Juri Linkov <juri@jurta.org>
parents:
96436
diff
changeset
|
425 (hi-lock-regexp-okay |
e4097ac146ee
(hi-lock-line-face-buffer, hi-lock-face-buffer)
Juri Linkov <juri@jurta.org>
parents:
96436
diff
changeset
|
426 (read-regexp "Regexp to highlight" (car regexp-history))) |
30565 | 427 (hi-lock-read-face-name))) |
67208
af4b92018fde
* hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents:
67115
diff
changeset
|
428 (or (facep face) (setq face 'hi-yellow)) |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
429 (unless hi-lock-mode (hi-lock-mode 1)) |
67112
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
430 (hi-lock-set-pattern regexp face)) |
30565 | 431 |
432 ;;;###autoload | |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
433 (defalias 'highlight-phrase 'hi-lock-face-phrase-buffer) |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
434 ;;;###autoload |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
435 (defun hi-lock-face-phrase-buffer (regexp &optional face) |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
436 "Set face of each match of phrase REGEXP to FACE. |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
437 |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
438 Whitespace in REGEXP converted to arbitrary whitespace and initial |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
439 lower-case letters made case insensitive." |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
440 (interactive |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
441 (list |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
442 (hi-lock-regexp-okay |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
443 (hi-lock-process-phrase |
97083
e4097ac146ee
(hi-lock-line-face-buffer, hi-lock-face-buffer)
Juri Linkov <juri@jurta.org>
parents:
96436
diff
changeset
|
444 (read-regexp "Phrase to highlight" (car regexp-history)))) |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
445 (hi-lock-read-face-name))) |
67208
af4b92018fde
* hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents:
67115
diff
changeset
|
446 (or (facep face) (setq face 'hi-yellow)) |
67474
a75f6e2ee182
(hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents:
67208
diff
changeset
|
447 (unless hi-lock-mode (hi-lock-mode 1)) |
67112
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
448 (hi-lock-set-pattern regexp face)) |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
449 |
105933
8f110099da5c
Update x-popup-menu declaration.
Glenn Morris <rgm@gnu.org>
parents:
105372
diff
changeset
|
450 (declare-function x-popup-menu "menu.c" (position menu)) |
97422
6e551caf98f6
Add declarations for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
97083
diff
changeset
|
451 |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
452 ;;;###autoload |
30565 | 453 (defalias 'unhighlight-regexp 'hi-lock-unface-buffer) |
454 ;;;###autoload | |
455 (defun hi-lock-unface-buffer (regexp) | |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
456 "Remove highlighting of each match to REGEXP set by hi-lock. |
30565 | 457 |
458 Interactively, prompt for REGEXP. Buffer-local history of inserted | |
459 regexp's maintained. Will accept only regexps inserted by hi-lock | |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
460 interactive functions. \(See `hi-lock-interactive-patterns'.\) |
30565 | 461 \\<minibuffer-local-must-match-map>Use \\[minibuffer-complete] to complete a partially typed regexp. |
30590
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
462 \(See info node `Minibuffer History'.\)" |
30565 | 463 (interactive |
82857
2a4d4f565ad8
(hi-lock-unface-buffer): Show a x-menu only if the mouse was used.
Michaël Cadilhac <michael.cadilhac@lrde.org>
parents:
78236
diff
changeset
|
464 (if (and (display-popup-menus-p) (not last-nonmenu-event)) |
30590
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
465 (catch 'snafu |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
466 (or |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
467 (x-popup-menu |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
468 t |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
469 (cons |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
470 `keymap |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
471 (cons "Select Pattern to Unhighlight" |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
472 (mapcar (lambda (pattern) |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
473 (list (car pattern) |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
474 (format |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
475 "%s (%s)" (car pattern) |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
476 (symbol-name |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
477 (car |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
478 (cdr (car (cdr (car (cdr pattern)))))))) |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
479 (cons nil nil) |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
480 (car pattern))) |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
481 hi-lock-interactive-patterns)))) |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
482 ;; If the user clicks outside the menu, meaning that they |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
483 ;; change their mind, x-popup-menu returns nil, and |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
484 ;; interactive signals a wrong number of arguments error. |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
485 ;; To prevent that, we return an empty string, which will |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
486 ;; effectively disable the rest of the function. |
63a24eff41fe
(hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents:
30584
diff
changeset
|
487 (throw 'snafu '("")))) |
30565 | 488 (let ((history-list (mapcar (lambda (p) (car p)) |
489 hi-lock-interactive-patterns))) | |
490 (unless hi-lock-interactive-patterns | |
491 (error "No highlighting to remove")) | |
492 (list | |
493 (completing-read "Regexp to unhighlight: " | |
36357
06ff4f3266f8
(hi-lock-unface-buffer): Use nil rather than t for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
36062
diff
changeset
|
494 hi-lock-interactive-patterns nil t |
30565 | 495 (car (car hi-lock-interactive-patterns)) |
496 (cons 'history-list 1)))))) | |
497 (let ((keyword (assoc regexp hi-lock-interactive-patterns))) | |
498 (when keyword | |
499 (font-lock-remove-keywords nil (list keyword)) | |
500 (setq hi-lock-interactive-patterns | |
501 (delq keyword hi-lock-interactive-patterns)) | |
67765
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
502 (remove-overlays |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
503 nil nil 'hi-lock-overlay-regexp (hi-lock-string-serialize regexp)) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
504 (when font-lock-fontified (font-lock-fontify-buffer))))) |
30565 | 505 |
506 ;;;###autoload | |
507 (defun hi-lock-write-interactive-patterns () | |
508 "Write interactively added patterns, if any, into buffer at point. | |
509 | |
510 Interactively added patterns are those normally specified using | |
511 `highlight-regexp' and `highlight-lines-matching-regexp'; they can | |
512 be found in variable `hi-lock-interactive-patterns'." | |
513 (interactive) | |
67208
af4b92018fde
* hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents:
67115
diff
changeset
|
514 (if (null hi-lock-interactive-patterns) |
af4b92018fde
* hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents:
67115
diff
changeset
|
515 (error "There are no interactive patterns")) |
af4b92018fde
* hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents:
67115
diff
changeset
|
516 (let ((beg (point))) |
84872
b39ee0f351f1
(hi-lock-write-interactive-patterns): Use `mapc' rather than `mapcar'.
Juanma Barranquero <lekktu@gmail.com>
parents:
82857
diff
changeset
|
517 (mapc |
30565 | 518 (lambda (pattern) |
67768
edd5b99fd103
(hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents:
67765
diff
changeset
|
519 (insert (format "%s: (%s)\n" |
edd5b99fd103
(hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents:
67765
diff
changeset
|
520 hi-lock-file-patterns-prefix |
edd5b99fd103
(hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents:
67765
diff
changeset
|
521 (prin1-to-string pattern)))) |
67208
af4b92018fde
* hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents:
67115
diff
changeset
|
522 hi-lock-interactive-patterns) |
af4b92018fde
* hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents:
67115
diff
changeset
|
523 (comment-region beg (point))) |
af4b92018fde
* hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents:
67115
diff
changeset
|
524 (when (> (point) hi-lock-file-patterns-range) |
af4b92018fde
* hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents:
67115
diff
changeset
|
525 (warn "Inserted keywords not close enough to top of file"))) |
30565 | 526 |
527 ;; Implementation Functions | |
528 | |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
529 (defun hi-lock-process-phrase (phrase) |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
530 "Convert regexp PHRASE to a regexp that matches phrases. |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
531 |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
532 Blanks in PHRASE replaced by regexp that matches arbitrary whitespace |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
533 and initial lower-case letters made case insensitive." |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
534 (let ((mod-phrase nil)) |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
535 (setq mod-phrase |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
536 (replace-regexp-in-string |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
537 "\\<[a-z]" (lambda (m) (format "[%s%s]" (upcase m) m)) phrase)) |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
538 (setq mod-phrase |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
539 (replace-regexp-in-string |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
540 "\\s-+" "[ \t\n]+" mod-phrase nil t)))) |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
541 |
30565 | 542 (defun hi-lock-regexp-okay (regexp) |
543 "Return REGEXP if it appears suitable for a font-lock pattern. | |
544 | |
545 Otherwise signal an error. A pattern that matches the null string is | |
546 not suitable." | |
547 (if (string-match regexp "") | |
548 (error "Regexp cannot match an empty string") | |
549 regexp)) | |
550 | |
551 (defun hi-lock-read-face-name () | |
552 "Read face name from minibuffer with completion and history." | |
553 (intern (completing-read | |
554 "Highlight using face: " | |
555 obarray 'facep t | |
96436
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
556 (cons (car hi-lock-face-defaults) |
30565 | 557 (let ((prefix |
558 (try-completion | |
96436
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
559 (substring (car hi-lock-face-defaults) 0 1) |
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
560 hi-lock-face-defaults))) |
30565 | 561 (if (and (stringp prefix) |
96436
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
562 (not (equal prefix (car hi-lock-face-defaults)))) |
30565 | 563 (length prefix) 0))) |
96436
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
564 'face-name-history |
de00a663995a
(hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents:
94678
diff
changeset
|
565 (cdr hi-lock-face-defaults)))) |
30565 | 566 |
103056
b6361d016a5a
* hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
567 (defvar hi-lock--inhibit-font-lock-hook nil |
b6361d016a5a
* hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
568 "Inhibit the action of `hi-lock-font-lock-hook'. |
b6361d016a5a
* hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
569 This is used by `hi-lock-set-pattern'.") |
b6361d016a5a
* hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
570 |
67112
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
571 (defun hi-lock-set-pattern (regexp face) |
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
572 "Highlight REGEXP with face FACE." |
103056
b6361d016a5a
* hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
573 (let ((pattern (list regexp (list 0 (list 'quote face) t))) |
b6361d016a5a
* hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
574 ;; The call to `font-lock-add-keywords' below might disable |
b6361d016a5a
* hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
575 ;; and re-enable font-lock mode. If so, we don't want |
b6361d016a5a
* hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
576 ;; `hi-lock-font-lock-hook' to run. This can be removed once |
b6361d016a5a
* hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
577 ;; Bug#635 is fixed. -- cyd |
b6361d016a5a
* hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
578 (hi-lock--inhibit-font-lock-hook t)) |
30565 | 579 (unless (member pattern hi-lock-interactive-patterns) |
67768
edd5b99fd103
(hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents:
67765
diff
changeset
|
580 (font-lock-add-keywords nil (list pattern) t) |
67112
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
581 (push pattern hi-lock-interactive-patterns) |
67765
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
582 (if font-lock-fontified |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
583 (font-lock-fontify-buffer) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
584 (let* ((serial (hi-lock-string-serialize regexp)) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
585 (range-min (- (point) (/ hi-lock-highlight-range 2))) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
586 (range-max (+ (point) (/ hi-lock-highlight-range 2))) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
587 (search-start |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
588 (max (point-min) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
589 (- range-min (max 0 (- range-max (point-max)))))) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
590 (search-end |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
591 (min (point-max) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
592 (+ range-max (max 0 (- (point-min) range-min)))))) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
593 (save-excursion |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
594 (goto-char search-start) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
595 (while (re-search-forward regexp search-end t) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
596 (let ((overlay (make-overlay (match-beginning 0) (match-end 0)))) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
597 (overlay-put overlay 'hi-lock-overlay t) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
598 (overlay-put overlay 'hi-lock-overlay-regexp serial) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
599 (overlay-put overlay 'face face)) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
600 (goto-char (match-end 0))))))))) |
30565 | 601 |
602 (defun hi-lock-set-file-patterns (patterns) | |
603 "Replace file patterns list with PATTERNS and refontify." | |
35926
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
604 (when (or hi-lock-file-patterns patterns) |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
605 (font-lock-remove-keywords nil hi-lock-file-patterns) |
d2997845573f
(hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents:
35779
diff
changeset
|
606 (setq hi-lock-file-patterns patterns) |
67768
edd5b99fd103
(hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents:
67765
diff
changeset
|
607 (font-lock-add-keywords nil hi-lock-file-patterns t) |
67115
152403ad207b
* hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents:
67114
diff
changeset
|
608 (font-lock-fontify-buffer))) |
30565 | 609 |
610 (defun hi-lock-find-patterns () | |
611 "Find patterns in current buffer for hi-lock." | |
612 (interactive) | |
613 (unless (memq major-mode hi-lock-exclude-modes) | |
614 (let ((all-patterns nil) | |
615 (target-regexp (concat "\\<" hi-lock-file-patterns-prefix ":"))) | |
616 (save-excursion | |
43052
4037178317df
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39065
diff
changeset
|
617 (save-restriction |
4037178317df
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39065
diff
changeset
|
618 (widen) |
4037178317df
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39065
diff
changeset
|
619 (goto-char (point-min)) |
4037178317df
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39065
diff
changeset
|
620 (re-search-forward target-regexp |
4037178317df
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39065
diff
changeset
|
621 (+ (point) hi-lock-file-patterns-range) t) |
4037178317df
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39065
diff
changeset
|
622 (beginning-of-line) |
4037178317df
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39065
diff
changeset
|
623 (while (and (re-search-forward target-regexp (+ (point) 100) t) |
4037178317df
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39065
diff
changeset
|
624 (not (looking-at "\\s-*end"))) |
64117
8ad318b132eb
(hi-lock-find-patterns): Protect also against invalid values for the pattern
Juanma Barranquero <lekktu@gmail.com>
parents:
64091
diff
changeset
|
625 (condition-case nil |
8ad318b132eb
(hi-lock-find-patterns): Protect also against invalid values for the pattern
Juanma Barranquero <lekktu@gmail.com>
parents:
64091
diff
changeset
|
626 (setq all-patterns (append (read (current-buffer)) all-patterns)) |
8ad318b132eb
(hi-lock-find-patterns): Protect also against invalid values for the pattern
Juanma Barranquero <lekktu@gmail.com>
parents:
64091
diff
changeset
|
627 (error (message "Invalid pattern list expression at %d" |
67112
146389d32df6
* hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents:
66960
diff
changeset
|
628 (line-number-at-pos))))))) |
77343
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
629 (when (and all-patterns |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
630 hi-lock-mode |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
631 (cond |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
632 ((eq this-command 'hi-lock-find-patterns) t) |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
633 ((functionp hi-lock-file-patterns-policy) |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
634 (funcall hi-lock-file-patterns-policy all-patterns)) |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
635 ((eq hi-lock-file-patterns-policy 'ask) |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
636 (y-or-n-p "Add patterns from this buffer to hi-lock? ")) |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
637 (t nil))) |
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
638 (hi-lock-set-file-patterns all-patterns) |
105372
bd2966850aac
Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents:
105275
diff
changeset
|
639 (if (called-interactively-p 'interactive) |
77343
f8ec7356b88a
(hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
75642
diff
changeset
|
640 (message "Hi-lock added %d patterns." (length all-patterns))))))) |
30565 | 641 |
642 (defun hi-lock-font-lock-hook () | |
68559
695ee8cc49c1
(hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents:
67768
diff
changeset
|
643 "Add hi-lock patterns to font-lock's." |
103056
b6361d016a5a
* hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
644 (unless hi-lock--inhibit-font-lock-hook |
b6361d016a5a
* hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
645 (if font-lock-mode |
b6361d016a5a
* hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
646 (progn |
b6361d016a5a
* hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
647 (font-lock-add-keywords nil hi-lock-file-patterns t) |
b6361d016a5a
* hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
648 (font-lock-add-keywords nil hi-lock-interactive-patterns t)) |
b6361d016a5a
* hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
649 (hi-lock-mode -1)))) |
30565 | 650 |
67765
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
651 (defvar hi-lock-string-serialize-hash |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
652 (make-hash-table :test 'equal) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
653 "Hash table used to assign unique numbers to strings.") |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
654 |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
655 (defvar hi-lock-string-serialize-serial 1 |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
656 "Number assigned to last new string in call to `hi-lock-string-serialize'. |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
657 A string is considered new if it had not previously been used in a call to |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
658 `hi-lock-string-serialize'.") |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
659 |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
660 (defun hi-lock-string-serialize (string) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
661 "Return unique serial number for STRING." |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
662 (interactive) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
663 (let ((val (gethash string hi-lock-string-serialize-hash))) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
664 (if val val |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
665 (puthash string |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
666 (setq hi-lock-string-serialize-serial |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
667 (1+ hi-lock-string-serialize-serial)) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
668 hi-lock-string-serialize-hash) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
669 hi-lock-string-serialize-serial))) |
fd7c898ab005
(hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents:
67474
diff
changeset
|
670 |
93434
d3e8f7c16304
(hi-lock-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
87649
diff
changeset
|
671 (defun hi-lock-unload-function () |
d3e8f7c16304
(hi-lock-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
87649
diff
changeset
|
672 "Unload the Hi-Lock library." |
d3e8f7c16304
(hi-lock-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
87649
diff
changeset
|
673 (global-hi-lock-mode -1) |
d3e8f7c16304
(hi-lock-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
87649
diff
changeset
|
674 ;; continue standard unloading |
d3e8f7c16304
(hi-lock-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
87649
diff
changeset
|
675 nil) |
d3e8f7c16304
(hi-lock-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
87649
diff
changeset
|
676 |
30565 | 677 (provide 'hi-lock) |
678 | |
60902
7160fe3a7ef1
find-file-hooks -> find-file-hook.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
59873
diff
changeset
|
679 ;; arch-tag: d2e8fd07-4cc9-4c6f-a200-1e729bc54066 |
30565 | 680 ;;; hi-lock.el ends here |