0731ee08767ae2058040d75f245715a4b89c8b71
[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-2015, Drew Adams, all rights reserved.
8 ;; Created: Mon Feb 27 09:19:43 2006
9 ;; Last-Updated: Thu Jan 1 10:55:12 2015 (-0800)
10 ;; By: dradams
11 ;; Update #: 717
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, 25.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. Whether or not such
365 highlighting is done is governed by option
366 `icicle-highlight-historical-candidates-flag'.
367
368 Example:
369 Index topics that point to Info nodes that you have visited. Whether
370 such highlighting occurs automatically for Info-node candidates is
371 governed by option `icicle-Info-highlight-visited-nodes'. But you can
372 highlight the nodes on demand, using `C-x C-M-l'."
373 :group 'Icicles-Completions-Display :group 'faces))
374
375 (defface icicle-input-completion-fail
376 '((((background dark)) (:background "#22225F5F2222")) ; a dark green
377 (t (:foreground "Black" :background "Plum")))
378 "*Face for highlighting failed part of input during strict completion."
379 :group 'Icicles-Minibuffer-Display :group 'faces)
380
381 (defface icicle-input-completion-fail-lax
382 '((((background dark)) (:background "#00005E3B5A8D")) ; a dark cyan
383 (t (:foreground "Black" :background "#FFFFB8C4BB87")))
384 "*Face for highlighting failed part of input during lax completion."
385 :group 'Icicles-Minibuffer-Display :group 'faces)
386
387 ;; By default, these two faces have the same backgrounds as faces
388 ;; `icicle-candidate-part' and `icicle-special-candidate', respectively. They differ
389 ;; only in being boxed as well.
390 (when (fboundp 'map-keymap) ; Emacs 22+.
391 (defface icicle-key-complete-menu
392 '((((background dark))
393 (:background "#451700143197" ; a very dark magenta
394 :box (:line-width 1 :color "#FA6CC847FFFF"))) ; a light magenta box
395 (t (:background "#EF84FFEAF427" ; a light green.
396 :box (:line-width 1 :color "#34F393F434F3")))) ; a green box
397 "*Face used to highlight non-local menu items when completing keys.
398 Non-local keys that are not menu items are highlighted with face
399 `icicle-candidate-part'. Menu items for the current mode (i.e., local
400 keymap) are highlighted with face `icicle-key-complete-menu-local'."
401 :group 'Icicles-Searching :group 'faces)
402
403 (defface icicle-key-complete-menu-local
404 '((((background dark))
405 (:background "#176900004E0A" ; a dark blue
406 :box (:line-width 1 :color "#E1E1EAEAFFFF"))) ; a light blue box
407 (t (:background "#EF47FFFFC847" ; a light yellow.
408 :box (:line-width 1 :color "#AC4AAC4A0000")))) ; a dark yellow box
409 "*Face used to highlight local menu items when completing keys.
410 Local keys that are not menu items are highlighted with face
411 `icicle-special-candidate'. Non-local menu items (i.e., not for the
412 current mode) are highlighted with face `icicle-key-complete-menu'."
413 :group 'Icicles-Searching :group 'faces))
414
415 (defface icicle-match-highlight-Completions
416 '((((background dark)) (:foreground "#1F1FA21CA21C")) ; a very dark cyan
417 (t (:foreground "Red3")))
418 "*Face used to highlight root that was completed, in `*Completions*'."
419 :group 'Icicles-Completions-Display :group 'faces)
420
421 (defface icicle-match-highlight-minibuffer '((t (:underline t)))
422 "*Face used to highlight root that was completed, in minibuffer."
423 :group 'Icicles-Minibuffer-Display :group 'faces)
424
425 (defface icicle-mode-line-help
426 '((((background dark)) (:foreground "#AC4AAC4A0000")) ; a dark yellow
427 (t (:foreground "Blue")))
428 "*Face used to highlight help shown in the mode-line."
429 :group 'Icicles-Completions-Display :group 'Icicles-Miscellaneous :group 'faces)
430
431 (defface icicle-msg-emphasis
432 '((((background dark)) (:foreground "#B19E6A64B19E")) ; a dark magenta
433 (t (:foreground "DarkGreen")))
434 "*Face used to emphasize (part of) a message."
435 :group 'Icicles-Minibuffer-Display :group 'faces)
436
437 (defface icicle-multi-command-completion
438 '((((background dark)) ; a dark cyan on a dark magenta
439 (:foreground "#0000D53CD53C" :background "#8B3500007533"))
440 (t (:foreground "Red" :background "#78F6FFFF8E4F"))) ; red on a light green
441 "*Face used to indicate Icicles multi-command completion.
442 It highlights the minibuffer indicator and the `Icy+' minor-mode
443 lighter during multi-command completion.
444 Not used for versions of Emacs before version 21."
445 :group 'Icicles-Minibuffer-Display :group 'Icicles-Miscellaneous :group 'faces)
446
447 (defface icicle-mustmatch-completion
448 '((((type x w32 mac graphic) (class color))
449 (:box (:line-width -2 :color "Blue"))) ; blue box
450 (t (:inverse-video t)))
451 "*Face used to indicate strict minibuffer completion.
452 It highlights the minibuffer indicator and the `Icy' or `Icy+'
453 minor-mode lighter during strict completion.
454 Not used for versions of Emacs before version 21."
455 :group 'Icicles-Minibuffer-Display :group 'Icicles-Miscellaneous :group 'faces)
456
457 (defface icicle-proxy-candidate
458 '((((background dark)) (:background "#316B22970000")) ; a very dark brown
459 (t (:background "#E1E1EAEAFFFF" ; A light blue.
460 :box (:line-width 2 :color "White" :style released-button))))
461 "*Face used to highlight proxy candidates in `*Completions*'."
462 :group 'Icicles-Completions-Display :group 'faces)
463
464 (defface icicle-saved-candidate
465 '((((background dark)) (:background "gray20")) ; a dark gray
466 (t (:background "gray80"))) ; a light gray
467 "*Face used to highlight `*Completions*' candidates that have been saved."
468 :group 'Icicles-Completions-Display :group 'faces)
469
470 (defface icicle-search-main-regexp-current
471 '((((background dark)) (:background "#00004AA652F1")) ; a dark cyan
472 (t (:background "misty rose")))
473 "*Face used to highlight current match of your search context regexp.
474 This highlighting is done during Icicles searching."
475 :group 'Icicles-Searching :group 'faces)
476
477 (defface icicle-search-context-level-1
478 (let ((context-bg (face-background 'icicle-search-main-regexp-current)))
479 `((((background dark))
480 (:background ,(if (fboundp 'hexrgb-increment-saturation)
481 (hexrgb-increment-saturation
482 (hexrgb-increment-hue context-bg 0.80) 0.10)
483 "#071F473A0000"))) ; a dark green
484 (t (:background ,(if (fboundp 'hexrgb-increment-saturation)
485 (hexrgb-increment-saturation
486 (hexrgb-increment-hue context-bg 0.80) 0.10)
487 "#FA6CC847FFFF"))))) ; a light magenta
488 "*Face used to highlight level (subgroup match) 1 of your search context.
489 This highlighting is done during Icicles searching whenever
490 `icicle-search-highlight-context-levels-flag' is non-nil and the
491 search context corresponds to the entire regexp."
492 :group 'Icicles-Searching :group 'faces)
493
494 (defface icicle-search-context-level-2
495 (let ((context-bg (face-background 'icicle-search-main-regexp-current)))
496 `((((background dark))
497 (:background ,(if (fboundp 'hexrgb-increment-saturation)
498 (hexrgb-increment-saturation
499 (hexrgb-increment-hue context-bg 0.40) 0.10)
500 "#507400002839"))) ; a dark red
501 (t (:background ,(if (fboundp 'hexrgb-increment-saturation)
502 (hexrgb-increment-saturation
503 (hexrgb-increment-hue context-bg 0.40) 0.10)
504 "#C847FFFFE423"))))) ; a light cyan
505 "*Face used to highlight level (subgroup match) 2 of your search context.
506 This highlighting is done during Icicles searching whenever
507 `icicle-search-highlight-context-levels-flag' is non-nil and the
508 search context corresponds to the entire regexp."
509 :group 'Icicles-Searching :group 'faces)
510
511 (defface icicle-search-context-level-3
512 (let ((context-bg (face-background 'icicle-search-main-regexp-current)))
513 `((((background dark))
514 (:background ,(if (fboundp 'hexrgb-increment-saturation)
515 (hexrgb-increment-saturation
516 (hexrgb-increment-hue context-bg 0.60) 0.10)
517 "#4517305D0000"))) ; a dark brown
518 (t (:background ,(if (fboundp 'hexrgb-increment-saturation)
519 (hexrgb-increment-saturation
520 (hexrgb-increment-hue context-bg 0.60) 0.10)
521 "#C847D8FEFFFF"))))) ; a light blue
522 "*Face used to highlight level (subgroup match) 3 of your search context.
523 This highlighting is done during Icicles searching whenever
524 `icicle-search-highlight-context-levels-flag' is non-nil and the
525 search context corresponds to the entire regexp."
526 :group 'Icicles-Searching :group 'faces)
527
528 (defface icicle-search-context-level-4
529 (let ((context-bg (face-background 'icicle-search-main-regexp-current)))
530 `((((background dark))
531 (:background ,(if (fboundp 'hexrgb-increment-saturation)
532 (hexrgb-increment-saturation
533 (hexrgb-increment-hue context-bg 0.20) 0.10)
534 "#176900004E0A"))) ; a dark blue
535 (t (:background ,(if (fboundp 'hexrgb-increment-saturation)
536 (hexrgb-increment-saturation
537 (hexrgb-increment-hue context-bg 0.20) 0.10)
538 "#EF47FFFFC847"))))) ; a light yellow
539 "*Face used to highlight level (subgroup match) 4 of your search context.
540 This highlighting is done during Icicles searching whenever
541 `icicle-search-highlight-context-levels-flag' is non-nil and the
542 search context corresponds to the entire regexp."
543 :group 'Icicles-Searching :group 'faces)
544
545 (defface icicle-search-context-level-5
546 (let ((context-bg (face-background 'icicle-search-main-regexp-current)))
547 `((((background dark))
548 (:background ,(if (fboundp 'hexrgb-increment-saturation)
549 (hexrgb-increment-hue context-bg 0.80)
550 "#04602BC00000"))) ; a very dark green
551 (t (:background ,(if (fboundp 'hexrgb-increment-saturation)
552 (hexrgb-increment-hue context-bg 0.80)
553 "#FCFCE1E1FFFF"))))) ; a light magenta
554 "*Face used to highlight level (subgroup match) 5 of your search context.
555 This highlighting is done during Icicles searching whenever
556 `icicle-search-highlight-context-levels-flag' is non-nil and the
557 search context corresponds to the entire regexp."
558 :group 'Icicles-Searching :group 'faces)
559
560 (defface icicle-search-context-level-6
561 (let ((context-bg (face-background 'icicle-search-main-regexp-current)))
562 `((((background dark))
563 (:background ,(if (fboundp 'hexrgb-increment-saturation)
564 (hexrgb-increment-hue context-bg 0.40)
565 "#32F200001979"))) ; a very dark red
566 (t (:background ,(if (fboundp 'hexrgb-increment-saturation)
567 (hexrgb-increment-hue context-bg 0.40)
568 "#E1E1FFFFF0F0"))))) ; a light cyan
569 "*Face used to highlight level (subgroup match) 6 of your search context.
570 This highlighting is done during Icicles searching whenever
571 `icicle-search-highlight-context-levels-flag' is non-nil and the
572 search context corresponds to the entire regexp."
573 :group 'Icicles-Searching :group 'faces)
574
575 (defface icicle-search-context-level-7
576 (let ((context-bg (face-background 'icicle-search-main-regexp-current)))
577 `((((background dark))
578 (:background ,(if (fboundp 'hexrgb-increment-saturation)
579 (hexrgb-increment-hue context-bg 0.60)
580 "#316B22970000"))) ; a very dark brown
581 (t (:background ,(if (fboundp 'hexrgb-increment-saturation)
582 (hexrgb-increment-hue context-bg 0.60)
583 "#E1E1EAEAFFFF"))))) ; a light blue
584 "*Face used to highlight level (subgroup match) 7 of your search context.
585 This highlighting is done during Icicles searching whenever
586 `icicle-search-highlight-context-levels-flag' is non-nil and the
587 search context corresponds to the entire regexp."
588 :group 'Icicles-Searching :group 'faces)
589
590 ;; NO AUTOLOAD COOKIE HERE.
591 (defface icicle-search-context-level-8
592 (let ((context-bg (face-background 'icicle-search-main-regexp-current)))
593 `((((background dark))
594 (:background ,(if (fboundp 'hexrgb-increment-saturation)
595 (hexrgb-increment-hue context-bg 0.20)
596 "#12EC00003F0E"))) ; a very dark blue
597 (t (:background ,(if (fboundp 'hexrgb-increment-saturation)
598 (hexrgb-increment-hue context-bg 0.20)
599 "#F6F5FFFFE1E1"))))) ; a light yellow
600 "*Face used to highlight level (subgroup match) 8 of your search context.
601 This highlighting is done during Icicles searching whenever
602 `icicle-search-highlight-context-levels-flag' is non-nil and the
603 search context corresponds to the entire regexp."
604 :group 'Icicles-Searching :group 'faces)
605
606 (defface icicle-search-current-input
607 '((((background dark))
608 (:foreground "White" :background "#7F0D00007F0D")) ; a dark magenta
609 (t (:foreground "Black" :background "Green")))
610 "*Face used to highlight what your current input matches.
611 This highlighting is done during Icicles searching whenever
612 `icicle-search-highlight-context-levels-flag' is non-nil and the
613 search context corresponds to the entire regexp."
614 :group 'Icicles-Searching :group 'faces)
615
616 (defface icicle-search-main-regexp-others
617 '((((background dark)) (:background "#348608690000")) ; a very dark brown
618 (t (:background "CadetBlue1")))
619 "*Face used to highlight other matches of your search context regexp.
620 If user option `icicle-search-highlight-threshold' is less than one,
621 then this face is not used.
622 This highlighting is done during Icicles searching."
623 :group 'Icicles-Searching :group 'faces)
624
625 (defface icicle-special-candidate
626 '((((background dark)) (:background "#176900004E0A")) ; a dark blue
627 (t (:background "#EF47FFFFC847"))) ; A light yellow.
628 "*Face used to highlight `*Completions*' candidates that are special.
629 The meaning of special is that their names match
630 `icicle-special-candidate-regexp'."
631 :group 'Icicles-Completions-Display :group 'faces)
632
633 (defface icicle-whitespace-highlight
634 '((((background dark)) (:background "#000093F402A2")) ; a medium green
635 (t (:background "Magenta")))
636 "*Face used to highlight initial whitespace in minibuffer input."
637 :group 'Icicles-Minibuffer-Display :group 'faces)
638
639 ;; This is defined in `faces.el', Emacs 22. This is for Emacs < 22. This is used
640 ;; only for versions of Emacs that have `propertize' but don't have this face.
641 (unless (facep 'minibuffer-prompt)
642 (defface minibuffer-prompt '((((background dark)) (:foreground "cyan"))
643 (t (:foreground "dark blue")))
644 "*Face for minibuffer prompts."
645 :group 'basic-faces))
646
647 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
648
649 (provide 'icicles-face)
650
651 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
652 ;;; icicles-face.el ends here