49c541aaae0aa5cd9466e7645ce51c22fadd483f
[emacs.git] / .emacs.d / elisp / icicle / icicles-face.el
1 ;;; icicles-face.el --- Faces for Icicles
2 ;;
3 ;; Filename: icicles-face.el
4 ;; Description: Faces for Icicles
5 ;; Author: Drew Adams
6 ;; Maintainer: Drew Adams (concat "drew.adams" "@" "oracle" ".com")
7 ;; Copyright (C) 1996-2014, Drew Adams, all rights reserved.
8 ;; Created: Mon Feb 27 09:19:43 2006
9 ;; Last-Updated: Thu Dec 26 09:30:35 2013 (-0800)
10 ;; By: dradams
11 ;; Update #: 713
12 ;; URL: http://www.emacswiki.org/icicles-face.el
13 ;; Doc URL: http://www.emacswiki.org/Icicles
14 ;; Keywords: internal, extensions, help, abbrev, local, minibuffer,
15 ;; keys, apropos, completion, matching, regexp, command
16 ;; Compatibility: GNU Emacs: 20.x, 21.x, 22.x, 23.x, 24.x
17 ;;
18 ;; Features that might be required by this library:
19 ;;
20 ;; None
21 ;;
22 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
23 ;;
24 ;;; Commentary:
25 ;;
26 ;; This is a helper library for library `icicles.el'. It defines
27 ;; customization groups and faces. For Icicles documentation, see
28 ;; `icicles-doc1.el' and `icicles-doc2.el'.
29 ;;
30 ;; Groups defined here:
31 ;;
32 ;; `Icicles', `Icicles-Buffers', `Icicles-Completions-Display',
33 ;; `Icicles-Files', `Icicles-Key-Bindings',
34 ;; `Icicles-Key-Completion', `Icicles-Matching',
35 ;; `Icicles-Minibuffer-Display', `Icicles-Miscellaneous',
36 ;; `Icicles-Searching'.
37 ;;
38 ;; Faces defined here:
39 ;;
40 ;; `icicle-annotation', `icicle-candidate-part',
41 ;; `icicle-common-match-highlight-Completions',
42 ;; `icicle-complete-input', `icicle-completion',
43 ;; `icicle-Completions-instruction-1',
44 ;; `icicle-Completions-instruction-2',
45 ;; `icicle-current-candidate-highlight', `icicle-extra-candidate',
46 ;; `icicle-historical-candidate',
47 ;; `icicle-historical-candidate-other',
48 ;; `icicle-input-completion-fail',
49 ;; `icicle-input-completion-fail-lax', `icicle-key-complete-menu',
50 ;; `icicle-key-complete-menu-local',
51 ;; `icicle-match-highlight-Completions',
52 ;; `icicle-match-highlight-minibuffer', `icicle-mode-line-help',
53 ;; `icicle-msg-emphasis', `icicle-multi-command-completion',
54 ;; `icicle-mustmatch-completion', `icicle-proxy-candidate',
55 ;; `icicle-saved-candidate', `icicle-search-context-level-1',
56 ;; `icicle-search-context-level-2',
57 ;; `icicle-search-context-level-3',
58 ;; `icicle-search-context-level-4',
59 ;; `icicle-search-context-level-5',
60 ;; `icicle-search-context-level-6',
61 ;; `icicle-search-context-level-7',
62 ;; `icicle-search-context-level-8', `icicle-search-current-input',
63 ;; `icicle-search-main-regexp-current',
64 ;; `icicle-search-main-regexp-others', `icicle-special-candidate',
65 ;; `icicle-whitespace-highlight', `minibuffer-prompt'.
66 ;;
67 ;; For descriptions of changes to this file, see `icicles-chg.el'.
68
69 ;;(@> "Index")
70 ;;
71 ;; If you have library `linkd.el' and Emacs 22 or later, load
72 ;; `linkd.el' and turn on `linkd-mode' now. It lets you easily
73 ;; navigate around the sections of this doc. Linkd mode will
74 ;; highlight this Index, as well as the cross-references and section
75 ;; headings throughout this file. You can get `linkd.el' here:
76 ;; http://dto.freeshell.org/notebook/Linkd.html.
77 ;;
78 ;; (@> "Icicles Commands for Other Packages")
79 ;; (@> "Groups, Organized Alphabetically")
80 ;; (@> "Faces, Organized Alphabetically")
81
82 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
83 ;;
84 ;; This program is free software; you can redistribute it and/or modify
85 ;; it under the terms of the GNU General Public License as published by
86 ;; the Free Software Foundation; either version 2, or (at your option)
87 ;; any later version.
88 ;;
89 ;; This program is distributed in the hope that it will be useful,
90 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
91 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
92 ;; GNU General Public License for more details.
93 ;;
94 ;; You should have received a copy of the GNU General Public License
95 ;; along with this program; see the file COPYING. If not, write to the
96 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth
97 ;; ;; Floor, Boston, MA 02110-1301, USA.
98 ;;
99 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
100 ;;
101 ;;; Code:
102
103 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
104
105 ;;(@* "Groups, Organized Alphabetically")
106
107 ;;; Groups, Organized Alphabetically ---------------------------------
108
109 (defgroup Icicles nil
110 "Minibuffer input completion and cycling of completion candidates."
111 :prefix "icicle-"
112 :group 'completion :group 'convenience :group 'help :group 'apropos
113 :group 'dabbrev :group 'matching :group 'minibuffer :group 'recentf
114 :link `(url-link :tag "Send Bug Report"
115 ,(concat "mailto:" "drew.adams" "@" "oracle"
116 ".com?subject=icicles.el bug: \
117 &body=Describe bug here, starting with `emacs -q'. \
118 Don't forget to mention your Emacs and Icicles library versions."))
119 :link '(url-link :tag "Other Libraries by Drew"
120 "http://www.emacswiki.org/DrewsElispLibraries")
121 :link '(url-link :tag "Download"
122 "http://www.emacswiki.org/icicles.el")
123 :link '(url-link :tag "Description"
124 "http://www.emacswiki.org/Icicles")
125 :link '(emacs-commentary-link :tag "Doc-Part2" "icicles-doc2")
126 :link '(emacs-commentary-link :tag "Doc-Part1" "icicles-doc1")
127 )
128
129 (defgroup Icicles-Buffers nil
130 "Icicles preferences related to buffers."
131 :prefix "icicle-" :group 'Icicles
132 :link `(url-link :tag "Send Bug Report"
133 ,(concat "mailto:" "drew.adams" "@" "oracle"
134 ".com?subject=icicles.el bug: \
135 &body=Describe bug here, starting with `emacs -q'. \
136 Don't forget to mention your Emacs and Icicles library versions."))
137 :link '(url-link :tag "Other Libraries by Drew"
138 "http://www.emacswiki.org/DrewsElispLibraries")
139 :link '(url-link :tag "Download"
140 "http://www.emacswiki.org/icicles.el")
141 :link '(url-link :tag "Description"
142 "http://www.emacswiki.org/Icicles")
143 :link '(emacs-commentary-link :tag "Doc-Part2" "icicles-doc2")
144 :link '(emacs-commentary-link :tag "Doc-Part1" "icicles-doc1")
145 )
146
147 (defgroup Icicles-Files nil
148 "Icicles preferences related to files."
149 :prefix "icicle-" :group 'Icicles
150 :link `(url-link :tag "Send Bug Report"
151 ,(concat "mailto:" "drew.adams" "@" "oracle"
152 ".com?subject=icicles.el bug: \
153 &body=Describe bug here, starting with `emacs -q'. \
154 Don't forget to mention your Emacs and Icicles library versions."))
155 :link '(url-link :tag "Other Libraries by Drew"
156 "http://www.emacswiki.org/DrewsElispLibraries")
157 :link '(url-link :tag "Download"
158 "http://www.emacswiki.org/icicles.el")
159 :link '(url-link :tag "Description"
160 "http://www.emacswiki.org/Icicles")
161 :link '(emacs-commentary-link :tag "Doc-Part2" "icicles-doc2")
162 :link '(emacs-commentary-link :tag "Doc-Part1" "icicles-doc1")
163 )
164
165 (defgroup Icicles-Completions-Display nil
166 "Icicles preferences related to display of completion candidates."
167 :prefix "icicle-" :group 'Icicles
168 :link `(url-link :tag "Send Bug Report"
169 ,(concat "mailto:" "drew.adams" "@" "oracle"
170 ".com?subject=icicles.el bug: \
171 &body=Describe bug here, starting with `emacs -q'. \
172 Don't forget to mention your Emacs and Icicles library versions."))
173 :link '(url-link :tag "Other Libraries by Drew"
174 "http://www.emacswiki.org/DrewsElispLibraries")
175 :link '(url-link :tag "Download"
176 "http://www.emacswiki.org/icicles.el")
177 :link '(url-link :tag "Description"
178 "http://www.emacswiki.org/Icicles")
179 :link '(emacs-commentary-link :tag "Doc-Part2" "icicles-doc2")
180 :link '(emacs-commentary-link :tag "Doc-Part1" "icicles-doc1")
181 )
182
183 (defgroup Icicles-Key-Bindings nil
184 "Icicles preferences related to key bindings."
185 :prefix "icicle-" :group 'Icicles
186 :link `(url-link :tag "Send Bug Report"
187 ,(concat "mailto:" "drew.adams" "@" "oracle"
188 ".com?subject=icicles.el bug: \
189 &body=Describe bug here, starting with `emacs -q'. \
190 Don't forget to mention your Emacs and Icicles library versions."))
191 :link '(url-link :tag "Other Libraries by Drew"
192 "http://www.emacswiki.org/DrewsElispLibraries")
193 :link '(url-link :tag "Download"
194 "http://www.emacswiki.org/icicles.el")
195 :link '(url-link :tag "Description"
196 "http://www.emacswiki.org/Icicles")
197 :link '(emacs-commentary-link :tag "Doc-Part2" "icicles-doc2")
198 :link '(emacs-commentary-link :tag "Doc-Part1" "icicles-doc1")
199 )
200
201 (defgroup Icicles-Key-Completion nil
202 "Icicles preferences related to key completion (`icicle-complete-keys')."
203 :prefix "icicle-" :group 'Icicles
204 :link `(url-link :tag "Send Bug Report"
205 ,(concat "mailto:" "drew.adams" "@" "oracle"
206 ".com?subject=icicles.el bug: \
207 &body=Describe bug here, starting with `emacs -q'. \
208 Don't forget to mention your Emacs and Icicles library versions."))
209 :link '(url-link :tag "Other Libraries by Drew"
210 "http://www.emacswiki.org/DrewsElispLibraries")
211 :link '(url-link :tag "Download"
212 "http://www.emacswiki.org/icicles.el")
213 :link '(url-link :tag "Description"
214 "http://www.emacswiki.org/Icicles")
215 :link '(emacs-commentary-link :tag "Doc-Part2" "icicles-doc2")
216 :link '(emacs-commentary-link :tag "Doc-Part1" "icicles-doc1")
217 )
218
219 (defgroup Icicles-Matching nil
220 "Icicles preferences related to matching input for completion."
221 :prefix "icicle-" :group 'Icicles
222 :link `(url-link :tag "Send Bug Report"
223 ,(concat "mailto:" "drew.adams" "@" "oracle"
224 ".com?subject=icicles.el bug: \
225 &body=Describe bug here, starting with `emacs -q'. \
226 Don't forget to mention your Emacs and Icicles library versions."))
227 :link '(url-link :tag "Other Libraries by Drew"
228 "http://www.emacswiki.org/DrewsElispLibraries")
229 :link '(url-link :tag "Download"
230 "http://www.emacswiki.org/icicles.el")
231 :link '(url-link :tag "Description"
232 "http://www.emacswiki.org/Icicles")
233 :link '(emacs-commentary-link :tag "Doc-Part2" "icicles-doc2")
234 :link '(emacs-commentary-link :tag "Doc-Part1" "icicles-doc1")
235 )
236
237 (defgroup Icicles-Minibuffer-Display nil
238 "Icicles preferences related to minibuffer display during completion."
239 :prefix "icicle-" :group 'Icicles
240 :link `(url-link :tag "Send Bug Report"
241 ,(concat "mailto:" "drew.adams" "@" "oracle"
242 ".com?subject=icicles.el bug: \
243 &body=Describe bug here, starting with `emacs -q'. \
244 Don't forget to mention your Emacs and Icicles library versions."))
245 :link '(url-link :tag "Other Libraries by Drew"
246 "http://www.emacswiki.org/DrewsElispLibraries")
247 :link '(url-link :tag "Download"
248 "http://www.emacswiki.org/icicles.el")
249 :link '(url-link :tag "Description"
250 "http://www.emacswiki.org/Icicles")
251 :link '(emacs-commentary-link :tag "Doc-Part2" "icicles-doc2")
252 :link '(emacs-commentary-link :tag "Doc-Part1" "icicles-doc1")
253 )
254
255 (defgroup Icicles-Miscellaneous nil
256 "Miscellaneous Icicles preferences."
257 :prefix "icicle-" :group 'Icicles
258 :link `(url-link :tag "Send Bug Report"
259 ,(concat "mailto:" "drew.adams" "@" "oracle"
260 ".com?subject=icicles.el bug: \
261 &body=Describe bug here, starting with `emacs -q'. \
262 Don't forget to mention your Emacs and Icicles library versions."))
263 :link '(url-link :tag "Other Libraries by Drew"
264 "http://www.emacswiki.org/DrewsElispLibraries")
265 :link '(url-link :tag "Download"
266 "http://www.emacswiki.org/icicles.el")
267 :link '(url-link :tag "Description"
268 "http://www.emacswiki.org/Icicles")
269 :link '(emacs-commentary-link :tag "Doc-Part2" "icicles-doc2")
270 :link '(emacs-commentary-link :tag "Doc-Part1" "icicles-doc1")
271 )
272
273 (defgroup Icicles-Searching nil
274 "Icicles preferences related to searching."
275 :prefix "icicle-" :group 'Icicles
276 :link `(url-link :tag "Send Bug Report"
277 ,(concat "mailto:" "drew.adams" "@" "oracle"
278 ".com?subject=icicles.el bug: \
279 &body=Describe bug here, starting with `emacs -q'. \
280 Don't forget to mention your Emacs and Icicles library versions."))
281 :link '(url-link :tag "Other Libraries by Drew"
282 "http://www.emacswiki.org/DrewsElispLibraries")
283 :link '(url-link :tag "Download"
284 "http://www.emacswiki.org/icicles.el")
285 :link '(url-link :tag "Description"
286 "http://www.emacswiki.org/Icicles")
287 :link '(emacs-commentary-link :tag "Doc-Part2" "icicles-doc2")
288 :link '(emacs-commentary-link :tag "Doc-Part1" "icicles-doc1")
289 )
290
291 ;;(@* "Faces, Organized Alphabetically")
292
293 ;;; Faces, Organized Alphabetically ----------------------------------
294
295 (defface icicle-annotation ; Same grays as for `shadow'.
296 '((((background dark)) (:foreground "gray70"))
297 (t (:foreground "gray50")))
298 "*Face used to highlight a candidate annotation in `*Completions*'."
299 :group 'Icicles-Completions-Display :group 'faces)
300
301 (defface icicle-candidate-part
302 '((((background dark)) (:background "#451700143197")) ; a very dark magenta
303 (t (:background "#EF84FFEAF427"))) ; A light green.
304 "*Face used to highlight part(s) of a candidate in `*Completions*'."
305 :group 'Icicles-Completions-Display :group 'faces)
306
307 (defface icicle-common-match-highlight-Completions
308 '((((background dark)) (:foreground "#2017A71F2017")) ; a dark green
309 (t (:foreground "magenta3")))
310 "*Face used to highlight candidates common match, in `*Completions*'."
311 :group 'Icicles-Completions-Display :group 'faces)
312
313 (defface icicle-complete-input
314 '((((background dark)) (:foreground "#B19E6A64B19E")) ; a dark magenta
315 (t (:foreground "DarkGreen")))
316 "*Face used to highlight input when it is complete."
317 :group 'Icicles-Minibuffer-Display :group 'faces)
318
319 (defface icicle-completion
320 '((((background dark)) (:foreground "#0000D53CD53C")) ; a dark cyan
321 (t (:foreground "Red"))) ; red
322 "*Face used to indicate minibuffer completion.
323 It highlights the minibuffer indicator and the `Icy' minor-mode
324 lighter during completion.
325 Not used for versions of Emacs before version 21."
326 :group 'Icicles-Minibuffer-Display :group 'Icicles-Miscellaneous :group 'faces)
327
328 (defface icicle-Completions-instruction-1
329 '((((background dark)) (:foreground "#AC4AAC4A0000")) ; a dark yellow
330 (t (:foreground "Blue")))
331 "*Face used to highlight first line of `*Completions*' buffer."
332 :group 'Icicles-Completions-Display :group 'faces)
333
334 (defface icicle-Completions-instruction-2
335 '((((background dark)) (:foreground "#0000D53CD53C")) ; a dark cyan
336 (t (:foreground "Red")))
337 "*Face used to highlight second line of `*Completions*' buffer."
338 :group 'Icicles-Completions-Display :group 'faces)
339
340 (defface icicle-current-candidate-highlight
341 '((((background dark)) (:background "#69D40A460000")) ; a red brown
342 (t (:background "CadetBlue1")))
343 "*Face used to highlight the current candidate, in `*Completions*'."
344 :group 'Icicles-Completions-Display :group 'faces)
345
346 (defface icicle-extra-candidate
347 '((((background dark)) (:background "#4517305D0000")) ; a dark brown
348 (t (:background "#C847D8FEFFFF"))) ; a light blue
349 "*Face used to highlight `*Completions*' candidates that are extra.
350 This means that they belong to list `icicle-extra-candidates'."
351 :group 'Icicles-Completions-Display :group 'faces)
352
353 (defface icicle-historical-candidate
354 '((((background dark)) (:foreground "#DBD599DF0000")) ; a dark orange
355 (t (:foreground "Blue")))
356 "*Face used to highlight `*Completions*' candidates that have been used."
357 :group 'Icicles-Completions-Display :group 'faces)
358
359 (when (> emacs-major-version 21)
360 (defface icicle-historical-candidate-other '((t (:inherit icicle-historical-candidate
361 :underline t)))
362 "*Face to highlight `*Completions*' candidates that were used indirectly.
363 That is, you might or might not have entered these candidates but in
364 some sense you have used or visited them. Example: index topics that
365 point to Info nodes that you have visited.
366
367 Whether or not such highlighting is done at all is governed by option
368 `icicle-highlight-historical-candidates-flag'. Whether it is done for
369 a given set of candidates is governed by option
370 `icicle-Info-visited-max-candidates'."
371 :group 'Icicles-Completions-Display :group 'faces))
372
373 (defface icicle-input-completion-fail
374 '((((background dark)) (:background "#22225F5F2222")) ; a dark green
375 (t (:foreground "Black" :background "Plum")))
376 "*Face for highlighting failed part of input during strict completion."
377 :group 'Icicles-Minibuffer-Display :group 'faces)
378
379 (defface icicle-input-completion-fail-lax
380 '((((background dark)) (:background "#00005E3B5A8D")) ; a dark cyan
381 (t (:foreground "Black" :background "#FFFFB8C4BB87")))
382 "*Face for highlighting failed part of input during lax completion."
383 :group 'Icicles-Minibuffer-Display :group 'faces)
384
385 ;; By default, these two faces have the same backgrounds as faces
386 ;; `icicle-candidate-part' and `icicle-special-candidate', respectively. They differ
387 ;; only in being boxed as well.
388 (when (fboundp 'map-keymap) ; Emacs 22+.
389 (defface icicle-key-complete-menu
390 '((((background dark))
391 (:background "#451700143197" ; a very dark magenta
392 :box (:line-width 1 :color "#FA6CC847FFFF"))) ; a light magenta box
393 (t (:background "#EF84FFEAF427" ; a light green.
394 :box (:line-width 1 :color "#34F393F434F3")))) ; a green box
395 "*Face used to highlight non-local menu items when completing keys.
396 Non-local keys that are not menu items are highlighted with face
397 `icicle-candidate-part'. Menu items for the current mode (i.e., local
398 keymap) are highlighted with face `icicle-key-complete-menu-local'."
399 :group 'Icicles-Searching :group 'faces)
400
401 (defface icicle-key-complete-menu-local
402 '((((background dark))
403 (:background "#176900004E0A" ; a dark blue
404 :box (:line-width 1 :color "#E1E1EAEAFFFF"))) ; a light blue box
405 (t (:background "#EF47FFFFC847" ; a light yellow.
406 :box (:line-width 1 :color "#AC4AAC4A0000")))) ; a dark yellow box
407 "*Face used to highlight local menu items when completing keys.
408 Local keys that are not menu items are highlighted with face
409 `icicle-special-candidate'. Non-local menu items (i.e., not for the
410 current mode) are highlighted with face `icicle-key-complete-menu'."
411 :group 'Icicles-Searching :group 'faces))
412
413 (defface icicle-match-highlight-Completions
414 '((((background dark)) (:foreground "#1F1FA21CA21C")) ; a very dark cyan
415 (t (:foreground "Red3")))
416 "*Face used to highlight root that was completed, in `*Completions*'."
417 :group 'Icicles-Completions-Display :group 'faces)
418
419 (defface icicle-match-highlight-minibuffer '((t (:underline t)))
420 "*Face used to highlight root that was completed, in minibuffer."
421 :group 'Icicles-Minibuffer-Display :group 'faces)
422
423 (defface icicle-mode-line-help
424 '((((background dark)) (:foreground "#AC4AAC4A0000")) ; a dark yellow
425 (t (:foreground "Blue")))
426 "*Face used to highlight help shown in the mode-line."
427 :group 'Icicles-Completions-Display :group 'Icicles-Miscellaneous :group 'faces)
428
429 (defface icicle-msg-emphasis
430 '((((background dark)) (:foreground "#B19E6A64B19E")) ; a dark magenta
431 (t (:foreground "DarkGreen")))
432 "*Face used to emphasize (part of) a message."
433 :group 'Icicles-Minibuffer-Display :group 'faces)
434
435 (defface icicle-multi-command-completion
436 '((((background dark)) ; a dark cyan on a dark magenta
437 (:foreground "#0000D53CD53C" :background "#8B3500007533"))
438 (t (:foreground "Red" :background "#78F6FFFF8E4F"))) ; red on a light green
439 "*Face used to indicate Icicles multi-command completion.
440 It highlights the minibuffer indicator and the `Icy+' minor-mode
441 lighter during multi-command completion.
442 Not used for versions of Emacs before version 21."
443 :group 'Icicles-Minibuffer-Display :group 'Icicles-Miscellaneous :group 'faces)
444
445 (defface icicle-mustmatch-completion
446 '((((type x w32 mac graphic) (class color))
447 (:box (:line-width -2 :color "Blue"))) ; blue box
448 (t (:inverse-video t)))
449 "*Face used to indicate strict minibuffer completion.
450 It highlights the minibuffer indicator and the `Icy' or `Icy+'
451 minor-mode lighter during strict completion.
452 Not used for versions of Emacs before version 21."
453 :group 'Icicles-Minibuffer-Display :group 'Icicles-Miscellaneous :group 'faces)
454
455 (defface icicle-proxy-candidate
456 '((((background dark)) (:background "#316B22970000")) ; a very dark brown
457 (t (:background "#E1E1EAEAFFFF" ; A light blue.
458 :box (:line-width 2 :color "White" :style released-button))))
459 "*Face used to highlight proxy candidates in `*Completions*'."
460 :group 'Icicles-Completions-Display :group 'faces)
461
462 (defface icicle-saved-candidate
463 '((((background dark)) (:background "gray20")) ; a dark gray
464 (t (:background "gray80"))) ; a light gray
465 "*Face used to highlight `*Completions*' candidates that have been saved."
466 :group 'Icicles-Completions-Display :group 'faces)
467
468 (defface icicle-search-main-regexp-current
469 '((((background dark)) (:background "#00004AA652F1")) ; a dark cyan
470 (t (:background "misty rose")))
471 "*Face used to highlight current match of your search context regexp.
472 This highlighting is done during Icicles searching."
473 :group 'Icicles-Searching :group 'faces)
474
475 (defface icicle-search-context-level-1
476 (let ((context-bg (face-background 'icicle-search-main-regexp-current)))
477 `((((background dark))
478 (:background ,(if (fboundp 'hexrgb-increment-saturation)
479 (hexrgb-increment-saturation
480 (hexrgb-increment-hue context-bg 0.80) 0.10)
481 "#071F473A0000"))) ; a dark green
482 (t (:background ,(if (fboundp 'hexrgb-increment-saturation)
483 (hexrgb-increment-saturation
484 (hexrgb-increment-hue context-bg 0.80) 0.10)
485 "#FA6CC847FFFF"))))) ; a light magenta
486 "*Face used to highlight level (subgroup match) 1 of your search context.
487 This highlighting is done during Icicles searching whenever
488 `icicle-search-highlight-context-levels-flag' is non-nil and the
489 search context corresponds to the entire regexp."
490 :group 'Icicles-Searching :group 'faces)
491
492 (defface icicle-search-context-level-2
493 (let ((context-bg (face-background 'icicle-search-main-regexp-current)))
494 `((((background dark))
495 (:background ,(if (fboundp 'hexrgb-increment-saturation)
496 (hexrgb-increment-saturation
497 (hexrgb-increment-hue context-bg 0.40) 0.10)
498 "#507400002839"))) ; a dark red
499 (t (:background ,(if (fboundp 'hexrgb-increment-saturation)
500 (hexrgb-increment-saturation
501 (hexrgb-increment-hue context-bg 0.40) 0.10)
502 "#C847FFFFE423"))))) ; a light cyan
503 "*Face used to highlight level (subgroup match) 2 of your search context.
504 This highlighting is done during Icicles searching whenever
505 `icicle-search-highlight-context-levels-flag' is non-nil and the
506 search context corresponds to the entire regexp."
507 :group 'Icicles-Searching :group 'faces)
508
509 (defface icicle-search-context-level-3
510 (let ((context-bg (face-background 'icicle-search-main-regexp-current)))
511 `((((background dark))
512 (:background ,(if (fboundp 'hexrgb-increment-saturation)
513 (hexrgb-increment-saturation
514 (hexrgb-increment-hue context-bg 0.60) 0.10)
515 "#4517305D0000"))) ; a dark brown
516 (t (:background ,(if (fboundp 'hexrgb-increment-saturation)
517 (hexrgb-increment-saturation
518 (hexrgb-increment-hue context-bg 0.60) 0.10)
519 "#C847D8FEFFFF"))))) ; a light blue
520 "*Face used to highlight level (subgroup match) 3 of your search context.
521 This highlighting is done during Icicles searching whenever
522 `icicle-search-highlight-context-levels-flag' is non-nil and the
523 search context corresponds to the entire regexp."
524 :group 'Icicles-Searching :group 'faces)
525
526 (defface icicle-search-context-level-4
527 (let ((context-bg (face-background 'icicle-search-main-regexp-current)))
528 `((((background dark))
529 (:background ,(if (fboundp 'hexrgb-increment-saturation)
530 (hexrgb-increment-saturation
531 (hexrgb-increment-hue context-bg 0.20) 0.10)
532 "#176900004E0A"))) ; a dark blue
533 (t (:background ,(if (fboundp 'hexrgb-increment-saturation)
534 (hexrgb-increment-saturation
535 (hexrgb-increment-hue context-bg 0.20) 0.10)
536 "#EF47FFFFC847"))))) ; a light yellow
537 "*Face used to highlight level (subgroup match) 4 of your search context.
538 This highlighting is done during Icicles searching whenever
539 `icicle-search-highlight-context-levels-flag' is non-nil and the
540 search context corresponds to the entire regexp."
541 :group 'Icicles-Searching :group 'faces)
542
543 (defface icicle-search-context-level-5
544 (let ((context-bg (face-background 'icicle-search-main-regexp-current)))
545 `((((background dark))
546 (:background ,(if (fboundp 'hexrgb-increment-saturation)
547 (hexrgb-increment-hue context-bg 0.80)
548 "#04602BC00000"))) ; a very dark green
549 (t (:background ,(if (fboundp 'hexrgb-increment-saturation)
550 (hexrgb-increment-hue context-bg 0.80)
551 "#FCFCE1E1FFFF"))))) ; a light magenta
552 "*Face used to highlight level (subgroup match) 5 of your search context.
553 This highlighting is done during Icicles searching whenever
554 `icicle-search-highlight-context-levels-flag' is non-nil and the
555 search context corresponds to the entire regexp."
556 :group 'Icicles-Searching :group 'faces)
557
558 (defface icicle-search-context-level-6
559 (let ((context-bg (face-background 'icicle-search-main-regexp-current)))
560 `((((background dark))
561 (:background ,(if (fboundp 'hexrgb-increment-saturation)
562 (hexrgb-increment-hue context-bg 0.40)
563 "#32F200001979"))) ; a very dark red
564 (t (:background ,(if (fboundp 'hexrgb-increment-saturation)
565 (hexrgb-increment-hue context-bg 0.40)
566 "#E1E1FFFFF0F0"))))) ; a light cyan
567 "*Face used to highlight level (subgroup match) 6 of your search context.
568 This highlighting is done during Icicles searching whenever
569 `icicle-search-highlight-context-levels-flag' is non-nil and the
570 search context corresponds to the entire regexp."
571 :group 'Icicles-Searching :group 'faces)
572
573 (defface icicle-search-context-level-7
574 (let ((context-bg (face-background 'icicle-search-main-regexp-current)))
575 `((((background dark))
576 (:background ,(if (fboundp 'hexrgb-increment-saturation)
577 (hexrgb-increment-hue context-bg 0.60)
578 "#316B22970000"))) ; a very dark brown
579 (t (:background ,(if (fboundp 'hexrgb-increment-saturation)
580 (hexrgb-increment-hue context-bg 0.60)
581 "#E1E1EAEAFFFF"))))) ; a light blue
582 "*Face used to highlight level (subgroup match) 7 of your search context.
583 This highlighting is done during Icicles searching whenever
584 `icicle-search-highlight-context-levels-flag' is non-nil and the
585 search context corresponds to the entire regexp."
586 :group 'Icicles-Searching :group 'faces)
587
588 ;; NO AUTOLOAD COOKIE HERE.
589 (defface icicle-search-context-level-8
590 (let ((context-bg (face-background 'icicle-search-main-regexp-current)))
591 `((((background dark))
592 (:background ,(if (fboundp 'hexrgb-increment-saturation)
593 (hexrgb-increment-hue context-bg 0.20)
594 "#12EC00003F0E"))) ; a very dark blue
595 (t (:background ,(if (fboundp 'hexrgb-increment-saturation)
596 (hexrgb-increment-hue context-bg 0.20)
597 "#F6F5FFFFE1E1"))))) ; a light yellow
598 "*Face used to highlight level (subgroup match) 8 of your search context.
599 This highlighting is done during Icicles searching whenever
600 `icicle-search-highlight-context-levels-flag' is non-nil and the
601 search context corresponds to the entire regexp."
602 :group 'Icicles-Searching :group 'faces)
603
604 (defface icicle-search-current-input
605 '((((background dark))
606 (:foreground "White" :background "#7F0D00007F0D")) ; a dark magenta
607 (t (:foreground "Black" :background "Green")))
608 "*Face used to highlight what your current input matches.
609 This highlighting is done during Icicles searching whenever
610 `icicle-search-highlight-context-levels-flag' is non-nil and the
611 search context corresponds to the entire regexp."
612 :group 'Icicles-Searching :group 'faces)
613
614 (defface icicle-search-main-regexp-others
615 '((((background dark)) (:background "#348608690000")) ; a very dark brown
616 (t (:background "CadetBlue1")))
617 "*Face used to highlight other matches of your search context regexp.
618 If user option `icicle-search-highlight-threshold' is less than one,
619 then this face is not used.
620 This highlighting is done during Icicles searching."
621 :group 'Icicles-Searching :group 'faces)
622
623 (defface icicle-special-candidate
624 '((((background dark)) (:background "#176900004E0A")) ; a dark blue
625 (t (:background "#EF47FFFFC847"))) ; A light yellow.
626 "*Face used to highlight `*Completions*' candidates that are special.
627 The meaning of special is that their names match
628 `icicle-special-candidate-regexp'."
629 :group 'Icicles-Completions-Display :group 'faces)
630
631 (defface icicle-whitespace-highlight
632 '((((background dark)) (:background "#000093F402A2")) ; a medium green
633 (t (:background "Magenta")))
634 "*Face used to highlight initial whitespace in minibuffer input."
635 :group 'Icicles-Minibuffer-Display :group 'faces)
636
637 ;; This is defined in `faces.el', Emacs 22. This is for Emacs < 22. This is used
638 ;; only for versions of Emacs that have `propertize' but don't have this face.
639 (unless (facep 'minibuffer-prompt)
640 (defface minibuffer-prompt '((((background dark)) (:foreground "cyan"))
641 (t (:foreground "dark blue")))
642 "*Face for minibuffer prompts."
643 :group 'basic-faces))
644
645 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
646
647 (provide 'icicles-face)
648
649 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
650 ;;; icicles-face.el ends here