1 ;;; icicles-face.el --- Faces for Icicles
3 ;; Filename: icicles-face.el
4 ;; Description: Faces for Icicles
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)
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
18 ;; Features that might be required by this library:
22 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
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'.
30 ;; Groups defined here:
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'.
38 ;; Faces defined here:
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'.
67 ;; For descriptions of changes to this file, see `icicles-chg.el'.
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.
78 ;; (@> "Icicles Commands for Other Packages")
79 ;; (@> "Groups, Organized Alphabetically")
80 ;; (@> "Faces, Organized Alphabetically")
82 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
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)
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.
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.
99 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
103 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
105 ;;(@* "Groups, Organized Alphabetically")
107 ;;; Groups, Organized Alphabetically ---------------------------------
109 (defgroup Icicles nil
110 "Minibuffer input completion and cycling of completion candidates."
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")
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")
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")
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")
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")
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")
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")
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")
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")
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")
291 ;;(@* "Faces, Organized Alphabetically")
293 ;;; Faces, Organized Alphabetically ----------------------------------
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
359 (when (> emacs-major-version 21)
360 (defface icicle-historical-candidate-other '((t (:inherit icicle-historical-candidate
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'.
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))
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)
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)
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)
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))
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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))
647 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
649 (provide 'icicles-face)
651 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
652 ;;; icicles-face.el ends here