From 9888ee7a214289907dcb4268fa4942f56baaf33d Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Mon, 14 Apr 2014 00:39:33 -0700 Subject: [PATCH] No longer storing elpa stuff in repository. --- .gitignore | 1 + .../color-theme-autoloads.el | 156 - .../color-theme-pkg.el | 2 - elpa/color-theme-20080305.34/color-theme.el | 1671 -- .../themes/color-theme-example.el | 22 - .../themes/color-theme-library.el | 13672 -------------- .../color-theme-autoloads.el | 18 - elpa/color-theme-6.5.5/color-theme-pkg.el | 1 - elpa/color-theme-6.5.5/color-theme.el | 15170 ---------------- .../color-theme-tango-autoloads.el | 18 - .../color-theme-tango-pkg.el | 1 - .../color-theme-tango.el | 85 - elpa/ctags-20110911.304/ctags-autoloads.el | 4 +- elpa/ctags-readme.txt | 26 - .../ctags-update-autoloads.el | 6 +- elpa/ctags-update-readme.txt | 35 - .../elisp-slime-nav-autoloads.el | 38 - .../elisp-slime-nav-pkg.el | 1 - elpa/elisp-slime-nav-0.3/elisp-slime-nav.el | 82 - elpa/evil-1.0.1/COPYING | 674 - elpa/evil-1.0.1/evil-autoloads.el | 26 - elpa/evil-1.0.1/evil-commands.el | 3611 ---- elpa/evil-1.0.1/evil-common.el | 3217 ---- elpa/evil-1.0.1/evil-core.el | 1082 -- elpa/evil-1.0.1/evil-digraphs.el | 1729 -- elpa/evil-1.0.1/evil-ex.el | 1044 -- elpa/evil-1.0.1/evil-integration.el | 288 - elpa/evil-1.0.1/evil-macros.el | 751 - elpa/evil-1.0.1/evil-maps.el | 464 - elpa/evil-1.0.1/evil-pkg.el | 5 - elpa/evil-1.0.1/evil-repeat.el | 607 - elpa/evil-1.0.1/evil-search.el | 1124 -- elpa/evil-1.0.1/evil-states.el | 865 - elpa/evil-1.0.1/evil-types.el | 361 - elpa/evil-1.0.1/evil-vars.el | 1392 -- elpa/evil-1.0.1/evil.el | 114 - .../find-file-in-project-autoloads.el | 47 - .../find-file-in-project-pkg.el | 1 - .../find-file-in-project.el | 183 - elpa/flymake-0.4.12/flymake-autoloads.el | 46 - elpa/flymake-0.4.12/flymake-pkg.el | 1 - elpa/flymake-0.4.12/flymake.el | 2170 --- .../idle-highlight-mode-autoloads.el | 29 - .../idle-highlight-mode-pkg.el | 1 - .../idle-highlight-mode.el | 104 - .../ido-ubiquitous-autoloads.el | 118 - elpa/ido-ubiquitous-1.6/ido-ubiquitous-pkg.el | 1 - elpa/ido-ubiquitous-1.6/ido-ubiquitous.el | 466 - elpa/inf-ruby-2.2.4/inf-ruby-autoloads.el | 50 - elpa/inf-ruby-2.2.4/inf-ruby-pkg.el | 1 - elpa/inf-ruby-2.2.4/inf-ruby.el | 387 - elpa/magit-1.1.1/magit-autoloads.el | 83 - elpa/magit-1.1.1/magit-bisect.el | 196 - elpa/magit-1.1.1/magit-key-mode.el | 508 - elpa/magit-1.1.1/magit-pkg.el | 1 - elpa/magit-1.1.1/magit-stgit.el | 288 - elpa/magit-1.1.1/magit-svn.el | 240 - elpa/magit-1.1.1/magit-topgit.el | 191 - elpa/magit-1.1.1/magit.el | 5445 ------ elpa/magit-1.1.1/magit.info | 1331 -- .../mo-git-blame-autoloads.el | 47 - elpa/mo-git-blame-0.1.0/mo-git-blame-pkg.el | 1 - elpa/mo-git-blame-0.1.0/mo-git-blame.el | 762 - .../multiple-cursors-autoloads.el | 20 +- elpa/multiple-cursors-readme.txt | 155 - .../no-easy-keys-autoloads.el | 2 +- .../nzenburn-theme-autoloads.el | 26 - .../nzenburn-theme-pkg.el | 1 - .../nzenburn-theme-20130513/nzenburn-theme.el | 852 - elpa/paredit-22/paredit-autoloads.el | 35 - elpa/paredit-22/paredit-pkg.el | 1 - elpa/paredit-22/paredit.el | 2541 --- elpa/smex-2.0/smex-autoloads.el | 33 - elpa/smex-2.0/smex-pkg.el | 1 - elpa/smex-2.0/smex.el | 493 - .../starter-kit-autoloads.el | 44 - elpa/starter-kit-2.0.3/starter-kit-defuns.el | 175 - elpa/starter-kit-2.0.3/starter-kit-misc.el | 135 - elpa/starter-kit-2.0.3/starter-kit-pkg.el | 4 - elpa/starter-kit-2.0.3/starter-kit.el | 66 - .../starter-kit-bindings-autoloads.el | 80 - .../starter-kit-bindings-pkg.el | 1 - .../starter-kit-bindings.el | 121 - .../starter-kit-ruby-autoloads.el | 65 - .../starter-kit-ruby-pkg.el | 1 - .../starter-kit-ruby.el | 106 - elpa/undo-tree-0.6.3/undo-tree-autoloads.el | 64 - elpa/undo-tree-0.6.3/undo-tree-pkg.el | 1 - elpa/undo-tree-0.6.3/undo-tree.el | 4287 ----- init.el | 60 +- 90 files changed, 49 insertions(+), 70382 deletions(-) delete mode 100644 elpa/color-theme-20080305.34/color-theme-autoloads.el delete mode 100644 elpa/color-theme-20080305.34/color-theme-pkg.el delete mode 100755 elpa/color-theme-20080305.34/color-theme.el delete mode 100644 elpa/color-theme-20080305.34/themes/color-theme-example.el delete mode 100755 elpa/color-theme-20080305.34/themes/color-theme-library.el delete mode 100644 elpa/color-theme-6.5.5/color-theme-autoloads.el delete mode 100644 elpa/color-theme-6.5.5/color-theme-pkg.el delete mode 100644 elpa/color-theme-6.5.5/color-theme.el delete mode 100644 elpa/color-theme-tango-0.0.2/color-theme-tango-autoloads.el delete mode 100644 elpa/color-theme-tango-0.0.2/color-theme-tango-pkg.el delete mode 100644 elpa/color-theme-tango-0.0.2/color-theme-tango.el delete mode 100644 elpa/ctags-readme.txt delete mode 100644 elpa/ctags-update-readme.txt delete mode 100644 elpa/elisp-slime-nav-0.3/elisp-slime-nav-autoloads.el delete mode 100644 elpa/elisp-slime-nav-0.3/elisp-slime-nav-pkg.el delete mode 100644 elpa/elisp-slime-nav-0.3/elisp-slime-nav.el delete mode 100644 elpa/evil-1.0.1/COPYING delete mode 100644 elpa/evil-1.0.1/evil-autoloads.el delete mode 100644 elpa/evil-1.0.1/evil-commands.el delete mode 100644 elpa/evil-1.0.1/evil-common.el delete mode 100644 elpa/evil-1.0.1/evil-core.el delete mode 100644 elpa/evil-1.0.1/evil-digraphs.el delete mode 100644 elpa/evil-1.0.1/evil-ex.el delete mode 100644 elpa/evil-1.0.1/evil-integration.el delete mode 100644 elpa/evil-1.0.1/evil-macros.el delete mode 100644 elpa/evil-1.0.1/evil-maps.el delete mode 100644 elpa/evil-1.0.1/evil-pkg.el delete mode 100644 elpa/evil-1.0.1/evil-repeat.el delete mode 100644 elpa/evil-1.0.1/evil-search.el delete mode 100644 elpa/evil-1.0.1/evil-states.el delete mode 100644 elpa/evil-1.0.1/evil-types.el delete mode 100644 elpa/evil-1.0.1/evil-vars.el delete mode 100644 elpa/evil-1.0.1/evil.el delete mode 100644 elpa/find-file-in-project-3.2/find-file-in-project-autoloads.el delete mode 100644 elpa/find-file-in-project-3.2/find-file-in-project-pkg.el delete mode 100644 elpa/find-file-in-project-3.2/find-file-in-project.el delete mode 100644 elpa/flymake-0.4.12/flymake-autoloads.el delete mode 100644 elpa/flymake-0.4.12/flymake-pkg.el delete mode 100644 elpa/flymake-0.4.12/flymake.el delete mode 100644 elpa/idle-highlight-mode-1.1.2/idle-highlight-mode-autoloads.el delete mode 100644 elpa/idle-highlight-mode-1.1.2/idle-highlight-mode-pkg.el delete mode 100644 elpa/idle-highlight-mode-1.1.2/idle-highlight-mode.el delete mode 100644 elpa/ido-ubiquitous-1.6/ido-ubiquitous-autoloads.el delete mode 100644 elpa/ido-ubiquitous-1.6/ido-ubiquitous-pkg.el delete mode 100644 elpa/ido-ubiquitous-1.6/ido-ubiquitous.el delete mode 100644 elpa/inf-ruby-2.2.4/inf-ruby-autoloads.el delete mode 100644 elpa/inf-ruby-2.2.4/inf-ruby-pkg.el delete mode 100644 elpa/inf-ruby-2.2.4/inf-ruby.el delete mode 100644 elpa/magit-1.1.1/magit-autoloads.el delete mode 100644 elpa/magit-1.1.1/magit-bisect.el delete mode 100644 elpa/magit-1.1.1/magit-key-mode.el delete mode 100644 elpa/magit-1.1.1/magit-pkg.el delete mode 100644 elpa/magit-1.1.1/magit-stgit.el delete mode 100644 elpa/magit-1.1.1/magit-svn.el delete mode 100644 elpa/magit-1.1.1/magit-topgit.el delete mode 100644 elpa/magit-1.1.1/magit.el delete mode 100644 elpa/magit-1.1.1/magit.info delete mode 100644 elpa/mo-git-blame-0.1.0/mo-git-blame-autoloads.el delete mode 100644 elpa/mo-git-blame-0.1.0/mo-git-blame-pkg.el delete mode 100644 elpa/mo-git-blame-0.1.0/mo-git-blame.el delete mode 100644 elpa/multiple-cursors-readme.txt delete mode 100644 elpa/nzenburn-theme-20130513/nzenburn-theme-autoloads.el delete mode 100644 elpa/nzenburn-theme-20130513/nzenburn-theme-pkg.el delete mode 100644 elpa/nzenburn-theme-20130513/nzenburn-theme.el delete mode 100644 elpa/paredit-22/paredit-autoloads.el delete mode 100644 elpa/paredit-22/paredit-pkg.el delete mode 100644 elpa/paredit-22/paredit.el delete mode 100644 elpa/smex-2.0/smex-autoloads.el delete mode 100644 elpa/smex-2.0/smex-pkg.el delete mode 100644 elpa/smex-2.0/smex.el delete mode 100644 elpa/starter-kit-2.0.3/starter-kit-autoloads.el delete mode 100644 elpa/starter-kit-2.0.3/starter-kit-defuns.el delete mode 100644 elpa/starter-kit-2.0.3/starter-kit-misc.el delete mode 100644 elpa/starter-kit-2.0.3/starter-kit-pkg.el delete mode 100644 elpa/starter-kit-2.0.3/starter-kit.el delete mode 100644 elpa/starter-kit-bindings-2.0.2/starter-kit-bindings-autoloads.el delete mode 100644 elpa/starter-kit-bindings-2.0.2/starter-kit-bindings-pkg.el delete mode 100644 elpa/starter-kit-bindings-2.0.2/starter-kit-bindings.el delete mode 100644 elpa/starter-kit-ruby-2.0.3/starter-kit-ruby-autoloads.el delete mode 100644 elpa/starter-kit-ruby-2.0.3/starter-kit-ruby-pkg.el delete mode 100644 elpa/starter-kit-ruby-2.0.3/starter-kit-ruby.el delete mode 100644 elpa/undo-tree-0.6.3/undo-tree-autoloads.el delete mode 100644 elpa/undo-tree-0.6.3/undo-tree-pkg.el delete mode 100644 elpa/undo-tree-0.6.3/undo-tree.el diff --git a/.gitignore b/.gitignore index bb529e7e..64826003 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ url bookmarks elpa/archives/ +elpa diff --git a/elpa/color-theme-20080305.34/color-theme-autoloads.el b/elpa/color-theme-20080305.34/color-theme-autoloads.el deleted file mode 100644 index ca8b9e9c..00000000 --- a/elpa/color-theme-20080305.34/color-theme-autoloads.el +++ /dev/null @@ -1,156 +0,0 @@ -;;; color-theme-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads (color-theme-initialize color-theme-submit color-theme-install -;;;;;; color-theme-compare color-theme-make-snapshot color-theme-analyze-defun -;;;;;; color-theme-print color-theme-install-at-point-for-current-frame -;;;;;; color-theme-install-at-mouse color-theme-describe color-theme-select) -;;;;;; "color-theme" "color-theme.el" (21316 30298)) -;;; Generated autoloads from color-theme.el - -(autoload 'color-theme-select "color-theme" "\ -Displays a special buffer for selecting and installing a color theme. -With optional prefix ARG, this buffer will include color theme libraries -as well. A color theme library is in itself not complete, it must be -used as part of another color theme to be useful. Thus, color theme -libraries are mainly useful for color theme authors. - -\(fn &optional ARG)" t nil) - -(autoload 'color-theme-describe "color-theme" "\ -Describe color theme listed at point. -This shows the documentation of the value of text-property color-theme -at point. The text-property color-theme should be a color theme -function. See `color-themes'. - -\(fn)" t nil) - -(autoload 'color-theme-install-at-mouse "color-theme" "\ -Install color theme clicked upon using the mouse. -First argument EVENT is used to set point. Then -`color-theme-install-at-point' is called. - -\(fn EVENT)" t nil) - -(autoload 'color-theme-install-at-point-for-current-frame "color-theme" "\ -Install color theme at point for current frame only. -Binds `color-theme-is-global' to nil and calls -`color-theme-install-at-point'. - -\(fn)" t nil) - -(autoload 'color-theme-print "color-theme" "\ -Print the current color theme function. - -You can contribute this function to or -paste it into your .emacs file and call it. That should recreate all -the settings necessary for your color theme. - -Example: - - (require 'color-theme) - (defun my-color-theme () - \"Color theme by Alex Schroeder, created 2000-05-17.\" - (interactive) - (color-theme-install - '(... - ... - ...))) - (my-color-theme) - -If you want to use a specific color theme function, you can call the -color theme function in your .emacs directly. - -Example: - - (require 'color-theme) - (color-theme-gnome2) - -\(fn &optional BUF)" t nil) - -(autoload 'color-theme-analyze-defun "color-theme" "\ -Once you have a color-theme printed, check for missing faces. -This is used by maintainers who receive a color-theme submission -and want to make sure it follows the guidelines by the color-theme -author. - -\(fn)" t nil) - -(autoload 'color-theme-make-snapshot "color-theme" "\ -Return the definition of the current color-theme. -The function returned will recreate the color-theme in use at the moment. - -\(fn)" nil nil) - -(autoload 'color-theme-compare "color-theme" "\ -Compare two color themes. -This will print the differences between installing THEME-A and -installing THEME-B. Note that the order is important: If a face is -defined in THEME-A and not in THEME-B, then this will not show up as a -difference, because there is no reset before installing THEME-B. If a -face is defined in THEME-B and not in THEME-A, then this will show up as -a difference. - -\(fn THEME-A THEME-B)" t nil) - -(autoload 'color-theme-install "color-theme" "\ -Install a color theme defined by frame parameters, variables and faces. - -The theme is installed for all present and future frames; any missing -faces are created. See `color-theme-install-faces'. - -THEME is a color theme definition. See below for more information. - -If you want to install a color theme from your .emacs, use the output -generated by `color-theme-print'. This produces color theme function -which you can copy to your .emacs. - -A color theme definition is a list: -\([FUNCTION] FRAME-PARAMETERS VARIABLE-SETTINGS FACE-DEFINITIONS) - -FUNCTION is the color theme function which called `color-theme-install'. -This is no longer used. There was a time when this package supported -automatic factoring of color themes. This has been abandoned. - -FRAME-PARAMETERS is an alist of frame parameters. These are installed -with `color-theme-install-frame-params'. These are installed last such -that any changes to the default face can be changed by the frame -parameters. - -VARIABLE-DEFINITIONS is an alist of variable settings. These are -installed with `color-theme-install-variables'. - -FACE-DEFINITIONS is an alist of face definitions. These are installed -with `color-theme-install-faces'. - -If `color-theme-is-cumulative' is nil, a color theme will undo face and -frame-parameter settings of previous color themes. - -\(fn THEME)" nil nil) - -(autoload 'color-theme-submit "color-theme" "\ -Submit your color-theme to the maintainer. - -\(fn)" t nil) - -(autoload 'color-theme-initialize "color-theme" "\ -Initialize the color theme package by loading color-theme-libraries. - -\(fn)" t nil) - -;;;*** - -;;;### (autoloads nil nil ("color-theme-pkg.el") (21316 30298 651142)) - -;;;*** - -(provide 'color-theme-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; color-theme-autoloads.el ends here diff --git a/elpa/color-theme-20080305.34/color-theme-pkg.el b/elpa/color-theme-20080305.34/color-theme-pkg.el deleted file mode 100644 index a6a05d0e..00000000 --- a/elpa/color-theme-20080305.34/color-theme-pkg.el +++ /dev/null @@ -1,2 +0,0 @@ -(define-package "color-theme" "20080305.34" "install color themes" 'nil :url "http://www.emacswiki.org/cgi-bin/wiki.pl?ColorTheme" :keywords - '("faces")) diff --git a/elpa/color-theme-20080305.34/color-theme.el b/elpa/color-theme-20080305.34/color-theme.el deleted file mode 100755 index 36baf678..00000000 --- a/elpa/color-theme-20080305.34/color-theme.el +++ /dev/null @@ -1,1671 +0,0 @@ -;;; color-theme.el --- install color themes - -;; Copyright (C) 1999, 2000 Jonadab the Unsightly One -;; Copyright (C) 2000, 2001, 2002, 2003 Alex Schroeder -;; Copyright (C) 2003, 2004, 2005, 2006 Xavier Maillard - -;; Version: 6.6.0 -;; Keywords: faces -;; Author: Jonadab the Unsightly One -;; Maintainer: Xavier Maillard -;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ColorTheme - -;; This file is not (YET) part of GNU Emacs. - -;; This is free software; you can redistribute it and/or modify it under -;; the terms of the GNU General Public License as published by the Free -;; Software Foundation; either version 2, or (at your option) any later -;; version. -;; -;; This is distributed in the hope that it will be useful, but WITHOUT -;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -;; for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, -;; MA 02111-1307, USA. - -;;; Commentary: - -;; Please read README and BUGS files for any relevant help. -;; Contributors (not themers) should also read HACKING file. - -;;; Thanks - -;; Deepak Goel -;; S. Pokrovsky for ideas and discussion. -;; Gordon Messmer for ideas and discussion. -;; Sriram Karra for the color-theme-submit stuff. -;; Olgierd `Kingsajz' Ziolko for the spec-filter idea. -;; Brian Palmer for color-theme-library ideas and code -;; All the users that contributed their color themes. - - - -;;; Code: -(eval-when-compile - (require 'easymenu) - (require 'reporter) - (require 'sendmail)) - -(require 'cl); set-difference is a function... - -;; for custom-face-attributes-get or face-custom-attributes-get -(require 'cus-face) -(require 'wid-edit); for widget-apply stuff in cus-face.el - -(defconst color-theme-maintainer-address "zedek@gnu.org" - "Address used by `submit-color-theme'.") - -;; Emacs / XEmacs compatibility and workaround layer - -(cond ((and (facep 'tool-bar) - (not (facep 'toolbar))) - (put 'toolbar 'face-alias 'tool-bar)) - ((and (facep 'toolbar) - (not (facep 'tool-bar))) - (put 'tool-bar 'face-alias 'toolbar))) - -(defvar color-theme-xemacs-p (and (featurep 'xemacs) - (string-match "XEmacs" emacs-version)) - "Non-nil if running XEmacs.") - -;; Add this since it appears to miss in emacs-2x -(if (fboundp 'replace-in-string) - (defalias 'color-theme-replace-in-string 'replace-in-string) - (defsubst color-theme-replace-in-string (target old new &optional literal) - (replace-regexp-in-string old new target nil literal))) - -;; face-attr-construct has a problem in Emacs 20.7 and older when -;; dealing with inverse-video faces. Here is a short test to check -;; wether you are affected. - -;; (set-background-color "wheat") -;; (set-foreground-color "black") -;; (setq a (make-face 'a-face)) -;; (face-spec-set a '((t (:background "white" :foreground "black" :inverse-video t)))) -;; (face-attr-construct a) -;; => (:background "black" :inverse-video t) - -;; The expected response is the original specification: -;; => (:background "white" :foreground "black" :inverse-video t) - -;; That's why we depend on cus-face.el functionality. - -(cond ((fboundp 'custom-face-attributes-get) - (defun color-theme-face-attr-construct (face frame) - (if (atom face) - (custom-face-attributes-get face frame) - (if (and (consp face) (eq (car face) 'quote)) - (custom-face-attributes-get (cadr face) frame) - (custom-face-attributes-get (car face) frame))))) - ((fboundp 'face-custom-attributes-get) - (defalias 'color-theme-face-attr-construct - 'face-custom-attributes-get)) - (t - (defun color-theme-face-attr-construct (&rest ignore) - (error "Unable to construct face attributes")))) - -(defun color-theme-alist (plist) - "Transform PLIST into an alist if it is a plist and return it. -If the first element of PLIST is a cons cell, we just return PLIST, -assuming PLIST to be an alist. If the first element of plist is not a -symbol, this is an error: We cannot distinguish a plist from an ordinary -list, but a list that doesn't start with a symbol is certainly no plist -and no alist. - -This is used to make sure `default-frame-alist' really is an alist and not -a plist. In XEmacs, the alist is deprecated; a plist is used instead." - (cond ((consp (car plist)) - plist) - ((not (symbolp (car plist))) - (error "Wrong type argument: plist, %S" plist)) - ((featurep 'xemacs) - (plist-to-alist plist)))); XEmacs only - -;; Customization - -(defgroup color-theme nil - "Color Themes for Emacs. -A color theme consists of frame parameter settings, variable settings, -and face definitions." - :version "20.6" - :group 'faces) - -(defcustom color-theme-legal-frame-parameters "\\(color\\|mode\\)$" - "Regexp that matches frame parameter names. -Only frame parameter names that match this regexp can be changed as part -of a color theme." - :type '(choice (const :tag "Colors only" "\\(color\\|mode\\)$") - (const :tag "Colors, fonts, and size" - "\\(color\\|mode\\|font\\|height\\|width\\)$") - (regexp :tag "Custom regexp")) - :group 'color-theme - :link '(info-link "(elisp)Window Frame Parameters")) - -(defcustom color-theme-legal-variables "\\(color\\|face\\)$" - "Regexp that matches variable names. -Only variables that match this regexp can be changed as part of a color -theme. In addition to matching this name, the variables have to be user -variables (see function `user-variable-p')." - :type 'regexp - :group 'color-theme) - -(defcustom color-theme-illegal-faces "^w3-" - "Regexp that matches face names forbidden in themes. -The default setting \"^w3-\" excludes w3 faces since these -are created dynamically." - :type 'regexp - :group 'color-theme - :link '(info-link "(elisp)Faces for Font Lock") - :link '(info-link "(elisp)Standard Faces")) - -(defcustom color-theme-illegal-default-attributes '(:family :height :width) - "A list of face properties to be ignored when installing faces. -This prevents Emacs from doing terrible things to your display just because -a theme author likes weird fonts." - :type '(repeat symbol) - :group 'color-theme) - -(defcustom color-theme-is-global t - "*Determines wether a color theme is installed on all frames or not. -If non-nil, color themes will be installed for all frames. -If nil, color themes will be installed for the selected frame only. - -A possible use for this variable is dynamic binding. Here is a larger -example to put in your ~/.emacs; it will make the Blue Sea color theme -the default used for the first frame, and it will create two additional -frames with different color themes. - -setup: - \(require 'color-theme) - ;; set default color theme - \(color-theme-blue-sea) - ;; create some frames with different color themes - \(let ((color-theme-is-global nil)) - \(select-frame (make-frame)) - \(color-theme-gnome2) - \(select-frame (make-frame)) - \(color-theme-standard)) - -Please note that using XEmacs and and a nil value for -color-theme-is-global will ignore any variable settings for the color -theme, since XEmacs doesn't have frame-local variable bindings. - -Also note that using Emacs and a non-nil value for color-theme-is-global -will install a new color theme for all frames. Using XEmacs and a -non-nil value for color-theme-is-global will install a new color theme -only on those frames that are not using a local color theme." - :type 'boolean - :group 'color-theme) - -(defcustom color-theme-is-cumulative t - "*Determines wether new color themes are installed on top of each other. -If non-nil, installing a color theme will undo all settings made by -previous color themes." - :type 'boolean - :group 'color-theme) - -(defcustom color-theme-directory nil - "Directory where we can find additionnal themes (personnal). -Note that there is at least one directory shipped with the official -color-theme distribution where all contributed themes are located. -This official selection can't be changed with that variable. -However, you still can decide to turn it on or off and thus, -not be shown with all themes but yours." - :type '(repeat string) - :group 'color-theme) - -(defcustom color-theme-libraries (directory-files - (file-name-as-directory - (expand-file-name - "themes" - (file-name-directory (locate-library "color-theme")))) - t "^color-theme") - "A list of files, which will be loaded in color-theme-initialize depending -on `color-theme-load-all-themes' value. -This allows a user to prune the default color-themes (which can take a while -to load)." - :type '(repeat string) - :group 'color-theme) - -(defcustom color-theme-load-all-themes t - "When t, load all color-theme theme files -as presented by `color-theme-libraries'. Else -do not load any of this themes." - :type 'boolean - :group 'color-theme) - -(defcustom color-theme-mode-hook nil - "Hook for color-theme-mode." - :type 'hook - :group 'color-theme) - -(defvar color-theme-mode-map - (let ((map (make-sparse-keymap))) - (define-key map (kbd "RET") 'color-theme-install-at-point) - (define-key map (kbd "c") 'list-colors-display) - (define-key map (kbd "d") 'color-theme-describe) - (define-key map (kbd "f") 'list-faces-display) - (define-key map (kbd "i") 'color-theme-install-at-point) - (define-key map (kbd "l") 'color-theme-install-at-point-for-current-frame) - (define-key map (kbd "p") 'color-theme-print) - (define-key map (kbd "q") 'bury-buffer) - (define-key map (kbd "?") 'color-theme-describe) - (if color-theme-xemacs-p - (define-key map (kbd "") 'color-theme-install-at-mouse) - (define-key map (kbd "") 'color-theme-install-at-mouse)) - map) - "Mode map used for the buffer created by `color-theme-select'.") - -(defvar color-theme-initialized nil - "Internal variable determining whether color-theme-initialize has been invoked yet") - -(defvar color-theme-buffer-name "*Color Theme Selection*" - "Name of the color theme selection buffer.") - -(defvar color-theme-original-frame-alist nil - "nil until one of the color themes has been installed.") - -(defvar color-theme-history nil - "List of color-themes called, in reverse order") - -(defcustom color-theme-history-max-length nil - "Max length of history to maintain. -Two other values are acceptable: t means no limit, and -nil means that no history is maintained." - :type '(choice (const :tag "No history" nil) - (const :tag "Unlimited length" t) - integer) - :group 'color-theme) - -(defvar color-theme-counter 0 - "Counter for every addition to `color-theme-history'. -This counts how many themes were installed, regardless -of `color-theme-history-max-length'.") - -(defvar color-theme-entry-path (cond - ;; Emacs 22.x and later - ((lookup-key global-map [menu-bar tools]) - '("tools")) - ;; XEmacs - ((featurep 'xemacs) - (setq tool-entry '("Tools"))) - ;; Emacs < 22 - (t - '("Tools"))) - "Menu tool entry path.") - -(defun color-theme-add-to-history (name) - "Add color-theme NAME to `color-theme-history'." - (setq color-theme-history - (cons (list name color-theme-is-cumulative) - color-theme-history) - color-theme-counter (+ 1 color-theme-counter)) - ;; Truncate the list if necessary. - (when (and (integerp color-theme-history-max-length) - (>= (length color-theme-history) - color-theme-history-max-length)) - (setcdr (nthcdr (1- color-theme-history-max-length) - color-theme-history) - nil))) - -;; (let ((l '(1 2 3 4 5))) -;; (setcdr (nthcdr 2 l) nil) -;; l) - - - -;; List of color themes used to create the *Color Theme Selection* -;; buffer. - -(defvar color-themes - '((color-theme-aalto-dark "Aalto Dark" "Jari Aalto ") - (color-theme-aalto-light "Aalto Light" "Jari Aalto ") - (color-theme-aliceblue "Alice Blue" "Girish Bharadwaj ") - (color-theme-andreas "Andreas" "Andreas Busch ") - (color-theme-arjen "Arjen" "Arjen Wiersma ") - (color-theme-beige-diff "Beige Diff" "Alex Schroeder " t) - (color-theme-bharadwaj "Bharadwaj" "Girish Bharadwaj ") - (color-theme-bharadwaj-slate "Bharadwaj Slate" "Girish Bharadwaj ") - (color-theme-billw "Billw" "Bill White ") - (color-theme-black-on-gray "BlackOnGray" "Sudhir Bhojwani ") - (color-theme-blippblopp "Blipp Blopp" "Thomas Sicheritz-Ponten") - (color-theme-simple-1 "Black" "Jonadab ") - (color-theme-blue-erc "Blue ERC" "Alex Schroeder " t) - (color-theme-blue-gnus "Blue Gnus" "Alex Schroeder " t) - (color-theme-blue-mood "Blue Mood" "Nelson Loyola ") - (color-theme-blue-sea "Blue Sea" "Alex Schroeder ") - (color-theme-calm-forest "Calm Forest" "Artur Hefczyc ") - (color-theme-charcoal-black "Charcoal Black" "Lars Chr. Hausmann ") - (color-theme-goldenrod "Cheap Goldenrod" "Alex Schroeder ") - (color-theme-clarity "Clarity and Beauty" "Richard Wellum ") - (color-theme-classic "Classic" "Frederic Giroud ") - (color-theme-comidia "Comidia" "Marcelo Dias de Toledo ") - (color-theme-jsc-dark "Cooper Dark" "John S Cooper ") - (color-theme-jsc-light "Cooper Light" "John S Cooper ") - (color-theme-jsc-light2 "Cooper Light 2" "John S Cooper ") - (color-theme-dark-blue "Dark Blue" "Chris McMahan ") - (color-theme-dark-blue2 "Dark Blue 2" "Chris McMahan ") - (color-theme-dark-green "Dark Green" "eddy_woody@hotmail.com") - (color-theme-dark-laptop "Dark Laptop" "Laurent Michel ") - (color-theme-deep-blue "Deep Blue" "Tomas Cerha ") - (color-theme-digital-ofs1 "Digital OFS1" "Gareth Owen ") - (color-theme-euphoria "Euphoria" "oGLOWo@oGLOWo.cjb.net") - (color-theme-feng-shui "Feng Shui" "Walter Higgins ") - (color-theme-fischmeister "Fischmeister" - "Sebastian Fischmeister ") - (color-theme-gnome "Gnome" "Jonadab ") - (color-theme-gnome2 "Gnome 2" "Alex Schroeder ") - (color-theme-gray1 "Gray1" "Paul Pulli ") - (color-theme-gray30 "Gray30" "Girish Bharadwaj ") - (color-theme-kingsajz "Green Kingsajz" "Olgierd `Kingsajz' Ziolko ") - (color-theme-greiner "Greiner" "Kevin Greiner ") - (color-theme-gtk-ide "GTK IDE" "Gordon Messmer ") - (color-theme-high-contrast "High Contrast" "Alex Schroeder ") - (color-theme-hober "Hober" "Edward O'Connor ") - (color-theme-infodoc "Infodoc" "Frederic Giroud ") - (color-theme-jb-simple "JB Simple" "jeff@dvns.com") - (color-theme-jedit-grey "Jedit Grey" "Gordon Messmer ") - (color-theme-jonadabian "Jonadab" "Jonadab ") - (color-theme-jonadabian-slate "Jonadabian Slate" "Jonadab ") - (color-theme-katester "Katester" "Higgins_Walter@emc.com") - (color-theme-late-night "Late Night" "Alex Schroeder ") - (color-theme-lawrence "Lawrence" "lawrence mitchell ") - (color-theme-lethe "Lethe" "Ivica Loncar ") - (color-theme-ld-dark "Linh Dang Dark" "Linh Dang ") - (color-theme-marine "Marine" "Girish Bharadwaj ") - (color-theme-matrix "Matrix" "Walter Higgins ") - (color-theme-marquardt "Marquardt" "Colin Marquardt ") - (color-theme-midnight "Midnight" "Gordon Messmer ") - (color-theme-mistyday "Misty Day" "Hari Kumar ") - (color-theme-montz "Montz" "Brady Montz ") - (color-theme-oswald "Oswald" "Tom Oswald ") - (color-theme-parus "Parus" "Jon K Hellan ") - (color-theme-pierson "Pierson" "Dan L. Pierson ") - (color-theme-ramangalahy "Ramangalahy" "Solofo Ramangalahy ") - (color-theme-raspopovic "Raspopovic" "Pedja Raspopovic ") - (color-theme-renegade "Renegade" "Dave Benjamin ") - (color-theme-resolve "Resolve" "Damien Elmes ") - (color-theme-retro-green "Retro Green" "Alex Schroeder ") - (color-theme-retro-orange "Retro Orange" "Alex Schroeder ") - (color-theme-robin-hood "Robin Hood" "Alex Schroeder ") - (color-theme-rotor "Rotor" "Jinwei Shen ") - (color-theme-ryerson "Ryerson" "Luis Fernandes ") - (color-theme-salmon-diff "Salmon Diff" "Alex Schroeder " t) - (color-theme-salmon-font-lock "Salmon Font-Lock" "Alex Schroeder " t) - (color-theme-scintilla "Scintilla" "Gordon Messmer ") - (color-theme-shaman "Shaman" "shaman@interdon.net") - (color-theme-sitaramv-nt "Sitaram NT" - "Sitaram Venkatraman ") - (color-theme-sitaramv-solaris "Sitaram Solaris" - "Sitaram Venkatraman ") - (color-theme-snow "Snow" "Nicolas Rist ") - (color-theme-snowish "Snowish" "Girish Bharadwaj ") - (color-theme-standard-ediff "Standard Ediff" "Emacs Team, added by Alex Schroeder " t) - (color-theme-standard "Standard Emacs 20" "Emacs Team, added by Alex Schroeder ") - (color-theme-emacs-21 "Standard Emacs 21" "Emacs Team, added by Alex Schroeder ") - (color-theme-emacs-nw "Standard Emacs 21 No Window" "Emacs Team, added by D. Goel ") - (color-theme-xemacs "Standard XEmacs" "XEmacs Team, added by Alex Schroeder ") - (color-theme-subtle-blue "Subtle Blue" "Chris McMahan ") - (color-theme-subtle-hacker "Subtle Hacker" "Colin Walters ") - (color-theme-taming-mr-arneson "Taming Mr Arneson" "Erik Arneson ") - (color-theme-taylor "Taylor" "Art Taylor ") - (color-theme-tty-dark "TTY Dark" "O Polite ") - (color-theme-vim-colors "Vim Colors" "Michael Soulier ") - (color-theme-whateveryouwant "Whateveryouwant" "Fabien Penso , color by Scott Jaderholm ") - (color-theme-wheat "Wheat" "Alex Schroeder ") - (color-theme-pok-wob "White On Black" "S. Pokrovsky ") - (color-theme-pok-wog "White On Grey" "S. Pokrovsky ") - (color-theme-word-perfect "WordPerfect" "Thomas Gehrlein ") - (color-theme-xp "XP" "Girish Bharadwaj ")) - "List of color themes. - -Each THEME is itself a three element list (FUNC NAME MAINTAINER &optional LIBRARY). - -FUNC is a color theme function which does the setup. The function -FUNC may call `color-theme-install'. The color theme function may be -interactive. - -NAME is the name of the theme and MAINTAINER is the name and/or email of -the maintainer of the theme. - -If LIBRARY is non-nil, the color theme will be considered a library and -may not be shown in the default menu. - -If you defined your own color theme and want to add it to this list, -use something like this: - - (add-to-list 'color-themes '(color-theme-gnome2 \"Gnome2\" \"Alex\"))") - -;;; Functions - -(defun color-theme-backup-original-values () - "Back up the original `default-frame-alist'. -The values are stored in `color-theme-original-frame-alist' on -startup." - (if (null color-theme-original-frame-alist) - (setq color-theme-original-frame-alist - (color-theme-filter (frame-parameters (selected-frame)) - color-theme-legal-frame-parameters)))) -(add-hook 'after-init-hook 'color-theme-backup-original-values) - -;;;###autoload -(defun color-theme-select (&optional arg) - "Displays a special buffer for selecting and installing a color theme. -With optional prefix ARG, this buffer will include color theme libraries -as well. A color theme library is in itself not complete, it must be -used as part of another color theme to be useful. Thus, color theme -libraries are mainly useful for color theme authors." - (interactive "P") - (unless color-theme-initialized (color-theme-initialize)) - (switch-to-buffer (get-buffer-create color-theme-buffer-name)) - (setq buffer-read-only nil) - (erase-buffer) - ;; recreate the snapshot if necessary - (when (or (not (assq 'color-theme-snapshot color-themes)) - (not (commandp 'color-theme-snapshot))) - (fset 'color-theme-snapshot (color-theme-make-snapshot)) - (setq color-themes (delq (assq 'color-theme-snapshot color-themes) - color-themes) - color-themes (delq (assq 'bury-buffer color-themes) - color-themes) - color-themes (append '((color-theme-snapshot - "[Reset]" "Undo changes, if possible.") - (bury-buffer - "[Quit]" "Bury this buffer.")) - color-themes))) - (dolist (theme color-themes) - (let ((func (nth 0 theme)) - (name (nth 1 theme)) - (author (nth 2 theme)) - (library (nth 3 theme)) - (desc)) - (when (or (not library) arg) - (setq desc (format "%-23s %s" - (if library (concat name " [lib]") name) - author)) - (put-text-property 0 (length desc) 'color-theme func desc) - (put-text-property 0 (length name) 'face 'bold desc) - (put-text-property 0 (length name) 'mouse-face 'highlight desc) - (insert desc) - (newline)))) - (goto-char (point-min)) - (setq buffer-read-only t) - (set-buffer-modified-p nil) - (color-theme-mode)) - -(when (require 'easymenu) - (easy-menu-add-item nil color-theme-entry-path "--") - (easy-menu-add-item nil color-theme-entry-path - ["Color Themes" color-theme-select t])) - -(defun color-theme-mode () - "Major mode to select and install color themes. - -Use \\[color-theme-install-at-point] to install a color theme on all frames. -Use \\[color-theme-install-at-point-for-current-frame] to install a color theme for the current frame only. - -The changes are applied on top of your current setup. This is a -feature. - -Some of the themes should be considered extensions to the standard color -theme: they modify only a limited number of faces and variables. To -verify the final look of a color theme, install the standard color -theme, then install the other color theme. This is a feature. It allows -you to mix several color themes. - -Use \\[color-theme-describe] to read more about the color theme function at point. -If you want to install the color theme permanently, put the call to the -color theme function into your ~/.emacs: - - \(require 'color-theme) - \(color-theme-gnome2) - -If you worry about the size of color-theme.el: You are right. Use -\\[color-theme-print] to print the current color theme and save the resulting buffer -as ~/.emacs-color-theme. Now you can install only this specific color -theme in your .emacs: - - \(load-file \"~/.emacs-color-theme\") - \(my-color-theme) - -The Emacs menu is not affected by color themes within Emacs. Depending -on the toolkit you used to compile Emacs, you might have to set specific -X ressources. See the info manual for more information. Here is an -example ~/.Xdefaults fragment: - - emacs*Background: DarkSlateGray - emacs*Foreground: wheat - -\\{color-theme-mode-map} - -The color themes are listed in `color-themes', which see." - (kill-all-local-variables) - (setq major-mode 'color-theme-mode) - (setq mode-name "Color Themes") - (use-local-map color-theme-mode-map) - (when (functionp 'goto-address); Emacs - (goto-address)) - (run-hooks 'color-theme-mode-hook)) - -;;; Commands in Color Theme Selection mode - -;;;###autoload -(defun color-theme-describe () - "Describe color theme listed at point. -This shows the documentation of the value of text-property color-theme -at point. The text-property color-theme should be a color theme -function. See `color-themes'." - (interactive) - (describe-function (get-text-property (point) 'color-theme))) - -;;;###autoload -(defun color-theme-install-at-mouse (event) - "Install color theme clicked upon using the mouse. -First argument EVENT is used to set point. Then -`color-theme-install-at-point' is called." - (interactive "e") - (save-excursion - (mouse-set-point event) - (color-theme-install-at-point))) - -;;;autoload -(defun color-theme-install-at-point () - "Install color theme at point. -This calls the value of the text-property `color-theme' at point. -The text-property `color-theme' should be a color theme function. -See `color-themes'." - (interactive) - (let ((func (get-text-property (point) 'color-theme))) - ;; install theme - (if func - (funcall func)) - ;; If goto-address is being used, remove all overlays in the current - ;; buffer and run it again. The face used for the mail addresses in - ;; the the color theme selection buffer is based on the variable - ;; goto-address-mail-face. Changes in that variable will not affect - ;; existing overlays, however, thereby confusing users. - (when (functionp 'goto-address); Emacs - (dolist (o (overlays-in (point-min) (point-max))) - (delete-overlay o)) - (goto-address)))) - -;;;###autoload -(defun color-theme-install-at-point-for-current-frame () - "Install color theme at point for current frame only. -Binds `color-theme-is-global' to nil and calls -`color-theme-install-at-point'." - (interactive) - (let ((color-theme-is-global nil)) - (color-theme-install-at-point))) - - - -;; Taking a snapshot of the current color theme and pretty printing it. - -(defun color-theme-filter (old-list regexp &optional exclude) - "Filter OLD-LIST. -The resulting list will be newly allocated and contains only elements -with names matching REGEXP. OLD-LIST may be a list or an alist. If you -want to filter a plist, use `color-theme-alist' to convert your plist to -an alist, first. - -If the optional argument EXCLUDE is non-nil, then the sense is -reversed: only non-matching elements will be retained." - (let (elem new-list) - (dolist (elem old-list) - (setq name (symbol-name (if (listp elem) (car elem) elem))) - (when (or (and (not exclude) - (string-match regexp name)) - (and exclude - (not (string-match regexp name)))) - ;; Now make sure that if elem is a cons cell, and the cdr of - ;; that cons cell is a string, then we need a *new* string in - ;; the new list. Having a new cons cell is of no use because - ;; modify-frame-parameters will modify this string, thus - ;; modifying our color theme functions! - (when (and (consp elem) - (stringp (cdr elem))) - (setq elem (cons (car elem) - (copy-sequence (cdr elem))))) - ;; Now store elem - (setq new-list (cons elem new-list)))) - new-list)) - -(defun color-theme-spec-filter (spec) - "Filter the attributes in SPEC. -This makes sure that SPEC has the form ((t (PLIST ...))). -Only properties not in `color-theme-illegal-default-attributes' -are included in the SPEC returned." - (let ((props (cadar spec)) - result prop val) - (while props - (setq prop (nth 0 props) - val (nth 1 props) - props (nthcdr 2 props)) - (unless (memq prop color-theme-illegal-default-attributes) - (setq result (cons val (cons prop result))))) - `((t ,(nreverse result))))) - -;; (color-theme-spec-filter '((t (:background "blue3")))) -;; (color-theme-spec-filter '((t (:stipple nil :background "Black" :foreground "SteelBlue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width semi-condensed :family "misc-fixed")))) - -(defun color-theme-plist-delete (plist prop) - "Delete property PROP from property list PLIST by side effect. -This modifies PLIST." - ;; deal with prop at the start - (while (eq (car plist) prop) - (setq plist (cddr plist))) - ;; deal with empty plist - (when plist - (let ((lastcell (cdr plist)) - (l (cddr plist))) - (while l - (if (eq (car l) prop) - (progn - (setq l (cddr l)) - (setcdr lastcell l)) - (setq lastcell (cdr l) - l (cddr l)))))) - plist) - -;; (color-theme-plist-delete '(a b c d e f g h) 'a) -;; (color-theme-plist-delete '(a b c d e f g h) 'b) -;; (color-theme-plist-delete '(a b c d e f g h) 'c) -;; (color-theme-plist-delete '(a b c d e f g h) 'g) -;; (color-theme-plist-delete '(a b c d c d e f g h) 'c) -;; (color-theme-plist-delete '(a b c d e f c d g h) 'c) - -(if (or (featurep 'xemacs) - (< emacs-major-version 21)) - (defalias 'color-theme-spec-compat 'identity) - (defun color-theme-spec-compat (spec) - "Filter the attributes in SPEC such that is is never invalid. -Example: Eventhough :bold works in Emacs, it is not recognized by -`customize-face' -- and then the face is uncustomizable. This -function replaces a :bold attribute with the corresponding :weight -attribute, if there is no :weight, or deletes it. This undoes the -doings of `color-theme-spec-canonical-font', more or less." - (let ((props (cadar spec))) - (when (plist-member props :bold) - (setq props (color-theme-plist-delete props :bold)) - (unless (plist-member props :weight) - (setq props (plist-put props :weight 'bold)))) - (when (plist-member props :italic) - (setq props (color-theme-plist-delete props :italic)) - (unless (plist-member props :slant) - (setq props (plist-put props :slant 'italic)))) - `((t ,props))))) - -;; (color-theme-spec-compat '((t (:foreground "blue" :bold t)))) -;; (color-theme-spec-compat '((t (:bold t :foreground "blue" :weight extra-bold)))) -;; (color-theme-spec-compat '((t (:italic t :foreground "blue")))) -;; (color-theme-spec-compat '((t (:slant oblique :italic t :foreground "blue")))) - -(defun color-theme-spec-canonical-font (atts) - "Add :bold and :italic attributes if necessary." - ;; add these to the front of atts -- this will keept the old value for - ;; customize-face in Emacs 21. - (when (and (memq (plist-get atts :weight) - '(ultra-bold extra-bold bold semi-bold)) - (not (plist-get atts :bold))) - (setq atts (cons :bold (cons t atts)))) - (when (and (not (memq (plist-get atts :slant) - '(normal nil))) - (not (plist-get atts :italic))) - (setq atts (cons :italic (cons t atts)))) - atts) -;; (color-theme-spec-canonical-font (color-theme-face-attr-construct 'bold (selected-frame))) -;; (defface foo '((t (:weight extra-bold))) "foo") -;; (color-theme-spec-canonical-font (color-theme-face-attr-construct 'foo (selected-frame))) -;; (face-spec-set 'foo '((t (:weight extra-bold))) nil) -;; (face-spec-set 'foo '((t (:bold t))) nil) -;; (face-spec-set 'foo '((t (:bold t :weight extra-bold))) nil) - -;; Handle :height according to NEWS file for Emacs 21 -(defun color-theme-spec-resolve-height (old new) - "Return the new height given OLD and NEW height. -OLD is the current setting, NEW is the setting inherited from." - (cond ((not old) - new) - ((integerp old) - old) - ((and (floatp old) - (integerp new)) - (round (* old new))) - ((and (floatp old) - (floatp new)) - (* old new)) - ((and (functionp old) - (integerp new)) - (round (funcall old new))) - ((and (functionp old) - (float new)) - `(lambda (f) (* (funcall ,old f) ,new))) - ((and (functionp old) - (functionp new)) - `(lambda (f) (* (funcall ,old (funcall ,new f))))) - (t - (error "Illegal :height attributes: %S or %S" old new)))) -;; (color-theme-spec-resolve-height 12 1.2) -;; (color-theme-spec-resolve-height 1.2 1.2) -;; (color-theme-spec-resolve-height 1.2 12) -;; (color-theme-spec-resolve-height 1.2 'foo) -;; (color-theme-spec-resolve-height (lambda (f) (* 2 f)) 5) -;; (color-theme-spec-resolve-height (lambda (f) (* 2 f)) 2.0) -;; the following lambda is the result from the above calculation -;; (color-theme-spec-resolve-height (lambda (f) (* (funcall (lambda (f) (* 2 f)) f) 2.0)) 5) - -(defun color-theme-spec-resolve-inheritance (atts) - "Resolve all occurences of the :inherit attribute." - (let ((face (plist-get atts :inherit))) - ;; From the Emacs 21 NEWS file: "Attributes from inherited faces are - ;; merged into the face like an underlying face would be." -- - ;; therefore properties of the inherited face only add missing - ;; attributes. - (when face - ;; remove :inherit face from atts -- this assumes only one - ;; :inherit attribute. - (setq atts (delq ':inherit (delq face atts))) - (let ((more-atts (color-theme-spec-resolve-inheritance - (color-theme-face-attr-construct - face (selected-frame)))) - att val) - (while more-atts - (setq att (car more-atts) - val (cadr more-atts) - more-atts (cddr more-atts)) - ;; Color-theme assumes that no value is ever 'unspecified. - (cond ((eq att ':height); cumulative effect! - (setq atts (plist-put atts - ':height - (color-theme-spec-resolve-height - (plist-get atts att) - val)))) - ;; Default: Only put if it has not been specified before. - ((not (plist-get atts att)) - (setq atts (cons att (cons val atts)))) - -)))) - atts)) -;; (color-theme-spec-resolve-inheritance '(:bold t)) -;; (color-theme-spec-resolve-inheritance '(:bold t :foreground "blue")) -;; (color-theme-face-attr-construct 'font-lock-comment-face (selected-frame)) -;; (color-theme-spec-resolve-inheritance '(:bold t :inherit font-lock-comment-face)) -;; (color-theme-spec-resolve-inheritance '(:bold t :foreground "red" :inherit font-lock-comment-face)) -;; (color-theme-face-attr-construct 'Info-title-2-face (selected-frame)) -;; (color-theme-face-attr-construct 'Info-title-3-face (selected-frame)) -;; (color-theme-face-attr-construct 'Info-title-4-face (selected-frame)) -;; (color-theme-spec-resolve-inheritance '(:inherit Info-title-2-face)) - -;; The :inverse-video attribute causes Emacs to swap foreground and -;; background colors, XEmacs does not. Therefore, if anybody chooses -;; the inverse-video attribute, we 1. swap the colors ourselves in Emacs -;; and 2. we remove the inverse-video attribute in Emacs and XEmacs. -;; Inverse-video is only useful on a monochrome tty. -(defun color-theme-spec-maybe-invert (atts) - "Remove the :inverse-video attribute from ATTS. -If ATTS contains :inverse-video t, remove it and swap foreground and -background color. Return ATTS." - (let ((inv (plist-get atts ':inverse-video))) - (if inv - (let (result att) - (while atts - (setq att (car atts) - atts (cdr atts)) - (cond ((and (eq att :foreground) (not color-theme-xemacs-p)) - (setq result (cons :background result))) - ((and (eq att :background) (not color-theme-xemacs-p)) - (setq result (cons :foreground result))) - ((eq att :inverse-video) - (setq atts (cdr atts))); this prevents using dolist - (t - (setq result (cons att result))))) - (nreverse result)) - ;; else - atts))) -;; (color-theme-spec-maybe-invert '(:bold t)) -;; (color-theme-spec-maybe-invert '(:foreground "blue")) -;; (color-theme-spec-maybe-invert '(:background "red")) -;; (color-theme-spec-maybe-invert '(:inverse-video t)) -;; (color-theme-spec-maybe-invert '(:inverse-video t :foreground "red")) -;; (color-theme-spec-maybe-invert '(:inverse-video t :background "red")) -;; (color-theme-spec-maybe-invert '(:inverse-video t :background "red" :foreground "blue" :bold t)) -;; (color-theme-spec-maybe-invert '(:inverse-video nil :background "red" :foreground "blue" :bold t)) - -(defun color-theme-spec (face) - "Return a list for FACE which has the form (FACE SPEC). -See `defface' for the format of SPEC. In this case we use only one -DISPLAY, t, and determine ATTS using `color-theme-face-attr-construct'. -If ATTS is nil, (nil) is used instead. - -If ATTS contains :inverse-video t, we remove it and swap foreground and -background color using `color-theme-spec-maybe-invert'. We do this -because :inverse-video is handled differently in Emacs and XEmacs. We -will loose on a tty without colors, because in that situation, -:inverse-video means something." - (let ((atts - (color-theme-spec-canonical-font - (color-theme-spec-maybe-invert - (color-theme-spec-resolve-inheritance - (color-theme-face-attr-construct face (selected-frame))))))) - (if atts - `(,face ((t ,atts))) - `(,face ((t (nil))))))) - -(defun color-theme-get-params () - "Return a list of frame parameter settings usable in a color theme. -Such an alist may be installed by `color-theme-install-frame-params'. The -frame parameters returned must match `color-theme-legal-frame-parameters'." - (let ((params (color-theme-filter (frame-parameters (selected-frame)) - color-theme-legal-frame-parameters))) - (sort params (lambda (a b) (string< (symbol-name (car a)) - (symbol-name (car b))))))) - -(defun color-theme-get-vars () - "Return a list of variable settings usable in a color theme. -Such an alist may be installed by `color-theme-install-variables'. -The variable names must match `color-theme-legal-variables', and the -variable must be a user variable according to `user-variable-p'." - (let ((vars) - (val)) - (mapatoms (lambda (v) - (and (boundp v) - (user-variable-p v) - (string-match color-theme-legal-variables - (symbol-name v)) - (setq val (eval v)) - (add-to-list 'vars (cons v val))))) - (sort vars (lambda (a b) (string< (car a) (car b)))))) - -(defun color-theme-print-alist (alist) - "Print ALIST." - (insert "\n " (if alist "(" "nil")) - (dolist (elem alist) - (when (= (preceding-char) ?\)) - (insert "\n ")) - (prin1 elem (current-buffer))) - (when (= (preceding-char) ?\)) (insert ")"))) - -(defun color-theme-get-faces () - "Return a list of faces usable in a color theme. -Such an alist may be installed by `color-theme-install-faces'. The -faces returned must not match `color-theme-illegal-faces'." - (let ((faces (color-theme-filter (face-list) color-theme-illegal-faces t))) - ;; default face must come first according to comments in - ;; custom-save-faces, the rest is to be sorted by name - (cons 'default (sort (delq 'default faces) 'string-lessp)))) - -(defun color-theme-get-face-definitions () - "Return face settings usable in a color-theme." - (let ((faces (color-theme-get-faces))) - (mapcar 'color-theme-spec faces))) - -(defun color-theme-print-faces (faces) - "Print face settings for all faces returned by `color-theme-get-faces'." - (when faces - (insert "\n ")) - (dolist (face faces) - (when (= (preceding-char) ?\)) - (insert "\n ")) - (prin1 face (current-buffer)))) - -(defun color-theme-reset-faces () - "Reset face settings for all faces returned by `color-theme-get-faces'." - (let ((faces (color-theme-get-faces)) - (face) (spec) (entry) - (frame (if color-theme-is-global nil (selected-frame)))) - (while faces - (setq entry (color-theme-spec (car faces))) - (setq face (nth 0 entry)) - (setq spec '((t (nil)))) - (setq faces (cdr faces)) - (if (functionp 'face-spec-reset-face) - (face-spec-reset-face face frame) - (face-spec-set face spec frame) - (if color-theme-is-global - (put face 'face-defface-spec spec)))))) - -(defun color-theme-print-theme (func doc params vars faces) - "Print a theme into the current buffer. -FUNC is the function name, DOC the doc string, PARAMS the -frame parameters, VARS the variable bindings, and FACES -the list of faces and their specs." - (insert "(defun " (symbol-name func) " ()\n" - " \"" doc "\"\n" - " (interactive)\n" - " (color-theme-install\n" - " '(" (symbol-name func)) - ;; alist of frame parameters - (color-theme-print-alist params) - ;; alist of variables - (color-theme-print-alist vars) - ;; remaining elements of snapshot: face specs - (color-theme-print-faces faces) - (insert ")))\n") - (insert "(add-to-list 'color-themes '(" (symbol-name func) " " - " \"THEME NAME\" \"YOUR NAME\"))") - (goto-char (point-min))) - -;;;###autoload -(defun color-theme-print (&optional buf) - "Print the current color theme function. - -You can contribute this function to or -paste it into your .emacs file and call it. That should recreate all -the settings necessary for your color theme. - -Example: - - \(require 'color-theme) - \(defun my-color-theme () - \"Color theme by Alex Schroeder, created 2000-05-17.\" - \(interactive) - \(color-theme-install - '(... - ... - ...))) - \(my-color-theme) - -If you want to use a specific color theme function, you can call the -color theme function in your .emacs directly. - -Example: - - \(require 'color-theme) - \(color-theme-gnome2)" - (interactive) - (message "Pretty printing current color theme function...") - (switch-to-buffer (if buf - buf - (get-buffer-create "*Color Theme*"))) - (unless buf - (setq buffer-read-only nil) - (erase-buffer)) - ;; insert defun - (insert "(eval-when-compile" - " (require 'color-theme))\n") - (color-theme-print-theme 'my-color-theme - (concat "Color theme by " - (if (string= "" user-full-name) - (user-login-name) - user-full-name) - ", created " (format-time-string "%Y-%m-%d") ".") - (color-theme-get-params) - (color-theme-get-vars) - (mapcar 'color-theme-spec (color-theme-get-faces))) - (unless buf - (emacs-lisp-mode)) - (goto-char (point-min)) - (message "Pretty printing current color theme function... done")) - -(defun color-theme-analyze-find-theme (code) - "Find the sexpr that calls `color-theme-install'." - (let (theme) - (while (and (not theme) code) - (when (eq (car code) 'color-theme-install) - (setq theme code)) - (when (listp (car code)) - (setq theme (color-theme-analyze-find-theme (car code)))) - (setq code (cdr code))) - theme)) - -;; (equal (color-theme-analyze-find-theme -;; '(defun color-theme-blue-eshell () -;; "Color theme for eshell faces only." -;; (color-theme-install -;; '(color-theme-blue-eshell -;; nil -;; (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed")))) -;; (eshell-ls-backup-face ((t (:foreground "Grey")))))))) -;; '(color-theme-install -;; (quote -;; (color-theme-blue-eshell -;; nil -;; (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed")))) -;; (eshell-ls-backup-face ((t (:foreground "Grey"))))))))) - -(defun color-theme-analyze-add-face (a b regexp faces) - "If only one of A or B are in FACES, the other is added, and FACES is returned. -If REGEXP is given, this is only done if faces contains a match for regexps." - (when (or (not regexp) - (catch 'found - (dolist (face faces) - (when (string-match regexp (symbol-name (car face))) - (throw 'found t))))) - (let ((face-a (assoc a faces)) - (face-b (assoc b faces))) - (if (and face-a (not face-b)) - (setq faces (cons (list b (nth 1 face-a)) - faces)) - (if (and (not face-a) face-b) - (setq faces (cons (list a (nth 1 face-b)) - faces)))))) - faces) - -;; (equal (color-theme-analyze-add-face -;; 'blue 'violet nil -;; '((blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t)))))) -;; '((violet ((t (:foreground "blue")))) -;; (blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t)))))) -;; (equal (color-theme-analyze-add-face -;; 'violet 'blue nil -;; '((blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t)))))) -;; '((violet ((t (:foreground "blue")))) -;; (blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t)))))) -;; (equal (color-theme-analyze-add-face -;; 'violet 'blue "foo" -;; '((blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t)))))) -;; '((blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t)))))) -;; (equal (color-theme-analyze-add-face -;; 'violet 'blue "blue" -;; '((blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t)))))) -;; '((violet ((t (:foreground "blue")))) -;; (blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t)))))) - -(defun color-theme-analyze-add-faces (faces) - "Add missing faces to FACES and return it." - ;; The most important thing is to add missing faces for the other - ;; editor. These are the most important faces to check. The - ;; following rules list two faces, A and B. If either of the two is - ;; part of the theme, the other must be, too. The optional third - ;; argument specifies a regexp. Only if an existing face name - ;; matches this regexp, is the rule applied. - (let ((rules '((font-lock-builtin-face font-lock-reference-face) - (font-lock-doc-face font-lock-doc-string-face) - (font-lock-constant-face font-lock-preprocessor-face) - ;; In Emacs 21 `modeline' is just an alias for - ;; `mode-line'. I recommend the use of - ;; `modeline' until further notice. - (modeline mode-line) - (modeline modeline-buffer-id) - (modeline modeline-mousable) - (modeline modeline-mousable-minor-mode) - (region primary-selection) - (region zmacs-region) - (font-lock-string-face dired-face-boring "^dired") - (font-lock-function-name-face dired-face-directory "^dired") - (default dired-face-executable "^dired") - (font-lock-warning-face dired-face-flagged "^dired") - (font-lock-warning-face dired-face-marked "^dired") - (default dired-face-permissions "^dired") - (default dired-face-setuid "^dired") - (default dired-face-socket "^dired") - (font-lock-keyword-face dired-face-symlink "^dired") - (tool-bar menu)))) - (dolist (rule rules) - (setq faces (color-theme-analyze-add-face - (nth 0 rule) (nth 1 rule) (nth 2 rule) faces)))) - ;; The `fringe' face defines what the left and right borders of the - ;; frame look like in Emacs 21. To give them default fore- and - ;; background colors, use (fringe ((t (nil)))) in your color theme. - ;; Usually it makes more sense to choose a color slightly lighter or - ;; darker from the default background. - (unless (assoc 'fringe faces) - (setq faces (cons '(fringe ((t (nil)))) faces))) - ;; The tool-bar should not be part of the frame-parameters, since it - ;; should not appear or disappear depending on the color theme. The - ;; apppearance of the toolbar, however, can be changed by the color - ;; theme. For Emacs 21, use the `tool-bar' face. The easiest way - ;; to do this is to give it the default fore- and background colors. - ;; This can be achieved using (tool-bar ((t (nil)))) in the theme. - ;; Usually it makes more sense, however, to provide the same colors - ;; as used in the `menu' face, and to specify a :box attribute. In - ;; order to alleviate potential Emacs/XEmacs incompatibilities, - ;; `toolbar' will be defined as an alias for `tool-bar' if it does - ;; not exist, and vice-versa. This is done eventhough the face - ;; `toolbar' seems to have no effect on XEmacs. If you look at - ;; XEmacs lisp/faces.el, however, you will find that it is in fact - ;; referenced for XPM stuff. - (unless (assoc 'tool-bar faces) - (setq faces (cons '(tool-bar ((t (nil)))) faces))) - ;; Move the default face back to the front, and sort the rest. - (unless (eq (caar faces) 'default) - (let ((face (assoc 'default faces))) - (setq faces (cons face - (sort (delete face faces) - (lambda (a b) - (string-lessp (car a) (car b)))))))) - faces) - -(defun color-theme-analyze-remove-heights (faces) - "Remove :height property where it is an integer and return FACES." - ;; I don't recommend making font sizes part of a color theme. Most - ;; users would be surprised to see their font sizes change when they - ;; install a color-theme. Therefore, remove all :height attributes - ;; if the value is an integer. If the value is a float, this is ok - ;; -- the value is relative to the default height. One notable - ;; exceptions is for a color-theme created for visually impaired - ;; people. These *must* use a larger font in order to be usable. - (let (result) - (dolist (face faces) - (let ((props (cadar (nth 1 face)))) - (if (and (plist-member props :height) - (integerp (plist-get props :height))) - (setq props (color-theme-plist-delete props :height) - result (cons (list (car face) `((t ,props))) - result)) - (setq result (cons face result))))) - (nreverse result))) - -;; (equal (color-theme-analyze-remove-heights -;; '((blue ((t (:foreground "blue" :height 2)))) -;; (bold ((t (:bold t :height 1.0)))))) -;; '((blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t :height 1.0)))))) - -;;;###autoload -(defun color-theme-analyze-defun () - "Once you have a color-theme printed, check for missing faces. -This is used by maintainers who receive a color-theme submission -and want to make sure it follows the guidelines by the color-theme -author." - ;; The support for :foreground and :background attributes works for - ;; Emacs 20 and 21 as well as for XEmacs. :inverse-video is taken - ;; care of while printing color themes. - (interactive) - ;; Parse the stuff and find the call to color-theme-install - (save-excursion - (save-restriction - (narrow-to-defun) - ;; define the function - (eval-defun nil) - (goto-char (point-min)) - (let* ((code (read (current-buffer))) - (theme (color-theme-canonic - (eval - (cadr - (color-theme-analyze-find-theme - code))))) - (func (color-theme-function theme)) - (doc (documentation func t)) - (variables (color-theme-variables theme)) - (faces (color-theme-faces theme)) - (params (color-theme-frame-params theme))) - (setq faces (color-theme-analyze-remove-heights - (color-theme-analyze-add-faces faces))) - ;; Remove any variable bindings of faces that point to their - ;; symbol? Perhaps not, because another theme might want to - ;; change this, so it is important to be able to reset them. - ;; (let (result) - ;; (dolist (var variables) - ;; (unless (eq (car var) (cdr var)) - ;; (setq result (cons var result)))) - ;; (setq variables (nreverse result))) - ;; Now modify the theme directly. - (setq theme (color-theme-analyze-find-theme code)) - (setcdr (cadadr theme) (list params variables faces)) - (message "Pretty printing analysed color theme function...") - (with-current-buffer (get-buffer-create "*Color Theme*") - (setq buffer-read-only nil) - (erase-buffer) - ;; insert defun - (color-theme-print-theme func doc params variables faces) - (emacs-lisp-mode)) - (message "Pretty printing analysed color theme function... done") - (ediff-buffers (current-buffer) - (get-buffer "*Color Theme*")))))) - -;;; Creating a snapshot of the current color theme - -(defun color-theme-snapshot nil) - -;;;###autoload -(defun color-theme-make-snapshot () - "Return the definition of the current color-theme. -The function returned will recreate the color-theme in use at the moment." - (eval `(lambda () - "The color theme in use when the selection buffer was created. -\\[color-theme-select] creates the color theme selection buffer. At the -same time, this snapshot is created as a very simple undo mechanism. -The snapshot is created via `color-theme-snapshot'." - (interactive) - (color-theme-install - '(color-theme-snapshot - ;; alist of frame parameters - ,(color-theme-get-params) - ;; alist of variables - ,(color-theme-get-vars) - ;; remaining elements of snapshot: face specs - ,@(color-theme-get-face-definitions)))))) - - - -;;; Handling the various parts of a color theme install - -(defvar color-theme-frame-param-frobbing-rules - '((foreground-color default foreground) - (background-color default background)) - "List of rules to use when frobbing faces based on frame parameters. -This is only necessary for XEmacs, because in Emacs 21 changing the -frame paramters automatically affects the relevant faces.") - -;; fixme: silent the bytecompiler with set-face-property -(defun color-theme-frob-faces (params) - "Change certain faces according to PARAMS. -This uses `color-theme-frame-param-frobbing-rules'." - (dolist (rule color-theme-frame-param-frobbing-rules) - (let* ((param (nth 0 rule)) - (face (nth 1 rule)) - (prop (nth 2 rule)) - (val (cdr (assq param params))) - (frame (if color-theme-is-global nil (selected-frame)))) - (when val - (set-face-property face prop val frame))))) - -(defun color-theme-alist-reduce (old-list) - "Reduce OLD-LIST. -The resulting list will be newly allocated and will not contain any elements -with duplicate cars. This will speed the installation of new themes by -only installing unique attributes." - (let (new-list) - (dolist (elem old-list) - (when (not (assq (car elem) new-list)) - (setq new-list (cons elem new-list)))) - new-list)) - -(defun color-theme-install-frame-params (params) - "Change frame parameters using alist PARAMETERS. - -If `color-theme-is-global' is non-nil, all frames are modified using -`modify-frame-parameters' and the PARAMETERS are prepended to -`default-frame-alist'. The value of `initial-frame-alist' is not -modified. If `color-theme-is-global' is nil, only the selected frame is -modified. If `color-theme-is-cumulative' is nil, the frame parameters -are restored from `color-theme-original-frame-alist'. - -If the current frame parameters have a parameter `minibuffer' with -value `only', then the frame parameters are not installed, since this -indicates a dedicated minibuffer frame. - -Called from `color-theme-install'." - (setq params (color-theme-filter - params color-theme-legal-frame-parameters)) - ;; We have a new list in params now, therefore we may use - ;; destructive nconc. - (if color-theme-is-global - (let ((frames (frame-list))) - (if (or color-theme-is-cumulative - (null color-theme-original-frame-alist)) - (setq default-frame-alist - (append params (color-theme-alist default-frame-alist)) - minibuffer-frame-alist - (append params (color-theme-alist minibuffer-frame-alist))) - (setq default-frame-alist - (append params color-theme-original-frame-alist) - minibuffer-frame-alist - (append params (color-theme-alist minibuffer-frame-alist)))) - (setq default-frame-alist - (color-theme-alist-reduce default-frame-alist) - minibuffer-frame-alist - (color-theme-alist-reduce minibuffer-frame-alist)) - (dolist (frame frames) - (let ((params (if (eq 'only (cdr (assq 'minibuffer (frame-parameters frame)))) - minibuffer-frame-alist - default-frame-alist))) - (condition-case var - (modify-frame-parameters frame params) - (error (message "Error using params %S: %S" params var)))))) - (condition-case var - (modify-frame-parameters (selected-frame) params) - (error (message "Error using params %S: %S" params var)))) - (when color-theme-xemacs-p - (color-theme-frob-faces params))) - -;; (setq default-frame-alist (cons '(height . 30) default-frame-alist)) - -(defun color-theme-install-variables (vars) - "Change variables using alist VARS. -All variables matching `color-theme-legal-variables' are set. - -If `color-theme-is-global' and `color-theme-xemacs-p' are nil, variables -are made frame-local before setting them. Variables are set using `set' -in either case. This may lead to problems if changing the variable -requires the usage of the function specified with the :set tag in -defcustom declarations. - -Called from `color-theme-install'." - (let ((vars (color-theme-filter vars color-theme-legal-variables))) - (dolist (var vars) - (if (or color-theme-is-global color-theme-xemacs-p) - (set (car var) (cdr var)) - (make-variable-frame-local (car var)) - (modify-frame-parameters (selected-frame) (list var)))))) - -(defun color-theme-install-faces (faces) - "Change faces using FACES. - -Change faces for all frames and create any faces listed in FACES which -don't exist. The modified faces will be marked as \"unchanged from -its standard setting\". This is OK, since the changes made by -installing a color theme should never by saved in .emacs by -customization code. - -FACES should be a list where each entry has the form: - - (FACE SPEC) - -See `defface' for the format of SPEC. - -If `color-theme-is-global' is non-nil, faces are modified on all frames -using `face-spec-set'. If `color-theme-is-global' is nil, faces are -only modified on the selected frame. Non-existing faces are created -using `make-empty-face' in either case. If `color-theme-is-cumulative' -is nil, all faces are reset before installing the new faces. - -Called from `color-theme-install'." - ;; clear all previous faces - (when (not color-theme-is-cumulative) - (color-theme-reset-faces)) - ;; install new faces - (let ((faces (color-theme-filter faces color-theme-illegal-faces t)) - (frame (if color-theme-is-global nil (selected-frame)))) - (dolist (entry faces) - (let ((face (nth 0 entry)) - (spec (nth 1 entry))) - (or (facep face) - (make-empty-face face)) - ;; remove weird properties from the default face only - (when (eq face 'default) - (setq spec (color-theme-spec-filter spec))) - ;; Emacs/XEmacs customization issues: filter out :bold when - ;; the spec contains :weight, etc, such that the spec remains - ;; "valid" for custom. - (setq spec (color-theme-spec-compat spec)) - ;; using a spec of ((t (nil))) to reset a face doesn't work - ;; in Emacs 21, we use the new function face-spec-reset-face - ;; instead - (if (and (functionp 'face-spec-reset-face) - (equal spec '((t (nil))))) - (face-spec-reset-face face frame) - (condition-case var - (progn - (face-spec-set face spec frame) - (if color-theme-is-global - (put face 'face-defface-spec spec))) - (error (message "Error using spec %S: %S" spec var)))))))) - -;; `custom-set-faces' is unusable here because it doesn't allow to set -;; the faces for one frame only. - -;; Emacs `face-spec-set': If FRAME is nil, the face is created and -;; marked as a customized face. This is achieved by setting the -;; `face-defface-spec' property. If we don't, new frames will not be -;; created using the face we installed because `face-spec-set' is -;; broken: If given a FRAME of nil, it will not set the default faces; -;; instead it will walk through all the frames and set modify the faces. -;; If we do set a property (`saved-face' or `face-defface-spec'), -;; `make-frame' will correctly use the faces we defined with our color -;; theme. If we used the property `saved-face', -;; `customize-save-customized' will save all the faces installed as part -;; of a color-theme in .emacs. That's why we use the -;; `face-defface-spec' property. - - - -;;; Theme accessor functions, canonicalization, merging, comparing - -(defun color-theme-canonic (theme) - "Return the canonic form of THEME. -This deals with all the backwards compatibility stuff." - (let (function frame-params variables faces) - (when (functionp (car theme)) - (setq function (car theme) - theme (cdr theme))) - (setq frame-params (car theme) - theme (cdr theme)) - ;; optional variable defintions (for backwards compatibility) - (when (listp (caar theme)) - (setq variables (car theme) - theme (cdr theme))) - ;; face definitions - (setq faces theme) - (list function frame-params variables faces))) - -(defun color-theme-function (theme) - "Return function used to create THEME." - (nth 0 theme)) - -(defun color-theme-frame-params (theme) - "Return frame-parameters defined by THEME." - (nth 1 theme)) - -(defun color-theme-variables (theme) - "Return variables set by THEME." - (nth 2 theme)) - -(defun color-theme-faces (theme) - "Return faces defined by THEME." - (nth 3 theme)) - -(defun color-theme-merge-alists (&rest alists) - "Merges all the alist arguments into one alist. -Only the first instance of every key will be part of the resulting -alist. Membership will be tested using `assq'." - (let (result) - (dolist (l alists) - (dolist (entry l) - (unless (assq (car entry) result) - (setq result (cons entry result))))) - (nreverse result))) -;; (color-theme-merge-alists '((a . 1) (b . 2))) -;; (color-theme-merge-alists '((a . 1) (b . 2) (a . 3))) -;; (color-theme-merge-alists '((a . 1) (b . 2)) '((a . 3))) -;; (color-theme-merge-alists '((a . 1) (b . 2)) '((c . 3))) -;; (color-theme-merge-alists '((a . 1) (b . 2)) '((c . 3) (d . 4))) -;; (color-theme-merge-alists '((a . 1) (b . 2)) '((c . 3) (d . 4) (b . 5))) - -;;;###autoload -(defun color-theme-compare (theme-a theme-b) - "Compare two color themes. -This will print the differences between installing THEME-A and -installing THEME-B. Note that the order is important: If a face is -defined in THEME-A and not in THEME-B, then this will not show up as a -difference, because there is no reset before installing THEME-B. If a -face is defined in THEME-B and not in THEME-A, then this will show up as -a difference." - (interactive - (list - (intern - (completing-read "Theme A: " - (mapcar (lambda (i) (list (symbol-name (car i)))) - color-themes) - (lambda (i) (string-match "color-theme" (car i))))) - (intern - (completing-read "Theme B: " - (mapcar (lambda (i) (list (symbol-name (car i)))) - color-themes) - (lambda (i) (string-match "color-theme" (car i))))))) - ;; install the themes in a new frame and get the definitions - (let ((color-theme-is-global nil)) - (select-frame (make-frame)) - (funcall theme-a) - (setq theme-a (list theme-a - (color-theme-get-params) - (color-theme-get-vars) - (color-theme-get-face-definitions))) - (funcall theme-b) - (setq theme-b (list theme-b - (color-theme-get-params) - (color-theme-get-vars) - (color-theme-get-face-definitions))) - (delete-frame)) - (let ((params (set-difference - (color-theme-frame-params theme-b) - (color-theme-frame-params theme-a) - :test 'equal)) - (vars (set-difference - (color-theme-variables theme-b) - (color-theme-variables theme-a) - :test 'equal)) - (faces (set-difference - (color-theme-faces theme-b) - (color-theme-faces theme-a) - :test 'equal))) - (list 'diff - params - vars - faces))) - - - -;;; Installing a color theme -;;;###autoload -(defun color-theme-install (theme) - "Install a color theme defined by frame parameters, variables and faces. - -The theme is installed for all present and future frames; any missing -faces are created. See `color-theme-install-faces'. - -THEME is a color theme definition. See below for more information. - -If you want to install a color theme from your .emacs, use the output -generated by `color-theme-print'. This produces color theme function -which you can copy to your .emacs. - -A color theme definition is a list: -\([FUNCTION] FRAME-PARAMETERS VARIABLE-SETTINGS FACE-DEFINITIONS) - -FUNCTION is the color theme function which called `color-theme-install'. -This is no longer used. There was a time when this package supported -automatic factoring of color themes. This has been abandoned. - -FRAME-PARAMETERS is an alist of frame parameters. These are installed -with `color-theme-install-frame-params'. These are installed last such -that any changes to the default face can be changed by the frame -parameters. - -VARIABLE-DEFINITIONS is an alist of variable settings. These are -installed with `color-theme-install-variables'. - -FACE-DEFINITIONS is an alist of face definitions. These are installed -with `color-theme-install-faces'. - -If `color-theme-is-cumulative' is nil, a color theme will undo face and -frame-parameter settings of previous color themes." - (setq theme (color-theme-canonic theme)) - (color-theme-install-variables (color-theme-variables theme)) - (color-theme-install-faces (color-theme-faces theme)) - ;; frame parameters override faces - (color-theme-install-frame-params (color-theme-frame-params theme)) - (when color-theme-history-max-length - (color-theme-add-to-history - (car theme)))) - - - -;; Sharing your stuff -;;;###autoload -(defun color-theme-submit () - "Submit your color-theme to the maintainer." - (interactive) - (require 'reporter) - (let ((reporter-eval-buffer (current-buffer)) - final-resting-place - after-sep-pos - (reporter-status-message "Formatting buffer...") - (reporter-status-count 0) - (problem "Yet another color-theme") - (agent (reporter-compose-outgoing)) - (mailbuf (current-buffer)) - hookvar) - ;; do the work - (require 'sendmail) - ;; If mailbuf did not get made visible before, make it visible now. - (let (same-window-buffer-names same-window-regexps) - (pop-to-buffer mailbuf) - ;; Just in case the original buffer is not visible now, bring it - ;; back somewhere - (and pop-up-windows (display-buffer reporter-eval-buffer))) - (goto-char (point-min)) - (mail-position-on-field "to") - (insert color-theme-maintainer-address) - (mail-position-on-field "subject") - (insert problem) - ;; move point to the body of the message - (mail-text) - (setq after-sep-pos (point)) - (unwind-protect - (progn - (setq final-resting-place (point-marker)) - (goto-char final-resting-place)) - (color-theme-print (current-buffer)) - (goto-char final-resting-place) - (insert "\n\n") - (goto-char final-resting-place) - (insert "Hello there!\n\nHere's my color theme named: ") - (set-marker final-resting-place nil)) - ;; compose the minibuf message and display this. - (let* ((sendkey-whereis (where-is-internal - (get agent 'sendfunc) nil t)) - (abortkey-whereis (where-is-internal - (get agent 'abortfunc) nil t)) - (sendkey (if sendkey-whereis - (key-description sendkey-whereis) - "C-c C-c")); TBD: BOGUS hardcode - (abortkey (if abortkey-whereis - (key-description abortkey-whereis) - "M-x kill-buffer"))); TBD: BOGUS hardcode - (message "Enter a message and type %s to send or %s to abort." - sendkey abortkey)))) - - - -;; Use this to define themes -(defmacro define-color-theme (name author description &rest forms) - (let ((n name)) - `(progn - (add-to-list 'color-themes - (list ',n - (upcase-initials - (color-theme-replace-in-string - (color-theme-replace-in-string - (symbol-name ',n) "^color-theme-" "") "-" " ")) - ,author)) - (defun ,n () - ,description - (interactive) - ,@forms)))) - - -;;; FIXME: is this useful ?? -;;;###autoload -(defun color-theme-initialize () - "Initialize the color theme package by loading color-theme-libraries." - (interactive) - - (cond ((and (not color-theme-load-all-themes) - color-theme-directory) - (setq color-theme-libraries - (directory-files color-theme-directory t "^color-theme"))) - (color-theme-directory - (push (cdr (directory-files color-theme-directory t "^color-theme")) - color-theme-libraries))) - (dolist (library color-theme-libraries) - (load library))) - -(when nil - (setq color-theme-directory "themes/" - color-theme-load-all-themes nil) - (color-theme-initialize) -) -;; TODO: I don't like all those function names cluttering up my namespace. -;; Instead, a hashtable for the color-themes should be created. Now that -;; define-color-theme is around, it should be easy to change in just the -;; one place. - - -(provide 'color-theme) - -;;; color-theme.el ends here diff --git a/elpa/color-theme-20080305.34/themes/color-theme-example.el b/elpa/color-theme-20080305.34/themes/color-theme-example.el deleted file mode 100644 index f73b4f68..00000000 --- a/elpa/color-theme-20080305.34/themes/color-theme-example.el +++ /dev/null @@ -1,22 +0,0 @@ -(eval-when-compile - (require 'color-theme)) - -(defun color-theme-example () - "Example theme. Carbon copy of color-theme-gnome contributed by Jonadab." - (interactive) - (color-theme-install - '(color-theme-example - ((foreground-color . "wheat") - (background-color . "darkslategrey") - (background-mode . dark)) - (default ((t (nil)))) - (region ((t (:foreground "cyan" :background "dark cyan")))) - (underline ((t (:foreground "yellow" :underline t)))) - (modeline ((t (:foreground "dark cyan" :background "wheat")))) - (modeline-buffer-id ((t (:foreground "dark cyan" :background "wheat")))) - (modeline-mousable ((t (:foreground "dark cyan" :background "wheat")))) - (modeline-mousable-minor-mode ((t (:foreground "dark cyan" :background "wheat")))) - (italic ((t (:foreground "dark red" :italic t)))) - (bold-italic ((t (:foreground "dark red" :bold t :italic t)))) - (font-lock-comment-face ((t (:foreground "Firebrick")))) - (bold ((t (:bold))))))) diff --git a/elpa/color-theme-20080305.34/themes/color-theme-library.el b/elpa/color-theme-20080305.34/themes/color-theme-library.el deleted file mode 100755 index 90d7aa2b..00000000 --- a/elpa/color-theme-20080305.34/themes/color-theme-library.el +++ /dev/null @@ -1,13672 +0,0 @@ -;;; color-theme-library.el --- The real color theme functions - -;; Copyright (C) 2005, 2006 Xavier Maillard -;; Copyright (C) 2005, 2006 Brian Palmer - -;; Version: 0.0.9 -;; Keywords: faces -;; Author: Brian Palmer, Xavier Maillard -;; Maintainer: Xavier Maillard -;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ColorTheme - -;; This file is not (YET) part of GNU Emacs. - -;; This is free software; you can redistribute it and/or modify it under -;; the terms of the GNU General Public License as published by the Free -;; Software Foundation; either version 2, or (at your option) any later -;; version. -;; -;; This is distributed in the hope that it will be useful, but WITHOUT -;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -;; for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, -;; MA 02111-1307, USA. - -;; Code: -(eval-when-compile - (require 'color-theme)) - -(defun color-theme-gnome () - "Wheat on darkslategrey scheme. -From one version of Emacs in RH6 and Gnome, modified by Jonadab." - (interactive) - (color-theme-install - '(color-theme-gnome - ((foreground-color . "wheat") - (background-color . "darkslategrey") - (background-mode . dark)) - (default ((t (nil)))) - (region ((t (:foreground "cyan" :background "dark cyan")))) - (underline ((t (:foreground "yellow" :underline t)))) - (modeline ((t (:foreground "dark cyan" :background "wheat")))) - (modeline-buffer-id ((t (:foreground "dark cyan" :background "wheat")))) - (modeline-mousable ((t (:foreground "dark cyan" :background "wheat")))) - (modeline-mousable-minor-mode ((t (:foreground "dark cyan" :background "wheat")))) - (italic ((t (:foreground "dark red" :italic t)))) - (bold-italic ((t (:foreground "dark red" :bold t :italic t)))) - (font-lock-comment-face ((t (:foreground "Firebrick")))) - (bold ((t (:bold))))))) - -(defun color-theme-blue-gnus () - "Color theme for gnus and message faces only. -This is intended for other color themes to use (eg. `color-theme-gnome2' -and `color-theme-blue-sea')." - (interactive) - (color-theme-install - '(color-theme-blue-gnus - nil - (gnus-cite-attribution-face ((t (:lforeground "lemon chiffon" :bold t)))) - (gnus-cite-face-1 ((t (:foreground "LightSalmon")))) - (gnus-cite-face-2 ((t (:foreground "Khaki")))) - (gnus-cite-face-3 ((t (:foreground "Coral")))) - (gnus-cite-face-4 ((t (:foreground "yellow green")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "bisque")))) - (gnus-cite-face-7 ((t (:foreground "peru")))) - (gnus-cite-face-8 ((t (:foreground "light coral")))) - (gnus-cite-face-9 ((t (:foreground "plum")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "White")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "White")))) - (gnus-group-mail-2-empty-face ((t (:foreground "light cyan")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "light cyan")))) - (gnus-group-mail-3-empty-face ((t (:foreground "LightBlue")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "LightBlue")))) - (gnus-group-mail-low-empty-face ((t (:foreground "Aquamarine")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "Aquamarine")))) - (gnus-group-news-1-empty-face ((t (:foreground "White")))) - (gnus-group-news-1-face ((t (:bold t :foreground "White")))) - (gnus-group-news-2-empty-face ((t (:foreground "light cyan")))) - (gnus-group-news-2-face ((t (:bold t :foreground "light cyan")))) - (gnus-group-news-3-empty-face ((t (:foreground "LightBlue")))) - (gnus-group-news-3-face ((t (:bold t :foreground "LightBlue")))) - (gnus-group-news-4-empty-face ((t (:foreground "Aquamarine")))) - (gnus-group-news-4-face ((t (:bold t :foreground "Aquamarine")))) - (gnus-group-news-5-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-5-face ((t (:bold t :foreground "MediumAquamarine")))) - (gnus-group-news-6-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-6-face ((t (:bold t :foreground "MediumAquamarine")))) - (gnus-group-news-low-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-low-face ((t (:bold t :foreground "MediumAquamarine")))) - (gnus-header-content-face ((t (:foreground "LightSkyBlue3")))) - (gnus-header-from-face ((t (:bold t :foreground "light cyan")))) - (gnus-header-name-face ((t (:bold t :foreground "LightBlue")))) - (gnus-header-newsgroups-face ((t (:bold t :foreground "MediumAquamarine")))) - (gnus-header-subject-face ((t (:bold t :foreground "light cyan")))) - (gnus-signature-face ((t (:foreground "Grey")))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-summary-cancelled-face ((t (:background "Black" :foreground "Yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "MediumAquamarine")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "Aquamarine")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "LightSalmon")))) - (gnus-summary-high-unread-face ((t (:bold t :foreground "beige")))) - (gnus-summary-low-ancient-face ((t (:foreground "DimGray")))) - (gnus-summary-low-read-face ((t (:foreground "slate gray")))) - (gnus-summary-low-ticked-face ((t (:foreground "Pink")))) - (gnus-summary-low-unread-face ((t (:foreground "LightGray")))) - (gnus-summary-normal-ancient-face ((t (:foreground "MediumAquamarine")))) - (gnus-summary-normal-read-face ((t (:foreground "Aquamarine")))) - (gnus-summary-normal-ticked-face ((t (:foreground "LightSalmon")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:background "DarkSlateBlue")))) - (message-cited-text-face ((t (:foreground "LightSalmon")))) - (message-header-cc-face ((t (:foreground "light cyan")))) - (message-header-name-face ((t (:foreground "LightBlue")))) - (message-header-newsgroups-face ((t (:bold t :foreground "MediumAquamarine")))) - (message-header-other-face ((t (:foreground "MediumAquamarine")))) - (message-header-subject-face ((t (:bold t :foreground "light cyan")))) - (message-header-to-face ((t (:bold t :foreground "light cyan")))) - (message-header-xheader-face ((t (:foreground "MediumAquamarine")))) - (message-separator-face ((t (:foreground "chocolate"))))))) - -(defun color-theme-dark-gnus () - "Color theme for gnus and message faces only. -This is intended for other color themes to use -\(eg. `color-theme-late-night')." - (interactive) - (color-theme-install - '(color-theme-blue-gnus - nil - (gnus-cite-attribution-face ((t (:foreground "#bbb")))) - (gnus-cite-face-1 ((t (:foreground "#aaa")))) - (gnus-cite-face-2 ((t (:foreground "#aaa")))) - (gnus-cite-face-3 ((t (:foreground "#aaa")))) - (gnus-cite-face-4 ((t (:foreground "#aaa")))) - (gnus-cite-face-5 ((t (:foreground "#aaa")))) - (gnus-cite-face-6 ((t (:foreground "#aaa")))) - (gnus-cite-face-7 ((t (:foreground "#aaa")))) - (gnus-cite-face-8 ((t (:foreground "#aaa")))) - (gnus-cite-face-9 ((t (:foreground "#aaa")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:foreground "#ccc")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "#999")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "#999")))) - (gnus-group-mail-2-empty-face ((t (:foreground "#999")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "#999")))) - (gnus-group-mail-3-empty-face ((t (:foreground "#888")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "#888")))) - (gnus-group-mail-low-empty-face ((t (:foreground "#777")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "#777")))) - (gnus-group-news-1-empty-face ((t (:foreground "#999")))) - (gnus-group-news-1-face ((t (:bold t :foreground "#999")))) - (gnus-group-news-2-empty-face ((t (:foreground "#888")))) - (gnus-group-news-2-face ((t (:bold t :foreground "#888")))) - (gnus-group-news-3-empty-face ((t (:foreground "#777")))) - (gnus-group-news-3-face ((t (:bold t :foreground "#777")))) - (gnus-group-news-4-empty-face ((t (:foreground "#666")))) - (gnus-group-news-4-face ((t (:bold t :foreground "#666")))) - (gnus-group-news-5-empty-face ((t (:foreground "#666")))) - (gnus-group-news-5-face ((t (:bold t :foreground "#666")))) - (gnus-group-news-6-empty-face ((t (:foreground "#666")))) - (gnus-group-news-6-face ((t (:bold t :foreground "#666")))) - (gnus-group-news-low-empty-face ((t (:foreground "#666")))) - (gnus-group-news-low-face ((t (:bold t :foreground "#666")))) - (gnus-header-content-face ((t (:foreground "#888")))) - (gnus-header-from-face ((t (:bold t :foreground "#888")))) - (gnus-header-name-face ((t (:bold t :foreground "#777")))) - (gnus-header-newsgroups-face ((t (:bold t :foreground "#777")))) - (gnus-header-subject-face ((t (:bold t :foreground "#999")))) - (gnus-signature-face ((t (:foreground "#444")))) - (gnus-splash-face ((t (:foreground "#ccc")))) - (gnus-summary-cancelled-face ((t (:background "#555" :foreground "#000")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "#555")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "#666")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "#777")))) - (gnus-summary-high-unread-face ((t (:bold t :foreground "#888")))) - (gnus-summary-low-ancient-face ((t (:foreground "#444")))) - (gnus-summary-low-read-face ((t (:foreground "#555")))) - (gnus-summary-low-ticked-face ((t (:foreground "#666")))) - (gnus-summary-low-unread-face ((t (:foreground "#777")))) - (gnus-summary-normal-ancient-face ((t (:foreground "#555")))) - (gnus-summary-normal-read-face ((t (:foreground "#666")))) - (gnus-summary-normal-ticked-face ((t (:foreground "#777")))) - (gnus-summary-normal-unread-face ((t (:foreground "#888")))) - (gnus-summary-selected-face ((t (:background "#333")))) - (message-cited-text-face ((t (:foreground "#aaa")))) - (message-header-cc-face ((t (:foreground "#888")))) - (message-header-name-face ((t (:bold t :foreground "#777")))) - (message-header-newsgroups-face ((t (:bold t :foreground "#777")))) - (message-header-other-face ((t (:foreground "#666")))) - (message-header-subject-face ((t (:bold t :foreground "#999")))) - (message-header-to-face ((t (:bold t :foreground "#777")))) - (message-header-xheader-face ((t (:foreground "#666")))) - (message-separator-face ((t (:foreground "#999"))))))) - -(defun color-theme-blue-eshell () - "Color theme for eshell faces only. -This is intended for other color themes to use (eg. `color-theme-gnome2')." - (interactive) - (color-theme-install - '(color-theme-blue-eshell - nil - (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed")))) - (eshell-ls-backup-face ((t (:foreground "Grey")))) - (eshell-ls-clutter-face ((t (:foreground "DimGray")))) - (eshell-ls-directory-face ((t (:bold t :foreground "MediumSlateBlue")))) - (eshell-ls-executable-face ((t (:foreground "Coral")))) - (eshell-ls-missing-face ((t (:foreground "black")))) - (eshell-ls-picture-face ((t (:foreground "Violet")))) ; non-standard face - (eshell-ls-product-face ((t (:foreground "LightSalmon")))) - (eshell-ls-readonly-face ((t (:foreground "Aquamarine")))) - (eshell-ls-special-face ((t (:foreground "Gold")))) - (eshell-ls-symlink-face ((t (:foreground "White")))) - (eshell-ls-text-face ((t (:foreground "medium aquamarine")))) ; non-standard face - (eshell-ls-todo-face ((t (:bold t :foreground "aquamarine")))) ; non-standard face - (eshell-ls-unreadable-face ((t (:foreground "DimGray")))) - (eshell-prompt-face ((t (:foreground "powder blue"))))))) - -(defun color-theme-salmon-font-lock () - "Color theme for font-lock faces only. -This is intended for other color themes to use (eg. `color-theme-gnome2')." - (interactive) - (color-theme-install - '(color-theme-salmon-font-lock - nil - (font-lock-builtin-face ((t (:bold t :foreground "PaleGreen")))) - (font-lock-comment-face ((t (:foreground "LightBlue")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-doc-string-face ((t (:foreground "LightSalmon")))) - (font-lock-function-name-face ((t (:bold t :foreground "Aquamarine")))) - (font-lock-keyword-face ((t (:foreground "Salmon")))) - (font-lock-preprocessor-face ((t (:foreground "Salmon")))) - (font-lock-reference-face ((t (:foreground "pale green")))) - (font-lock-string-face ((t (:foreground "LightSalmon")))) - (font-lock-type-face ((t (:bold t :foreground "YellowGreen")))) - (font-lock-variable-name-face ((t (:bold t :foreground "Aquamarine")))) - (font-lock-warning-face ((t (:bold t :foreground "red"))))))) - -(defun color-theme-dark-font-lock () - "Color theme for font-lock faces only. -This is intended for other color themes to use (eg. `color-theme-late-night')." - (interactive) - (color-theme-install - '(color-theme-dark-font-lock - nil - (font-lock-builtin-face ((t (:bold t :foreground "#777")))) - (font-lock-comment-face ((t (:foreground "#555")))) - (font-lock-constant-face ((t (:foreground "#777")))) - (font-lock-doc-string-face ((t (:foreground "#777")))) - (font-lock-doc-face ((t (:foreground "#777")))) - (font-lock-function-name-face ((t (:bold t :foreground "#777")))) - (font-lock-keyword-face ((t (:foreground "#777")))) - (font-lock-preprocessor-face ((t (:foreground "#777")))) - (font-lock-reference-face ((t (:foreground "#777")))) - (font-lock-string-face ((t (:foreground "#777")))) - (font-lock-type-face ((t (:bold t)))) - (font-lock-variable-name-face ((t (:bold t :foreground "#888")))) - (font-lock-warning-face ((t (:bold t :foreground "#999"))))))) - -(defun color-theme-dark-info () - "Color theme for info, help and apropos faces. -This is intended for other color themes to use (eg. `color-theme-late-night')." - (interactive) - (color-theme-install - '(color-theme-dark-info - nil - (info-header-node ((t (:foreground "#666")))) - (info-header-xref ((t (:foreground "#666")))) - (info-menu-5 ((t (:underline t)))) - (info-menu-header ((t (:bold t :foreground "#666")))) - (info-node ((t (:bold t :foreground "#888")))) - (info-xref ((t (:bold t :foreground "#777"))))))) - -(defun color-theme-gnome2 () - "Wheat on darkslategrey scheme. -`color-theme-gnome' started it all. - -This theme supports standard faces, font-lock, eshell, info, message, -gnus, custom, widget, woman, diary, cperl, bbdb, and erc. This theme -includes faces for Emacs and XEmacs. - -The theme does not support w3 faces because w3 faces can be controlled -by your default style sheet. - -This is what you should put in your .Xdefaults file, if you want to -change the colors of the menus in Emacs 20 as well: - -emacs*Background: DarkSlateGray -emacs*Foreground: Wheat" - (interactive) - (color-theme-blue-gnus) - (let ((color-theme-is-cumulative t)) - (color-theme-blue-erc) - (color-theme-blue-eshell) - (color-theme-salmon-font-lock) - (color-theme-salmon-diff) - (color-theme-install - '(color-theme-gnome2 - ((foreground-color . "wheat") - (background-color . "darkslategrey") - (mouse-color . "Grey") - (cursor-color . "LightGray") - (border-color . "black") - (background-mode . dark)) - ((apropos-keybinding-face . underline) - (apropos-label-face . italic) - (apropos-match-face . secondary-selection) - (apropos-property-face . bold-italic) - (apropos-symbol-face . info-xref) - (goto-address-mail-face . message-header-to-face) - (goto-address-mail-mouse-face . secondary-selection) - (goto-address-url-face . info-xref) - (goto-address-url-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bbdb-company ((t (:foreground "pale green")))) - (bbdb-name ((t (:bold t :foreground "pale green")))) - (bbdb-field-name ((t (:foreground "medium sea green")))) - (bbdb-field-value ((t (:foreground "dark sea green")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t :foreground "beige")))) - (calendar-today-face ((t (:underline t)))) - (comint-highlight-prompt ((t (:foreground "medium aquamarine")))) - (cperl-array-face ((t (:foreground "Yellow")))) - (cperl-hash-face ((t (:foreground "White")))) - (cperl-nonoverridable-face ((t (:foreground "SkyBlue")))) - (custom-button-face ((t (:underline t :foreground "MediumSlateBlue")))) - (custom-documentation-face ((t (:foreground "Grey")))) - (custom-group-tag-face ((t (:foreground "MediumAquamarine")))) - (custom-state-face ((t (:foreground "LightSalmon")))) - (custom-variable-tag-face ((t (:foreground "Aquamarine")))) - (diary-face ((t (:foreground "IndianRed")))) - (dired-face-directory ((t (:bold t :foreground "sky blue")))) - (dired-face-permissions ((t (:foreground "aquamarine")))) - (dired-face-flagged ((t (:foreground "tomato")))) - (dired-face-marked ((t (:foreground "light salmon")))) - (dired-face-executable ((t (:foreground "green yellow")))) - (fringe ((t (:background "darkslategrey")))) - (highlight ((t (:background "PaleGreen" :foreground "DarkGreen")))) - (highline-face ((t (:background "SeaGreen")))) - (holiday-face ((t (:background "DimGray")))) - (hyper-apropos-hyperlink ((t (:bold t :foreground "DodgerBlue1")))) - (hyper-apropos-documentation ((t (:foreground "LightSalmon")))) - (info-header-xref ((t (:foreground "DodgerBlue1" :bold t)))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:underline t :bold t :foreground "DodgerBlue1")))) - (info-xref ((t (:bold t :foreground "DodgerBlue1")))) - (isearch ((t (:background "sea green")))) - (italic ((t (:italic t)))) - (menu ((t (:foreground "wheat" :background "darkslategrey")))) - (modeline ((t (:background "dark olive green" :foreground "wheat")))) - (modeline-buffer-id ((t (:background "dark olive green" :foreground "beige")))) - (modeline-mousable ((t (:background "dark olive green" :foreground "yellow green")))) - (modeline-mousable-minor-mode ((t (:background "dark olive green" :foreground "wheat")))) - (region ((t (:background "dark cyan" :foreground "cyan")))) - (secondary-selection ((t (:background "Aquamarine" :foreground "SlateBlue")))) - (show-paren-match-face ((t (:bold t :background "Aquamarine" :foreground "steel blue")))) - (show-paren-mismatch-face ((t (:background "Red" :foreground "White")))) - (underline ((t (:underline t)))) - (widget-field-face ((t (:foreground "LightBlue")))) - (widget-inactive-face ((t (:foreground "DimGray")))) - (widget-single-line-field-face ((t (:foreground "LightBlue")))) - (w3m-anchor-face ((t (:bold t :foreground "DodgerBlue1")))) - (w3m-arrived-anchor-face ((t (:bold t :foreground "DodgerBlue3")))) - (w3m-header-line-location-title-face ((t (:foreground "beige" :background "dark olive green")))) - (w3m-header-line-location-content-face ((t (:foreground "wheat" :background "dark olive green")))) - (woman-bold-face ((t (:bold t)))) - (woman-italic-face ((t (:foreground "beige")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))) - (zmacs-region ((t (:background "dark cyan" :foreground "cyan")))))))) - -(defun color-theme-simple-1 () - "Black background. -Doesn't mess with most faces, but does turn on dark background mode." - (interactive) - (color-theme-install - '(color-theme-simple-1 - ((foreground-color . "white") - (background-color . "black") - (cursor-color . "indian red") - (background-mode . dark)) - (default ((t (nil)))) - (modeline ((t (:foreground "black" :background "white")))) - (modeline-buffer-id ((t (:foreground "black" :background "white")))) - (modeline-mousable ((t (:foreground "black" :background "white")))) - (modeline-mousable-minor-mode ((t (:foreground "black" :background "white")))) - (underline ((t (:underline t)))) - (region ((t (:background "grey"))))))) - -(defun color-theme-jonadabian () - "Dark blue background. -Supports standard faces, font-lock, highlight-changes, widget and -custom." - (interactive) - (color-theme-install - '(color-theme-jonadabian - ((foreground-color . "#CCBB77") - (cursor-color . "medium turquoise") - (background-color . "#000055") - (background-mode . dark)) - (default ((t (nil)))) - (modeline ((t (:foreground "cyan" :background "#007080")))) - (modeline-buffer-id ((t (:foreground "cyan" :background "#007080")))) - (modeline-mousable ((t (:foreground "cyan" :background "#007080")))) - (modeline-mousable-minor-mode ((t (:foreground "cyan" :background "#007080")))) - (underline ((t (:underline t)))) - (region ((t (:background "#004080")))) - (font-lock-keyword-face ((t (:foreground "#00BBBB")))) - (font-lock-comment-face ((t (:foreground "grey50" :bold t :italic t)))) - (font-lock-string-face ((t (:foreground "#10D010")))) - (font-lock-constant-face ((t (:foreground "indian red")))) - (highlight-changes-face ((t (:background "navy")))) - (highlight-changes-delete-face ((t (:foreground "red" :background "navy")))) - (widget-field-face ((t (:foreground "black" :background "grey35")))) - (widget-inactive-face ((t (:foreground "gray")))) - (custom-button-face ((t (:foreground "yellow" :background "dark blue")))) - (custom-state-face ((t (:foreground "mediumaquamarine")))) - (custom-face-tag-face ((t (:foreground "goldenrod" :underline t)))) - (custom-documentation-face ((t (:foreground "#10D010")))) - (custom-set-face ((t (:foreground "#2020D0"))))))) - -(defun color-theme-ryerson () - "White on midnightblue scheme. -Used at Ryerson Polytechnic University in the Electronic Engineering department." - (interactive) - (color-theme-install - '(color-theme-ryerson - ((foreground-color . "white") - (background-color . "midnightblue") - (cursor-color . "red") - (background-mode . dark)) - (default ((t (nil)))) - (modeline ((t (:foreground "black" :background "slategray3")))) - (modeline-buffer-id ((t (:foreground "black" :background "slategray3")))) - (modeline-mousable ((t (:foreground "black" :background "slategray3")))) - (modeline-mousable-minor-mode ((t (:foreground "black" :background "slategray3")))) - (underline ((t (:underline t)))) - (region ((t (:foreground "black" :background "slategray3"))))))) - -(defun color-theme-wheat () - "Default colors on a wheat background. -Calls the standard color theme function `color-theme-standard' in order -to reset all faces." - (interactive) - (color-theme-standard) - (let ((color-theme-is-cumulative t)) - (color-theme-install - '(color-theme-wheat - ((background-color . "Wheat")))))) - -(defun color-theme-standard () - "Emacs default colors. -If you are missing standard faces in this theme, please notify the maintainer." - (interactive) - ;; Note that some of the things that make up a color theme are - ;; actually variable settings! - (color-theme-install - '(color-theme-standard - ((foreground-color . "black") - (background-color . "white") - (mouse-color . "black") - (cursor-color . "black") - (border-color . "black") - (background-mode . light)) - ((Man-overstrike-face . bold) - (Man-underline-face . underline) - (apropos-keybinding-face . underline) - (apropos-label-face . italic) - (apropos-match-face . secondary-selection) - (apropos-property-face . bold-italic) - (apropos-symbol-face . bold) - (goto-address-mail-face . italic) - (goto-address-mail-mouse-face . secondary-selection) - (goto-address-url-face . bold) - (goto-address-url-mouse-face . highlight) - (help-highlight-face . underline) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:bold t :italic t)))) - (calendar-today-face ((t (:underline t)))) - (cperl-array-face ((t (:foreground "Blue" :background "lightyellow2" :bold t)))) - (cperl-hash-face ((t (:foreground "Red" :background "lightyellow2" :bold t :italic t)))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:foreground "white" :background "blue")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:foreground "blue" :underline t)))) - (custom-group-tag-face-1 ((t (:foreground "red" :underline t)))) - (custom-invalid-face ((t (:foreground "yellow" :background "red")))) - (custom-modified-face ((t (:foreground "white" :background "blue")))) - (custom-rogue-face ((t (:foreground "pink" :background "black")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:foreground "blue" :background "white")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:bold t :underline t)))) - (custom-variable-tag-face ((t (:foreground "blue" :underline t)))) - (diary-face ((t (:foreground "red")))) - (ediff-current-diff-face-A ((t (:foreground "firebrick" :background "pale green")))) - (ediff-current-diff-face-Ancestor ((t (:foreground "Black" :background "VioletRed")))) - (ediff-current-diff-face-B ((t (:foreground "DarkOrchid" :background "Yellow")))) - (ediff-current-diff-face-C ((t (:foreground "Navy" :background "Pink")))) - (ediff-even-diff-face-A ((t (:foreground "Black" :background "light grey")))) - (ediff-even-diff-face-Ancestor ((t (:foreground "White" :background "Grey")))) - (ediff-even-diff-face-B ((t (:foreground "White" :background "Grey")))) - (ediff-even-diff-face-C ((t (:foreground "Black" :background "light grey")))) - (ediff-fine-diff-face-A ((t (:foreground "Navy" :background "sky blue")))) - (ediff-fine-diff-face-Ancestor ((t (:foreground "Black" :background "Green")))) - (ediff-fine-diff-face-B ((t (:foreground "Black" :background "cyan")))) - (ediff-fine-diff-face-C ((t (:foreground "Black" :background "Turquoise")))) - (ediff-odd-diff-face-A ((t (:foreground "White" :background "Grey")))) - (ediff-odd-diff-face-Ancestor ((t (:foreground "Black" :background "light grey")))) - (ediff-odd-diff-face-B ((t (:foreground "Black" :background "light grey")))) - (ediff-odd-diff-face-C ((t (:foreground "White" :background "Grey")))) - (eshell-ls-archive-face ((t (:foreground "Orchid" :bold t)))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:foreground "OrangeRed" :bold t)))) - (eshell-ls-directory-face ((t (:foreground "Blue" :bold t)))) - (eshell-ls-executable-face ((t (:foreground "ForestGreen" :bold t)))) - (eshell-ls-missing-face ((t (:foreground "Red" :bold t)))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:foreground "Magenta" :bold t)))) - (eshell-ls-symlink-face ((t (:foreground "DarkCyan" :bold t)))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:foreground "Red" :bold t)))) - (eshell-test-failed-face ((t (:foreground "OrangeRed" :bold t)))) - (eshell-test-ok-face ((t (:foreground "Green" :bold t)))) - (excerpt ((t (:italic t)))) - (fixed ((t (:bold t)))) - (flyspell-duplicate-face ((t (:foreground "Gold3" :bold t :underline t)))) - (flyspell-incorrect-face ((t (:foreground "OrangeRed" :bold t :underline t)))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:foreground "Firebrick")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-function-name-face ((t (:foreground "Blue")))) - (font-lock-keyword-face ((t (:foreground "Purple")))) - (font-lock-string-face ((t (:foreground "RosyBrown")))) - (font-lock-type-face ((t (:foreground "ForestGreen")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-warning-face ((t (:foreground "Red" :bold t)))) - (fringe ((t (:background "grey95")))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:bold t :italic t)))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t)))) - (gnus-emphasis-underline-bold-italic ((t (:bold t :italic t :underline t)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:foreground "DeepPink3" :bold t)))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:foreground "HotPink3" :bold t)))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:foreground "magenta4" :bold t)))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:foreground "DeepPink4" :bold t)))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:foreground "ForestGreen" :bold t)))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:foreground "CadetBlue4" :bold t)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:foreground "DarkGreen" :bold t)))) - (gnus-header-content-face ((t (:foreground "indianred4" :italic t)))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:foreground "MidnightBlue" :italic t)))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-signature-face ((t (:italic t)))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-summary-cancelled-face ((t (:foreground "yellow" :background "black")))) - (gnus-summary-high-ancient-face ((t (:foreground "RoyalBlue" :bold t)))) - (gnus-summary-high-read-face ((t (:foreground "DarkGreen" :bold t)))) - (gnus-summary-high-ticked-face ((t (:foreground "firebrick" :bold t)))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:foreground "RoyalBlue" :italic t)))) - (gnus-summary-low-read-face ((t (:foreground "DarkGreen" :italic t)))) - (gnus-summary-low-ticked-face ((t (:foreground "firebrick" :italic t)))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (highlight ((t (:background "darkseagreen2")))) - (highlight-changes-delete-face ((t (:foreground "red" :underline t)))) - (highlight-changes-face ((t (:foreground "red")))) - (highline-face ((t (:background "paleturquoise")))) - (holiday-face ((t (:background "pink")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:bold t :italic t)))) - (info-xref ((t (:bold t)))) - (italic ((t (:italic t)))) - (makefile-space-face ((t (:background "hotpink")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:foreground "blue4" :bold t :italic t)))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:foreground "navy blue" :bold t)))) - (message-header-to-face ((t (:foreground "MidnightBlue" :bold t)))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:foreground "white" :background "black")))) - (modeline-buffer-id ((t (:foreground "white" :background "black")))) - (modeline-mousable ((t (:foreground "white" :background "black")))) - (modeline-mousable-minor-mode ((t (:foreground "white" :background "black")))) - (region ((t (:background "gray")))) - (secondary-selection ((t (:background "paleturquoise")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:foreground "white" :background "purple")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "brown")))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (:background "black")))) - (term-blue ((t (:foreground "blue")))) - (term-bluebg ((t (:background "blue")))) - (term-bold ((t (:bold t)))) - (term-cyan ((t (:foreground "cyan")))) - (term-cyanbg ((t (:background "cyan")))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-green ((t (:foreground "green")))) - (term-greenbg ((t (:background "green")))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (:foreground "magenta")))) - (term-magentabg ((t (:background "magenta")))) - (term-red ((t (:foreground "red")))) - (term-redbg ((t (:background "red")))) - (term-underline ((t (:underline t)))) - (term-white ((t (:foreground "white")))) - (term-whitebg ((t (:background "white")))) - (term-yellow ((t (:foreground "yellow")))) - (term-yellowbg ((t (:background "yellow")))) - (underline ((t (:underline t)))) - (vcursor ((t (:foreground "blue" :background "cyan" :underline t)))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-prompt-face ((t (:foreground "Red" :bold t)))) - (vhdl-font-lock-reserved-words-face ((t (:foreground "Orange" :bold t)))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:foreground "Blue" :underline t)))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:foreground "DarkGoldenrod" :underline t)))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:foreground "ForestGreen" :underline t)))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:foreground "Brown" :underline t)))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:foreground "Grey50" :underline t)))) - (viper-minibuffer-emacs-face ((t (:foreground "Black" :background "darkseagreen2")))) - (viper-minibuffer-insert-face ((t (:foreground "Black" :background "pink")))) - (viper-minibuffer-vi-face ((t (:foreground "DarkGreen" :background "grey")))) - (viper-replace-overlay-face ((t (:foreground "Black" :background "darkseagreen2")))) - (viper-search-face ((t (:foreground "Black" :background "khaki")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85"))))))) - -(defun color-theme-fischmeister () - "The light colors on a grey blackground. -Sebastian Fischmeister " - (interactive) - (color-theme-install - '(color-theme-fischmeister - ((foreground-color . "black") - (background-color . "gray80") - (mouse-color . "red") - (cursor-color . "yellow") - (border-color . "black") - (background-mode . light)) - (default ((t (nil)))) - (modeline ((t (:foreground "gray80" :background "black")))) - (modeline-buffer-id ((t (:foreground "gray80" :background "black")))) - (modeline-mousable ((t (:foreground "gray80" :background "black")))) - (modeline-mousable-minor-mode ((t (:foreground "gray80" :background "black")))) - (highlight ((t (:background "darkseagreen2")))) - (bold ((t (:bold t)))) - (italic ((t (:italic t)))) - (bold-italic ((t (:bold t :italic t)))) - (region ((t (:background "gray")))) - (secondary-selection ((t (:background "paleturquoise")))) - (underline ((t (:underline t)))) - (show-paren-match-face ((t (:foreground "yellow" :background "darkgreen")))) - (show-paren-mismatch-face ((t (:foreground "white" :background "red")))) - (font-lock-comment-face ((t (:foreground "FireBrick" :bold t :italic t)))) - (font-lock-string-face ((t (:foreground "DarkSlateBlue" :italic t)))) - (font-lock-keyword-face ((t (:foreground "navy")))) - (font-lock-builtin-face ((t (:foreground "white")))) - (font-lock-function-name-face ((t (:foreground "Blue")))) - (font-lock-variable-name-face ((t (:foreground "Darkblue")))) - (font-lock-type-face ((t (:foreground "darkgreen")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-warning-face ((t (:foreground "Orchid" :bold t)))) - (font-lock-reference-face ((t (:foreground "SteelBlue"))))))) - -(defun color-theme-sitaramv-solaris () - "White on a midnight blue background. Lots of yellow and orange. -Includes faces for font-lock, widget, custom, speedbar, message, gnus, -eshell." - (interactive) - (color-theme-install - '(color-theme-sitaramv-solaris - ((foreground-color . "white") - (background-color . "MidnightBlue") - (mouse-color . "yellow") - (cursor-color . "magenta2") - (border-color . "black") - (background-mode . dark)) - (default ((t (nil)))) - (modeline ((t (:foreground "black" :background "gold2")))) - (modeline-buffer-id ((t (:foreground "black" :background "gold2")))) - (modeline-mousable ((t (:foreground "black" :background "gold2")))) - (modeline-mousable-minor-mode ((t (:foreground "black" :background "gold2")))) - (highlight ((t (:foreground "black" :background "Aquamarine")))) - (bold ((t (:bold t)))) - (italic ((t (:italic t)))) - (bold-italic ((t (:bold t :italic t)))) - (region ((t (:foreground "black" :background "snow3")))) - (secondary-selection ((t (:foreground "black" :background "aquamarine")))) - (underline ((t (:underline t)))) - (lazy-highlight-face ((t (:foreground "yellow")))) - (font-lock-comment-face ((t (:foreground "orange" :italic t)))) - (font-lock-string-face ((t (:foreground "orange")))) - (font-lock-keyword-face ((t (:foreground "green")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-function-name-face ((t (:foreground "cyan" :bold t)))) - (font-lock-variable-name-face ((t (:foreground "white")))) - (font-lock-type-face ((t (:foreground "cyan")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-warning-face ((t (:foreground "Pink" :bold t)))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-button-face ((t (:bold t)))) - (widget-field-face ((t (:background "dim gray")))) - (widget-single-line-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-button-pressed-face ((t (:foreground "red")))) - (custom-invalid-face ((t (:foreground "yellow" :background "red")))) - (custom-rogue-face ((t (:foreground "pink" :background "black")))) - (custom-modified-face ((t (:foreground "white" :background "blue")))) - (custom-set-face ((t (:foreground "blue" :background "white")))) - (custom-changed-face ((t (:foreground "white" :background "blue")))) - (custom-saved-face ((t (:underline t)))) - (custom-button-face ((t (nil)))) - (custom-documentation-face ((t (nil)))) - (custom-state-face ((t (:foreground "lime green")))) - (custom-variable-tag-face ((t (:foreground "light blue" :underline t)))) - (custom-variable-button-face ((t (:bold t :underline t)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face-1 ((t (:foreground "pink" :underline t)))) - (custom-group-tag-face ((t (:foreground "light blue" :underline t)))) - (speedbar-button-face ((t (:foreground "green3")))) - (speedbar-file-face ((t (:foreground "cyan")))) - (speedbar-directory-face ((t (:foreground "light blue")))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-highlight-face ((t (:background "sea green")))) - (font-lock-doc-string-face ((t (:foreground "Plum1" :bold t)))) - (font-lock-exit-face ((t (:foreground "green")))) - (ff-paths-non-existant-file-face ((t (:foreground "NavyBlue" :bold t)))) - (show-paren-match-face ((t (:background "red")))) - (show-paren-mismatch-face ((t (:foreground "white" :background "purple")))) - (message-header-to-face ((t (:foreground "green2" :bold t)))) - (message-header-cc-face ((t (:foreground "LightGoldenrod" :bold t)))) - (message-header-subject-face ((t (:foreground "green3")))) - (message-header-newsgroups-face ((t (:foreground "yellow" :bold t :italic t)))) - (message-header-other-face ((t (:foreground "Salmon")))) - (message-header-name-face ((t (:foreground "green3")))) - (message-header-xheader-face ((t (:foreground "GreenYellow")))) - (message-separator-face ((t (:foreground "Tan")))) - (message-cited-text-face ((t (:foreground "Gold")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:foreground "PaleTurquoise" :bold t)))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-2-face ((t (:foreground "turquoise" :bold t)))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-low-face ((t (:foreground "DarkTurquoise" :bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-mail-1-face ((t (:foreground "aquamarine1" :bold t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-2-face ((t (:foreground "aquamarine2" :bold t)))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-3-face ((t (:foreground "aquamarine3" :bold t)))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-low-face ((t (:foreground "aquamarine4" :bold t)))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-summary-cancelled-face ((t (:foreground "yellow" :background "black")))) - (gnus-summary-high-ticked-face ((t (:foreground "pink" :bold t)))) - (gnus-summary-low-ticked-face ((t (:foreground "pink" :italic t)))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-high-ancient-face ((t (:foreground "SkyBlue" :bold t)))) - (gnus-summary-low-ancient-face ((t (:foreground "SkyBlue" :italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-high-read-face ((t (:foreground "PaleGreen" :bold t)))) - (gnus-summary-low-read-face ((t (:foreground "PaleGreen" :italic t)))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-splash-face ((t (:foreground "Brown")))) - (eshell-ls-directory-face ((t (:foreground "SkyBlue" :bold t)))) - (eshell-ls-symlink-face ((t (:foreground "Cyan" :bold t)))) - (eshell-ls-executable-face ((t (:foreground "Green" :bold t)))) - (eshell-ls-readonly-face ((t (:foreground "Pink")))) - (eshell-ls-unreadable-face ((t (:foreground "DarkGrey")))) - (eshell-ls-special-face ((t (:foreground "Magenta" :bold t)))) - (eshell-ls-missing-face ((t (:foreground "Red" :bold t)))) - (eshell-ls-archive-face ((t (:foreground "Orchid" :bold t)))) - (eshell-ls-backup-face ((t (:foreground "LightSalmon")))) - (eshell-ls-product-face ((t (:foreground "LightSalmon")))) - (eshell-ls-clutter-face ((t (:foreground "OrangeRed" :bold t)))) - (eshell-prompt-face ((t (:foreground "Pink" :bold t)))) - (term-default-fg ((t (nil)))) - (term-default-bg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-bold ((t (:bold t)))) - (term-underline ((t (:underline t)))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-black ((t (:foreground "black")))) - (term-red ((t (:foreground "red")))) - (term-green ((t (:foreground "green")))) - (term-yellow ((t (:foreground "yellow")))) - (term-blue ((t (:foreground "blue")))) - (term-magenta ((t (:foreground "magenta")))) - (term-cyan ((t (:foreground "cyan")))) - (term-white ((t (:foreground "white")))) - (term-blackbg ((t (:background "black")))) - (term-redbg ((t (:background "red")))) - (term-greenbg ((t (:background "green")))) - (term-yellowbg ((t (:background "yellow")))) - (term-bluebg ((t (:background "blue")))) - (term-magentabg ((t (:background "magenta")))) - (term-cyanbg ((t (:background "cyan")))) - (term-whitebg ((t (:background "white")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t)))) - (gnus-emphasis-bold-italic ((t (:bold t :italic t)))) - (gnus-emphasis-underline-bold-italic ((t (:bold t :italic t :underline t)))) - (gnus-emphasis-highlight-words ((t (:foreground "yellow" :background "black")))) - (gnus-signature-face ((t (:italic t)))) - (gnus-header-from-face ((t (:foreground "spring green")))) - (gnus-header-subject-face ((t (:foreground "yellow" :bold t)))) - (gnus-header-newsgroups-face ((t (:foreground "SeaGreen3" :bold t :italic t)))) - (gnus-header-name-face ((t (:foreground "pink")))) - (gnus-header-content-face ((t (:foreground "lime green" :italic t)))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:foreground "light blue")))) - (gnus-cite-face-2 ((t (:foreground "light cyan")))) - (gnus-cite-face-3 ((t (:foreground "light yellow")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise"))))))) - -(defun color-theme-sitaramv-nt () - "Black foreground on white background. -Includes faces for font-lock, widget, custom, speedbar." - (interactive) - (color-theme-install - '(color-theme-sitaramv-nt - ((foreground-color . "black") - (background-color . "white") - (mouse-color . "sienna3") - (cursor-color . "HotPink") - (border-color . "Blue") - (background-mode . light)) - (default ((t (nil)))) - (modeline ((t (:foreground "black" :background "gold2")))) - (modeline-buffer-id ((t (:foreground "black" :background "gold2")))) - (modeline-mousable ((t (:foreground "black" :background "gold2")))) - (modeline-mousable-minor-mode ((t (:foreground "black" :background "gold2")))) - (highlight ((t (:foreground "black" :background "darkseagreen2")))) - (bold ((t (:bold t)))) - (italic ((t (:italic t)))) - (bold-italic ((t (:bold t :italic t)))) - (region ((t (:foreground "black" :background "snow3")))) - (secondary-selection ((t (:background "paleturquoise")))) - (underline ((t (:underline t)))) - (lazy-highlight-face ((t (:foreground "dark magenta" :bold t)))) - (font-lock-comment-face ((t (:foreground "ForestGreen" :italic t)))) - (font-lock-string-face ((t (:foreground "red")))) - (font-lock-keyword-face ((t (:foreground "blue" :bold t)))) - (font-lock-builtin-face ((t (:foreground "black")))) - (font-lock-function-name-face ((t (:foreground "dark magenta" :bold t)))) - (font-lock-variable-name-face ((t (:foreground "black")))) - (font-lock-type-face ((t (:foreground "blue")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-warning-face ((t (:foreground "Red" :bold t)))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-button-face ((t (:bold t)))) - (widget-field-face ((t (:background "gray85")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-button-pressed-face ((t (:foreground "red")))) - (custom-invalid-face ((t (:foreground "yellow" :background "red")))) - (custom-rogue-face ((t (:foreground "pink" :background "black")))) - (custom-modified-face ((t (:foreground "white" :background "blue")))) - (custom-set-face ((t (:foreground "blue" :background "white")))) - (custom-changed-face ((t (:foreground "white" :background "blue")))) - (custom-saved-face ((t (:underline t)))) - (custom-button-face ((t (nil)))) - (custom-documentation-face ((t (nil)))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-tag-face ((t (:foreground "blue" :underline t)))) - (custom-variable-button-face ((t (:bold t :underline t)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face-1 ((t (:foreground "red" :underline t)))) - (custom-group-tag-face ((t (:foreground "blue" :underline t)))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-highlight-face ((t (:background "green")))) - (ff-paths-non-existant-file-face ((t (:foreground "NavyBlue" :bold t)))) - (show-paren-match-face ((t (:background "light blue")))) - (show-paren-mismatch-face ((t (:foreground "white" :background "purple"))))))) - -(defun color-theme-billw () - "Cornsilk on black. -Includes info, diary, font-lock, eshell, sgml, message, gnus, -widget, custom, latex, ediff." - (interactive) - (color-theme-install - '(color-theme-billw - ((foreground-color . "cornsilk") - (background-color . "black") - (mouse-color . "black") - (cursor-color . "white") - (border-color . "black") - (background-mode . dark)) - (default ((t (nil)))) - (modeline ((t (:foreground "black" :background "wheat")))) - (modeline-buffer-id ((t (:foreground "black" :background "wheat")))) - (modeline-mousable ((t (:foreground "black" :background "wheat")))) - (modeline-mousable-minor-mode ((t (:foreground "black" :background "wheat")))) - (highlight ((t (:foreground "wheat" :background "darkslategray")))) - (bold ((t (:bold t)))) - (italic ((t (:italic t)))) - (bold-italic ((t (:bold t :italic t)))) - (region ((t (:background "dimgray")))) - (secondary-selection ((t (:background "deepskyblue4")))) - (underline ((t (:underline t)))) - (info-node ((t (:foreground "yellow" :bold t :italic t)))) - (info-menu-5 ((t (:underline t)))) - (info-xref ((t (:foreground "yellow" :bold t)))) - (diary-face ((t (:foreground "orange")))) - (calendar-today-face ((t (:underline t)))) - (holiday-face ((t (:background "red")))) - (show-paren-match-face ((t (:background "deepskyblue4")))) - (show-paren-mismatch-face ((t (:foreground "white" :background "red")))) - (font-lock-comment-face ((t (:foreground "gold")))) - (font-lock-string-face ((t (:foreground "orange")))) - (font-lock-keyword-face ((t (:foreground "cyan1")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-function-name-face ((t (:foreground "mediumspringgreen")))) - (font-lock-variable-name-face ((t (:foreground "light salmon")))) - (font-lock-type-face ((t (:foreground "yellow1")))) - (font-lock-constant-face ((t (:foreground "salmon")))) - (font-lock-warning-face ((t (:foreground "gold" :bold t)))) - (blank-space-face ((t (:background "LightGray")))) - (blank-tab-face ((t (:foreground "black" :background "cornsilk")))) - (highline-face ((t (:background "gray35")))) - (eshell-ls-directory-face ((t (:foreground "green" :bold t)))) - (eshell-ls-symlink-face ((t (:foreground "Cyan" :bold t)))) - (eshell-ls-executable-face ((t (:foreground "orange" :bold t)))) - (eshell-ls-readonly-face ((t (:foreground "gray")))) - (eshell-ls-unreadable-face ((t (:foreground "DarkGrey")))) - (eshell-ls-special-face ((t (:foreground "Magenta" :bold t)))) - (eshell-ls-missing-face ((t (:foreground "Red" :bold t)))) - (eshell-ls-archive-face ((t (:foreground "Orchid" :bold t)))) - (eshell-ls-backup-face ((t (:foreground "LightSalmon")))) - (eshell-ls-product-face ((t (:foreground "LightSalmon")))) - (eshell-ls-clutter-face ((t (:foreground "blue" :bold t)))) - (sgml-start-tag-face ((t (:foreground "mediumspringgreen")))) - (custom-button-face ((t (:foreground "white")))) - (sgml-ignored-face ((t (:foreground "gray20" :background "gray60")))) - (sgml-doctype-face ((t (:foreground "orange")))) - (sgml-sgml-face ((t (:foreground "yellow")))) - (vc-annotate-face-0046FF ((t (:foreground "wheat" :background "black")))) - (custom-documentation-face ((t (:foreground "white")))) - (sgml-end-tag-face ((t (:foreground "greenyellow")))) - (linemenu-face ((t (:background "gray30")))) - (sgml-entity-face ((t (:foreground "gold")))) - (message-header-to-face ((t (:foreground "floral white" :bold t)))) - (message-header-cc-face ((t (:foreground "ivory")))) - (message-header-subject-face ((t (:foreground "papaya whip" :bold t)))) - (message-header-newsgroups-face ((t (:foreground "lavender blush" :bold t :italic t)))) - (message-header-other-face ((t (:foreground "pale turquoise")))) - (message-header-name-face ((t (:foreground "light sky blue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-separator-face ((t (:foreground "sandy brown")))) - (message-cited-text-face ((t (:foreground "plum1")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:foreground "white" :bold t)))) - (gnus-group-news-1-empty-face ((t (:foreground "white")))) - (gnus-group-news-2-face ((t (:foreground "lightcyan" :bold t)))) - (gnus-group-news-2-empty-face ((t (:foreground "lightcyan")))) - (gnus-group-news-3-face ((t (:foreground "tan" :bold t)))) - (gnus-group-news-3-empty-face ((t (:foreground "tan")))) - (gnus-group-news-4-face ((t (:foreground "white" :bold t)))) - (gnus-group-news-4-empty-face ((t (:foreground "white")))) - (gnus-group-news-5-face ((t (:foreground "wheat" :bold t)))) - (gnus-group-news-5-empty-face ((t (:foreground "wheat")))) - (gnus-group-news-6-face ((t (:foreground "tan" :bold t)))) - (gnus-group-news-6-empty-face ((t (:foreground "tan")))) - (gnus-group-news-low-face ((t (:foreground "DarkTurquoise" :bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-mail-1-face ((t (:foreground "white" :bold t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "gray80")))) - (gnus-group-mail-2-face ((t (:foreground "lightcyan" :bold t)))) - (gnus-group-mail-2-empty-face ((t (:foreground "lightcyan")))) - (gnus-group-mail-3-face ((t (:foreground "tan" :bold t)))) - (gnus-group-mail-3-empty-face ((t (:foreground "tan")))) - (gnus-group-mail-low-face ((t (:foreground "aquamarine4" :bold t)))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-summary-selected-face ((t (:background "deepskyblue4" :underline t)))) - (gnus-summary-cancelled-face ((t (:foreground "black" :background "gray")))) - (gnus-summary-high-ticked-face ((t (:foreground "gray70" :bold t)))) - (gnus-summary-low-ticked-face ((t (:foreground "gray70" :bold t)))) - (gnus-summary-normal-ticked-face ((t (:foreground "gray70" :bold t)))) - (gnus-summary-high-ancient-face ((t (:foreground "SkyBlue" :bold t)))) - (gnus-summary-low-ancient-face ((t (:foreground "SkyBlue" :italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-high-read-face ((t (:foreground "PaleGreen" :bold t)))) - (gnus-summary-low-read-face ((t (:foreground "PaleGreen" :italic t)))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-splash-face ((t (:foreground "gold")))) - (font-latex-bold-face ((t (nil)))) - (font-latex-italic-face ((t (nil)))) - (font-latex-math-face ((t (nil)))) - (font-latex-sedate-face ((t (:foreground "Gray85")))) - (font-latex-string-face ((t (:foreground "orange")))) - (font-latex-warning-face ((t (:foreground "gold")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-button-face ((t (:bold t)))) - (widget-field-face ((t (:background "gray20")))) - (widget-single-line-field-face ((t (:background "gray20")))) - (widget-inactive-face ((t (:foreground "wheat")))) - (widget-button-pressed-face ((t (:foreground "red")))) - (custom-invalid-face ((t (:foreground "yellow" :background "red")))) - (custom-rogue-face ((t (:foreground "pink" :background "black")))) - (custom-modified-face ((t (:foreground "white" :background "blue")))) - (custom-set-face ((t (:foreground "blue")))) - (custom-changed-face ((t (:foreground "wheat" :background "skyblue")))) - (custom-saved-face ((t (:underline t)))) - (custom-state-face ((t (:foreground "light green")))) - (custom-variable-tag-face ((t (:foreground "skyblue" :underline t)))) - (custom-variable-button-face ((t (:bold t :underline t)))) - (custom-face-tag-face ((t (:foreground "white" :underline t)))) - (custom-group-tag-face-1 ((t (:foreground "pink" :underline t)))) - (custom-group-tag-face ((t (:foreground "skyblue" :underline t)))) - (swbuff-current-buffer-face ((t (:foreground "red" :bold t)))) - (ediff-current-diff-face-A ((t (:foreground "firebrick" :background "pale green")))) - (ediff-current-diff-face-B ((t (:foreground "DarkOrchid" :background "Yellow")))) - (ediff-current-diff-face-C ((t (:foreground "white" :background "indianred")))) - (ediff-current-diff-face-Ancestor ((t (:foreground "Black" :background "VioletRed")))) - (ediff-fine-diff-face-A ((t (:foreground "Navy" :background "sky blue")))) - (ediff-fine-diff-face-B ((t (:foreground "Black" :background "cyan")))) - (ediff-fine-diff-face-C ((t (:foreground "Black" :background "Turquoise")))) - (ediff-fine-diff-face-Ancestor ((t (:foreground "Black" :background "Green")))) - (ediff-even-diff-face-A ((t (:foreground "Black" :background "light grey")))) - (ediff-even-diff-face-B ((t (:foreground "White" :background "Grey")))) - (ediff-even-diff-face-C ((t (:foreground "Black" :background "light grey")))) - (ediff-even-diff-face-Ancestor ((t (:foreground "White" :background "Grey")))) - (ediff-odd-diff-face-A ((t (:foreground "White" :background "Grey")))) - (ediff-odd-diff-face-B ((t (:foreground "Black" :background "light grey")))) - (ediff-odd-diff-face-C ((t (:foreground "White" :background "Grey")))) - (ediff-odd-diff-face-Ancestor ((t (:foreground "Black" :background "light grey")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:foreground "white" :background "goldenrod4")))) - (gnus-emphasis-underline-bold ((t (:foreground "black" :background "yellow" :bold t :underline t)))) - (gnus-emphasis-underline-italic ((t (:foreground "black" :background "yellow" :italic t :underline t)))) - (gnus-emphasis-bold-italic ((t (:bold t :italic t)))) - (gnus-emphasis-underline-bold-italic ((t (:foreground "black" :background "yellow" :bold t :italic t :underline t)))) - (gnus-emphasis-highlight-words ((t (:foreground "yellow" :background "black")))) - (gnus-signature-face ((t (:italic t)))) - (gnus-header-from-face ((t (:foreground "wheat")))) - (gnus-header-subject-face ((t (:foreground "wheat" :bold t)))) - (gnus-header-newsgroups-face ((t (:foreground "wheat" :italic t)))) - (gnus-header-name-face ((t (:foreground "white")))) - (gnus-header-content-face ((t (:foreground "tan" :italic t)))) - (gnus-filterhist-face-1 ((t (nil)))) - (gnus-splash ((t (:foreground "Brown")))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:foreground "light blue")))) - (gnus-cite-face-2 ((t (:foreground "light cyan")))) - (gnus-cite-face-3 ((t (:foreground "light yellow")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise"))))))) - -(defun color-theme-retro-green (&optional color func) - "Plain green on black faces for those longing for the good old days." - (interactive) - ;; Build a list of faces without parameters - (let ((old-faces (face-list)) - (faces) - (face) - (foreground (or color "green"))) - (dolist (face old-faces) - (cond ((memq face '(bold bold-italic)) - (add-to-list 'faces `(,face (( t (:bold t)))))) - ((memq face '(italic underline show-paren-mismatch-face)) - (add-to-list 'faces `(,face (( t (:underline t)))))) - ((memq face '(modeline modeline-buffer-id modeline-mousable - modeline-mousable-minor-mode highlight region - secondary-selection show-paren-match-face)) - (add-to-list 'faces `(,face (( t (:foreground "black" - :background ,foreground - :inverse t)))))) - (t - (add-to-list 'faces `(,face (( t (nil)))))))) - (color-theme-install - (append - (list (or func 'color-theme-retro-green) - (list (cons 'foreground-color foreground) - (cons 'background-color "black") - (cons 'mouse-color foreground) - (cons 'cursor-color foreground) - (cons 'border-color foreground) - (cons 'background-mode 'dark))) - faces)))) - -(defun color-theme-retro-orange () - "Plain orange on black faces for those longing for the good old days." - (interactive) - (color-theme-retro-green "orange" 'color-theme-retro-orange)) - -(defun color-theme-subtle-hacker () - "Subtle Hacker Color Theme. -Based on gnome2, but uses white for important things like comments, -and less of the unreadable tomato. By Colin Walters " - (interactive) - (color-theme-gnome2) - (let ((color-theme-is-cumulative t)) - (color-theme-install - '(color-theme-subtle-hacker - nil - nil - (custom-state-face ((t (:foreground "Coral")))) - (diary-face ((t (:bold t :foreground "IndianRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "DimGray")))) - (eshell-ls-executable-face ((t (:bold t :foreground "Coral")))) - (eshell-ls-missing-face ((t (:bold t :foreground "black")))) - (eshell-ls-special-face ((t (:bold t :foreground "Gold")))) - (eshell-ls-symlink-face ((t (:bold t :foreground "White")))) - (font-lock-comment-face ((t (:foreground "White")))) - (font-lock-constant-face ((t (:bold t :foreground "Aquamarine")))) - (font-lock-function-name-face ((t (:bold t :foreground "MediumSlateBlue")))) - (font-lock-string-face ((t (:italic t :foreground "LightSalmon")))) - (font-lock-variable-name-face ((t (:italic t :bold t :foreground "Aquamarine")))) - (gnus-cite-face-1 ((t (:foreground "dark khaki")))) - (gnus-cite-face-2 ((t (:foreground "chocolate")))) - (gnus-cite-face-3 ((t (:foreground "tomato")))) - (gnus-group-mail-1-empty-face ((t (:foreground "light cyan")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "light cyan")))) - (gnus-group-mail-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "turquoise")))) - (gnus-group-mail-3-empty-face ((t (:foreground "tomato")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "tomato")))) - (gnus-group-mail-low-empty-face ((t (:foreground "dodger blue")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "dodger blue")))) - (gnus-group-news-1-empty-face ((t (:foreground "green yellow")))) - (gnus-group-news-1-face ((t (:bold t :foreground "green yellow")))) - (gnus-group-news-2-empty-face ((t (:foreground "dark orange")))) - (gnus-group-news-2-face ((t (:bold t :foreground "dark orange")))) - (gnus-group-news-3-empty-face ((t (:foreground "tomato")))) - (gnus-group-news-3-face ((t (:bold t :foreground "tomato")))) - (gnus-group-news-low-empty-face ((t (:foreground "yellow green")))) - (gnus-group-news-low-face ((t (:bold t :foreground "yellow green")))) - (gnus-header-name-face ((t (:bold t :foreground "DodgerBlue1")))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3")))) - (gnus-signature-face ((t (:foreground "salmon")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "forest green")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "burlywood")))) - (gnus-summary-high-unread-face ((t (:italic t :bold t :foreground "cyan")))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "chocolate")))) - (gnus-summary-low-read-face ((t (:foreground "light sea green")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "chocolate")))) - (gnus-summary-low-unread-face ((t (:italic t :foreground "light sea green")))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "khaki")))) - (gnus-summary-normal-ticked-face ((t (:foreground "sandy brown")))) - (gnus-summary-normal-unread-face ((t (:foreground "aquamarine")))) - (message-cited-text-face ((t (:foreground "White")))) - (message-header-name-face ((t (:foreground "DodgerBlue1")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3")))) - (message-header-other-face ((t (:foreground "LightSkyBlue3")))) - (message-header-xheader-face ((t (:foreground "DodgerBlue3")))))))) - -(defun color-theme-pok-wog () - "Low-contrast White-on-Gray by S.Pokrovsky. - -The following might be a good addition to your .Xdefaults file: - -Emacs.pane.menubar.background: darkGrey -Emacs.pane.menubar.foreground: black" - (interactive) - (color-theme-install - '(color-theme-pok-wog - ((foreground-color . "White") - (background-color . "DarkSlateGray") - (mouse-color . "gold") - (cursor-color . "Cyan") - (border-color . "black") - (background-mode . dark)) - (default ((t (nil)))) - (bold ((t (:bold t :foreground "Wheat")))) - (bold-italic ((t (:italic t :bold t :foreground "wheat")))) - (calendar-today-face ((t (:underline t :foreground "white")))) - (diary-face ((t (:foreground "red")))) - (font-lock-builtin-face ((t (:bold t :foreground "cyan")))) - (font-lock-comment-face ((t (:foreground "Gold")))) - (font-lock-constant-face ((t (:bold t :foreground "LightSteelBlue")))) - (font-lock-function-name-face ((t (:bold t :foreground "Yellow")))) - (font-lock-keyword-face ((t (:bold t :foreground "Cyan")))) - (font-lock-string-face ((t (:foreground "Khaki")))) - (font-lock-type-face ((t (:bold t :foreground "Cyan")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (gnus-cite-attribution-face ((t (:bold t :foreground "Wheat")))) - (gnus-cite-face-1 ((t (:foreground "wheat")))) - (gnus-cite-face-10 ((t (:foreground "wheat")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "cyan")))) - (gnus-cite-face-3 ((t (:foreground "light yellow")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :foreground "wheat")))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t :foreground "white")))) - (gnus-emphasis-underline ((t (:underline t :foreground "white")))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t :foreground "wheat")))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t :foreground "white")))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1")))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2")))) - (gnus-group-mail-3-empty-face ((t (:foreground "Salmon")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "gold")))) - (gnus-group-mail-low-empty-face ((t (:foreground "Wheat")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4")))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise")))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :foreground "Wheat")))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise")))) - (gnus-header-content-face ((t (:italic t :foreground "Wheat")))) - (gnus-header-from-face ((t (:foreground "light yellow")))) - (gnus-header-name-face ((t (:foreground "cyan")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "yellow")))) - (gnus-header-subject-face ((t (:bold t :foreground "Gold")))) - (gnus-signature-face ((t (:italic t :foreground "wheat")))) - (gnus-splash-face ((t (:foreground "orange")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink")))) - (gnus-summary-high-unread-face ((t (:bold t :foreground "gold")))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (:foreground "wheat")))) - (gnus-summary-selected-face ((t (:underline t :foreground "white")))) - (highlight ((t (:background "Blue" :foreground "white")))) - (highline-face ((t (:background "black" :foreground "white")))) - (holiday-face ((t (:background "pink" :foreground "white")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t :foreground "white")))) - (info-xref ((t (:bold t :foreground "wheat")))) - (italic ((t (:italic t :foreground "white")))) - (makefile-space-face ((t (:background "hotpink")))) - (message-cited-text-face ((t (:foreground "green")))) - (message-header-cc-face ((t (:bold t :foreground "Aquamarine")))) - (message-header-name-face ((t (:foreground "Gold")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow")))) - (message-header-other-face ((t (:foreground "lightGray")))) - (message-header-subject-face ((t (:foreground "Yellow")))) - (message-header-to-face ((t (:bold t :foreground "green2")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:bold t :foreground "khaki")))) - (message-separator-face ((t (:background "aquamarine" :foreground "black")))) - (modeline ((t (:background "DarkGray" :foreground "Black")))) - (modeline-buffer-id ((t (:background "DarkGray" :foreground "Black")))) - (modeline-mousable ((t (:background "DarkGray" :foreground "Black")))) - (modeline-mousable-minor-mode ((t (:background "DarkGray" :foreground "Black")))) - (paren-mismatch-face ((t (:background "DeepPink" :foreground "white")))) - (paren-no-match-face ((t (:background "yellow" :foreground "white")))) - (region ((t (:background "MediumSlateBlue" :foreground "white")))) - (secondary-selection ((t (:background "Sienna" :foreground "white")))) - (show-paren-match-face ((t (:background "turquoise" :foreground "white")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:bold t :foreground "magenta")))) - (speedbar-directory-face ((t (:bold t :foreground "orchid")))) - (speedbar-file-face ((t (:foreground "pink")))) - (speedbar-highlight-face ((t (:background "black")))) - (speedbar-selected-face ((t (:underline t :foreground "cyan")))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (swbuff-current-buffer-face ((t (:bold t :foreground "red")))) - (underline ((t (:underline t :foreground "white")))) - (widget-button-face ((t (:bold t :foreground "wheat")))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray" :foreground "white")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray" :foreground "white"))))))) - -(defun color-theme-pok-wob () - "White-on-Black by S. Pokrovsky. - -The following might be a good addition to your .Xdefaults file: - -Emacs.pane.menubar.background: darkGrey -Emacs.pane.menubar.foreground: black" - (interactive) -; (setq term-default-fg-color "white" -; term-default-bg "black") - (color-theme-install - '(color-theme-pok-wob - ((foreground-color . "white") - (background-color . "black") - (mouse-color . "gold") - (cursor-color . "yellow") - (border-color . "black") - (background-mode . dark)) - (default ((t (nil)))) - (bold ((t (:bold t :foreground "light gray")))) - (bold-italic ((t (:italic t :bold t :foreground "cyan")))) - (calendar-today-face ((t (:underline t :foreground "white")))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t)))) - (custom-group-tag-face-1 ((t (:underline t)))) - (custom-invalid-face ((t (:background "red" :foreground "white")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (nil)))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t)))) - (diary-face ((t (:foreground "gold")))) - (font-lock-builtin-face ((t (:bold t :foreground "cyan")))) - (font-lock-comment-face ((t (:foreground "Gold")))) - (font-lock-constant-face ((t (:bold t :foreground "LightSteelBlue")))) - (font-lock-function-name-face ((t (:bold t :foreground "gold")))) - (font-lock-keyword-face ((t (:bold t :foreground "Cyan")))) - (font-lock-string-face ((t (:foreground "Khaki")))) - (font-lock-type-face ((t (:bold t :foreground "Cyan")))) - (font-lock-variable-name-face ((t (:italic t :foreground "gold")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (gnus-cite-attribution-face ((t (:underline t :foreground "beige")))) - (gnus-cite-face-1 ((t (:foreground "gold")))) - (gnus-cite-face-10 ((t (:foreground "coral")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "wheat")))) - (gnus-cite-face-3 ((t (:foreground "light pink")))) - (gnus-cite-face-4 ((t (:foreground "khaki")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :foreground "light gray")))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :foreground "cyan")))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "gold")))) - (gnus-emphasis-italic ((t (:italic t :foreground "cyan")))) - (gnus-emphasis-underline ((t (:underline t :foreground "white")))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t :foreground "white")))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t :foreground "white")))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t :foreground "white")))) - (gnus-group-mail-1-empty-face ((t (:foreground "Magenta")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "Magenta")))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2")))) - (gnus-group-mail-3-empty-face ((t (:foreground "Cyan")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "Cyan")))) - (gnus-group-mail-low-empty-face ((t (:foreground "Wheat")))) - (gnus-group-mail-low-face ((t (:foreground "aquamarine4")))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise")))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise")))) - (gnus-group-news-3-empty-face ((t (:foreground "wheat")))) - (gnus-group-news-3-face ((t (:bold t :foreground "Wheat")))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-low-face ((t (:bold t :foreground "MediumAquamarine")))) - (gnus-header-content-face ((t (:italic t :foreground "Wheat")))) - (gnus-header-from-face ((t (:foreground "light yellow")))) - (gnus-header-name-face ((t (:foreground "Wheat")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "gold")))) - (gnus-header-subject-face ((t (:bold t :foreground "Gold")))) - (gnus-signature-face ((t (:italic t :foreground "white")))) - (gnus-splash-face ((t (:foreground "orange")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "orange")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "red")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "coral")))) - (gnus-summary-high-unread-face ((t (:bold t :foreground "gold")))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "red")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "coral")))) - (gnus-summary-low-unread-face ((t (:italic t :foreground "white")))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (:foreground "white")))) - (gnus-summary-selected-face ((t (:underline t :foreground "white")))) - (highlight ((t (:background "Blue" :foreground "white")))) - (highline-face ((t (:background "dark slate gray" :foreground "white")))) - (holiday-face ((t (:background "red" :foreground "white")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t :foreground "white")))) - (info-xref ((t (:bold t :foreground "light gray")))) - (italic ((t (:italic t :foreground "cyan")))) - (makefile-space-face ((t (:background "hotpink" :foreground "white")))) - (message-cited-text-face ((t (:foreground "green")))) - (message-header-cc-face ((t (:bold t :foreground "Aquamarine")))) - (message-header-name-face ((t (:foreground "Gold")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "gold")))) - (message-header-other-face ((t (:foreground "lightGray")))) - (message-header-subject-face ((t (:foreground "Yellow")))) - (message-header-to-face ((t (:bold t :foreground "green2")))) - (message-header-xheader-face ((t (:foreground "sky blue")))) - (message-mml-face ((t (:bold t :foreground "khaki")))) - (message-separator-face ((t (:background "aquamarine" :foreground "black")))) - (modeline ((t (:background "dark gray" :foreground "black")))) - (modeline-buffer-id ((t (:background "dark gray" :foreground "black")))) - (modeline-mousable ((t (:background "dark gray" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "dark gray" :foreground "black")))) - (paren-mismatch-face ((t (:bold t :background "white" :foreground "red")))) - (paren-no-match-face ((t (:bold t :background "white" :foreground "red")))) - (region ((t (:background "MediumSlateBlue" :foreground "white")))) - (secondary-selection ((t (:background "Sienna" :foreground "white")))) - (show-paren-match-face ((t (:background "purple" :foreground "white")))) - (show-paren-mismatch-face ((t (:bold t :background "white" :foreground "red")))) - (speedbar-button-face ((t (nil)))) - (speedbar-directory-face ((t (nil)))) - (speedbar-file-face ((t (:bold t)))) - (speedbar-highlight-face ((t (nil)))) - (speedbar-selected-face ((t (:underline t)))) - (speedbar-tag-face ((t (nil)))) - (swbuff-current-buffer-face ((t (:bold t :foreground "red")))) - (underline ((t (:underline t :foreground "white")))) - (widget-button-face ((t (:bold t :foreground "coral")))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray" :foreground "white")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray" :foreground "white"))))))) - -(defun color-theme-blue-sea () - "The grey on midnight blue theme. - -Includes faces for apropos, font-lock (Emacs and XEmacs), speedbar, -custom, widget, info, flyspell, gnus, message, man, woman, dired. - -This is what you should put in your .Xdefaults file, if you want to -change the colors of the menus: - -emacs*Background: DarkSlateGray -emacs*Foreground: Wheat" - (interactive) - (color-theme-blue-gnus) - (let ((color-theme-is-cumulative t)) - (color-theme-blue-erc) - (color-theme-install - '(color-theme-blue-sea - ((background-color . "MidnightBlue") - (background-mode . dark) - (border-color . "Grey") - (cursor-color . "Grey") - (foreground-color . "Grey") - (mouse-color . "Grey")) - ((Man-overstrike-face . woman-bold-face) - (Man-underline-face . woman-italic-face)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:bold t :foreground "beige")))) - (calendar-today-face ((t (:underline t)))) - (cperl-array-face ((t (:foreground "light salmon" :bold t)))) - (cperl-hash-face ((t (:foreground "beige" :bold t :italic t)))) - (cperl-nonoverridable-face ((t (:foreground "aquamarine")))) - (custom-button-face ((t (:foreground "gainsboro")))) - (custom-changed-face ((t (:foreground "white" :background "blue")))) - (custom-documentation-face ((t (:foreground "light blue")))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:foreground "pale turquoise" :bold t)))) - (custom-group-tag-face-1 ((t (:foreground "pale turquoise" :underline t)))) - (custom-invalid-face ((t (:foreground "yellow" :background "red")))) - (custom-modified-face ((t (:foreground "white" :background "blue")))) - (custom-rogue-face ((t (:foreground "pink" :background "black")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:foreground "blue" :background "white")))) - (custom-state-face ((t (:foreground "light salmon")))) - (custom-variable-button-face ((t (:bold t :underline t)))) - (custom-variable-tag-face ((t (:foreground "turquoise" :bold t)))) - (diary-face ((t (:foreground "red")))) - (dired-face-directory ((t (:bold t :foreground "sky blue")))) - (dired-face-permissions ((t (:foreground "aquamarine")))) - (dired-face-flagged ((t (:foreground "tomato")))) - (dired-face-marked ((t (:foreground "light salmon")))) - (dired-face-executable ((t (:foreground "green yellow")))) - (eshell-ls-archive-face ((t (:bold t :foreground "medium purple")))) - (eshell-ls-backup-face ((t (:foreground "dim gray")))) - (eshell-ls-clutter-face ((t (:foreground "dim gray")))) - (eshell-ls-directory-face ((t (:bold t :foreground "medium slate blue")))) - (eshell-ls-executable-face ((t (:bold t :foreground "aquamarine")))) - (eshell-ls-missing-face ((t (:foreground "black")))) - (eshell-ls-picture-face ((t (:foreground "violet")))) - (eshell-ls-product-face ((t (:foreground "light steel blue")))) - (eshell-ls-readonly-face ((t (:foreground "aquamarine")))) - (eshell-ls-special-face ((t (:foreground "gold")))) - (eshell-ls-symlink-face ((t (:foreground "white")))) - (eshell-ls-unreadable-face ((t (:foreground "dim gray")))) - (eshell-prompt-face ((t (:foreground "light sky blue" :bold t)))) - (excerpt ((t (:italic t)))) - (fixed ((t (:bold t)))) - (flyspell-duplicate-face ((t (:foreground "Gold3" :bold t :underline t)))) - (flyspell-incorrect-face ((t (:foreground "OrangeRed" :bold t :underline t)))) - (font-lock-builtin-face ((t (:foreground "aquamarine")))) - (font-lock-comment-face ((t (:foreground "light blue")))) - (font-lock-constant-face ((t (:foreground "pale green")))) - (font-lock-doc-string-face ((t (:foreground "sky blue")))) - (font-lock-function-name-face ((t (:bold t :foreground "aquamarine")))) - (font-lock-keyword-face ((t (:foreground "pale turquoise" :bold t)))) - (font-lock-reference-face ((t (:foreground "pale green")))) - (font-lock-string-face ((t (:foreground "light sky blue")))) - (font-lock-type-face ((t (:foreground "sky blue" :bold t)))) - (font-lock-variable-name-face ((t (:foreground "turquoise" :bold t)))) - (font-lock-warning-face ((t (:foreground "Red" :bold t)))) - (fringe ((t (:background "MidnightBlue")))) - (header-line ((t (:background "#002" :foreground "cornflower blue")))) - (highlight ((t (:background "dark slate blue" :foreground "light blue")))) - (highline-face ((t (:background "DeepSkyBlue4")))) - (holiday-face ((t (:background "pink")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:bold t)))) - (info-xref ((t (:bold t :foreground "sky blue")))) - (isearch ((t (:background "slate blue")))) - (italic ((t (:foreground "sky blue")))) - (makefile-space-face ((t (:background "hotpink")))) - (menu ((t (:background "MidnightBlue" :foreground "Grey")))) - (modeline ((t (:foreground "wheat" :background "slate blue")))) - (mode-line-inactive ((t (:background "dark slate blue" :foreground "wheat")))) - (modeline-buffer-id ((t (:foreground "beige" :background "slate blue")))) - (modeline-mousable ((t (:foreground "light cyan" :background "slate blue")))) - (modeline-mousable-minor-mode ((t (:foreground "wheat" :background "slate blue")))) - (region ((t (:background "DarkSlateBlue")))) - (secondary-selection ((t (:background "steel blue")))) - (show-paren-match-face ((t (:foreground "white" :background "light slate blue")))) - (show-paren-mismatch-face ((t (:foreground "white" :background "red")))) - (speedbar-button-face ((t (:foreground "seashell2")))) - (speedbar-directory-face ((t (:foreground "seashell3")))) - (speedbar-file-face ((t (:foreground "seashell4")))) - (speedbar-highlight-face ((t (:background "dark slate blue" :foreground "wheat")))) - (speedbar-selected-face ((t (:foreground "seashell1" :underline t)))) - (speedbar-tag-face ((t (:foreground "antique white")))) - (tool-bar ((t (:background "MidnightBlue" :foreground "Grey" :box (:line-width 1 :style released-button))))) - (underline ((t (:underline t)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "light blue")))) - (widget-field-face ((t (:background "RoyalBlue4" :foreground "wheat")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "slate blue" :foreground "wheat")))) - (woman-bold-face ((t (:foreground "sky blue" :bold t)))) - (woman-italic-face ((t (:foreground "deep sky blue")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))) - (zmacs-region ((t (:background "DarkSlateBlue")))))))) - -(defun color-theme-rotor () - "Black on Beige color theme by Jinwei Shen, created 2000-06-08. -Supports default faces, font-lock, custom, widget, message, man, -show-paren, viper." - (interactive) - (color-theme-install - '(color-theme-rotor - ((background-color . "Beige") - (background-mode . light) - (border-color . "black") - (cursor-color . "Maroon") - (foreground-color . "Black") - (mouse-color . "Black")) - ((Man-overstrike-face . font-lock-function-name-face) - (Man-underline-face . font-lock-type-face) - (list-matching-lines-face . bold) - (rmail-highlight-face . font-lock-function-name-face) - (watson-attribution-face . italic) - (watson-url-face . bold) - (watson-url-mouse-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t :background "grey40" :foreground "yellow")))) - (bold-italic ((t (:italic t :bold t :foreground "yellow green")))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:foreground "MediumBlue")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-function-name-face ((t (:foreground "MediumSlateBlue")))) - (font-lock-keyword-face ((t (:foreground "#80a0ff")))) - (font-lock-string-face ((t (:foreground "red")))) - (font-lock-type-face ((t (:foreground "ForestGreen")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (highlight ((t (:background "PaleGreen" :foreground "black")))) - (italic ((t (:italic t :foreground "yellow3")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "wheat" :foreground "DarkOliveGreen")))) - (modeline-buffer-id ((t (:background "wheat" :foreground "DarkOliveGreen")))) - (modeline-mousable ((t (:background "wheat" :foreground "DarkOliveGreen")))) - (modeline-mousable-minor-mode ((t (:background "wheat" :foreground "DarkOliveGreen")))) - (nil ((t (nil)))) - (region ((t (:background "dark cyan" :foreground "cyan")))) - (secondary-selection ((t (:background "Turquoise" :foreground "black")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (underline ((t (:underline t)))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85"))))))) - -(defun color-theme-pierson () - "Black on White color theme by Dan L. Pierson, created 2000-06-08. -Supports default faces, font-lock, show-paren." - (interactive) - (color-theme-install - '(color-theme-pierson - ((background-color . "AntiqueWhite") - (background-mode . light) - (border-color . "black") - (cursor-color . "Orchid") - (foreground-color . "black") - (mouse-color . "Orchid")) - ((list-matching-lines-face . bold)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:foreground "ForestGreen")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-function-name-face ((t (:foreground "blue3")))) - (font-lock-keyword-face ((t (:foreground "Blue")))) - (font-lock-string-face ((t (:foreground "Firebrick")))) - (font-lock-type-face ((t (:foreground "Purple")))) - (font-lock-variable-name-face ((t (:foreground "blue3")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (highlight ((t (:background "darkseagreen2")))) - (italic ((t (:italic t)))) - (modeline ((t (:foreground "antiquewhite" :background "black")))) - (modeline-mousable-minor-mode ((t (:foreground "antiquewhite" :background "black")))) - (modeline-mousable ((t (:foreground "antiquewhite" :background "black")))) - (modeline-buffer-id ((t (:foreground "antiquewhite" :background "black")))) - (region ((t (:background "gray")))) - (secondary-selection ((t (:background "paleturquoise")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (underline ((t (:underline t))))))) - -(defun color-theme-xemacs () - "XEmacs standard colors. -If you are missing standard faces in this theme, please notify the maintainer. -Currently, this theme includes the standard faces and font-lock faces, including -some faces used in Emacs only but which are needed to recreate the look of the -XEmacs color theme." - (interactive) - (color-theme-install - '(color-theme-xemacs - ((background-color . "gray80") - (background-mode . light) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (cursor-color . "Red3") - (foreground-color . "black") - (top-toolbar-shadow-color . "#fffffbeeffff")) - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (nil)))) - (custom-button-face ((t (:bold t)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t)))) - (dired-face-executable ((t (:foreground "SeaGreen")))) - (dired-face-flagged ((t (:background "LightSlateGray")))) - (dired-face-marked ((t (:background "PaleVioletRed")))) - (dired-face-permissions ((t (:background "grey75" :foreground "black")))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (dired-face-symlink ((t (:foreground "cyan")))) - (font-lock-builtin-face ((t (:foreground "red3")))) - (font-lock-comment-face ((t (:foreground "blue4")))) - (font-lock-constant-face ((t (:foreground "red3")))) - (font-lock-doc-string-face ((t (:foreground "green4")))) - (font-lock-function-name-face ((t (:foreground "brown4")))) - (font-lock-keyword-face ((t (:foreground "red4")))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:foreground "green4")))) - (font-lock-type-face ((t (:foreground "steelblue")))) - (font-lock-variable-name-face ((t (:foreground "magenta4")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:background "Gray80")))) - (highlight ((t (:background "darkseagreen2")))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (isearch ((t (:background "paleturquoise")))) - (italic ((t (:italic t)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68")))) - (modeline ((t (:background "Gray80")))) - (modeline-buffer-id ((t (:background "Gray80" :foreground "blue4")))) - (modeline-mousable ((t (:background "Gray80" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "Gray80" :foreground "green4")))) - (paren-blink-off ((t (:foreground "gray80")))) - (paren-match ((t (:background "darkseagreen2")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "black")))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "gray65")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (text-cursor ((t (:background "Red3" :foreground "gray80")))) - (toolbar ((t (:background "Gray80")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (:background "Gray80")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "gray65"))))))) - -(defun color-theme-jsc-light () - "Color theme by John S Cooper, created 2000-06-08." - (interactive) - (color-theme-install - '(color-theme-jsc-light - ((background-color . "white") - (background-mode . light) - (border-color . "black") - (cursor-color . "Red") - (foreground-color . "black") - (mouse-color . "black")) - ((gnus-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t :foreground "red3")))) - (bold-italic ((t (:italic t :bold t :foreground "red")))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:italic t :bold t :foreground "Red3")))) - (font-lock-constant-face ((t (:foreground "navy")))) - (font-lock-function-name-face ((t (:bold t :foreground "Blue")))) - (font-lock-keyword-face ((t (:bold t :foreground "Purple")))) - (font-lock-string-face ((t (:foreground "Green4")))) - (font-lock-type-face ((t (:foreground "Navy")))) - (font-lock-variable-name-face ((t (:foreground "Tan4")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "blue2")))) - (gnus-group-news-1-face ((t (:bold t :foreground "blue2")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:italic t :foreground "blue")))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "red3")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:bold t :foreground "red")))) - (gnus-signature-face ((t (:foreground "pink")))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "navy")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:bold t :foreground "blue")))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "red3")))) - (gnus-summary-normal-ticked-face ((t (:foreground "black")))) - (gnus-summary-normal-unread-face ((t (:bold t :foreground "red3")))) - (gnus-summary-selected-face ((t (:underline t)))) - (highlight ((t (:background "antiquewhite" :foreground "blue")))) - (italic ((t (:italic t)))) - (makefile-space-face ((t (:background "hotpink")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "plum" :foreground "black")))) - (modeline-buffer-id ((t (:background "plum" :foreground "black")))) - (modeline-mousable ((t (:background "plum" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "plum" :foreground "black")))) - (region ((t (:background "plum")))) - (secondary-selection ((t (:background "palegreen")))) - (show-paren-match-face ((t (:background "plum")))) - (show-paren-mismatch-face ((t (:background "navy" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (underline ((t (:underline t)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85"))))))) - -(defun color-theme-jsc-dark () - "Color theme by John S Cooper, created 2000-06-11." - (interactive) - (color-theme-install - '(color-theme-jsc-dark - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "white") - (foreground-color . "cornsilk") - (mouse-color . "black")) - ((gnus-mouse-face . highlight) - (goto-address-mail-face . italic) - (goto-address-mail-mouse-face . secondary-selection) - (goto-address-url-face . bold) - (goto-address-url-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (blank-space-face ((t (:background "LightGray")))) - (blank-tab-face ((t (:background "cornsilk" :foreground "black")))) - (default ((t (nil)))) - (bold ((t (:bold t :foreground "white")))) - (bold-italic ((t (:italic t :bold t)))) - (calendar-today-face ((t (:underline t)))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue")))) - (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red")))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (custom-button-face ((t (:foreground "white")))) - (custom-changed-face ((t (:background "skyblue" :foreground "wheat")))) - (custom-documentation-face ((t (:foreground "white")))) - (custom-face-tag-face ((t (:underline t :foreground "white")))) - (custom-group-tag-face ((t (:underline t :foreground "skyblue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "pink")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:foreground "blue")))) - (custom-state-face ((t (:foreground "light green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "skyblue")))) - (diary-face ((t (:bold t :foreground "orange")))) - (font-lock-builtin-face ((t (:bold t :foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:italic t :foreground "red")))) - (font-lock-constant-face ((t (:bold t :foreground "salmon")))) - (font-lock-function-name-face ((t (:bold t :foreground "orange")))) - (font-lock-keyword-face ((t (:bold t :foreground "gold")))) - (font-lock-string-face ((t (:italic t :foreground "orange")))) - (font-lock-type-face ((t (:bold t :foreground "gold")))) - (font-lock-variable-name-face ((t (:italic t :bold t :foreground "light salmon")))) - (font-lock-warning-face ((t (:bold t :foreground "gold")))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:foreground "light cyan")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "light blue")))) - (gnus-cite-face-3 ((t (:foreground "light yellow")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:background "goldenrod4" :foreground "white")))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t :background "yellow" :foreground "black")))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t :background "yellow" :foreground "black")))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t :background "yellow" :foreground "black")))) - (gnus-filterhist-face-1 ((t (nil)))) - (gnus-group-mail-1-empty-face ((t (:foreground "gray80")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "white")))) - (gnus-group-mail-2-empty-face ((t (:foreground "lightcyan")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "lightcyan")))) - (gnus-group-mail-3-empty-face ((t (:foreground "tan")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "tan")))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4")))) - (gnus-group-news-1-empty-face ((t (:foreground "white")))) - (gnus-group-news-1-face ((t (:bold t :foreground "white")))) - (gnus-group-news-2-empty-face ((t (:foreground "lightcyan")))) - (gnus-group-news-2-face ((t (:bold t :foreground "lightcyan")))) - (gnus-group-news-3-empty-face ((t (:foreground "tan")))) - (gnus-group-news-3-face ((t (:bold t :foreground "tan")))) - (gnus-group-news-4-empty-face ((t (:foreground "white")))) - (gnus-group-news-4-face ((t (:bold t :foreground "white")))) - (gnus-group-news-5-empty-face ((t (:foreground "wheat")))) - (gnus-group-news-5-face ((t (:bold t :foreground "wheat")))) - (gnus-group-news-6-empty-face ((t (:foreground "tan")))) - (gnus-group-news-6-face ((t (:bold t :foreground "tan")))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise")))) - (gnus-header-content-face ((t (:italic t :foreground "plum1")))) - (gnus-header-from-face ((t (:bold t :foreground "wheat")))) - (gnus-header-name-face ((t (:bold t :foreground "gold")))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "wheat")))) - (gnus-header-subject-face ((t (:bold t :foreground "red")))) - (gnus-signature-face ((t (:italic t :foreground "maroon")))) - (gnus-splash ((t (:foreground "Brown")))) - (gnus-splash-face ((t (:foreground "gold")))) - (gnus-summary-cancelled-face ((t (:background "gray" :foreground "black")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "gray70")))) - (gnus-summary-high-unread-face ((t (:italic t :bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :bold t :foreground "gray70")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:bold t :foreground "gray70")))) - (gnus-summary-normal-unread-face ((t (:bold t)))) - (gnus-summary-selected-face ((t (:underline t :background "deepskyblue4")))) - (highlight ((t (:background "darkslategray" :foreground "wheat")))) - (highlight-changes-delete-face ((t (:underline t :foreground "red")))) - (highlight-changes-face ((t (:foreground "red")))) - (highline-face ((t (:background "gray35")))) - (holiday-face ((t (:background "red")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t :foreground "yellow")))) - (info-xref ((t (:bold t :foreground "plum")))) - (italic ((t (:italic t)))) - (lazy-highlight-face ((t (:bold t :foreground "dark magenta")))) - (linemenu-face ((t (:background "gray30")))) - (makefile-space-face ((t (:background "hotpink")))) - (message-cited-text-face ((t (:foreground "plum1")))) - (message-header-cc-face ((t (:bold t :foreground "ivory")))) - (message-header-name-face ((t (:foreground "light sky blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "lavender blush")))) - (message-header-other-face ((t (:foreground "pale turquoise")))) - (message-header-subject-face ((t (:bold t :foreground "papaya whip")))) - (message-header-to-face ((t (:bold t :foreground "floral white")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:bold t :foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "sandy brown")))) - (modeline ((t (:background "tan" :foreground "black")))) - (modeline-buffer-id ((t (:background "tan" :foreground "black")))) - (modeline-mousable ((t (:background "tan" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "tan" :foreground "black")))) - (paren-mismatch-face ((t (:bold t :background "white" :foreground "red")))) - (paren-no-match-face ((t (:bold t :background "white" :foreground "red")))) - (region ((t (:background "slategrey")))) - (secondary-selection ((t (:background "deepskyblue4")))) - (sgml-doctype-face ((t (:foreground "orange")))) - (sgml-end-tag-face ((t (:foreground "greenyellow")))) - (sgml-entity-face ((t (:foreground "gold")))) - (sgml-ignored-face ((t (:background "gray60" :foreground "gray20")))) - (sgml-sgml-face ((t (:foreground "yellow")))) - (sgml-start-tag-face ((t (:foreground "mediumspringgreen")))) - (show-paren-match-face ((t (:background "deepskyblue4")))) - (show-paren-mismatch-face ((t (:bold t :background "red" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:bold t :foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (underline ((t (:underline t)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "gray20")))) - (widget-inactive-face ((t (:foreground "wheat")))) - (widget-single-line-field-face ((t (:background "gray20")))) - (woman-bold-face ((t (:bold t)))) - (woman-italic-face ((t (:foreground "beige")))) - (woman-unknown-face ((t (:foreground "LightSalmon"))))))) - -(defun color-theme-greiner () - "Color theme by Kevin Greiner, created 2000-06-13. -Black on Beige, supports default, font-lock, speedbar, custom, widget -faces. Designed to be easy on the eyes, particularly on Win32 -computers which commonly have white window backgrounds." - (interactive) - (color-theme-install - '(color-theme-greiner - ((background-color . "beige") - (background-mode . light) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "black") - (mouse-color . "black")) - ((list-matching-lines-face . bold)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (font-lock-builtin-face ((t (:foreground "blue4")))) - (font-lock-comment-face ((t (:foreground "Firebrick")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-function-name-face ((t (:foreground "Blue")))) - (font-lock-keyword-face ((t (:foreground "royal blue")))) - (font-lock-string-face ((t (:foreground "RosyBrown")))) - (font-lock-type-face ((t (:foreground "ForestGreen")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (highlight ((t (:background "darkseagreen2")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (italic ((t (:italic t)))) - (modeline ((t (:background "black" :foreground "white")))) - (modeline-mousable-minor-mode ((t (:background "black" :foreground "white")))) - (modeline-mousable ((t (:background "black" :foreground "white")))) - (modeline-buffer-id ((t (:background "black" :foreground "white")))) - (region ((t (:background "gray")))) - (secondary-selection ((t (:background "paleturquoise")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (underline ((t (:underline t)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85"))))))) - -(defun color-theme-jb-simple () - "Color theme by jeff, created 2000-06-14. -Uses white background and bold for many things" - (interactive) - (color-theme-install - '(color-theme-jb-simple - ((background-color . "white") - (background-mode . light) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "black") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (cursor-color . "black") - (foreground-color . "black") - (mouse-color . "black") - (top-toolbar-shadow-color . "#fffffbeeffff")) - ((gnus-mouse-face . highlight) - (list-matching-lines-face . bold) - (rmail-highlight-face . font-lock-function-name-face) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (blank-space-face ((t (nil)))) - (blank-tab-face ((t (nil)))) - (blue ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (nil)))) - (calendar-today-face ((t (:underline t)))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue")))) - (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red")))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (custom-button-face ((t (:bold t)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :bold t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :bold t :foreground "blue")))) - (diary-face ((t (:bold t :foreground "red")))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (erc-action-face ((t (:bold t)))) - (erc-bold-face ((t (:bold t)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (nil)))) - (erc-error-face ((t (:bold t)))) - (erc-input-face ((t (nil)))) - (erc-inverse-face ((t (nil)))) - (erc-notice-face ((t (nil)))) - (erc-pal-face ((t (nil)))) - (erc-prompt-face ((t (nil)))) - (erc-underline-face ((t (nil)))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid")))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-ls-directory-face ((t (:bold t :foreground "Blue")))) - (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen")))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red")))) - (eshell-ls-picture-face ((t (nil)))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta")))) - (eshell-ls-symlink-face ((t (:bold t :foreground "DarkCyan")))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:bold t :foreground "Red")))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-test-ok-face ((t (:bold t :foreground "Green")))) - (excerpt ((t (:italic t)))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue")))) - (fixed ((t (:bold t)))) - (flyspell-duplicate-face ((t (:underline t :bold t :foreground "Gold3")))) - (flyspell-incorrect-face ((t (:underline t :bold t :foreground "OrangeRed")))) - (font-latex-bold-face ((t (nil)))) - (font-latex-italic-face ((t (nil)))) - (font-latex-math-face ((t (nil)))) - (font-latex-sedate-face ((t (nil)))) - (font-latex-string-face ((t (nil)))) - (font-latex-warning-face ((t (nil)))) - (font-lock-builtin-face ((t (:bold t :foreground "Orchid")))) - (font-lock-comment-face ((t (:italic t :bold t :foreground "blue4")))) - (font-lock-constant-face ((t (:bold t :foreground "CadetBlue")))) - (font-lock-doc-string-face ((t (:italic t :bold t :foreground "blue4")))) - (font-lock-exit-face ((t (nil)))) - (font-lock-function-name-face ((t (:bold t :foreground "brown4")))) - (font-lock-keyword-face ((t (:bold t :foreground "black")))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:italic t :bold t :foreground "green4")))) - (font-lock-type-face ((t (:bold t :foreground "steelblue")))) - (font-lock-variable-name-face ((t (:italic t :bold t :foreground "magenta4")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (gnus-cite-attribution-face ((t (:italic t :bold t)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (nil)))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-filterhist-face-1 ((t (nil)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4")))) - (gnus-header-from-face ((t (:bold t :foreground "red3")))) - (gnus-header-name-face ((t (:bold t :foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:bold t :foreground "red4")))) - (gnus-signature-face ((t (:italic t)))) - (gnus-splash ((t (nil)))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:italic t :bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :bold t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (:bold t)))) - (gnus-summary-selected-face ((t (:underline t)))) - (green ((t (nil)))) - (gui-button-face ((t (:background "grey75")))) - (gui-element ((t (:background "Gray80")))) - (highlight ((t (:background "darkseagreen2")))) - (highlight-changes-delete-face ((t (:underline t :foreground "red")))) - (highlight-changes-face ((t (:foreground "red")))) - (highline-face ((t (:background "paleturquoise")))) - (holiday-face ((t (:background "pink")))) - (html-helper-italic-face ((t (:italic t)))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (isearch ((t (nil)))) - (italic ((t (:italic t)))) - (lazy-highlight-face ((t (:bold t :foreground "dark magenta")))) - (left-margin ((t (nil)))) - (linemenu-face ((t (nil)))) - (list-mode-item-selected ((t (nil)))) - (makefile-space-face ((t (:background "hotpink")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:bold t)))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "darkblue" :foreground "yellow")))) - (modeline-buffer-id ((t (:background "black" :foreground "white")))) - (modeline-mousable ((t (:background "black" :foreground "white")))) - (modeline-mousable-minor-mode ((t (:background "black" :foreground "white")))) - (nil ((t (nil)))) - (paren-mismatch-face ((t (:bold t)))) - (paren-no-match-face ((t (:bold t)))) - (pointer ((t (nil)))) - (primary-selection ((t (nil)))) - (red ((t (nil)))) - (region ((t (:background "gray")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (sgml-doctype-face ((t (nil)))) - (sgml-end-tag-face ((t (nil)))) - (sgml-entity-face ((t (nil)))) - (sgml-ignored-face ((t (nil)))) - (sgml-sgml-face ((t (nil)))) - (sgml-start-tag-face ((t (nil)))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:bold t :background "purple" :foreground "white")))) - (speedbar-button-face ((t (:bold t :foreground "green4")))) - (speedbar-directory-face ((t (:bold t :foreground "blue4")))) - (speedbar-file-face ((t (:bold t :foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (swbuff-current-buffer-face ((t (:bold t)))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (:background "black")))) - (term-blue ((t (:foreground "blue")))) - (term-bluebg ((t (:background "blue")))) - (term-bold ((t (:bold t)))) - (term-cyan ((t (:foreground "cyan")))) - (term-cyanbg ((t (:background "cyan")))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-green ((t (:foreground "green")))) - (term-greenbg ((t (:background "green")))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (:foreground "magenta")))) - (term-magentabg ((t (:background "magenta")))) - (term-red ((t (:foreground "red")))) - (term-redbg ((t (:background "red")))) - (term-underline ((t (:underline t)))) - (term-white ((t (:foreground "white")))) - (term-whitebg ((t (:background "white")))) - (term-yellow ((t (:foreground "yellow")))) - (term-yellowbg ((t (:background "yellow")))) - (text-cursor ((t (nil)))) - (toolbar ((t (nil)))) - (underline ((t (:underline t)))) - (vc-annotate-face-0046FF ((t (nil)))) - (vcursor ((t (:underline t :background "cyan" :foreground "blue")))) - (vertical-divider ((t (nil)))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red")))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange")))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue")))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod")))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen")))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown")))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Grey50")))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (woman-bold-face ((t (:bold t)))) - (woman-italic-face ((t (nil)))) - (woman-unknown-face ((t (nil)))) - (yellow ((t (nil)))) - (zmacs-region ((t (nil))))))) - -(defun color-theme-beige-diff () - "Brownish faces for diff and change-log modes. -This is intended for other color themes to use (eg. `color-theme-gnome2' -and `color-theme-blue-sea')." - (color-theme-install - '(color-theme-beige-diff - nil - (change-log-acknowledgement-face ((t (:foreground "firebrick")))) - (change-log-conditionals-face ((t (:foreground "khaki" :background "sienna")))) - (change-log-date-face ((t (:foreground "gold")))) - (change-log-email-face ((t (:foreground "khaki" :underline t)))) - (change-log-file-face ((t (:bold t :foreground "lemon chiffon")))) - (change-log-function-face ((t (:foreground "khaki" :background "sienna")))) - (change-log-list-face ((t (:foreground "wheat")))) - (change-log-name-face ((t (:bold t :foreground "light goldenrod")))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (:foreground "grey50")))) - (diff-file-header-face ((t (:bold t :foreground "lemon chiffon")))) - (diff-function-face ((t (:foreground "grey50")))) - (diff-header-face ((t (:foreground "lemon chiffon")))) - (diff-hunk-header-face ((t (:foreground "light goldenrod")))) - (diff-index-face ((t (:bold t :underline t)))) - (diff-nonexistent-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-removed-face ((t (nil)))) - (log-view-message-face ((t (:foreground "lemon chiffon"))))))) - -(defun color-theme-standard-ediff () - "Standard colors for ediff faces. -This is intended for other color themes to use -\(eg. `color-theme-goldenrod')." - (color-theme-install - '(color-theme-beige-diff - nil - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White"))))))) - -(defun color-theme-beige-eshell () - "Brownish colors for eshell faces only. -This is intended for other color themes to use (eg. `color-theme-goldenrod')." - (color-theme-install - '(color-theme-beige-eshell - nil - (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed")))) - (eshell-ls-backup-face ((t (:foreground "Grey")))) - (eshell-ls-clutter-face ((t (:foreground "DimGray")))) - (eshell-ls-directory-face ((t (:bold t :foreground "dark khaki")))) - (eshell-ls-executable-face ((t (:foreground "Coral")))) - (eshell-ls-missing-face ((t (:foreground "black")))) - (eshell-ls-picture-face ((t (:foreground "gold")))) ; non-standard face - (eshell-ls-product-face ((t (:foreground "dark sea green")))) - (eshell-ls-readonly-face ((t (:foreground "light steel blue")))) - (eshell-ls-special-face ((t (:foreground "gold")))) - (eshell-ls-symlink-face ((t (:foreground "peach puff")))) - (eshell-ls-text-face ((t (:foreground "moccasin")))) ; non-standard face - (eshell-ls-todo-face ((t (:bold t :foreground "yellow green")))) ; non-standard face - (eshell-ls-unreadable-face ((t (:foreground "DimGray")))) - (eshell-prompt-face ((t (:foreground "lemon chiffon"))))))) - -(defun color-theme-goldenrod () - "Brown color theme. Very different from the others. -Supports standard, font-lock and info faces, and it uses -`color-theme-blue-gnus', `color-theme-blue-erc' , and -`color-theme-beige-diff'." - (interactive) - (color-theme-blue-gnus) - (let ((color-theme-is-cumulative t)) - (color-theme-blue-erc) - (color-theme-beige-diff) - (color-theme-beige-eshell) - (color-theme-install - '(color-theme-goldenrod - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "light goldenrod") - (foreground-color . "goldenrod") - (mouse-color . "goldenrod")) - ((goto-address-mail-face . info-xref) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t :foreground "lavender")))) - (font-lock-builtin-face ((t (:foreground "pale goldenrod")))) - (font-lock-comment-face ((t (:foreground "indian red")))) - (font-lock-constant-face ((t (:foreground "pale green")))) - (font-lock-function-name-face ((t (:bold t :foreground "lemon chiffon")))) - (font-lock-keyword-face ((t (:foreground "wheat")))) - (font-lock-string-face ((t (:foreground "gold")))) - (font-lock-type-face ((t (:foreground "dark khaki" :bold t)))) - (font-lock-variable-name-face ((t (:bold t :foreground "khaki")))) - (font-lock-warning-face ((t (:bold t :foreground "orange red")))) - (fringe ((t (:background "gray25")))) - (header-line ((t (:background "gray20" :foreground "gray70")))) - (highlight ((t (:background "dark slate blue")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:bold t)))) - (info-xref ((t (:bold t :foreground "pale goldenrod")))) - (isearch ((t (:background "SeaGreen4")))) - (isearch-lazy-highlight-face ((t (:background "DarkOliveGreen4")))) - (italic ((t (:italic t :foreground "lavender")))) - (menu ((t (:background "gray25" :foreground "lemon chiffon")))) - (modeline ((t (:background "gray40" :foreground "lemon chiffon" :box (:line-width 1 :style released-button))))) - (modeline-buffer-id ((t (:background "AntiqueWhite4" :foreground "lemon chiffon")))) - (modeline-mousable ((t (:background "AntiqueWhite4" :foreground "lemon chiffon")))) - (modeline-mousable-minor-mode ((t (:background "wheat" :foreground "lemon chiffon")))) - (mode-line-inactive ((t (:background "gray20" :foreground "lemon chiffon" :box (:line-width 1 :style released-button))))) - (region ((t (:background "dark olive green")))) - (secondary-selection ((t (:background "dark green")))) - (tool-bar ((t (:background "gray25" :foreground "lemon chiffon" :box (:line-width 1 :style released-button))))) - (underline ((t (:underline t)))))))) - -(defun color-theme-ramangalahy () - "Color theme by Solofo Ramangalahy, created 2000-10-18. -Black on light grey, includes faces for vm, ispell, gnus, -dired, display-time, cperl, font-lock, widget, x-symbol." - (interactive) - (color-theme-install - '(color-theme-ramangalahy - ((background-color . "lightgrey") - (background-mode . light) - (background-toolbar-color . "#bfbfbfbfbfbf") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#737373737373") - (cursor-color . "blue") - (foreground-color . "black") - (top-toolbar-shadow-color . "#e6e6e6e6e6e6")) - ((gnus-mouse-face . highlight) - (goto-address-mail-face . info-xref) - (ispell-highlight-face . highlight) - (notes-bold-face . notes-bold-face) - (setnu-line-number-face . bold) - (tinyreplace-:face . highlight) - (vm-highlight-url-face . bold-italic) - (vm-highlighted-header-face . bold) - (vm-mime-button-face . gui-button-face) - (vm-summary-highlight-face . bold)) - (default ((t (nil)))) - (bbdb-company ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (nil)))) - (cperl-here-face ((t (:foreground "green4")))) - (cperl-pod-face ((t (:foreground "brown4")))) - (cperl-pod-head-face ((t (:foreground "steelblue")))) - (custom-button-face ((t (:bold t)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t)))) - (dired-face-executable ((t (:foreground "SeaGreen")))) - (dired-face-flagged ((t (:background "LightSlateGray")))) - (dired-face-marked ((t (:background "PaleVioletRed")))) - (dired-face-permissions ((t (:background "grey75" :foreground "black")))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (dired-face-symlink ((t (:foreground "blue")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue")))) - (font-lock-comment-face ((t (:bold t :foreground "purple")))) - (font-lock-doc-string-face ((t (:bold t :foreground "slateblue")))) - (font-lock-emphasized-face ((t (:bold t :background "lightyellow2")))) - (font-lock-function-name-face ((t (:bold t :foreground "blue")))) - (font-lock-keyword-face ((t (:bold t :foreground "violetred")))) - (font-lock-other-emphasized-face ((t (:italic t :bold t :background "lightyellow2")))) - (font-lock-other-type-face ((t (:bold t :foreground "orange3")))) - (font-lock-preprocessor-face ((t (:bold t :foreground "mediumblue")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:foreground "green4")))) - (font-lock-type-face ((t (:bold t :foreground "steelblue")))) - (font-lock-variable-name-face ((t (:foreground "magenta4")))) - (font-lock-warning-face ((t (:bold t :background "yellow" :foreground "Red")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (nil)))) - (gnus-emphasis-italic ((t (nil)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t)))) - (gnus-emphasis-underline-italic ((t (:underline t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-news-3-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:foreground "indianred4")))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-signature-face ((t (:bold t)))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (nil)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-x-face ((t (:background "lightgrey" :foreground "black")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:background "lightgrey")))) - (highlight ((t (:background "darkseagreen2")))) - (info-node ((t (:underline t :bold t :foreground "mediumpurple")))) - (info-xref ((t (:underline t :bold t :foreground "#0000ee")))) - (isearch ((t (:background "paleturquoise")))) - (italic ((t (:italic t)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68" :foreground "black")))) - (message-cited-text ((t (:foreground "slategrey")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-contents ((t (:italic t)))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-headers ((t (:bold t)))) - (message-highlighted-header-contents ((t (:bold t)))) - (message-separator-face ((t (:foreground "brown")))) - (message-url ((t (:bold t)))) - (modeline ((t (:bold t :background "Gray75" :foreground "Black")))) - (modeline-buffer-id ((t (:bold t :background "Gray75" :foreground "blue4")))) - (modeline-mousable ((t (:bold t :background "Gray75" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:bold t :background "Gray75" :foreground "green4")))) - (paren-blink-off ((t (:foreground "lightgrey")))) - (paren-match ((t (:background "darkseagreen2")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "black")))) - (pointer ((t (:foreground "blue")))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "black" :foreground "white")))) - (right-margin ((t (nil)))) - (searchm-buffer ((t (:bold t :background "white" :foreground "red")))) - (searchm-button ((t (:bold t :background "CadetBlue" :foreground "white")))) - (searchm-field ((t (:background "grey89")))) - (searchm-field-label ((t (:bold t)))) - (searchm-highlight ((t (:bold t :background "darkseagreen2" :foreground "black")))) - (secondary-selection ((t (:background "paleturquoise")))) - (template-message-face ((t (:bold t)))) - (text-cursor ((t (:background "blue" :foreground "lightgrey")))) - (toolbar ((t (nil)))) - (underline ((t (:underline t)))) - (vertical-divider ((t (nil)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (x-face ((t (:background "white" :foreground "black")))) - (x-symbol-adobe-fontspecific-face ((t (nil)))) - (x-symbol-face ((t (nil)))) - (x-symbol-heading-face ((t (:underline t :bold t :foreground "green4")))) - (x-symbol-info-face ((t (:foreground "green4")))) - (x-symbol-invisible-face ((t (nil)))) - (x-symbol-revealed-face ((t (:background "pink")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "yellow"))))))) - -(defun color-theme-raspopovic () - "Color theme by Pedja Raspopovic, created 2000-10-19. -Includes faces for dired, font-lock, info, paren." - (interactive) - (color-theme-install - '(color-theme-raspopovic - ((background-color . "darkblue") - (background-mode . light) - (background-toolbar-color . "#bfbfbfbfbfbf") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#737373737373") - (cursor-color . "Red3") - (foreground-color . "yellow") - (top-toolbar-shadow-color . "#e6e6e6e6e6e6")) - ((setnu-line-number-face . bold) - (goto-address-mail-face . info-xref)) - (default ((t (nil)))) - (blue ((t (:background "darkblue" :foreground "blue")))) - (bold ((t (:bold t :background "darkblue" :foreground "yellow")))) - (bold-italic ((t (:bold t :background "darkblue" :foreground "red3")))) - (comint-input-face ((t (:foreground "deepskyblue")))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:foreground "lightgreen")))) - (dired-face-executable ((t (:foreground "indianred")))) - (dired-face-flagged ((t (:background "LightSlateGray")))) - (dired-face-marked ((t (:background "darkblue" :foreground "deepskyblue")))) - (dired-face-permissions ((t (:background "darkblue" :foreground "white")))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (dired-face-symlink ((t (:foreground "grey95")))) - (font-lock-comment-face ((t (:background "darkblue" :foreground "lightgreen")))) - (font-lock-doc-string-face ((t (:background "darkblue" :foreground "darkseagreen")))) - (font-lock-function-name-face ((t (:bold t :background "darkblue" :foreground "indianred")))) - (font-lock-keyword-face ((t (:background "darkblue" :foreground "skyblue")))) - (font-lock-preprocessor-face ((t (:background "darkblue" :foreground "orange")))) - (font-lock-reference-face ((t (:background "darkblue" :foreground "deepskyblue")))) - (font-lock-string-face ((t (:background "darkblue" :foreground "lightgrey")))) - (font-lock-type-face ((t (:background "darkblue" :foreground "orange")))) - (font-lock-variable-name-face ((t (:background "darkblue" :foreground "white")))) - (green ((t (:background "darkblue" :foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (highlight ((t (:background "yellow" :foreground "darkblue")))) - (info-node ((t (:bold t :background "darkblue" :foreground "red3")))) - (info-xref ((t (:bold t :background "darkblue" :foreground "yellow")))) - (isearch ((t (:background "yellow" :foreground "darkblue")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (:background "darkblue" :foreground "red3")))) - (left-margin ((t (:background "darkblue" :foreground "yellow")))) - (list-mode-item-selected ((t (:background "gray68" :foreground "yellow")))) - (makefile-space-face ((t (:background "hotpink")))) - (modeline ((t (:background "Gray75" :foreground "Black")))) - (modeline-buffer-id ((t (:background "Gray75" :foreground "blue")))) - (modeline-mousable ((t (:background "Gray75" :foreground "red")))) - (modeline-mousable-minor-mode ((t (:background "Gray75" :foreground "green4")))) - (paren-blink-off ((t (:foreground "darkblue")))) - (paren-match ((t (:background "yellow" :foreground "darkblue")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "yellow")))) - (pointer ((t (:background "darkblue" :foreground "red3")))) - (primary-selection ((t (:background "yellow" :foreground "darkblue")))) - (red ((t (:background "darkblue" :foreground "red")))) - (right-margin ((t (:background "darkblue" :foreground "yellow")))) - (secondary-selection ((t (:background "darkblue" :foreground "yellow")))) - (shell-option-face ((t (:background "darkblue" :foreground "cyan2")))) - (shell-output-2-face ((t (:background "darkblue" :foreground "darkseagreen")))) - (shell-output-3-face ((t (:background "darkblue" :foreground "lightgrey")))) - (shell-output-face ((t (:background "darkblue" :foreground "white")))) - (shell-prompt-face ((t (:background "darkblue" :foreground "red")))) - (text-cursor ((t (:background "Red3" :foreground "white")))) - (underline ((t (:underline t :background "darkblue" :foreground "yellow")))) - (vvb-face ((t (:background "pink" :foreground "black")))) - (yellow ((t (:background "darkblue" :foreground "yellow")))) - (zmacs-region ((t (:background "gray" :foreground "black"))))))) - -(defun color-theme-taylor () - "Color theme by Art Taylor, created 2000-10-20. -Wheat on black. Includes faces for font-lock, gnus, paren." - (interactive) - (color-theme-install - '(color-theme-taylor - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "red") - (foreground-color . "wheat") - (mouse-color . "black")) - ((gnus-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t :background "grey40" :foreground "yellow")))) - (bold-italic ((t (:italic t :bold t :foreground "yellow green")))) - (fl-comment-face ((t (:foreground "medium purple")))) - (fl-function-name-face ((t (:foreground "green")))) - (fl-keyword-face ((t (:foreground "LightGreen")))) - (fl-string-face ((t (:foreground "light coral")))) - (fl-type-face ((t (:foreground "cyan")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:foreground "OrangeRed")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-function-name-face ((t (:foreground "LightSkyBlue")))) - (font-lock-keyword-face ((t (:foreground "Cyan")))) - (font-lock-string-face ((t (:foreground "LightSalmon")))) - (font-lock-type-face ((t (:foreground "PaleGreen")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1")))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2")))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3")))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4")))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise")))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise")))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (highlight ((t (:background "black" :foreground "black")))) - (italic ((t (:italic t :foreground "yellow3")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "green4")))) - (message-header-name-face ((t (:foreground "DarkGreen")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow")))) - (message-header-other-face ((t (:foreground "#b00000")))) - (message-header-subject-face ((t (:foreground "green3")))) - (message-header-to-face ((t (:bold t :foreground "green2")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "blue3")))) - (modeline ((t (:background "wheat" :foreground "black")))) - (modeline-buffer-id ((t (:background "wheat" :foreground "black")))) - (modeline-mousable ((t (:background "wheat" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "wheat" :foreground "black")))) - (region ((t (:background "blue")))) - (secondary-selection ((t (:background "darkslateblue" :foreground "black")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (underline ((t (:underline t)))) - (xref-keyword-face ((t (:foreground "blue")))) - (xref-list-default-face ((t (nil)))) - (xref-list-pilot-face ((t (:foreground "navy")))) - (xref-list-symbol-face ((t (:foreground "navy"))))))) - -(defun color-theme-marquardt () - "Color theme by Colin Marquardt, created 2000-10-25. -Black on bisque, a light color. Based on some settings from Robin S. Socha. -Features some color changes to programming languages, especially vhdl-mode. -You might also want to put something like - Emacs*Foreground: Black - Emacs*Background: bisque2 -in your ~/.Xdefaults." - (interactive) - (color-theme-install - '(color-theme-marquardt - ((background-color . "bisque") - (background-mode . light) - (background-toolbar-color . "bisque") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#909099999999") - (cursor-color . "Red3") - (foreground-color . "black") - (top-toolbar-shadow-color . "#ffffffffffff")) - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:bold t)))) - (border-glyph ((t (nil)))) - (calendar-today-face ((t (:underline t)))) - (diary-face ((t (:foreground "red")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue")))) - (font-lock-comment-face ((t (:foreground "gray50")))) - (font-lock-doc-string-face ((t (:foreground "green4")))) - (font-lock-function-name-face ((t (:foreground "darkorange")))) - (font-lock-keyword-face ((t (:foreground "blue3")))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-special-comment-face ((t (:foreground "blue4")))) - (font-lock-special-keyword-face ((t (:foreground "red4")))) - (font-lock-string-face ((t (:foreground "green4")))) - (font-lock-type-face ((t (:foreground "steelblue")))) - (font-lock-variable-name-face ((t (:foreground "black")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:background "azure1" :foreground "Black")))) - (highlight ((t (:background "darkseagreen2" :foreground "blue")))) - (holiday-face ((t (:background "pink" :foreground "black")))) - (info-node ((t (:bold t)))) - (info-xref ((t (:bold t)))) - (isearch ((t (:background "yellow" :foreground "red")))) - (italic ((t (:bold t)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68" :foreground "black")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "bisque2" :foreground "steelblue4")))) - (modeline-buffer-id ((t (:background "bisque2" :foreground "blue4")))) - (modeline-mousable ((t (:background "bisque2" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "bisque2" :foreground "green4")))) - (paren-blink-off ((t (:foreground "azure1")))) - (paren-face ((t (:background "lightgoldenrod")))) - (paren-match ((t (:background "bisque2")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "black")))) - (paren-mismatch-face ((t (:background "DeepPink")))) - (paren-no-match-face ((t (:background "yellow")))) - (pointer ((t (:background "white" :foreground "blue")))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (shell-option-face ((t (:foreground "gray50")))) - (shell-output-2-face ((t (:foreground "green4")))) - (shell-output-3-face ((t (:foreground "green4")))) - (shell-output-face ((t (:bold t)))) - (shell-prompt-face ((t (:foreground "blue3")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (text-cursor ((t (:background "Red3" :foreground "bisque")))) - (toolbar ((t (:background "Gray80")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (nil)))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "SaddleBrown")))) - (vhdl-font-lock-function-face ((t (:foreground "DarkCyan")))) - (vhdl-font-lock-generic-/constant-face ((t (:foreground "Gold3")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red")))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange")))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-font-lock-type-face ((t (:foreground "ForestGreen")))) - (vhdl-font-lock-variable-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue")))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod")))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen")))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown")))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Grey50")))) - (vhdl-speedbar-subprogram-face ((t (:foreground "Orchid4")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "steelblue" :foreground "yellow"))))))) - -(defun color-theme-parus () - "Color theme by Jon K Hellan, created 2000-11-01. -White on dark blue color theme. - -There is some redundancy in the X resources, but I do not have time to -find out which should go or which should stay: - -Emacs*dialog*Background: midnightblue -Emacs*dialog*Foreground: white -Emacs*popup*Background: midnightblue -Emacs*popup*Foreground: white -emacs*background: #00005a -emacs*cursorColor: gray90 -emacs*foreground: White -emacs.dialog*.background: midnightblue -emacs.menu*.background: midnightblue -emacs.pane.menubar.background: midnightblue" - (interactive) - (color-theme-install - '(color-theme-parus - ((background-color . "#00005a") - (background-mode . dark) - (border-color . "black") - (cursor-color . "yellow") - (foreground-color . "White") - (mouse-color . "yellow")) - ((gnus-mouse-face . highlight) - (list-matching-lines-face . bold) - (paren-face . bold) - (paren-mismatch-face . paren-mismatch-face) - (paren-no-match-face . paren-no-match-face) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (font-latex-bold-face ((t (:bold t :foreground "OliveDrab")))) - (font-latex-italic-face ((t (:italic t :foreground "OliveDrab")))) - (font-latex-math-face ((t (:foreground "burlywood")))) - (font-latex-sedate-face ((t (:foreground "LightGray")))) - (font-latex-string-face ((t (:foreground "LightSalmon")))) - (font-latex-warning-face ((t (:foreground "Pink")))) - (font-lock-builtin-face ((t (:foreground "#e0e0ff")))) - (font-lock-reference-face ((t (:foreground "#e0e0ff")))) - (font-lock-comment-face ((t (:foreground "#FFd1d1")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-preprocessor-face ((t (:foreground "Aquamarine")))) - (font-lock-function-name-face ((t (:foreground "#b2e4ff")))) - (font-lock-keyword-face ((t (:foreground "#a0ffff")))) - (font-lock-string-face ((t (:foreground "#efca10")))) - (font-lock-doc-string-face ((t (:foreground "#efca10")))) - (font-lock-type-face ((t (:foreground "PaleGreen")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:foreground "#dfdfff")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "light cyan")))) - (gnus-cite-face-3 ((t (:foreground "light yellow")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1")))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2")))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3")))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4")))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise")))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise")))) - (gnus-header-content-face ((t (:italic t :foreground "#90f490")))) - (gnus-header-from-face ((t (:foreground "#aaffaa")))) - (gnus-header-name-face ((t (:foreground "#c7e3c7")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "yellow")))) - (gnus-header-subject-face ((t (:foreground "#a0f0a0")))) - (gnus-signature-face ((t (:italic t)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (highlight ((t (:background "darkolivegreen")))) - (italic ((t (:italic t)))) - (message-cited-text-face ((t (:foreground "#dfdfff")))) - (message-header-cc-face ((t (:bold t :foreground "#a0f0a0")))) - (message-header-name-face ((t (:foreground "#c7e3c7")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow")))) - (message-header-other-face ((t (:foreground "#db9b9b")))) - (message-header-subject-face ((t (:foreground "#a0f0a0")))) - (message-header-to-face ((t (:bold t :foreground "#aaffaa")))) - (message-header-xheader-face ((t (:foreground "#e2e2ff")))) - (message-mml-face ((t (:foreground "#abdbab")))) - (message-separator-face ((t (:foreground "#dfdfff")))) - (modeline ((t (:background "White" :foreground "#00005a")))) - (modeline-buffer-id ((t (:background "White" :foreground "#00005a")))) - (modeline-mousable ((t (:background "White" :foreground "#00005a")))) - (modeline-mousable-minor-mode ((t (:background "White" :foreground "#00005a")))) - (paren-mismatch-face ((t (:background "DeepPink")))) - (paren-no-match-face ((t (:background "yellow")))) - (region ((t (:background "blue")))) - (primary-selection ((t (:background "blue")))) - (isearch ((t (:background "blue")))) - (secondary-selection ((t (:background "darkslateblue")))) - (underline ((t (:underline t)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray"))))))) - -(defun color-theme-high-contrast () - "High contrast color theme, maybe for the visually impaired. -Watch out! This will set a very large font-size! - -If you want to modify the font as well, you should customize variable -`color-theme-legal-frame-parameters' to \"\\(color\\|mode\\|font\\|height\\|width\\)$\". -The default setting will prevent color themes from installing specific -fonts." - (interactive) - (color-theme-standard) - (let ((color-theme-is-cumulative t)) - (color-theme-install - '(color-theme-high-contrast - ((cursor-color . "red") - (width . 60) - (height . 25) - (background . dark)) - (default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight bold :height 240 :width normal :family "adobe-courier")))) - - (bold ((t (:bold t :underline t)))) - (bold-italic ((t (:bold t :underline t)))) - (font-lock-builtin-face ((t (:bold t :foreground "Red")))) - (font-lock-comment-face ((t (:bold t :foreground "Firebrick")))) - (font-lock-constant-face ((t (:bold t :underline t :foreground "Blue")))) - (font-lock-function-name-face ((t (:bold t :foreground "Blue")))) - (font-lock-keyword-face ((t (:bold t :foreground "Purple")))) - (font-lock-string-face ((t (:bold t :foreground "DarkGreen")))) - (font-lock-type-face ((t (:bold t :foreground "ForestGreen")))) - (font-lock-variable-name-face ((t (:bold t :foreground "DarkGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (highlight ((t (:background "black" :foreground "white" :bold 1)))) - (info-menu-5 ((t (:underline t :bold t)))) - (info-node ((t (:bold t)))) - (info-xref ((t (:bold t )))) - (italic ((t (:bold t :underline t)))) - (modeline ((t (:background "black" :foreground "white" :bold 1)))) - (modeline-buffer-id ((t (:background "black" :foreground "white" :bold 1)))) - (modeline-mousable ((t (:background "black" :foreground "white" :bold 1)))) - (modeline-mousable-minor-mode ((t (:background "black" :foreground "white" :bold 1)))) - (region ((t (:background "black" :foreground "white" :bold 1)))) - (secondary-selection ((t (:background "black" :foreground "white" :bold 1)))) - (underline ((t (:bold t :underline t)))))))) - -(defun color-theme-infodoc () - "Color theme by Frederic Giroud, created 2001-01-18. -Black on wheat scheme. Based on infodoc (xemacs variant distribution), -with my favorit fontlock color." - (interactive) - (color-theme-install - '(color-theme-infodoc - ((background-color . "wheat") - (background-mode . light) - (background-toolbar-color . "#000000000000") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#000000000000") - (cursor-color . "red") - (foreground-color . "black") - (top-toolbar-shadow-color . "#ffffffffffff")) - nil - (default ((t (:bold t)))) - (blue ((t (:bold t :foreground "blue")))) - (bold ((t (:background "wheat" :foreground "black")))) - (bold-italic ((t (:bold t :background "wheat" :foreground "black")))) - (border-glyph ((t (:bold t)))) - (calendar-today-face ((t (:underline t :bold t)))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:bold t :background "blue" :foreground "white")))) - (custom-documentation-face ((t (:bold t :background "wheat" :foreground "purple4")))) - (custom-face-tag-face ((t (:underline t :bold t)))) - (custom-group-tag-face ((t (:underline t :bold t :background "wheat" :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :bold t :background "wheat" :foreground "red")))) - (custom-invalid-face ((t (:bold t :background "red" :foreground "yellow")))) - (custom-modified-face ((t (:bold t :background "blue" :foreground "white")))) - (custom-rogue-face ((t (:bold t :background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t :bold t)))) - (custom-set-face ((t (:bold t :background "white" :foreground "blue")))) - (custom-state-face ((t (:bold t :background "wheat" :foreground "dark green")))) - (custom-variable-button-face ((t (:underline t)))) - (custom-variable-tag-face ((t (:underline t :bold t :background "wheat" :foreground "blue")))) - (diary-face ((t (:bold t :foreground "red")))) - (display-time-mail-balloon-enhance-face ((t (:bold t :background "wheat" :foreground "black")))) - (display-time-mail-balloon-gnus-group-face ((t (:bold t :background "wheat" :foreground "blue")))) - (display-time-time-balloon-face ((t (:bold t :background "light salmon" :foreground "dark green")))) - (font-lock-comment-face ((t (:bold t :background "wheat" :foreground "turquoise4")))) - (font-lock-doc-string-face ((t (:bold t :background "wheat" :foreground "purple4")))) - (font-lock-function-name-face ((t (:bold t :background "wheat" :foreground "blue4")))) - (font-lock-keyword-face ((t (:bold t :background "wheat" :foreground "dark orchid")))) - (font-lock-preprocessor-face ((t (:bold t :background "wheat" :foreground "orchid4")))) - (font-lock-reference-face ((t (:bold t :background "wheat" :foreground "red3")))) - (font-lock-string-face ((t (:bold t :background "wheat" :foreground "dark goldenrod")))) - (font-lock-type-face ((t (:bold t :background "wheat" :foreground "brown")))) - (font-lock-variable-name-face ((t (:bold t :background "wheat" :foreground "chocolate")))) - (font-lock-warning-face ((t (:bold t :background "wheat" :foreground "black")))) - (gdb-arrow-face ((t (:bold t :background "LightGreen" :foreground "black")))) - (green ((t (:bold t :foreground "green")))) - (gui-button-face ((t (:bold t :background "wheat" :foreground "red")))) - (gui-element ((t (:bold t :background "wheat" :foreground "black")))) - (highlight ((t (:bold t :background "darkseagreen2" :foreground "dark green")))) - (holiday-face ((t (:bold t :background "pink" :foreground "black")))) - (hproperty:but-face ((t (:bold t :background "wheat" :foreground "medium violet red")))) - (hproperty:flash-face ((t (:bold t :background "wheat" :foreground "gray80")))) - (hproperty:highlight-face ((t (:bold t :background "wheat" :foreground "red")))) - (hproperty:item-face ((t (:bold t)))) - (isearch ((t (:bold t :background "pale turquoise" :foreground "blue")))) - (italic ((t (:bold t :background "wheat" :foreground "black")))) - (left-margin ((t (:bold t :background "wheat" :foreground "black")))) - (list-mode-item-selected ((t (:bold t :background "gray68" :foreground "black")))) - (message-cited-text ((t (:bold t :background "wheat" :foreground "brown")))) - (message-header-contents ((t (:bold t :background "wheat" :foreground "black")))) - (message-headers ((t (:bold t :background "wheat" :foreground "black")))) - (message-highlighted-header-contents ((t (:bold t :background "wheat" :foreground "blue")))) - (message-url ((t (nil)))) - (modeline ((t (:bold t :background "light salmon" :foreground "dark green")))) - (modeline-buffer-id ((t (:bold t :background "light salmon" :foreground "blue4")))) - (modeline-mousable ((t (:bold t :background "light salmon" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:bold t :background "light salmon" :foreground "green4")))) - (pointer ((t (:bold t :background "wheat" :foreground "red")))) - (primary-selection ((t (:bold t :background "medium sea green")))) - (red ((t (:bold t :foreground "red")))) - (right-margin ((t (:bold t :background "wheat" :foreground "black")))) - (secondary-selection ((t (:bold t :background "paleturquoise" :foreground "black")))) - (shell-input-face ((t (:bold t :background "wheat" :foreground "blue")))) - (shell-option-face ((t (:bold t :background "wheat" :foreground "turquoise4")))) - (shell-output-2-face ((t (:bold t :background "wheat" :foreground "dark goldenrod")))) - (shell-output-3-face ((t (:bold t :background "wheat" :foreground "dark goldenrod")))) - (shell-output-face ((t (:bold t :background "wheat" :foreground "black")))) - (shell-prompt-face ((t (:bold t :background "wheat" :foreground "dark orchid")))) - (text-cursor ((t (:bold t :background "red" :foreground "wheat")))) - (toolbar ((t (:bold t :background "wheat" :foreground "black")))) - (underline ((t (:underline t :bold t :background "wheat" :foreground "black")))) - (vertical-divider ((t (:bold t)))) - (widget-button-face ((t (nil)))) - (widget-button-pressed-face ((t (:bold t :background "wheat" :foreground "red")))) - (widget-documentation-face ((t (:bold t :background "wheat" :foreground "dark green")))) - (widget-field-face ((t (:bold t :background "gray85")))) - (widget-inactive-face ((t (:bold t :background "wheat" :foreground "dim gray")))) - (x-face ((t (:bold t :background "wheat" :foreground "black")))) - (yellow ((t (:bold t :foreground "yellow")))) - (zmacs-region ((t (:bold t :background "lightyellow" :foreground "darkgreen"))))))) - -(defun color-theme-classic () - "Color theme by Frederic Giroud, created 2001-01-18. -AntiqueWhite on darkslategrey scheme. Based on Gnome 2, with my favorit -color foreground-color and fontlock color." - (interactive) - (color-theme-blue-gnus) - (let ((color-theme-is-cumulative t)) - (color-theme-install - '(color-theme-classic - ((foreground-color . "AntiqueWhite") - (background-color . "darkslategrey") - (mouse-color . "Grey") - (cursor-color . "Red") - (border-color . "black") - (background-mode . dark)) - ((apropos-keybinding-face . underline) - (apropos-label-face . italic) - (apropos-match-face . secondary-selection) - (apropos-property-face . bold-italic) - (apropos-symbol-face . info-xref) - (goto-address-mail-face . message-header-to-face) - (goto-address-mail-mouse-face . secondary-selection) - (goto-address-url-face . info-xref) - (goto-address-url-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t :foreground "beige")))) - (calendar-today-face ((t (:underline t)))) - (cperl-array-face ((t (:foreground "Yellow")))) - (cperl-hash-face ((t (:foreground "White")))) - (cperl-nonoverridable-face ((t (:foreground "SkyBlue")))) - (custom-button-face ((t (:underline t :foreground "MediumSlateBlue")))) - (custom-documentation-face ((t (:foreground "Grey")))) - (custom-group-tag-face ((t (:foreground "MediumAquamarine")))) - (custom-state-face ((t (:foreground "LightSalmon")))) - (custom-variable-tag-face ((t (:foreground "Aquamarine")))) - (diary-face ((t (:foreground "IndianRed")))) - (erc-action-face ((t (:bold t)))) - (erc-bold-face ((t (:bold t)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "LightSalmon")))) - (erc-error-face ((t (:bold t :foreground "IndianRed")))) - (erc-input-face ((t (:foreground "Beige")))) - (erc-inverse-face ((t (:background "wheat" :foreground "darkslategrey")))) - (erc-notice-face ((t (:foreground "MediumAquamarine")))) - (erc-pal-face ((t (:foreground "pale green")))) - (erc-prompt-face ((t (:foreground "MediumAquamarine")))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed")))) - (eshell-ls-backup-face ((t (:foreground "Grey")))) - (eshell-ls-clutter-face ((t (:foreground "DimGray")))) - (eshell-ls-directory-face ((t (:bold t :foreground "MediumSlateBlue")))) - (eshell-ls-executable-face ((t (:foreground "Coral")))) - (eshell-ls-missing-face ((t (:foreground "black")))) - (eshell-ls-picture-face ((t (:foreground "Violet")))) - (eshell-ls-product-face ((t (:foreground "LightSalmon")))) - (eshell-ls-readonly-face ((t (:foreground "Aquamarine")))) - (eshell-ls-special-face ((t (:foreground "Gold")))) - (eshell-ls-symlink-face ((t (:foreground "White")))) - (eshell-ls-unreadable-face ((t (:foreground "DimGray")))) - (eshell-prompt-face ((t (:foreground "MediumAquamarine")))) - (font-lock-builtin-face ((t (:bold t :foreground "PaleGreen")))) - (font-lock-comment-face ((t (:foreground "tomato3")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-doc-string-face ((t (:foreground "LightSalmon3")))) - (font-lock-function-name-face ((t (:foreground "SteelBlue1")))) - (font-lock-keyword-face ((t (:foreground "cyan1")))) - (font-lock-reference-face ((t (:foreground "LightSalmon2")))) - (font-lock-string-face ((t (:foreground "LightSalmon3")))) - (font-lock-type-face ((t (:foreground "PaleGreen3")))) - (font-lock-variable-name-face ((t (:foreground "khaki1")))) - (font-lock-warning-face ((t (:bold t :foreground "IndianRed")))) - (font-lock-preprocessor-face ((t (:foreground "SkyBlue3")))) - (widget-field-face ((t (:background "DarkCyan")))) - (custom-group-tag-face ((t(:foreground "brown" :underline t)))) - (custom-state-face ((t (:foreground "khaki")))) - (highlight ((t (:background "PaleGreen" :foreground "DarkGreen")))) - (highline-face ((t (:background "SeaGreen")))) - (holiday-face ((t (:background "DimGray")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:underline t :bold t :foreground "DodgerBlue1")))) - (info-xref ((t (:underline t :foreground "DodgerBlue1")))) - (isearch ((t (:foreground "red" :background "CornflowerBlue")))) - (italic ((t (:italic t)))) - (modeline ((t (:background "LightSlateGray" :foreground "AntiqueWhite")))) - (modeline-buffer-id ((t (:background "LightSlateGray" :foreground "DarkBlue")))) - (modeline-mousable ((t (:background "LightSlateGray" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "LightSlateGray" :foreground "wheat")))) - (region ((t (:background "dark cyan" :foreground "cyan")))) - (secondary-selection ((t (:background "Aquamarine" :foreground "SlateBlue")))) - (show-paren-match-face ((t (:background "Aquamarine" :foreground "SlateBlue")))) - (show-paren-mismatch-face ((t (:background "Red" :foreground "White")))) - (underline ((t (:underline t)))) - (widget-field-face ((t (:foreground "LightBlue")))) - (widget-inactive-face ((t (:foreground "DimGray")))) - (widget-single-line-field-face ((t (:foreground "LightBlue")))) - (woman-bold-face ((t (:bold t)))) - (woman-italic-face ((t (:foreground "beige")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))))))) - -(defun color-theme-scintilla () - "Color theme by Gordon Messmer, created 2001-02-07. -Based on the Scintilla editor. - -If you want to modify the font as well, you should customize variable -`color-theme-legal-frame-parameters' to \"\\(color\\|mode\\|font\\|height\\|width\\)$\". -The default setting will prevent color themes from installing specific -fonts." - (interactive) - (color-theme-install - ;; The light editor style doesn't seem to look right with - ;; the same font that works in the dark editor style. - ;; Dark letters on light background just isn't as visible. - '(color-theme-scintilla - ((font . "-monotype-courier new-bold-r-normal-*-*-140-*-*-m-*-iso8859-1") - (width . 95) - (height . 40) - (background-color . "white") - (foreground-color . "black") - (background-mode . light) - (mouse-color . "grey15") - (cursor-color . "grey15")) - (default ((t nil))) - (font-lock-comment-face ((t (:italic t :foreground "ForestGreen")))) - (font-lock-string-face ((t (:foreground "DarkMagenta")))) - (font-lock-keyword-face ((t (:foreground "NavyBlue")))) - (font-lock-warning-face ((t (:bold t :foreground "VioletRed")))) - (font-lock-constant-face ((t (:foreground "Blue")))) - (font-lock-type-face ((t (:foreground "NavyBlue")))) - (font-lock-variable-name-face ((t (:foreground "DarkCyan")))) - (font-lock-function-name-face ((t (:foreground "DarkCyan")))) - (font-lock-builtin-face ((t (:foreground "NavyBlue")))) - (highline-face ((t (:background "Grey95")))) - (show-paren-match-face ((t (:background "Grey80")))) - (region ((t (:background "Grey80")))) - (highlight ((t (:foreground "ForestGreen")))) - (secondary-selection ((t (:background "NavyBlue" :foreground "white")))) - (widget-field-face ((t (:background "NavyBlue")))) - (widget-single-line-field-face ((t (:background "RoyalBlue")))))) ) - -(defun color-theme-gtk-ide () - "Color theme by Gordon Messmer, created 2001-02-07. -Inspired by a GTK IDE whose name I've forgotten. - -If you want to modify the font as well, you should customize variable -`color-theme-legal-frame-parameters' to \"\\(color\\|mode\\|font\\|height\\|width\\)$\". -The default setting will prevent color themes from installing specific -fonts." - ;; The light editor style doesn't seem to look right with - ;; the same font that works in the dark editor style. - ;; Dark letters on light background just isn't as visible. - (interactive) - (color-theme-install - '(color-theme-gtk-ide - ((font . "-monotype-courier new-medium-r-normal-*-*-120-*-*-m-*-iso8859-15") - (width . 95) - (height . 45) - (background-color . "white") - (foreground-color . "black") - (background-mode . light) - (mouse-color . "grey15") - (cursor-color . "grey15")) - (default ((t nil))) - (font-lock-comment-face ((t (:italic t :foreground "grey55")))) - (font-lock-string-face ((t (:foreground "DarkRed")))) - (font-lock-keyword-face ((t (:foreground "DarkBlue")))) - (font-lock-warning-face ((t (:bold t :foreground "VioletRed")))) - (font-lock-constant-face ((t (:foreground "OliveDrab")))) - (font-lock-type-face ((t (:foreground "SteelBlue4")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-function-name-face ((t (:foreground "SlateBlue")))) - (font-lock-builtin-face ((t (:foreground "ForestGreen")))) - (highline-face ((t (:background "grey95")))) - (show-paren-match-face ((t (:background "grey80")))) - (region ((t (:background "grey80")))) - (highlight ((t (:background "LightSkyBlue")))) - (secondary-selection ((t (:background "grey55")))) - (widget-field-face ((t (:background "navy")))) - (widget-single-line-field-face ((t (:background "royalblue")))))) ) - -(defun color-theme-midnight () - "Color theme by Gordon Messmer, created 2001-02-07. -A color theme inspired by a certain IDE for Windows. It's all from memory, -since I only used that software in college. - -If you want to modify the font as well, you should customize variable -`color-theme-legal-frame-parameters' to \"\\(color\\|mode\\|font\\|height\\|width\\)$\". -The default setting will prevent color themes from installing specific -fonts." - (interactive) - (color-theme-install - '(color-theme-midnight - ((font . "fixed") - (width . 130) - (height . 50) - (background-color . "black") - (foreground-color . "grey85") - (background-mode . dark) - (mouse-color . "grey85") - (cursor-color . "grey85")) - (default ((t (nil)))) - (font-lock-comment-face ((t (:italic t :foreground "grey60")))) - (font-lock-string-face ((t (:foreground "Magenta")))) - (font-lock-keyword-face ((t (:foreground "Cyan")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (font-lock-constant-face ((t (:foreground "OliveDrab")))) - (font-lock-type-face ((t (:foreground "DarkCyan")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-function-name-face ((t (:foreground "SlateBlue")))) - (font-lock-builtin-face ((t (:foreground "SkyBlue")))) - (highline-face ((t (:background "grey12")))) - (setnu-line-number-face ((t (:background "Grey15" :foreground "White" :bold t)))) - (show-paren-match-face ((t (:background "grey30")))) - (region ((t (:background "grey15")))) - (highlight ((t (:background "blue")))) - (secondary-selection ((t (:background "navy")))) - (widget-field-face ((t (:background "navy")))) - (widget-single-line-field-face ((t (:background "royalblue")))))) ) - -(defun color-theme-jedit-grey () - "Color theme by Gordon Messmer, created 2001-02-07. -Based on a screenshot of jedit. - -If you want to modify the font as well, you should customize variable -`color-theme-legal-frame-parameters' to \"\\(color\\|mode\\|font\\|height\\|width\\)$\". -The default setting will prevent color themes from installing specific -fonts." - (interactive) - (color-theme-install - '(color-theme-jedit-grey - ((font . "fixed") - (width . 130) - (height . 50) - (background-color . "grey77") - (foreground-color . "black") - (background-mode . light) - (mouse-color . "black") - (cursor-color . "black")) - (default ((t (nil)))) - (font-lock-comment-face ((t (:italic t :foreground "RoyalBlue4")))) - (font-lock-string-face ((t (:foreground "Gold4")))) - (font-lock-keyword-face ((t (:bold t :foreground "DarkRed")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (font-lock-constant-face ((t (:foreground "DarkCyan")))) - (font-lock-type-face ((t (:foreground "DarkRed")))) - (font-lock-function-name-face ((t (:foreground "Green4")))) - (font-lock-builtin-face ((t (:bold t :foreground "DarkRed")))) - (highline-face ((t (:background "grey84")))) - (setnu-line-number-face ((t (:background "White" :foreground "MediumPurple3" :italic t)))) - (show-paren-match-face ((t (:background "grey60")))) - (region ((t (:background "grey70")))) - (highlight ((t (:background "grey90")))) - (secondary-selection ((t (:background "white")))) - (widget-field-face ((t (:background "royalblue")))) - (widget-single-line-field-face ((t (:background "royalblue")))))) ) - -(defun color-theme-snow () - "Color theme by Nicolas Rist, created 2001-03-08. -Black on gainsboro. In Emacs, the text background is a shade darker -than the frame background: Gainsboro instead of snow. This makes the -structure of the text clearer without being too agressive on the eyes. -On XEmacs, this doesn't really work as the frame and the default face -allways use the same foreground and background colors. -The color theme includes gnus, message, font-lock, sgml, and speedbar." - (interactive) - (color-theme-install - '(color-theme-snow - ((background-color . "snow2") - (background-mode . light) - (border-color . "black") - (cursor-color . "RoyalBlue2") - (foreground-color . "black") - (mouse-color . "black")) - ((gnus-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (:background "gainsboro" :foreground "dark slate gray")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (calendar-today-face ((t (:underline t)))) - (custom-button-face ((t (:background "gainsboro" :foreground "dark cyan")))) - (custom-documentation-face ((t (:background "gainsboro")))) - (diary-face ((t (:foreground "red")))) - (fg:black ((t (:foreground "black")))) - (font-lock-builtin-face ((t (:background "gainsboro" :foreground "medium orchid")))) - (font-lock-comment-face ((t (:background "gainsboro" :foreground "SteelBlue3")))) - (font-lock-constant-face ((t (:background "gainsboro" :foreground "orange3")))) - (font-lock-function-name-face ((t (:background "gainsboro" :foreground "blue3")))) - (font-lock-keyword-face ((t (:background "gainsboro" :foreground "red3")))) - (font-lock-string-face ((t (:background "gainsboro" :foreground "SpringGreen3")))) - (font-lock-type-face ((t (:background "gainsboro" :foreground "dark cyan")))) - (font-lock-variable-name-face ((t (:background "gainsboro" :foreground "purple2")))) - (font-lock-warning-face ((t (:bold t :background "gainsboro" :foreground "red")))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (gui-button-face ((t (:foreground "light grey")))) - (highlight ((t (:background "LightSteelBlue1")))) - (holiday-face ((t (:background "pink")))) - (ibuffer-marked-face ((t (:foreground "red")))) - (italic ((t (:italic t)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "dark slate gray" :foreground "gainsboro")))) - (modeline-buffer-id ((t (:background "dark slate gray" :foreground "gainsboro")))) - (modeline-mousable ((t (:background "dark slate gray" :foreground "gainsboro")))) - (modeline-mousable-minor-mode ((t (:background "dark slate gray" :foreground "gainsboro")))) - (region ((t (:background "lavender")))) - (secondary-selection ((t (:background "paleturquoise")))) - (sgml-comment-face ((t (:foreground "dark green")))) - (sgml-doctype-face ((t (:foreground "maroon")))) - (sgml-end-tag-face ((t (:foreground "blue2")))) - (sgml-entity-face ((t (:foreground "red2")))) - (sgml-ignored-face ((t (:background "gray90" :foreground "maroon")))) - (sgml-ms-end-face ((t (:foreground "maroon")))) - (sgml-ms-start-face ((t (:foreground "maroon")))) - (sgml-pi-face ((t (:foreground "maroon")))) - (sgml-sgml-face ((t (:foreground "maroon")))) - (sgml-short-ref-face ((t (:foreground "goldenrod")))) - (sgml-start-tag-face ((t (:foreground "blue2")))) - (show-paren-match-face ((t (:background "SlateGray1")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "dark turquoise" :foreground "white")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (underline ((t (:underline t))))))) - -(defun color-theme-montz () - "Color theme by Brady Montz, created 2001-03-08. -Black on Gray. -Includes dired, bbdb, font-lock, gnus, message, viper, and widget." - (interactive) - (color-theme-install - '(color-theme-montz - ((background-color . "gray80") - (background-mode . light) - (background-toolbar-color . "#cccccccccccc") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#7a7a7a7a7a7a") - (cursor-color . "Red3") - (foreground-color . "black") - (top-toolbar-shadow-color . "#f5f5f5f5f5f5") - (viper-saved-cursor-color-in-replace-mode . "Red3")) - ((gnus-mouse-face . highlight) - (paren-match-face . paren-face-match) - (paren-mismatch-face . paren-face-mismatch) - (paren-no-match-face . paren-face-no-match) - (smiley-mouse-face . highlight)) - (default ((t (nil)))) - (bbdb-company ((t (:italic t)))) - (bbdb-field-name ((t (:bold t)))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (:underline t)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (nil)))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t)))) - (dired-face-executable ((t (:foreground "SeaGreen")))) - (dired-face-flagged ((t (:background "LightSlateGray")))) - (dired-face-marked ((t (:background "PaleVioletRed")))) - (dired-face-permissions ((t (:background "grey75" :foreground "black")))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (dired-face-symlink ((t (:foreground "cyan")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (font-lock-builtin-face ((t (:foreground "red3")))) - (font-lock-comment-face ((t (:foreground "blue")))) - (font-lock-constant-face ((t (:foreground "red3")))) - (font-lock-doc-string-face ((t (:foreground "mediumvioletred")))) - (font-lock-function-name-face ((t (:foreground "firebrick")))) - (font-lock-keyword-face ((t (:bold t :foreground "black")))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:foreground "mediumvioletred")))) - (font-lock-type-face ((t (:foreground "darkgreen")))) - (font-lock-variable-name-face ((t (:foreground "black")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4")))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-picons-face ((t (:background "white" :foreground "black")))) - (gnus-picons-xbm-face ((t (:background "white" :foreground "black")))) - (gnus-signature-face ((t (:italic t)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-x-face ((t (:background "white" :foreground "black")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (nil)))) - (highlight ((t (:background "darkseagreen2")))) - (info-node ((t (:bold t)))) - (info-xref ((t (:bold t)))) - (isearch ((t (:background "paleturquoise")))) - (italic ((t (:italic t)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68" :foreground "black")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (nil)))) - (modeline-buffer-id ((t (:background "Gray80" :foreground "blue4")))) - (modeline-mousable ((t (:background "Gray80" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "Gray80" :foreground "green4")))) - (paren-face-match ((t (:background "turquoise")))) - (paren-face-mismatch ((t (:background "purple" :foreground "white")))) - (paren-face-no-match ((t (:background "yellow" :foreground "black")))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (text-cursor ((t (:background "Red3" :foreground "gray80")))) - (toolbar ((t (nil)))) - (underline ((t (:underline t)))) - (vertical-divider ((t (nil)))) - (viper-minibuffer-emacs-face ((t (:background "gray80" :foreground "black")))) - (viper-minibuffer-insert-face ((t (:background "gray80" :foreground "black")))) - (viper-minibuffer-vi-face ((t (:background "gray80" :foreground "black")))) - (viper-replace-overlay-face ((t (:background "black" :foreground "white")))) - (viper-search-face ((t (:background "black" :foreground "white")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "black" :foreground "white"))))))) - -(defun color-theme-aalto-light () - "Color theme by Jari Aalto, created 2001-03-08. -Black on light yellow. -Used for Win32 on a Nokia446Xpro monitor. -Includes cvs, font-lock, gnus, message, sgml, widget" - (interactive) - (color-theme-install - '(color-theme-aalto-light - ((background-color . "#FFFFE0") - (background-mode . light) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "black") - (mouse-color . "LawnGreen")) - ((gnus-mouse-face . highlight) - (list-matching-lines-face . bold) - (tinyreplace-:face . highlight) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (calendar-today-face ((t (:underline t)))) - (cvs-filename-face ((t (:foreground "blue4")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:bold t :foreground "blue4")))) - (cvs-marked-face ((t (:bold t :foreground "green3")))) - (cvs-msg-face ((t (:italic t)))) - (cvs-need-action-face ((t (:foreground "orange")))) - (cvs-unknown-face ((t (:foreground "red")))) - (diary-face ((t (:foreground "red")))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-test-ok-face ((t (:bold t :foreground "Green")))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:foreground "Firebrick")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-function-name-face ((t (:foreground "Blue")))) - (font-lock-keyword-face ((t (:foreground "Purple")))) - (font-lock-string-face ((t (:foreground "RosyBrown")))) - (font-lock-type-face ((t (:foreground "ForestGreen")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4")))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-signature-face ((t (:italic t)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (highlight ((t (:background "darkseagreen2")))) - (holiday-face ((t (:background "pink")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (italic ((t (:italic t)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "black" :foreground "white")))) - (modeline-buffer-id ((t (:background "black" :foreground "white")))) - (modeline-mousable ((t (:background "black" :foreground "white")))) - (modeline-mousable-minor-mode ((t (:background "black" :foreground "white")))) - (region ((t (:background "gray")))) - (secondary-selection ((t (:background "paleturquoise")))) - (sgml-comment-face ((t (:foreground "dark turquoise")))) - (sgml-doctype-face ((t (:foreground "red")))) - (sgml-end-tag-face ((t (:foreground "blue")))) - (sgml-entity-face ((t (:foreground "magenta")))) - (sgml-ignored-face ((t (:background "gray60" :foreground "gray40")))) - (sgml-ms-end-face ((t (:foreground "green")))) - (sgml-ms-start-face ((t (:foreground "green")))) - (sgml-pi-face ((t (:foreground "lime green")))) - (sgml-sgml-face ((t (:foreground "brown")))) - (sgml-short-ref-face ((t (:foreground "deep sky blue")))) - (sgml-start-tag-face ((t (:foreground "blue")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (underline ((t (:underline t)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85"))))))) - -(defun color-theme-aalto-dark () - "Color theme by Jari Aalto, created 2001-03-08. -White on Deep Sky Blue 3. -Used for Unix Exceed on a Nokia446Xpro monitor. -Includes font-lock, info, and message." - (interactive) - (color-theme-install - '(color-theme-aalto-dark - ((background-color . "DeepSkyBlue3") - (background-mode . dark) - (border-color . "black") - (cursor-color . "yellow") - (foreground-color . "white") - (mouse-color . "black")) - ((ispell-highlight-face . highlight) - (list-matching-lines-face . bold) - (tinyreplace-:face . highlight) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t :background "blue3" :foreground "white")))) - (bold-italic ((t (:italic t :bold t :foreground "blue3")))) - (calendar-today-face ((t (:underline t)))) - (diary-face ((t (:foreground "red")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:foreground "OrangeRed")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-function-name-face ((t (:foreground "LightSkyBlue")))) - (font-lock-keyword-face ((t (:foreground "Cyan")))) - (font-lock-string-face ((t (:foreground "LightSalmon")))) - (font-lock-type-face ((t (:foreground "PaleGreen")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (highlight ((t (:background "blue3" :foreground "white")))) - (holiday-face ((t (:background "pink")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (italic ((t (:italic t :background "gray")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "green4")))) - (message-header-name-face ((t (:foreground "DarkGreen")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow")))) - (message-header-other-face ((t (:foreground "#b00000")))) - (message-header-subject-face ((t (:foreground "green3")))) - (message-header-to-face ((t (:bold t :foreground "green2")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "blue3")))) - (modeline ((t (:background "white" :foreground "DeepSkyBlue3")))) - (modeline-buffer-id ((t (:background "white" :foreground "DeepSkyBlue3")))) - (modeline-mousable ((t (:background "white" :foreground "DeepSkyBlue3")))) - (modeline-mousable-minor-mode ((t (:background "white" :foreground "DeepSkyBlue3")))) - (region ((t (:background "gray")))) - (secondary-selection ((t (:background "darkslateblue")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (underline ((t (:underline t))))))) - -(defun color-theme-blippblopp () - "Color theme by Thomas Sicheritz-Ponten, created 2001-03-12. -Used by researchers at Uppsala University and the Center for Biological -Sequence Analysis at the Technical University of Denmark. (As some of my -swedish friends couldn't pronounce Sicheritz - they choose to transform -it to something more \"swedish\": Blippblopp :-) -Includes font-lock and message." - (interactive) - (color-theme-install - '(color-theme-blippblopp - ((background-color . "white") - (background-mode . light) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (cursor-color . "Red3") - (foreground-color . "black") - (mouse-color . "black") - (top-toolbar-shadow-color . "#fffffbeeffff") - (viper-saved-cursor-color-in-replace-mode . "Red3")) - ((ispell-highlight-face . highlight)) - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (excerpt ((t (:italic t)))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue")))) - (fg:black ((t (:foreground "black")))) - (fixed ((t (:bold t)))) - (font-lock-builtin-face ((t (:foreground "red3")))) - (font-lock-comment-face ((t (:foreground "orange")))) - (font-lock-constant-face ((t (:foreground "red3")))) - (font-lock-doc-string-face ((t (:foreground "darkgreen")))) - (font-lock-exit-face ((t (:foreground "green")))) - (font-lock-function-name-face ((t (:bold t :foreground "red")))) - (font-lock-keyword-face ((t (:bold t :foreground "steelblue")))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:foreground "green4")))) - (font-lock-type-face ((t (:bold t :foreground "blue")))) - (font-lock-variable-name-face ((t (:foreground "black")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (green ((t (:foreground "green")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "dimgray" :foreground "lemonchiffon")))) - (modeline-buffer-id ((t (:background "dimgray" :foreground "green3")))) - (modeline-mousable ((t (:background "dimgray" :foreground "orange")))) - (modeline-mousable-minor-mode ((t (:background "dimgray" :foreground "blue4")))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "gray65")))) - (secondary-selection ((t (:background "paleturquoise")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (text-cursor ((t (:background "Red3" :foreground "white")))) - (toolbar ((t (:background "Gray80")))) - (underline ((t (:underline t)))) - (vcursor ((t (:underline t :background "cyan" :foreground "blue")))) - (vertical-divider ((t (:background "Gray80")))) - (xref-keyword-face ((t (:foreground "blue")))) - (xref-list-pilot-face ((t (:foreground "navy")))) - (xref-list-symbol-face ((t (:foreground "navy")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "gray65"))))))) - -(defun color-theme-hober (&optional preview) - "Does all sorts of crazy stuff. -Originally based on color-theme-standard, so I probably still have some -setting that I haven't changed. I also liberally copied settings from -the other themes in this package. The end result isn't much like the -other ones; I hope you like it." - (interactive) - (color-theme-install - '(color-theme-hober - ((foreground-color . "#c0c0c0") - (background-color . "black") - (mouse-color . "black") - (cursor-color . "medium turquoise") - (border-color . "black") - (background-mode . dark)) - (default ((t (nil)))) - (modeline ((t (:foreground "white" :background "darkslateblue")))) - (modeline-buffer-id ((t (:foreground "white" :background "darkslateblue")))) - (modeline-mousable ((t (:foreground "white" :background "darkslateblue")))) - (modeline-mousable-minor-mode ((t (:foreground "white" :background "darkslateblue")))) - (highlight ((t (:foreground "black" :background "#c0c0c0")))) - (bold ((t (:bold t)))) - (italic ((t (:italic t)))) - (bold-italic ((t (:bold t :italic t)))) - (region ((t (:foreground "white" :background "darkslateblue")))) - (zmacs-region ((t (:foreground "white" :background "darkslateblue")))) - (secondary-selection ((t (:background "paleturquoise")))) - (underline ((t (:underline t)))) - (diary-face ((t (:foreground "red")))) - (calendar-today-face ((t (:underline t)))) - (holiday-face ((t (:background "pink")))) - (widget-documentation-face ((t (:foreground "dark green" :background "white")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red" :background "black")))) - (widget-field-face ((t (:background "gray85" :foreground "black")))) - (widget-single-line-field-face ((t (:background "gray85" :foreground "black")))) - (widget-inactive-face ((t (:foreground "dim gray" :background "red")))) - (fixed ((t (:bold t)))) - (excerpt ((t (:italic t)))) - (term-default-fg ((t (nil)))) - (term-default-bg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-bold ((t (:bold t)))) - (term-underline ((t (:underline t)))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-white ((t (:foreground "#c0c0c0")))) - (term-whitebg ((t (:background "#c0c0c0")))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (:background "black")))) - (term-red ((t (:foreground "#ef8171")))) - (term-redbg ((t (:background "#ef8171")))) - (term-green ((t (:foreground "#e5f779")))) - (term-greenbg ((t (:background "#e5f779")))) - (term-yellow ((t (:foreground "#fff796")))) - (term-yellowbg ((t (:background "#fff796")))) - (term-blue ((t (:foreground "#4186be")))) - (term-bluebg ((t (:background "#4186be")))) - (term-magenta ((t (:foreground "#ef9ebe")))) - (term-magentabg ((t (:background "#ef9ebe")))) - (term-cyan ((t (:foreground "#71bebe")))) - (term-cyanbg ((t (:background "#71bebe")))) - (font-lock-keyword-face ((t (:foreground "#00ffff")))) - (font-lock-comment-face ((t (:foreground "Red")))) - (font-lock-string-face ((t (:foreground "#ffff00")))) - (font-lock-constant-face ((t (:foreground "#00ff00")))) - (font-lock-builtin-face ((t (:foreground "#ffaa00")))) - (font-lock-type-face ((t (:foreground "Coral")))) - (font-lock-warning-face ((t (:foreground "Red" :bold t)))) - (font-lock-function-name-face ((t (:foreground "#4186be")))) - (font-lock-variable-name-face ((t (:foreground "white" :bold t)))) - (message-header-to-face ((t (:foreground "#4186be" :bold t)))) - (message-header-cc-face ((t (:foreground "#4186be")))) - (message-header-subject-face ((t (:foreground "#4186be" :bold t)))) - (message-header-newsgroups-face ((t (:foreground "Coral" :bold t)))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-name-face ((t (:foreground "white")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-separator-face ((t (:foreground "brown")))) - (message-cited-text-face ((t (:foreground "white")))) - (gnus-header-from-face ((t (:foreground "Coral")))) - (gnus-header-subject-face ((t (:foreground "#4186be")))) - (gnus-header-newsgroups-face ((t (:foreground "#4186be" :italic t)))) - (gnus-header-name-face ((t (:foreground "white")))) - (gnus-header-content-face ((t (:foreground "#4186be" :italic t)))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-list ((t (:bold nil :foreground "red")))) - (gnus-group-news-1-face ((t (:foreground "ForestGreen" :bold t)))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-2-face ((t (:foreground "CadetBlue4" :bold t)))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-low-face ((t (:foreground "DarkGreen" :bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-mail-1-face ((t (:foreground "DeepPink3" :bold t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-2-face ((t (:foreground "HotPink3" :bold t)))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-3-face ((t (:foreground "magenta4" :bold t)))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-low-face ((t (:foreground "DeepPink4" :bold t)))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-summary-cancelled-face ((t (:foreground "yellow" :background "black")))) - (gnus-summary-high-ticked-face ((t (:foreground "firebrick" :bold t)))) - (gnus-summary-low-ticked-face ((t (:foreground "firebrick" :italic t)))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-high-ancient-face ((t (:foreground "RoyalBlue" :bold t)))) - (gnus-summary-low-ancient-face ((t (:foreground "RoyalBlue" :italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-high-read-face ((t (:foreground "DarkGreen" :bold t)))) - (gnus-summary-low-read-face ((t (:foreground "DarkGreen" :italic t)))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t)))) - (gnus-emphasis-bold-italic ((t (:bold t :italic t)))) - (gnus-emphasis-underline-bold-italic ((t (:bold t :italic t :underline t)))) - (gnus-signature-face ((t (:foreground "white")))) - (gnus-cite-face-1 ((t (:foreground "Khaki")))) - (gnus-cite-face-2 ((t (:foreground "Coral")))) - (gnus-cite-face-3 ((t (:foreground "#4186be")))) - (gnus-cite-face-4 ((t (:foreground "yellow green")))) - (gnus-cite-face-5 ((t (:foreground "IndianRed")))) - (highlight-changes-face ((t (:foreground "red")))) - (highlight-changes-delete-face ((t (:foreground "red" :underline t)))) - (show-paren-match-face ((t (:foreground "white" :background "purple")))) - (show-paren-mismatch-face ((t (:foreground "white" :background "red")))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (cperl-array-face ((t (:foreground "Blue" :bold t :background "lightyellow2")))) - (cperl-hash-face ((t (:foreground "Red" :bold t :italic t :background "lightyellow2")))) - (makefile-space-face ((t (:background "hotpink")))) - (sgml-start-tag-face ((t (:foreground "mediumspringgreen")))) - (sgml-ignored-face ((t (:foreground "gray20" :background "gray60")))) - (sgml-doctype-face ((t (:foreground "orange")))) - (sgml-sgml-face ((t (:foreground "yellow")))) - (sgml-end-tag-face ((t (:foreground "greenyellow")))) - (sgml-entity-face ((t (:foreground "gold")))) - (flyspell-incorrect-face ((t (:foreground "OrangeRed" :bold t :underline t)))) - (flyspell-duplicate-face ((t (:foreground "Gold3" :bold t :underline t))))))) - -(defun color-theme-bharadwaj () - "Color theme by Girish Bharadwaj, created 2001-03-28. -Black on gainsboro. Includes BBDB, custom, cperl, cvs, dired, ediff, -erc, eshell, font-latex, font-lock, gnus, info, message, paren, sgml, -shell, speedbar, term, vhdl, viper, widget, woman, xref. Wow!" - (interactive) - (color-theme-install - '(color-theme-bharadwaj - ((background-color . "gainsboro") - (background-mode . light) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "black") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (cursor-color . "grey15") - (foreground-color . "black") - (mouse-color . "grey15") - (top-toolbar-shadow-color . "#fffffbeeffff") - (viper-saved-cursor-color-in-replace-mode . "Red3")) - ((gnus-mouse-face . highlight) - (smiley-mouse-face . highlight)) - (default ((t (nil)))) - (bbdb-company ((t (nil)))) - (bbdb-field-name ((t (:bold t)))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (:underline t)))) - (blank-space-face ((t (nil)))) - (blank-tab-face ((t (nil)))) - (blue ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:bold t)))) - (border-glyph ((t (nil)))) - (calendar-today-face ((t (:underline t)))) - (comint-input-face ((t (:foreground "deepskyblue")))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue")))) - (cperl-hash-face ((t (:bold t :background "lightyellow2" :foreground "Red")))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (custom-button-face ((t (:bold t)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :bold t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :bold t :foreground "blue")))) - (cvs-filename-face ((t (:foreground "blue4")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:bold t :foreground "blue4")))) - (cvs-marked-face ((t (:bold t :foreground "green3")))) - (cvs-msg-face ((t (nil)))) - (cvs-need-action-face ((t (:foreground "orange")))) - (cvs-unknown-face ((t (:foreground "red")))) - (diary-face ((t (:bold t :foreground "red")))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t :foreground "forestgreen")))) - (dired-face-executable ((t (:foreground "indianred")))) - (dired-face-flagged ((t (:background "SlateGray")))) - (dired-face-marked ((t (:background "darkblue" :foreground "deepskyblue")))) - (dired-face-permissions ((t (nil)))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (dired-face-symlink ((t (:foreground "grey95")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (erc-action-face ((t (:bold t)))) - (erc-bold-face ((t (:bold t)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (nil)))) - (erc-error-face ((t (:bold t)))) - (erc-input-face ((t (nil)))) - (erc-inverse-face ((t (nil)))) - (erc-notice-face ((t (nil)))) - (erc-pal-face ((t (nil)))) - (erc-prompt-face ((t (nil)))) - (erc-underline-face ((t (nil)))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid")))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-ls-directory-face ((t (:bold t :foreground "Blue")))) - (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen")))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red")))) - (eshell-ls-picture-face ((t (nil)))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta")))) - (eshell-ls-symlink-face ((t (:bold t :foreground "DarkCyan")))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:bold t :foreground "Red")))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-test-ok-face ((t (:bold t :foreground "Green")))) - (excerpt ((t (nil)))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue")))) - (fg:black ((t (:foreground "black")))) - (fixed ((t (:bold t)))) - (flyspell-duplicate-face ((t (:underline t :bold t :foreground "Gold3")))) - (flyspell-incorrect-face ((t (:underline t :bold t :foreground "OrangeRed")))) - (font-latex-bold-face ((t (nil)))) - (font-latex-italic-face ((t (nil)))) - (font-latex-math-face ((t (nil)))) - (font-latex-sedate-face ((t (nil)))) - (font-latex-string-face ((t (nil)))) - (font-latex-warning-face ((t (nil)))) - (font-lock-builtin-face ((t (:foreground "ForestGreen")))) - (font-lock-comment-face ((t (:foreground "grey55")))) - (font-lock-constant-face ((t (:foreground "OliveDrab")))) - (font-lock-doc-string-face ((t (:bold t :foreground "blue4")))) - (font-lock-exit-face ((t (nil)))) - (font-lock-function-name-face ((t (:italic t :bold t :foreground "SlateBlue")))) - (font-lock-keyword-face ((t (:foreground "DarkBlue")))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:foreground "DarkRed")))) - (font-lock-type-face ((t (:foreground "SteelBlue4")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "VioletRed")))) - (fringe ((t (:background "grey95")))) - (gnus-cite-attribution-face ((t (:bold t)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:bold t)))) - (gnus-emphasis-highlight-words ((t (nil)))) - (gnus-emphasis-italic ((t (nil)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t)))) - (gnus-filterhist-face-1 ((t (nil)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:foreground "indianred4")))) - (gnus-header-from-face ((t (:bold t :foreground "red3")))) - (gnus-header-name-face ((t (:bold t :foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:bold t :foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:bold t :foreground "red4")))) - (gnus-picons-face ((t (:background "white" :foreground "black")))) - (gnus-picons-xbm-face ((t (:background "white" :foreground "black")))) - (gnus-signature-face ((t (nil)))) - (gnus-splash ((t (nil)))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (nil)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (:bold t)))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-x-face ((t (:background "white" :foreground "black")))) - (green ((t (nil)))) - (gui-button-face ((t (:background "grey75")))) - (gui-element ((t (:background "Gray80")))) - (highlight ((t (:background "LightSkyBlue")))) - (highlight-changes-delete-face ((t (:underline t :foreground "red")))) - (highlight-changes-face ((t (:foreground "red")))) - (highline-face ((t (:background "grey95")))) - (holiday-face ((t (:background "pink")))) - (html-helper-italic-face ((t (nil)))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:bold t)))) - (info-xref ((t (:bold t)))) - (isearch ((t (:background "yellow")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (nil)))) - (lazy-highlight-face ((t (:bold t :foreground "dark magenta")))) - (left-margin ((t (nil)))) - (linemenu-face ((t (nil)))) - (list-mode-item-selected ((t (nil)))) - (makefile-space-face ((t (:background "hotpink")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:bold t)))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "white" :foreground "black")))) - (modeline-buffer-id ((t (:background "white" :foreground "black")))) - (modeline-mousable ((t (:background "white" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "white" :foreground "black")))) - (paren-blink-off ((t (:foreground "gray80")))) - (paren-face-match ((t (:background "turquoise")))) - (paren-face-mismatch ((t (:background "purple" :foreground "white")))) - (paren-face-no-match ((t (:background "yellow" :foreground "black")))) - (paren-match ((t (:background "darkseagreen2")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "black")))) - (paren-mismatch-face ((t (:bold t)))) - (paren-no-match-face ((t (:bold t)))) - (pointer ((t (nil)))) - (primary-selection ((t (nil)))) - (red ((t (nil)))) - (region ((t (:background "grey80")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "grey55")))) - (sgml-comment-face ((t (:foreground "dark turquoise")))) - (sgml-doctype-face ((t (nil)))) - (sgml-end-tag-face ((t (nil)))) - (sgml-entity-face ((t (nil)))) - (sgml-ignored-face ((t (nil)))) - (sgml-ms-end-face ((t (:foreground "green")))) - (sgml-ms-start-face ((t (:foreground "green")))) - (sgml-pi-face ((t (:foreground "lime green")))) - (sgml-sgml-face ((t (nil)))) - (sgml-short-ref-face ((t (:foreground "deep sky blue")))) - (sgml-start-tag-face ((t (nil)))) - (shell-option-face ((t (:foreground "blue")))) - (shell-output-2-face ((t (:foreground "darkseagreen")))) - (shell-output-3-face ((t (:foreground "slategrey")))) - (shell-output-face ((t (:foreground "palegreen")))) - (shell-prompt-face ((t (:foreground "red")))) - (show-paren-match-face ((t (:background "grey80")))) - (show-paren-mismatch-face ((t (:bold t :background "purple" :foreground "white")))) - (speedbar-button-face ((t (:bold t :foreground "green4")))) - (speedbar-directory-face ((t (:bold t :foreground "blue4")))) - (speedbar-file-face ((t (:bold t :foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (swbuff-current-buffer-face ((t (:bold t)))) - (template-message-face ((t (:bold t)))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (:background "black")))) - (term-blue ((t (:foreground "blue")))) - (term-bluebg ((t (:background "blue")))) - (term-bold ((t (:bold t)))) - (term-cyan ((t (:foreground "cyan")))) - (term-cyanbg ((t (:background "cyan")))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-green ((t (:foreground "green")))) - (term-greenbg ((t (:background "green")))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (:foreground "magenta")))) - (term-magentabg ((t (:background "magenta")))) - (term-red ((t (:foreground "red")))) - (term-redbg ((t (:background "red")))) - (term-underline ((t (:underline t)))) - (term-white ((t (:foreground "white")))) - (term-whitebg ((t (:background "white")))) - (term-yellow ((t (:foreground "yellow")))) - (term-yellowbg ((t (:background "yellow")))) - (text-cursor ((t (:background "grey15" :foreground "gainsboro")))) - (toolbar ((t (nil)))) - (underline ((t (:underline t)))) - (vc-annotate-face-0046FF ((t (nil)))) - (vcursor ((t (:underline t :background "cyan" :foreground "blue")))) - (vertical-divider ((t (nil)))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red")))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange")))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue")))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod")))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen")))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown")))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Grey50")))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (vvb-face ((t (:background "pink" :foreground "black")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "navy" :foreground "white")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "royalblue" :foreground "white")))) - (woman-bold-face ((t (:bold t)))) - (woman-italic-face ((t (nil)))) - (woman-unknown-face ((t (nil)))) - (xref-keyword-face ((t (:foreground "blue")))) - (xref-list-pilot-face ((t (:foreground "navy")))) - (xref-list-symbol-face ((t (:foreground "navy")))) - (yellow ((t (nil)))) - (zmacs-region ((t (:background "royalblue"))))))) - -(defun color-theme-oswald () - "Color theme by Tom Oswald, created 2001-04-18. -Green on black, includes font-lock, show-paren, and ediff." - (interactive) - (color-theme-install - '(color-theme-oswald - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "green") - (mouse-color . "black")) - ((blank-space-face . blank-space-face) - (blank-tab-face . blank-tab-face) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (blank-space-face ((t (:background "LightGray")))) - (blank-tab-face ((t (:background "green" :foreground "black")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (font-lock-builtin-face ((t (:italic t :bold t :foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:italic t :foreground "LightGoldenrod4")))) - (font-lock-constant-face ((t (:italic t :foreground "HotPink")))) - (font-lock-doc-string-face ((t (:italic t :foreground "orange")))) - (font-lock-function-name-face ((t (:italic t :bold t :foreground "red")))) - (font-lock-keyword-face ((t (:foreground "red")))) - (font-lock-preprocessor-face ((t (:italic t :foreground "HotPink")))) - (font-lock-string-face ((t (:italic t :foreground "orange")))) - (font-lock-reference-face ((t (:italic t :bold t :foreground "LightSteelBlue")))) - (font-lock-type-face ((t (:italic t :foreground "LightSlateBlue")))) - (font-lock-variable-name-face ((t (:underline t :foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (highlight ((t (:background "yellow" :foreground "red")))) - (isearch ((t (:background "dim gray" :foreground "aquamarine")))) - (ispell-face ((t (:bold t :background "#3454b4" :foreground "yellow")))) - (italic ((t (:italic t)))) - (modeline ((t (:background "green" :foreground "black")))) - (modeline-buffer-id ((t (:background "green" :foreground "black")))) - (modeline-mousable ((t (:background "green" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "green" :foreground "black")))) - (region ((t (:background "dim gray" :foreground "aquamarine")))) - (secondary-selection ((t (:background "darkslateblue" :foreground "light goldenrod")))) - (show-paren-match-face ((t (:background "turquoise" :foreground "black")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (underline ((t (:underline t)))) - (zmacs-region ((t (:background "dim gray" :foreground "aquamarine"))))))) - -(defun color-theme-salmon-diff () - "Salmon and aquamarine faces for diff and change-log modes. -This is intended for other color themes to use (eg. `color-theme-gnome2')." - (color-theme-install - '(color-theme-salmon-diff - nil - (change-log-acknowledgement-face ((t (:foreground "LightBlue")))) - (change-log-conditionals-face ((t (:bold t :weight bold :foreground "Aquamarine")))) - (change-log-date-face ((t (:foreground "LightSalmon")))) - (change-log-email-face ((t (:bold t :weight bold :foreground "Aquamarine")))) - (change-log-file-face ((t (:bold t :weight bold :foreground "Aquamarine")))) - (change-log-function-face ((t (:bold t :weight bold :foreground "Aquamarine")))) - (change-log-list-face ((t (:foreground "Salmon")))) - (change-log-name-face ((t (:foreground "Aquamarine")))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (:foreground "grey70")))) - (diff-file-header-face ((t (:bold t)))) - (diff-function-face ((t (:foreground "grey70")))) - (diff-header-face ((t (:foreground "light salmon")))) - (diff-hunk-header-face ((t (:foreground "light salmon")))) - (diff-index-face ((t (:bold t)))) - (diff-nonexistent-face ((t (:bold t)))) - (diff-removed-face ((t (nil)))) - (log-view-message-face ((t (:foreground "light salmon"))))))) - -(defun color-theme-robin-hood () - "`color-theme-gnome2' with navajo white on green. -This theme tries to avoid underlined and italic faces, because -the fonts either look ugly, or do not exist. The author himself -uses neep, for example." - (interactive) - (color-theme-gnome2) - (let ((color-theme-is-cumulative t)) - (color-theme-install - '(color-theme-robin-hood - ((foreground-color . "navajo white") - (background-color . "#304020")) - ((CUA-mode-read-only-cursor-color . "white") - (help-highlight-face . info-xref) - (list-matching-lines-buffer-name-face . bold)) - (default ((t (nil)))) - (button ((t (:bold t)))) - (calendar-today-face ((t (:foreground "lemon chiffon")))) - (custom-button-face ((t (:bold t :foreground "DodgerBlue1")))) - (diary-face ((t (:bold t :foreground "yellow")))) - (fringe ((t (:background "#003700")))) - (header-line ((t (:background "#030" :foreground "#AA7")))) - (holiday-face ((t (:bold t :foreground "peru")))) - (ido-subdir-face ((t (:foreground "MediumSlateBlue")))) - (isearch ((t (:foreground "pink" :background "red")))) - (isearch-lazy-highlight-face ((t (:foreground "red")))) - (menu ((t (:background "#304020" :foreground "navajo white")))) - (minibuffer-prompt ((t (:foreground "pale green")))) - (modeline ((t (:background "dark olive green" :foreground "wheat" :box (:line-width 1 :style released-button))))) - (mode-line-inactive ((t (:background "dark olive green" :foreground "khaki" :box (:line-width 1 :style released-button))))) - (semantic-dirty-token-face ((t (:background "grey22")))) - (tool-bar ((t (:background "#304020" :foreground "wheat" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lemon chiffon" :foreground "black")))))))) - -(defun color-theme-snowish () - "Color theme by Girish Bharadwaj, created 2001-05-17. -Dark slate gray on snow2, lots of blue colors. -Includes custom, eshell, font-lock, gnus, html-helper, -hyper-apropos, jde, message, paren, semantic, speedbar, -term, widget." - (interactive) - (color-theme-install - '(color-theme-snowish - ((background-color . "snow2") - (background-mode . light) - (cursor-color . "Red3") - (foreground-color . "darkslategray")) - ((buffers-tab-face . buffers-tab) - (gnus-mouse-face . highlight) - (sgml-set-face . t) - (smiley-mouse-face . highlight)) - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t :foreground "peru")))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (nil)))) - (buffers-tab ((t (:background "snow2" :foreground "darkslategray")))) - (custom-button-face ((t (:bold t)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "gray85")))) - (custom-comment-tag-face ((t (:foreground "blue4")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (cyan ((t (:foreground "cyan")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid")))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-ls-directory-face ((t (:bold t :foreground "Blue")))) - (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen")))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red")))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta")))) - (eshell-ls-symlink-face ((t (:bold t :foreground "Dark Cyan")))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:bold t :foreground "Red")))) - (font-lock-builtin-face ((t (:underline t :foreground "blue")))) - (font-lock-comment-face ((t (:foreground "snow4")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-doc-string-face ((t (:foreground "mediumblue")))) - (font-lock-function-name-face ((t (:bold t :foreground "darkblue")))) - (font-lock-keyword-face ((t (:bold t :foreground "dodgerblue")))) - (font-lock-preprocessor-face ((t (:underline t :foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:foreground "darkviolet")))) - (font-lock-type-face ((t (:foreground "goldenrod")))) - (font-lock-variable-name-face ((t (:foreground "tomato")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (gnus-cite-attribution-face ((t (nil)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (nil)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (nil)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t)))) - (gnus-emphasis-underline-italic ((t (:underline t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:foreground "indianred4")))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-picons-face ((t (:background "white" :foreground "black")))) - (gnus-picons-xbm-face ((t (:background "white" :foreground "black")))) - (gnus-signature-face ((t (nil)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (nil)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-x-face ((t (:background "white" :foreground "black")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:background "#D4D0C8" :foreground "black")))) - (highlight ((t (:background "darkseagreen2")))) - (html-helper-bold-face ((t (:bold t)))) - (html-helper-bold-italic-face ((t (nil)))) - (html-helper-builtin-face ((t (:underline t :foreground "blue3")))) - (html-helper-italic-face ((t (:foreground "medium sea green")))) - (html-helper-underline-face ((t (:underline t)))) - (html-tag-face ((t (:bold t)))) - (hyper-apropos-documentation ((t (:foreground "darkred")))) - (hyper-apropos-heading ((t (:bold t)))) - (hyper-apropos-hyperlink ((t (:foreground "blue4")))) - (hyper-apropos-major-heading ((t (:bold t)))) - (hyper-apropos-section-heading ((t (nil)))) - (hyper-apropos-warning ((t (:bold t :foreground "red")))) - (info-menu-6 ((t (nil)))) - (isearch ((t (:background "paleturquoise")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (nil)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-bug-breakpoint-marker ((t (:background "yellow" :foreground "red")))) - (jde-java-font-lock-link-face ((t (:underline t :foreground "blue")))) - (jde-java-font-lock-number-face ((t (:foreground "RosyBrown")))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68" :foreground "darkslategray")))) - (magenta ((t (:foreground "magenta")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (nil)))) - (modeline-buffer-id ((t (:background "#D4D0C8" :foreground "blue4")))) - (modeline-mousable ((t (:background "#D4D0C8" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "#D4D0C8" :foreground "green4")))) - (paren-blink-off ((t (:foreground "snow2")))) - (paren-match ((t (:background "darkseagreen2")))) - (paren-mismatch ((t (:background "snow2" :foreground "darkslategray")))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (semantic-intangible-face ((t (:foreground "gray25")))) - (semantic-read-only-face ((t (:background "gray25")))) - (senator-momentary-highlight-face ((t (:background "gray70")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (template-message-face ((t (:bold t)))) - (term-blue-bold-face ((t (:bold t :background "snow2" :foreground "blue")))) - (term-blue-face ((t (:foreground "blue")))) - (term-blue-inv-face ((t (:background "blue")))) - (term-blue-ul-face ((t (:underline t :background "snow2" :foreground "blue")))) - (term-cyan-bold-face ((t (:bold t :background "snow2" :foreground "cyan")))) - (term-cyan-face ((t (:foreground "cyan")))) - (term-cyan-inv-face ((t (:background "cyan")))) - (term-cyan-ul-face ((t (:underline t :background "snow2" :foreground "cyan")))) - (term-default-bold-face ((t (:bold t :background "snow2" :foreground "darkslategray")))) - (term-default-face ((t (:background "snow2" :foreground "darkslategray")))) - (term-default-inv-face ((t (:background "darkslategray" :foreground "snow2")))) - (term-default-ul-face ((t (:underline t :background "snow2" :foreground "darkslategray")))) - (term-green-bold-face ((t (:bold t :background "snow2" :foreground "green")))) - (term-green-face ((t (:foreground "green")))) - (term-green-inv-face ((t (:background "green")))) - (term-green-ul-face ((t (:underline t :background "snow2" :foreground "green")))) - (term-magenta-bold-face ((t (:bold t :background "snow2" :foreground "magenta")))) - (term-magenta-face ((t (:foreground "magenta")))) - (term-magenta-inv-face ((t (:background "magenta")))) - (term-magenta-ul-face ((t (:underline t :background "snow2" :foreground "magenta")))) - (term-red-bold-face ((t (:bold t :background "snow2" :foreground "red")))) - (term-red-face ((t (:foreground "red")))) - (term-red-inv-face ((t (:background "red")))) - (term-red-ul-face ((t (:underline t :background "snow2" :foreground "red")))) - (term-white-bold-face ((t (:bold t :background "snow2" :foreground "white")))) - (term-white-face ((t (:foreground "white")))) - (term-white-inv-face ((t (:background "snow2")))) - (term-white-ul-face ((t (:underline t :background "snow2" :foreground "white")))) - (term-yellow-bold-face ((t (:bold t :background "snow2" :foreground "yellow")))) - (term-yellow-face ((t (:foreground "yellow")))) - (term-yellow-inv-face ((t (:background "yellow")))) - (term-yellow-ul-face ((t (:underline t :background "snow2" :foreground "yellow")))) - (text-cursor ((t (:background "Red3" :foreground "snow2")))) - (toolbar ((t (nil)))) - (underline ((t (:underline t)))) - (vertical-divider ((t (nil)))) - (white ((t (:foreground "white")))) - (widget ((t (nil)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "gray65"))))))) - -(defun color-theme-dark-laptop () - "Color theme by Laurent Michel, created 2001-05-24. -Includes custom, fl, font-lock, gnus, message, widget." - (interactive) - (color-theme-install - '(color-theme-dark-laptop - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "yellow") - (foreground-color . "white") - (mouse-color . "sienna1")) - ((gnus-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "light blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "pink")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "lime green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "light blue")))) - (fl-comment-face ((t (:foreground "pink")))) - (fl-doc-string-face ((t (:foreground "purple")))) - (fl-function-name-face ((t (:foreground "red")))) - (fl-keyword-face ((t (:foreground "cyan")))) - (fl-string-face ((t (:foreground "green")))) - (fl-type-face ((t (:foreground "yellow")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:foreground "OrangeRed")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-doc-string-face ((t (:foreground "LightSalmon")))) - (font-lock-function-name-face ((t (:foreground "LightSkyBlue")))) - (font-lock-keyword-face ((t (:foreground "Cyan")))) - (font-lock-preprocessor-face ((t (:foreground "Aquamarine")))) - (font-lock-reference-face ((t (:foreground "LightSteelBlue")))) - (font-lock-string-face ((t (:foreground "LightSalmon")))) - (font-lock-type-face ((t (:foreground "PaleGreen")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:bold t :foreground "deep sky blue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:bold t :foreground "cyan")))) - (gnus-cite-face-3 ((t (:bold t :foreground "gold")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:bold t :foreground "chocolate")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1")))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2")))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3")))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4")))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise")))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise")))) - (gnus-header-content-face ((t (:italic t :foreground "forest green")))) - (gnus-header-from-face ((t (:bold t :foreground "spring green")))) - (gnus-header-name-face ((t (:foreground "deep sky blue")))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "purple")))) - (gnus-header-subject-face ((t (:bold t :foreground "orange")))) - (gnus-signature-face ((t (:bold t :foreground "khaki")))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (highlight ((t (:background "darkolivegreen")))) - (italic ((t (:italic t)))) - (message-cited-text-face ((t (:bold t :foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "green4")))) - (message-header-name-face ((t (:bold t :foreground "orange")))) - (message-header-newsgroups-face ((t (:bold t :foreground "violet")))) - (message-header-other-face ((t (:bold t :foreground "chocolate")))) - (message-header-subject-face ((t (:bold t :foreground "yellow")))) - (message-header-to-face ((t (:bold t :foreground "cyan")))) - (message-header-xheader-face ((t (:bold t :foreground "light blue")))) - (message-mml-face ((t (:bold t :background "Green3")))) - (message-separator-face ((t (:foreground "blue3")))) - (modeline ((t (:background "white" :foreground "black")))) - (modeline-buffer-id ((t (:background "white" :foreground "black")))) - (modeline-mousable ((t (:background "white" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "white" :foreground "black")))) - (region ((t (:background "blue")))) - (primary-selection ((t (:background "blue")))) - (isearch ((t (:background "blue")))) - (zmacs-region ((t (:background "blue")))) - (secondary-selection ((t (:background "darkslateblue")))) - (underline ((t (:underline t)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray"))))))) - -(defun color-theme-taming-mr-arneson () - "Color theme by Erik Arneson, created 2001-06-12. -Light sky blue on black. Includes bbdb, cperl, custom, cvs, diff, -dired, font-lock, html-helper, hyper-apropos, info, isearch, man, -message, paren, shell, and widget." - (interactive) - (color-theme-install - '(color-theme-taming-mr-arneson - ((background-color . "black") - (background-mode . light) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (cursor-color . "Red3") - (foreground-color . "LightSkyBlue") - (top-toolbar-shadow-color . "#fffffbeeffff")) - ((buffers-tab-face . buffers-tab) - (cperl-here-face . font-lock-string-face) - (cperl-invalid-face quote default) - (cperl-pod-face . font-lock-comment-face) - (cperl-pod-head-face . font-lock-variable-name-face) - (ispell-highlight-face . highlight) - (vc-mode-face . highlight) - (vm-highlight-url-face . bold-italic) - (vm-highlighted-header-face . bold) - (vm-mime-button-face . gui-button-face) - (vm-summary-highlight-face . bold)) - (default ((t (nil)))) - (bbdb-company ((t (nil)))) - (bbdb-field-name ((t (:bold t)))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (:underline t)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:bold t :foreground "yellow")))) - (border-glyph ((t (nil)))) - (buffers-tab ((t (:background "black" :foreground "LightSkyBlue")))) - (cperl-array-face ((t (:bold t :foreground "SkyBlue2")))) - (cperl-hash-face ((t (:foreground "LightBlue2")))) - (cperl-invalid-face ((t (:foreground "white")))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (custom-button-face ((t (:bold t)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:foreground "white")))) - (custom-comment-tag-face ((t (:foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "white")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (cvs-filename-face ((t (:foreground "white")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:foreground "green")))) - (cvs-marked-face ((t (:bold t :foreground "green3")))) - (cvs-msg-face ((t (:foreground "red")))) - (cvs-need-action-face ((t (:foreground "yellow")))) - (cvs-unknown-face ((t (:foreground "grey")))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-file-header-face ((t (:bold t :background "grey70")))) - (diff-hunk-header-face ((t (:background "grey85")))) - (diff-index-face ((t (:bold t :background "grey70")))) - (diff-removed-face ((t (nil)))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t :foreground "SkyBlue2")))) - (dired-face-executable ((t (:foreground "Green")))) - (dired-face-flagged ((t (:background "LightSlateGray")))) - (dired-face-header ((t (:background "grey75" :foreground "black")))) - (dired-face-marked ((t (:background "PaleVioletRed")))) - (dired-face-permissions ((t (:background "grey75" :foreground "black")))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (dired-face-symlink ((t (:foreground "cyan")))) - (excerpt ((t (nil)))) - (fixed ((t (:bold t)))) - (font-lock-builtin-face ((t (:foreground "red3")))) - (font-lock-comment-face ((t (:foreground "red")))) - (font-lock-constant-face ((t (nil)))) - (font-lock-doc-string-face ((t (:foreground "turquoise")))) - (font-lock-function-name-face ((t (:foreground "white")))) - (font-lock-keyword-face ((t (:foreground "green")))) - (font-lock-preprocessor-face ((t (:foreground "green3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:foreground "turquoise")))) - (font-lock-type-face ((t (:foreground "steelblue")))) - (font-lock-variable-name-face ((t (:foreground "magenta2")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (nil)))) - (highlight ((t (:background "darkseagreen2" :foreground "blue")))) - (html-helper-bold-face ((t (:bold t)))) - (html-helper-italic-face ((t (:bold t :foreground "yellow")))) - (html-helper-underline-face ((t (:underline t)))) - (hyper-apropos-documentation ((t (:foreground "white")))) - (hyper-apropos-heading ((t (:bold t)))) - (hyper-apropos-hyperlink ((t (:foreground "sky blue")))) - (hyper-apropos-major-heading ((t (:bold t)))) - (hyper-apropos-section-heading ((t (:bold t)))) - (hyper-apropos-warning ((t (:bold t :foreground "red")))) - (info-node ((t (:bold t :foreground "yellow")))) - (info-xref ((t (:bold t)))) - (isearch ((t (:background "paleturquoise" :foreground "dark red")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (:bold t :foreground "yellow")))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68" :foreground "dark green")))) - (man-bold ((t (:bold t)))) - (man-heading ((t (:bold t)))) - (man-italic ((t (:foreground "yellow")))) - (man-xref ((t (:underline t)))) - (message-cited-text ((t (:foreground "orange")))) - (message-header-contents ((t (:foreground "white")))) - (message-headers ((t (:bold t :foreground "orange")))) - (message-highlighted-header-contents ((t (:bold t)))) - (message-url ((t (:bold t :foreground "pink")))) - (mmm-face ((t (:background "black" :foreground "green")))) - (modeline ((t (nil)))) - (modeline-buffer-id ((t (:background "Gray80" :foreground "blue4")))) - (modeline-mousable ((t (:background "Gray80" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "Gray80" :foreground "green4")))) - (paren-blink-off ((t (:foreground "gray80")))) - (paren-match ((t (:background "dark blue")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "LightSkyBlue")))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray65" :foreground "DarkBlue")))) - (red ((t (:foreground "red")))) - (region ((t (:background "gray65" :foreground "DarkBlue")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise" :foreground "black")))) - (shell-option-face ((t (:foreground "blue4")))) - (shell-output-2-face ((t (:foreground "green4")))) - (shell-output-3-face ((t (:foreground "green4")))) - (shell-output-face ((t (:bold t)))) - (shell-prompt-face ((t (:foreground "red4")))) - (text-cursor ((t (:background "Red3" :foreground "black")))) - (toolbar ((t (:background "Gray80" :foreground "black")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (nil)))) - (vm-xface ((t (:background "white" :foreground "black")))) - (vmpc-pre-sig-face ((t (:foreground "forestgreen")))) - (vmpc-sig-face ((t (:foreground "steelblue")))) - (widget ((t (nil)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85" :foreground "black")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (x-face ((t (:background "white" :foreground "black")))) - (xrdb-option-name-face ((t (:foreground "red")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "gray65"))))))) - -(defun color-theme-digital-ofs1 () - "Color theme by Gareth Owen, created 2001-06-13. -This works well on an old, beat-up Digital Unix box with its 256 colour -display, on which other color themes hog too much of the palette. -Black on some shade of dark peach. Includes bbdb, cperl, custom, -cvs, diff, dired, ediff, erc, eshell, font-latex, font-lock, gnus, -highlight, hproperty, html-helper, hyper-apropos, info, jde, man, -message, paren, searchm, semantic, sgml, shell, speedbar, term, -vhdl, viper, w3m, widget, woman, x-symbol, xref." - (interactive) - (color-theme-install - '(color-theme-digital-ofs1 - ((background-color . "#CA94AA469193") - (background-mode . light) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "black") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (cursor-color . "Black") - (foreground-color . "Black") - (mouse-color . "Black") - (top-toolbar-shadow-color . "#fffffbeeffff") - (viper-saved-cursor-color-in-replace-mode . "Red3")) - ((Man-overstrike-face . bold) - (Man-underline-face . underline) - (gnus-mouse-face . highlight) - (goto-address-mail-face . italic) - (goto-address-mail-mouse-face . secondary-selection) - (goto-address-url-face . bold) - (goto-address-url-mouse-face . highlight) - (ispell-highlight-face . highlight) - (list-matching-lines-face . bold) - (rmail-highlight-face . font-lock-function-name-face) - (view-highlight-face . highlight)) - (default ((t (:bold t)))) - (bbdb-company ((t (:italic t)))) - (bbdb-field-name ((t (:bold t)))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (:underline t)))) - (blank-space-face ((t (nil)))) - (blank-tab-face ((t (nil)))) - (blue ((t (:bold t :foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (:bold t)))) - (buffers-tab ((t (:background "black" :foreground "LightSkyBlue")))) - (calendar-today-face ((t (:underline t :bold t :foreground "white")))) - (comint-input-face ((t (nil)))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue")))) - (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red")))) - (cperl-here-face ((t (nil)))) - (cperl-invalid-face ((t (:foreground "white")))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (cperl-pod-face ((t (nil)))) - (cperl-pod-head-face ((t (nil)))) - (custom-button-face ((t (:bold t)))) - (custom-changed-face ((t (:bold t :background "blue" :foreground "white")))) - (custom-comment-face ((t (:foreground "white")))) - (custom-comment-tag-face ((t (:foreground "white")))) - (custom-documentation-face ((t (:bold t)))) - (custom-face-tag-face ((t (:underline t :bold t)))) - (custom-group-tag-face ((t (:underline t :bold t :foreground "DarkBlue")))) - (custom-group-tag-face-1 ((t (:underline t :bold t :foreground "red")))) - (custom-invalid-face ((t (:bold t :background "red" :foreground "yellow")))) - (custom-modified-face ((t (:bold t :background "blue" :foreground "white")))) - (custom-rogue-face ((t (:bold t :background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t :bold t)))) - (custom-set-face ((t (:bold t :background "white" :foreground "blue")))) - (custom-state-face ((t (:bold t :foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :bold t :foreground "blue")))) - (cvs-filename-face ((t (:foreground "white")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:bold t :foreground "green")))) - (cvs-marked-face ((t (:bold t :foreground "green3")))) - (cvs-msg-face ((t (:italic t :foreground "red")))) - (cvs-need-action-face ((t (:foreground "yellow")))) - (cvs-unknown-face ((t (:foreground "grey")))) - (cyan ((t (:foreground "cyan")))) - (diary-face ((t (:bold t :foreground "red")))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-file-header-face ((t (:bold t :background "grey70")))) - (diff-hunk-header-face ((t (:background "grey85")))) - (diff-index-face ((t (:bold t :background "grey70")))) - (diff-removed-face ((t (nil)))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t)))) - (dired-face-executable ((t (:foreground "SeaGreen")))) - (dired-face-flagged ((t (:background "LightSlateGray")))) - (dired-face-header ((t (:background "grey75" :foreground "black")))) - (dired-face-marked ((t (:background "PaleVioletRed")))) - (dired-face-permissions ((t (:background "grey75" :foreground "black")))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (dired-face-symlink ((t (:foreground "cyan")))) - (display-time-mail-balloon-enhance-face ((t (:bold t :background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:bold t :foreground "blue")))) - (display-time-time-balloon-face ((t (:bold t :foreground "red")))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (erc-action-face ((t (:bold t)))) - (erc-bold-face ((t (:bold t)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (nil)))) - (erc-error-face ((t (:bold t)))) - (erc-input-face ((t (nil)))) - (erc-inverse-face ((t (nil)))) - (erc-notice-face ((t (nil)))) - (erc-pal-face ((t (nil)))) - (erc-prompt-face ((t (nil)))) - (erc-underline-face ((t (nil)))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid")))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-ls-directory-face ((t (:bold t :foreground "Blue")))) - (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen")))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red")))) - (eshell-ls-picture-face ((t (:foreground "Violet")))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta")))) - (eshell-ls-symlink-face ((t (:bold t :foreground "DarkCyan")))) - (eshell-ls-text-face ((t (:foreground "medium aquamarine")))) - (eshell-ls-todo-face ((t (:bold t :foreground "aquamarine")))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:bold t :foreground "Red")))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-test-ok-face ((t (:bold t :foreground "Green")))) - (excerpt ((t (:italic t)))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue")))) - (fg:black ((t (:foreground "black")))) - (fixed ((t (:bold t)))) - (fl-comment-face ((t (:foreground "medium purple")))) - (fl-doc-string-face ((t (nil)))) - (fl-function-name-face ((t (:foreground "green")))) - (fl-keyword-face ((t (:foreground "LightGreen")))) - (fl-string-face ((t (:foreground "light coral")))) - (fl-type-face ((t (:foreground "cyan")))) - (flyspell-duplicate-face ((t (:underline t :bold t :foreground "Gold3")))) - (flyspell-incorrect-face ((t (:underline t :bold t :foreground "OrangeRed")))) - (font-latex-bold-face ((t (:bold t)))) - (font-latex-italic-face ((t (:italic t)))) - (font-latex-math-face ((t (nil)))) - (font-latex-sedate-face ((t (nil)))) - (font-latex-string-face ((t (nil)))) - (font-latex-warning-face ((t (nil)))) - (font-lock-builtin-face ((t (:italic t :bold t :foreground "Orchid")))) - (font-lock-comment-face ((t (:bold t :foreground "Firebrick")))) - (font-lock-constant-face ((t (:italic t :bold t :foreground "CadetBlue")))) - (font-lock-doc-string-face ((t (:italic t :bold t :foreground "green4")))) - (font-lock-emphasized-face ((t (:bold t)))) - (font-lock-exit-face ((t (:foreground "green")))) - (font-lock-function-name-face ((t (:italic t :bold t :foreground "Blue")))) - (font-lock-keyword-face ((t (:bold t :foreground "dark olive green")))) - (font-lock-other-emphasized-face ((t (:italic t :bold t)))) - (font-lock-other-type-face ((t (:bold t :foreground "DarkBlue")))) - (font-lock-preprocessor-face ((t (:italic t :bold t :foreground "blue3")))) - (font-lock-reference-face ((t (:italic t :bold t :foreground "red3")))) - (font-lock-special-comment-face ((t (nil)))) - (font-lock-special-keyword-face ((t (nil)))) - (font-lock-string-face ((t (:italic t :bold t :foreground "DarkBlue")))) - (font-lock-type-face ((t (:italic t :bold t :foreground "DarkGreen")))) - (font-lock-variable-name-face ((t (:italic t :bold t :foreground "darkgreen")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (fringe ((t (:background "grey95")))) - (gdb-arrow-face ((t (:bold t)))) - (gnus-cite-attribution-face ((t (:italic t :bold t)))) - (gnus-cite-face-1 ((t (:bold t :foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:bold t :foreground "firebrick")))) - (gnus-cite-face-3 ((t (:bold t :foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:bold t :foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-cite-face-list ((t (nil)))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-filterhist-face-1 ((t (nil)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4")))) - (gnus-header-from-face ((t (:bold t :foreground "red3")))) - (gnus-header-name-face ((t (:bold t :foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:bold t :foreground "red4")))) - (gnus-picons-face ((t (:background "white" :foreground "black")))) - (gnus-picons-xbm-face ((t (:background "white" :foreground "black")))) - (gnus-signature-face ((t (:italic t :bold t)))) - (gnus-splash ((t (nil)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:italic t :bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :bold t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (:bold t)))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-x-face ((t (:background "white" :foreground "black")))) - (green ((t (:bold t :foreground "green")))) - (gui-button-face ((t (:bold t :background "grey75" :foreground "black")))) - (gui-element ((t (:bold t :background "Gray80")))) - (highlight ((t (:bold t :background "darkseagreen2")))) - (highlight-changes-delete-face ((t (:underline t :foreground "red")))) - (highlight-changes-face ((t (:foreground "red")))) - (highline-face ((t (:background "black" :foreground "white")))) - (holiday-face ((t (:bold t :background "pink" :foreground "white")))) - (hproperty:but-face ((t (:bold t)))) - (hproperty:flash-face ((t (:bold t)))) - (hproperty:highlight-face ((t (:bold t)))) - (hproperty:item-face ((t (:bold t)))) - (html-helper-bold-face ((t (:bold t)))) - (html-helper-bold-italic-face ((t (nil)))) - (html-helper-builtin-face ((t (:underline t :foreground "blue3")))) - (html-helper-italic-face ((t (:italic t :bold t :foreground "yellow")))) - (html-helper-underline-face ((t (:underline t)))) - (html-tag-face ((t (:bold t)))) - (hyper-apropos-documentation ((t (:foreground "white")))) - (hyper-apropos-heading ((t (:bold t)))) - (hyper-apropos-hyperlink ((t (:foreground "sky blue")))) - (hyper-apropos-major-heading ((t (:bold t)))) - (hyper-apropos-section-heading ((t (:bold t)))) - (hyper-apropos-warning ((t (:bold t :foreground "red")))) - (ibuffer-marked-face ((t (:foreground "red")))) - (info-menu-5 ((t (:underline t :bold t)))) - (info-menu-6 ((t (nil)))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (isearch ((t (:bold t :background "paleturquoise")))) - (isearch-secondary ((t (:foreground "red3")))) - (ispell-face ((t (:bold t)))) - (italic ((t (:italic t :bold t)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-bug-breakpoint-marker ((t (:background "yellow" :foreground "red")))) - (jde-java-font-lock-link-face ((t (:underline t :foreground "blue")))) - (jde-java-font-lock-number-face ((t (:foreground "RosyBrown")))) - (lazy-highlight-face ((t (:bold t :foreground "dark magenta")))) - (left-margin ((t (:bold t)))) - (linemenu-face ((t (nil)))) - (list-mode-item-selected ((t (:bold t :background "gray68")))) - (magenta ((t (:foreground "magenta")))) - (makefile-space-face ((t (:background "hotpink")))) - (man-bold ((t (:bold t)))) - (man-heading ((t (:bold t)))) - (man-italic ((t (:foreground "yellow")))) - (man-xref ((t (:underline t)))) - (message-cited-text ((t (:bold t :foreground "orange")))) - (message-cited-text-face ((t (:bold t :foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-contents ((t (:italic t :bold t :foreground "white")))) - (message-header-name-face ((t (:bold t :foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:bold t :foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:bold t :foreground "blue")))) - (message-headers ((t (:bold t :foreground "orange")))) - (message-highlighted-header-contents ((t (:bold t)))) - (message-mml-face ((t (:bold t :foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (message-url ((t (:bold t :foreground "pink")))) - (mmm-face ((t (:background "black" :foreground "green")))) - (modeline ((t (:bold t :background "Black" :foreground "#CA94AA469193")))) - (modeline-buffer-id ((t (:bold t :background "Gray80" :foreground "blue4")))) - (modeline-mousable ((t (:bold t :background "Gray80" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:bold t :background "Gray80" :foreground "green4")))) - (my-tab-face ((t (nil)))) - (nil ((t (nil)))) - (p4-diff-del-face ((t (:bold t)))) - (paren-blink-off ((t (:foreground "gray80")))) - (paren-face ((t (nil)))) - (paren-face-match ((t (nil)))) - (paren-face-mismatch ((t (nil)))) - (paren-face-no-match ((t (nil)))) - (paren-match ((t (:background "darkseagreen2")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "black")))) - (paren-mismatch-face ((t (:bold t :background "DeepPink" :foreground "white")))) - (paren-no-match-face ((t (:bold t :background "yellow" :foreground "white")))) - (pointer ((t (:bold t)))) - (primary-selection ((t (:bold t :background "gray65")))) - (red ((t (:bold t :foreground "red")))) - (region ((t (:bold t :background "gray")))) - (right-margin ((t (:bold t)))) - (searchm-buffer ((t (:bold t)))) - (searchm-button ((t (:bold t)))) - (searchm-field ((t (nil)))) - (searchm-field-label ((t (:bold t)))) - (searchm-highlight ((t (:bold t)))) - (secondary-selection ((t (:bold t :background "paleturquoise")))) - (semantic-intangible-face ((t (:foreground "gray25")))) - (semantic-read-only-face ((t (:background "gray25")))) - (senator-momentary-highlight-face ((t (:background "gray70")))) - (setnu-line-number-face ((t (:italic t :bold t)))) - (sgml-comment-face ((t (:foreground "dark green")))) - (sgml-doctype-face ((t (:foreground "maroon")))) - (sgml-end-tag-face ((t (:foreground "blue2")))) - (sgml-entity-face ((t (:foreground "red2")))) - (sgml-ignored-face ((t (:background "gray90" :foreground "maroon")))) - (sgml-ms-end-face ((t (:foreground "maroon")))) - (sgml-ms-start-face ((t (:foreground "maroon")))) - (sgml-pi-face ((t (:foreground "maroon")))) - (sgml-sgml-face ((t (:foreground "maroon")))) - (sgml-short-ref-face ((t (:foreground "goldenrod")))) - (sgml-start-tag-face ((t (:foreground "blue2")))) - (shell-input-face ((t (:bold t)))) - (shell-option-face ((t (:bold t :foreground "blue4")))) - (shell-output-2-face ((t (:bold t :foreground "green4")))) - (shell-output-3-face ((t (:bold t :foreground "green4")))) - (shell-output-face ((t (:bold t)))) - (shell-prompt-face ((t (:bold t :foreground "red4")))) - (show-paren-match-face ((t (:bold t :background "turquoise")))) - (show-paren-mismatch-face ((t (:bold t :background "purple" :foreground "white")))) - (speedbar-button-face ((t (:bold t :foreground "magenta")))) - (speedbar-directory-face ((t (:bold t :foreground "orchid")))) - (speedbar-file-face ((t (:bold t :foreground "pink")))) - (speedbar-highlight-face ((t (:background "black")))) - (speedbar-selected-face ((t (:underline t :foreground "cyan")))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (swbuff-current-buffer-face ((t (:bold t :foreground "red")))) - (template-message-face ((t (:bold t)))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (:background "black")))) - (term-blue ((t (:foreground "blue")))) - (term-blue-bold-face ((t (:bold t :background "snow2" :foreground "blue")))) - (term-blue-face ((t (:foreground "blue")))) - (term-blue-inv-face ((t (:background "blue")))) - (term-blue-ul-face ((t (:underline t :background "snow2" :foreground "blue")))) - (term-bluebg ((t (:background "blue")))) - (term-bold ((t (:bold t)))) - (term-cyan ((t (:foreground "cyan")))) - (term-cyan-bold-face ((t (:bold t :background "snow2" :foreground "cyan")))) - (term-cyan-face ((t (:foreground "cyan")))) - (term-cyan-inv-face ((t (:background "cyan")))) - (term-cyan-ul-face ((t (:underline t :background "snow2" :foreground "cyan")))) - (term-cyanbg ((t (:background "cyan")))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-bold-face ((t (:bold t :background "snow2" :foreground "darkslategray")))) - (term-default-face ((t (:background "snow2" :foreground "darkslategray")))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-default-inv-face ((t (:background "darkslategray" :foreground "snow2")))) - (term-default-ul-face ((t (:underline t :background "snow2" :foreground "darkslategray")))) - (term-green ((t (:foreground "green")))) - (term-green-bold-face ((t (:bold t :background "snow2" :foreground "green")))) - (term-green-face ((t (:foreground "green")))) - (term-green-inv-face ((t (:background "green")))) - (term-green-ul-face ((t (:underline t :background "snow2" :foreground "green")))) - (term-greenbg ((t (:background "green")))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (:foreground "magenta")))) - (term-magenta-bold-face ((t (:bold t :background "snow2" :foreground "magenta")))) - (term-magenta-face ((t (:foreground "magenta")))) - (term-magenta-inv-face ((t (:background "magenta")))) - (term-magenta-ul-face ((t (:underline t :background "snow2" :foreground "magenta")))) - (term-magentabg ((t (:background "magenta")))) - (term-red ((t (:foreground "red")))) - (term-red-bold-face ((t (:bold t :background "snow2" :foreground "red")))) - (term-red-face ((t (:foreground "red")))) - (term-red-inv-face ((t (:background "red")))) - (term-red-ul-face ((t (:underline t :background "snow2" :foreground "red")))) - (term-redbg ((t (:background "red")))) - (term-underline ((t (:underline t)))) - (term-white ((t (:foreground "white")))) - (term-white-bold-face ((t (:bold t :background "snow2" :foreground "white")))) - (term-white-face ((t (:foreground "white")))) - (term-white-inv-face ((t (:background "snow2")))) - (term-white-ul-face ((t (:underline t :background "snow2" :foreground "white")))) - (term-whitebg ((t (:background "white")))) - (term-yellow ((t (:foreground "yellow")))) - (term-yellow-bold-face ((t (:bold t :background "snow2" :foreground "yellow")))) - (term-yellow-face ((t (:foreground "yellow")))) - (term-yellow-inv-face ((t (:background "yellow")))) - (term-yellow-ul-face ((t (:underline t :background "snow2" :foreground "yellow")))) - (term-yellowbg ((t (:background "yellow")))) - (text-cursor ((t (:bold t :background "Red3" :foreground "gray80")))) - (toolbar ((t (:bold t :background "Gray80")))) - (underline ((t (:underline t :bold t)))) - (vc-annotate-face-0046FF ((t (nil)))) - (vcursor ((t (:underline t :background "cyan" :foreground "blue")))) - (vertical-divider ((t (:bold t :background "Gray80")))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-generic-/constant-face ((t (nil)))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red")))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange")))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-font-lock-type-face ((t (nil)))) - (vhdl-font-lock-variable-face ((t (nil)))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue")))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod")))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen")))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown")))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Grey50")))) - (vhdl-speedbar-subprogram-face ((t (nil)))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (vm-xface ((t (:background "white" :foreground "black")))) - (vmpc-pre-sig-face ((t (:foreground "forestgreen")))) - (vmpc-sig-face ((t (:foreground "steelblue")))) - (vvb-face ((t (nil)))) - (w3m-anchor-face ((t (:bold t :foreground "DodgerBlue1")))) - (w3m-arrived-anchor-face ((t (:bold t :foreground "DodgerBlue3")))) - (w3m-header-line-location-content-face ((t (:background "dark olive green" :foreground "wheat")))) - (w3m-header-line-location-title-face ((t (:background "dark olive green" :foreground "beige")))) - (white ((t (:foreground "white")))) - (widget ((t (nil)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:bold t :foreground "red")))) - (widget-documentation-face ((t (:bold t :foreground "dark green")))) - (widget-field-face ((t (:bold t :background "gray85")))) - (widget-inactive-face ((t (:bold t :foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (woman-bold-face ((t (:bold t)))) - (woman-italic-face ((t (:foreground "beige")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))) - (x-face ((t (:bold t :background "white" :foreground "black")))) - (x-symbol-adobe-fontspecific-face ((t (nil)))) - (x-symbol-face ((t (nil)))) - (x-symbol-heading-face ((t (:bold t)))) - (x-symbol-info-face ((t (nil)))) - (x-symbol-invisible-face ((t (nil)))) - (x-symbol-revealed-face ((t (nil)))) - (xrdb-option-name-face ((t (:foreground "red")))) - (xref-keyword-face ((t (:foreground "blue")))) - (xref-list-default-face ((t (nil)))) - (xref-list-pilot-face ((t (:foreground "navy")))) - (xref-list-symbol-face ((t (:foreground "navy")))) - (yellow ((t (:bold t :foreground "yellow")))) - (zmacs-region ((t (:bold t :background "gray65"))))))) - -(defun color-theme-mistyday () - "Color theme by K.C. Hari Kumar, created 2001-06-13. -Black on mistyrose. Includes CUA, calendar, diary, font-latex and -font-lock. Uses backgrounds on some font-lock faces." - (interactive) - (color-theme-install - '(color-theme-mistyday - ((background-color . "mistyrose") - (background-mode . light) - (border-color . "black") - (cursor-color . "deep pink") - (foreground-color . "Black") - (mouse-color . "black")) - ((goto-address-mail-face . italic) - (goto-address-mail-mouse-face . secondary-selection) - (goto-address-url-face . bold) - (goto-address-url-mouse-face . highlight) - (list-matching-lines-face . bold) - (paren-match-face . paren-face-match) - (paren-mismatch-face . paren-face-mismatch) - (paren-no-match-face . paren-face-no-match)) - (default ((t (nil)))) - (CUA-global-mark-face ((t (:background "cyan" :foreground "black")))) - (CUA-rectangle-face ((t (:background "maroon" :foreground "white")))) - (CUA-rectangle-noselect-face ((t (:background "dimgray" :foreground "white")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (calendar-today-face ((t (:underline t :background "Spring Green" :foreground "Brown")))) - (custom-button-face ((t (:background "dark slate grey" :foreground "azure")))) - (custom-documentation-face ((t (:background "white" :foreground "blue")))) - (diary-face ((t (:background "navy" :foreground "yellow")))) - (font-latex-bold-face ((t (:bold t :foreground "DarkOliveGreen")))) - (font-latex-italic-face ((t (:italic t :foreground "DarkOliveGreen")))) - (font-latex-math-face ((t (:foreground "navy")))) - (font-latex-sedate-face ((t (:foreground "DimGray")))) - (font-latex-string-face ((t (nil)))) - (font-latex-warning-face ((t (nil)))) - (font-lock-builtin-face ((t (:background "DarkTurquoise" :foreground "Navy")))) - (font-lock-comment-face ((t (:italic t :foreground "royal blue")))) - (font-lock-constant-face ((t (:background "pale green" :foreground "dark slate blue")))) - (font-lock-doc-string-face ((t (:background "medium aquamarine" :foreground "deep pink")))) - (font-lock-function-name-face ((t (:background "SpringGreen" :foreground "MidnightBlue")))) - (font-lock-keyword-face ((t (:foreground "dark magenta")))) - (font-lock-preprocessor-face ((t (:background "pale green" :foreground "dark slate blue")))) - (font-lock-reference-face ((t (:background "DarkTurquoise" :foreground "Navy")))) - (font-lock-string-face ((t (:background "medium aquamarine" :foreground "deep pink")))) - (font-lock-type-face ((t (:background "steel blue" :foreground "khaki")))) - (font-lock-variable-name-face ((t (:background "thistle" :foreground "orange red")))) - (font-lock-warning-face ((t (:background "LemonChiffon" :foreground "Red")))) - (highlight ((t (:background "dark slate grey" :foreground "light cyan")))) - (holiday-face ((t (:background "orangered" :foreground "lightyellow")))) - (ido-first-match-face ((t (:bold t)))) - (ido-only-match-face ((t (:foreground "ForestGreen")))) - (ido-subdir-face ((t (:foreground "red")))) - (italic ((t (:italic t)))) - (isearch ((t (:background "sienna" :foreground "light cyan")))) - (modeline ((t (:background "Royalblue4" :foreground "lawn green")))) - (modeline-buffer-id ((t (:background "Royalblue4" :foreground "lawn green")))) - (modeline-mousable ((t (:background "Royalblue4" :foreground "lawn green")))) - (modeline-mousable-minor-mode ((t (:background "Royalblue4" :foreground "lawn green")))) - (paren-face-match ((t (:background "turquoise")))) - (paren-face-mismatch ((t (:background "purple" :foreground "white")))) - (paren-face-no-match ((t (:background "yellow" :foreground "black")))) - (primary-selection ((t (:background "sienna" :foreground "light cyan")))) - (region ((t (:background "sienna" :foreground "light cyan")))) - (secondary-selection ((t (:background "forest green" :foreground "white smoke")))) - (underline ((t (:underline t)))) - (zmacs-region ((t (:background "sienna" :foreground "light cyan"))))))) - -(defun color-theme-marine () - "Color theme by Girish Bharadwaj, created 2001-06-22. -Matches the MS Windows Marine color theme. -Includes custom, font-lock, paren, widget." - (interactive) - (color-theme-install - '(color-theme-marine - ((background-color . "#9dcec9") - (background-mode . light) - (border-color . "black") - (cursor-color . "yellow") - (foreground-color . "darkslategray") - (mouse-color . "sienna1")) - ((buffers-tab-face . buffers-tab) - (gnus-mouse-face . highlight) - (smiley-mouse-face . highlight)) - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (nil)))) - (border-glyph ((t (nil)))) - (buffers-tab ((t (:background "#9dcec9" :foreground "darkslategray")))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "gray85")))) - (custom-comment-tag-face ((t (:foreground "blue4")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "deeppink")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "darkgreen")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (font-lock-builtin-face ((t (:foreground "SteelBlue")))) - (font-lock-comment-face ((t (:foreground "cadetblue")))) - (font-lock-constant-face ((t (:foreground "OrangeRed")))) - (font-lock-doc-string-face ((t (:foreground "Salmon")))) - (font-lock-function-name-face ((t (:bold t :foreground "NavyBlue")))) - (font-lock-keyword-face ((t (:bold t :foreground "purple")))) - (font-lock-preprocessor-face ((t (:foreground "SteelBlue")))) - (font-lock-reference-face ((t (:foreground "SteelBlue")))) - (font-lock-string-face ((t (:foreground "royalblue")))) - (font-lock-type-face ((t (:foreground "darkmagenta")))) - (font-lock-variable-name-face ((t (:foreground "violetred")))) - (font-lock-warning-face ((t (:bold t :foreground "red")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:background "#489088" :foreground "black")))) - (highlight ((t (:background "darkolivegreen" :foreground "white")))) - (isearch ((t (:background "blue")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (nil)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68" :foreground "darkslategray")))) - (modeline ((t (:background "black" :foreground "white")))) - (modeline-buffer-id ((t (:background "black" :foreground "white")))) - (modeline-mousable ((t (:background "black" :foreground "white")))) - (modeline-mousable-minor-mode ((t (:background "black" :foreground "white")))) - (paren-blink-off ((t (:foreground "black")))) - (paren-match ((t (:background "darkolivegreen" :foreground "white")))) - (paren-mismatch ((t (:background "#9dcec9" :foreground "darkslategray")))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "blue")))) - (red ((t (:foreground "red")))) - (region ((t (:background "blue")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "darkslateblue" :foreground "white")))) - (template-message-face ((t (:bold t)))) - (text-cursor ((t (:background "yellow" :foreground "#9dcec9")))) - (toolbar ((t (nil)))) - (underline ((t (:underline t)))) - (vertical-divider ((t (nil)))) - (widget ((t (nil)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "forestgreen")))) - (widget-field-face ((t (:background "gray")))) - (widget-inactive-face ((t (:foreground "dimgray")))) - (widget-single-line-field-face ((t (:background "dim gray" :foreground "white")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "blue"))))))) - -(defun color-theme-blue-erc () - "Color theme for erc faces only. -This is intended for other color themes to use (eg. `color-theme-gnome2')." - (color-theme-install - '(color-theme-blue-erc - nil - (erc-action-face ((t (nil)))) - (erc-bold-face ((t (:bold t)))) - (erc-current-nick-face ((t (:bold t :foreground "yellow")))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "pale green")))) - (erc-error-face ((t (:bold t :foreground "IndianRed")))) - (erc-highlight-face ((t (:bold t :foreground "pale green")))) - (erc-input-face ((t (:foreground "light blue")))) - (erc-inverse-face ((t (:background "steel blue")))) - (erc-keyword-face ((t (:foreground "orange" :bold t)))) - (erc-notice-face ((t (:foreground "light salmon")))) - (erc-notice-face ((t (:foreground "MediumAquamarine")))) - (erc-pal-face ((t (:foreground "pale green")))) - (erc-prompt-face ((t (:foreground "light blue" :bold t)))) - (fg:erc-color-face0 ((t (:foreground "white")))) - (fg:erc-color-face1 ((t (:foreground "beige")))) - (fg:erc-color-face2 ((t (:foreground "lemon chiffon")))) - (fg:erc-color-face3 ((t (:foreground "light cyan")))) - (fg:erc-color-face4 ((t (:foreground "powder blue")))) - (fg:erc-color-face5 ((t (:foreground "sky blue")))) - (fg:erc-color-face6 ((t (:foreground "dark sea green")))) - (fg:erc-color-face7 ((t (:foreground "pale green")))) - (fg:erc-color-face8 ((t (:foreground "medium spring green")))) - (fg:erc-color-face9 ((t (:foreground "khaki")))) - (fg:erc-color-face10 ((t (:foreground "pale goldenrod")))) - (fg:erc-color-face11 ((t (:foreground "light goldenrod yellow")))) - (fg:erc-color-face12 ((t (:foreground "light yellow")))) - (fg:erc-color-face13 ((t (:foreground "yellow")))) - (fg:erc-color-face14 ((t (:foreground "light goldenrod")))) - (fg:erc-color-face15 ((t (:foreground "lime green")))) - (bg:erc-color-face0 ((t (nil)))) - (bg:erc-color-face1 ((t (nil)))) - (bg:erc-color-face2 ((t (nil)))) - (bg:erc-color-face3 ((t (nil)))) - (bg:erc-color-face4 ((t (nil)))) - (bg:erc-color-face5 ((t (nil)))) - (bg:erc-color-face6 ((t (nil)))) - (bg:erc-color-face7 ((t (nil)))) - (bg:erc-color-face8 ((t (nil)))) - (bg:erc-color-face9 ((t (nil)))) - (bg:erc-color-face10 ((t (nil)))) - (bg:erc-color-face11 ((t (nil)))) - (bg:erc-color-face12 ((t (nil)))) - (bg:erc-color-face13 ((t (nil)))) - (bg:erc-color-face14 ((t (nil)))) - (bg:erc-color-face15 ((t (nil))))))) - -(defun color-theme-dark-erc () - "Color theme for erc faces only. -This is intended for other color themes to use (eg. `color-theme-late-night')." - (interactive) - (color-theme-install - '(color-theme-dark-erc - nil - (erc-action-face ((t (nil)))) - (erc-bold-face ((t (:bold t)))) - (erc-current-nick-face ((t (:bold t)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (nil)))) - (erc-error-face ((t (:bold t :foreground "IndianRed")))) - (erc-highlight-face ((t (:bold t :foreground "pale green")))) - (erc-input-face ((t (:foreground "#555")))) - (erc-inverse-face ((t (:background "steel blue")))) - (erc-keyword-face ((t (:foreground "#999" :bold t)))) - (erc-nick-msg-face ((t (:foreground "#888")))) - (erc-notice-face ((t (:foreground "#444")))) - (erc-pal-face ((t (:foreground "#888")))) - (erc-prompt-face ((t (:foreground "#777" :bold t)))) - (erc-timestamp-face ((t (:foreground "#777" :bold t)))) - (fg:erc-color-face0 ((t (:foreground "white")))) - (fg:erc-color-face1 ((t (:foreground "beige")))) - (fg:erc-color-face2 ((t (:foreground "lemon chiffon")))) - (fg:erc-color-face3 ((t (:foreground "light cyan")))) - (fg:erc-color-face4 ((t (:foreground "powder blue")))) - (fg:erc-color-face5 ((t (:foreground "sky blue")))) - (fg:erc-color-face6 ((t (:foreground "dark sea green")))) - (fg:erc-color-face7 ((t (:foreground "pale green")))) - (fg:erc-color-face8 ((t (:foreground "medium spring green")))) - (fg:erc-color-face9 ((t (:foreground "khaki")))) - (fg:erc-color-face10 ((t (:foreground "pale goldenrod")))) - (fg:erc-color-face11 ((t (:foreground "light goldenrod yellow")))) - (fg:erc-color-face12 ((t (:foreground "light yellow")))) - (fg:erc-color-face13 ((t (:foreground "yellow")))) - (fg:erc-color-face14 ((t (:foreground "light goldenrod")))) - (fg:erc-color-face15 ((t (:foreground "lime green")))) - (bg:erc-color-face0 ((t (nil)))) - (bg:erc-color-face1 ((t (nil)))) - (bg:erc-color-face2 ((t (nil)))) - (bg:erc-color-face3 ((t (nil)))) - (bg:erc-color-face4 ((t (nil)))) - (bg:erc-color-face5 ((t (nil)))) - (bg:erc-color-face6 ((t (nil)))) - (bg:erc-color-face7 ((t (nil)))) - (bg:erc-color-face8 ((t (nil)))) - (bg:erc-color-face9 ((t (nil)))) - (bg:erc-color-face10 ((t (nil)))) - (bg:erc-color-face11 ((t (nil)))) - (bg:erc-color-face12 ((t (nil)))) - (bg:erc-color-face13 ((t (nil)))) - (bg:erc-color-face14 ((t (nil)))) - (bg:erc-color-face15 ((t (nil))))))) - -(defun color-theme-subtle-blue () - "Color theme by Chris McMahan, created 2001-09-06. -Light blue background. Includes bbdb, comint, cperl, custom, cvs, -diary, dired, display-time, ecb, ediff, erc, eshell, font-lock, -gnus, html-helper, info, isearch, jde, message, paren, semantic, -sgml, speedbar, term, vhdl, viper, vm, widget, woman, xref, xxml." - (interactive) - (color-theme-install - '(color-theme-subtle-blue - ((background-color . "#65889C") - (background-mode . dark) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "black") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (cursor-color . "white") - (foreground-color . "#eedfcc") - (mouse-color . "Grey") - (top-toolbar-shadow-color . "#fffffbeeffff") - (viper-saved-cursor-color-in-replace-mode . "Red3")) - ((blank-space-face . blank-space-face) - (blank-tab-face . blank-tab-face) - (ecb-source-in-directories-buffer-face . ecb-sources-face) - (gnus-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight) - (vm-highlight-url-face . my-url-face) - (vm-highlighted-header-face . my-url-face) - (vm-mime-button-face . gui-button-face) - (vm-summary-highlight-face . my-summary-highlight-face)) - (default ((t (nil)))) - (bbdb-company ((t (:italic t)))) - (bbdb-field-name ((t (:bold t :foreground "MediumAquamarine")))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (:underline t)))) - (blank-space-face ((t (:background "gray80")))) - (blank-tab-face ((t (:background "LightBlue" :foreground "DarkSlateGray")))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t :foreground "MediumAquamarine")))) - (bold-italic ((t (:italic t :bold t :foreground "SkyBlue")))) - (border ((t (:background "black")))) - (border-glyph ((t (nil)))) - (calendar-today-face ((t (:underline t)))) - (comint-highlight-input ((t (:bold t)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (comint-input-face ((t (:foreground "deepskyblue")))) - (cperl-array-face ((t (:bold t :foreground "Yellow")))) - (cperl-hash-face ((t (:italic t :bold t :foreground "White")))) - (cperl-nonoverridable-face ((t (:foreground "SkyBlue")))) - (cursor ((t (:background "white")))) - (custom-button-face ((t (:underline t :bold t :foreground "MediumAquaMarine")))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black")))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "dim gray")))) - (custom-comment-tag-face ((t (:foreground "gray80")))) - (custom-documentation-face ((t (:foreground "Grey")))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:bold t :foreground "MediumAquamarine")))) - (custom-group-tag-face-1 ((t (:foreground "MediumAquaMarine")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "yellow")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:bold t :foreground "Aquamarine")))) - (cvs-filename-face ((t (:foreground "blue4")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:bold t :foreground "blue4")))) - (cvs-marked-face ((t (:bold t :foreground "green3")))) - (cvs-msg-face ((t (:italic t)))) - (cvs-need-action-face ((t (:foreground "orange")))) - (cvs-unknown-face ((t (:foreground "red")))) - (diary-face ((t (:bold t :foreground "cyan")))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t :foreground "sky blue")))) - (dired-face-executable ((t (:foreground "MediumAquaMarine")))) - (dired-face-flagged ((t (:foreground "Cyan")))) - (dired-face-marked ((t (:foreground "cyan")))) - (dired-face-permissions ((t (:foreground "aquamarine")))) - (dired-face-setuid ((t (:foreground "LightSalmon")))) - (dired-face-socket ((t (:foreground "LightBlue")))) - (dired-face-symlink ((t (:foreground "gray95")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (ecb-sources-face ((t (:foreground "LightBlue1")))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "indianred" :foreground "white")))) - (ediff-even-diff-face-A ((t (:background "light gray" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Gray" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Gray" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light gray" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Gray" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light gray" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light gray" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Gray" :foreground "White")))) - (erc-action-face ((t (:bold t)))) - (erc-bold-face ((t (:bold t)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "LightSalmon")))) - (erc-error-face ((t (:bold t :foreground "yellow")))) - (erc-input-face ((t (:foreground "Beige")))) - (erc-inverse-face ((t (:background "wheat" :foreground "darkslategrey")))) - (erc-notice-face ((t (:foreground "MediumAquamarine")))) - (erc-pal-face ((t (:foreground "PaleGreen")))) - (erc-prompt-face ((t (:foreground "MediumAquamarine")))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :foreground "wheat")))) - (eshell-ls-backup-face ((t (:foreground "Grey")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "wheat")))) - (eshell-ls-directory-face ((t (:bold t :foreground "Yellow")))) - (eshell-ls-executable-face ((t (:bold t :foreground "wheat")))) - (eshell-ls-missing-face ((t (:bold t :foreground "wheat")))) - (eshell-ls-picture-face ((t (:foreground "wheat")))) - (eshell-ls-product-face ((t (:foreground "wheat")))) - (eshell-ls-readonly-face ((t (:foreground "wheat")))) - (eshell-ls-special-face ((t (:bold t :foreground "wheat")))) - (eshell-ls-symlink-face ((t (:bold t :foreground "White")))) - (eshell-ls-text-face ((t (:foreground "wheat")))) - (eshell-ls-todo-face ((t (:foreground "wheat")))) - (eshell-ls-unreadable-face ((t (:foreground "wheat3")))) - (eshell-prompt-face ((t (:bold t :foreground "PaleGreen")))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-test-ok-face ((t (:bold t :foreground "Green")))) - (excerpt ((t (:italic t)))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue")))) - (flyspell-duplicate-face ((t (:underline t :bold t :foreground "Gold3")))) - (flyspell-incorrect-face ((t (:underline t :bold t :foreground "OrangeRed")))) - (font-latex-italic-face ((t (nil)))) - (font-latex-math-face ((t (nil)))) - (font-latex-sedate-face ((t (:foreground "Gray85")))) - (font-latex-string-face ((t (:foreground "orange")))) - (font-latex-warning-face ((t (:foreground "gold")))) - (font-lock-builtin-face ((t (:foreground "PaleGreen")))) - (font-lock-comment-face ((t (:italic t :foreground "Wheat3")))) - (font-lock-constant-face ((t (:foreground "LightBlue")))) - (font-lock-doc-face ((t (:bold t :foreground "DarkSeaGreen")))) - (font-lock-doc-string-face ((t (:bold t :foreground "DarkSeaGreen")))) - (font-lock-exit-face ((t (:foreground "green")))) - (font-lock-function-name-face ((t (:italic t :bold t :foreground "cyan")))) - (font-lock-keyword-face ((t (:bold t :foreground "LightBlue")))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "PaleGreen")))) - (font-lock-string-face ((t (:italic t :foreground "MediumAquamarine")))) - (font-lock-type-face ((t (:bold t :foreground "LightBlue")))) - (font-lock-variable-name-face ((t (:italic t :bold t :foreground "LightBlue")))) - (font-lock-warning-face ((t (:bold t :foreground "LightSalmon")))) - (fringe ((t (:background "darkslategrey")))) - (gnus-cite-attribution-face ((t (:italic t :bold t)))) - (gnus-cite-face-1 ((t (:foreground "LightBlue")))) - (gnus-cite-face-10 ((t (:foreground "LightBlue")))) - (gnus-cite-face-11 ((t (:foreground "LightBlue")))) - (gnus-cite-face-2 ((t (:foreground "LightBlue")))) - (gnus-cite-face-3 ((t (:foreground "LightBlue")))) - (gnus-cite-face-4 ((t (:foreground "LightBlue")))) - (gnus-cite-face-5 ((t (:foreground "LightBlue")))) - (gnus-cite-face-6 ((t (:foreground "LightBlue")))) - (gnus-cite-face-7 ((t (:foreground "LightBlue")))) - (gnus-cite-face-8 ((t (:foreground "LightBlue")))) - (gnus-cite-face-9 ((t (:foreground "LightBlue")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-filterhist-face-1 ((t (nil)))) - (gnus-group-mail-1-empty-face ((t (:foreground "gray80")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "light cyan")))) - (gnus-group-mail-2-empty-face ((t (:foreground "gray80")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "turquoise")))) - (gnus-group-mail-3-empty-face ((t (:foreground "gray80")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "LightBlue")))) - (gnus-group-mail-low-empty-face ((t (:foreground "gray80")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "LightBlue")))) - (gnus-group-news-1-empty-face ((t (:foreground "gray80")))) - (gnus-group-news-1-face ((t (:bold t :foreground "green yellow")))) - (gnus-group-news-2-empty-face ((t (:foreground "gray80")))) - (gnus-group-news-2-face ((t (:bold t :foreground "Aquamarine")))) - (gnus-group-news-3-empty-face ((t (:foreground "gray80")))) - (gnus-group-news-3-face ((t (:bold t :foreground "LightBlue")))) - (gnus-group-news-4-empty-face ((t (:foreground "gray80")))) - (gnus-group-news-4-face ((t (:bold t :foreground "Wheat")))) - (gnus-group-news-5-empty-face ((t (:foreground "gray80")))) - (gnus-group-news-5-face ((t (:bold t :foreground "MediumAquamarine")))) - (gnus-group-news-6-empty-face ((t (:foreground "gray80")))) - (gnus-group-news-6-face ((t (:bold t :foreground "MediumAquamarine")))) - (gnus-group-news-low-empty-face ((t (:foreground "gray80")))) - (gnus-group-news-low-face ((t (:bold t :foreground "yellow green")))) - (gnus-header-content-face ((t (:italic t :foreground "LightSkyBlue3")))) - (gnus-header-from-face ((t (:bold t :foreground "light cyan")))) - (gnus-header-name-face ((t (:bold t :foreground "LightBlue")))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3")))) - (gnus-header-subject-face ((t (:bold t :foreground "light cyan")))) - (gnus-picons-face ((t (:background "white" :foreground "black")))) - (gnus-picons-xbm-face ((t (:background "white" :foreground "black")))) - (gnus-signature-face ((t (:italic t :foreground "LightBlue")))) - (gnus-splash ((t (:foreground "Brown")))) - (gnus-splash-face ((t (:foreground "LightBlue")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "gray80")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "LightBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "gray80")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "burlywood")))) - (gnus-summary-high-unread-face ((t (:italic t :bold t :foreground "wheat")))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "LightBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "light sea green")))) - (gnus-summary-low-ticked-face ((t (:italic t :bold t :foreground "LightBlue")))) - (gnus-summary-low-unread-face ((t (:italic t :foreground "light sea green")))) - (gnus-summary-normal-ancient-face ((t (:foreground "gray80")))) - (gnus-summary-normal-read-face ((t (:foreground "gray80")))) - (gnus-summary-normal-ticked-face ((t (:bold t :foreground "sandy brown")))) - (gnus-summary-normal-unread-face ((t (:bold t :foreground "wheat")))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-x-face ((t (:background "white" :foreground "black")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "cyan" :foreground "#65889C")))) - (gui-element ((t (:background "Gray")))) - (header-line ((t (:background "grey20" :foreground "grey90")))) - (highlight ((t (:background "PaleGreen" :foreground "DarkGreen")))) - (highlight-changes-delete-face ((t (:underline t :foreground "red")))) - (highlight-changes-face ((t (:foreground "red")))) - (highline-face ((t (:background "SeaGreen")))) - (holiday-face ((t (:background "DimGray")))) - (html-helper-bold-face ((t (:foreground "DarkRed")))) - (html-helper-italic-face ((t (:foreground "DarkBlue")))) - (html-helper-underline-face ((t (:underline t :foreground "Black")))) - (html-tag-face ((t (:foreground "Blue")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:underline t :italic t :bold t :foreground "light blue")))) - (info-xref ((t (:bold t :foreground "light blue")))) - (isearch ((t (:background "Aquamarine" :foreground "SteelBlue")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (:italic t)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-bug-breakpoint-marker ((t (:background "yellow" :foreground "red")))) - (jde-java-font-lock-api-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-bold-face ((t (:bold t)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-italic-face ((t (:italic t)))) - (jde-java-font-lock-link-face ((t (:underline t :foreground "LightBlue")))) - (jde-java-font-lock-modifier-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-number-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-package-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (lazy-highlight-face ((t (:bold t :foreground "dark magenta")))) - (left-margin ((t (nil)))) - (linemenu-face ((t (:background "gray30")))) - (list-mode-item-selected ((t (nil)))) - (makefile-space-face ((t (:background "hotpink")))) - (menu ((t (:background "wheat" :foreground "gray30")))) - (message-cited-text-face ((t (:foreground "White")))) - (message-header-cc-face ((t (:bold t :foreground "light cyan")))) - (message-header-name-face ((t (:foreground "LightBlue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3")))) - (message-header-other-face ((t (:foreground "LightSkyBlue3")))) - (message-header-subject-face ((t (:bold t :foreground "light cyan")))) - (message-header-to-face ((t (:bold t :foreground "light cyan")))) - (message-header-xheader-face ((t (:foreground "LightBlue")))) - (message-mml-face ((t (:bold t :foreground "LightBlue")))) - (message-separator-face ((t (:foreground "LightBlue")))) - (mmm-default-submode-face ((t (:background "#c0c0c5")))) - (modeline ((t (:background "#4f657d" :foreground "gray80")))) - (modeline-buffer-id ((t (:background "#4f657d" :foreground "gray80")))) - (modeline-mousable ((t (:background "#4f657d" :foreground "gray80")))) - (modeline-mousable-minor-mode ((t (:background "#4f657d" :foreground "gray80")))) - (mouse ((t (:background "Grey")))) - (my-summary-highlight-face ((t (:foreground "White")))) - (my-url-face ((t (:foreground "PaleTurquoise")))) - (nil ((t (nil)))) - (paren-blink-off ((t (:foreground "gray")))) - (paren-face-match ((t (:background "turquoise")))) - (paren-face-mismatch ((t (:background "purple" :foreground "white")))) - (paren-face-no-match ((t (:background "yellow" :foreground "black")))) - (paren-match ((t (:background "darkseagreen2")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "black")))) - (paren-mismatch-face ((t (:bold t)))) - (paren-no-match-face ((t (:bold t)))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "CadetBlue" :foreground "gray80")))) - (right-margin ((t (nil)))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "LightBlue" :foreground "#4f657d")))) - (semantic-dirty-token-face ((t (:background "gray10")))) - (semantic-intangible-face ((t (:foreground "gray25")))) - (semantic-read-only-face ((t (:background "gray25")))) - (senator-intangible-face ((t (:foreground "gray75")))) - (senator-momentary-highlight-face ((t (:background "gray80")))) - (senator-read-only-face ((t (:background "#664444")))) - (sgml-comment-face ((t (:foreground "dark turquoise")))) - (sgml-doctype-face ((t (:foreground "red")))) - (sgml-end-tag-face ((t (:foreground "blue")))) - (sgml-entity-face ((t (:foreground "magenta")))) - (sgml-ignored-face ((t (:background "gray60" :foreground "gray40")))) - (sgml-ms-end-face ((t (:foreground "green")))) - (sgml-ms-start-face ((t (:foreground "yellow")))) - (sgml-pi-face ((t (:foreground "lime green")))) - (sgml-sgml-face ((t (:foreground "brown")))) - (sgml-short-ref-face ((t (:foreground "deep sky blue")))) - (sgml-start-tag-face ((t (:foreground "dark green")))) - (shell-option-face ((t (:foreground "blue")))) - (shell-output-2-face ((t (:foreground "darkseagreen")))) - (shell-output-3-face ((t (:foreground "slategray")))) - (shell-output-face ((t (:foreground "palegreen")))) - (shell-prompt-face ((t (:foreground "red")))) - (show-paren-match-face ((t (:background "Aquamarine" :foreground "steel blue")))) - (show-paren-mismatch-face ((t (:bold t :background "IndianRed" :foreground "White")))) - (speedbar-button-face ((t (:bold t :foreground "LightBlue")))) - (speedbar-directory-face ((t (:bold t :foreground "yellow")))) - (speedbar-file-face ((t (:bold t :foreground "wheat")))) - (speedbar-highlight-face ((t (:background "sea green")))) - (speedbar-selected-face ((t (:underline t)))) - (speedbar-tag-face ((t (:foreground "LightBlue")))) - (swbuff-current-buffer-face ((t (:bold t :foreground "red")))) - (template-message-face ((t (:bold t)))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (:background "black")))) - (term-blue ((t (:foreground "blue")))) - (term-bluebg ((t (:background "blue")))) - (term-bold ((t (:bold t)))) - (term-cyan ((t (:foreground "cyan")))) - (term-cyanbg ((t (:background "cyan")))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-green ((t (:foreground "green")))) - (term-greenbg ((t (:background "green")))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (:foreground "magenta")))) - (term-magentabg ((t (:background "magenta")))) - (term-red ((t (:foreground "red")))) - (term-redbg ((t (:background "red")))) - (term-underline ((t (:underline t)))) - (term-white ((t (:foreground "white")))) - (term-whitebg ((t (:background "white")))) - (term-yellow ((t (:foreground "yellow")))) - (term-yellowbg ((t (:background "yellow")))) - (text-cursor ((t (:background "Red3" :foreground "white")))) - (tool-bar ((t (:background "grey75" :foreground "black")))) - (toolbar ((t (:background "Gray")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (nil)))) - (vc-annotate-face-0046FF ((t (:background "black" :foreground "wheat")))) - (vcursor ((t (:underline t :background "cyan" :foreground "blue")))) - (vertical-divider ((t (:background "Gray")))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red")))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange")))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue")))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod")))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen")))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown")))) - (vhdl-speedbar-package-face ((t (:foreground "Gray50")))) - (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Gray50")))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "gray" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (vm-header-content-face ((t (:italic t :foreground "gray80")))) - (vm-header-from-face ((t (:italic t :background "#65889C" :foreground "cyan")))) - (vm-header-name-face ((t (:foreground "cyan")))) - (vm-header-subject-face ((t (:foreground "cyan")))) - (vm-header-to-face ((t (:italic t :foreground "cyan")))) - (vm-message-cited-face ((t (:foreground "Gray80")))) - (vm-summary-face-1 ((t (:foreground "MediumAquamarine")))) - (vm-summary-face-2 ((t (:foreground "MediumAquamarine")))) - (vm-summary-face-3 ((t (:foreground "MediumAquamarine")))) - (vm-summary-face-4 ((t (:foreground "MediumAquamarine")))) - (vm-summary-highlight-face ((t (:foreground "White")))) - (vmpc-pre-sig-face ((t (:foreground "Aquamarine")))) - (vmpc-sig-face ((t (:foreground "LightBlue")))) - (vvb-face ((t (:background "pink" :foreground "black")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "cyan")))) - (widget-documentation-face ((t (:foreground "LightBlue")))) - (widget-field-face ((t (:foreground "LightBlue")))) - (widget-inactive-face ((t (:foreground "Wheat3")))) - (widget-single-line-field-face ((t (:foreground "LightBlue")))) - (woman-bold-face ((t (:bold t)))) - (woman-italic-face ((t (:foreground "beige")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))) - (xref-keyword-face ((t (:foreground "Cyan")))) - (xref-list-pilot-face ((t (:foreground "navy")))) - (xref-list-symbol-face ((t (:foreground "navy")))) - (xxml-emph-1-face ((t (:background "lightyellow")))) - (xxml-emph-2-face ((t (:background "lightyellow")))) - (xxml-header-1-face ((t (:background "seashell1" :foreground "MediumAquamarine")))) - (xxml-header-2-face ((t (:background "seashell1" :foreground "SkyBlue")))) - (xxml-header-3-face ((t (:background "seashell1")))) - (xxml-header-4-face ((t (:background "seashell1")))) - (xxml-interaction-face ((t (:background "lightcyan")))) - (xxml-rug-face ((t (:background "cyan")))) - (xxml-sparkle-face ((t (:background "yellow")))) - (xxml-unbreakable-space-face ((t (:underline t :foreground "grey")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "#4f657d"))))))) - -(defun color-theme-dark-blue () - "Color theme by Chris McMahan, created 2001-09-09. -Based on `color-theme-subtle-blue' with a slightly darker background." - (interactive) - (color-theme-subtle-blue) - (let ((color-theme-is-cumulative t)) - (color-theme-install - '(color-theme-dark-blue - ((background-color . "#537182") - (foreground-color . "AntiqueWhite2")) - nil - (default ((t (nil)))) - (blank-space-face ((t (:background "LightGray")))) - (blank-tab-face ((t (:background "Wheat" :foreground "DarkSlateGray")))) - (cursor ((t (:background "LightGray")))) - (dired-face-executable ((t (:foreground "green yellow")))) - (dired-face-flagged ((t (:foreground "tomato")))) - (dired-face-marked ((t (:foreground "light salmon")))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (fixed ((t (:bold t)))) - (font-lock-comment-face ((t (:italic t :foreground "Gray80")))) - (font-lock-doc-face ((t (:bold t)))) - (font-lock-function-name-face ((t (:italic t :bold t :foreground "Yellow")))) - (font-lock-string-face ((t (:italic t :foreground "DarkSeaGreen")))) - (font-lock-type-face ((t (:bold t :foreground "YellowGreen")))) - (gui-button-face ((t (:background "DarkSalmon" :foreground "white")))) - (modeline ((t (:background "#c1ccd9" :foreground "#4f657d")))) - (modeline-buffer-id ((t (:background "#c1ccd9" :foreground "#4f657d")))) - (modeline-mousable ((t (:background "#c1ccd9" :foreground "#4f657d")))) - (modeline-mousable-minor-mode ((t (:background "#c1ccd9" :foreground "#4f657d")))) - (my-url-face ((t (:foreground "LightBlue")))) - (region ((t (:background "PaleTurquoise4" :foreground "gray80")))) - (secondary-selection ((t (:background "sea green" :foreground "yellow")))) - (vm-header-content-face ((t (:italic t :foreground "wheat")))) - (vm-header-from-face ((t (:italic t :foreground "wheat")))) - (widget-button-pressed-face ((t (:foreground "red")))) - (xref-keyword-face ((t (:foreground "blue")))) - (zmacs-region ((t (:background "SlateGray")))))))) - -(defun color-theme-jonadabian-slate () - "Another slate-and-wheat color theme by Jonadab the Unsightly One. -Updated 2001-10-12." - (interactive) - (color-theme-install - '(color-theme-jonadabian-slate - ((background-color . "#305050") - (background-mode . dark) - (border-color . "black") - (cursor-color . "medium turquoise") - (foreground-color . "#CCBB77") - (mouse-color . "black")) - ((list-matching-lines-face . bold) - (ued-mode-keyname-face . modeline) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (fringe ((t (:background "#007080")))) - (bold ((t (:bold t :foreground "#EEDDAA")))) - (gnus-emphasis-bold ((t (:bold t :foreground "#EEDDAA")))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t :foreground "#EEDDAA")))) - (bold-italic ((t (:italic t :bold t :foreground "#AA0000")))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :foreground "#AA0000")))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t :foreground "#AA0000")))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t :bold t :foreground "#AA0000")))) - (calendar-today-face ((t (:underline t :background "darkslategrey")))) - (cperl-array-face ((t (:background "#004060")))) - (cperl-hash-face ((t (:background "#004400")))) - (custom-button-face ((t (:background "dark blue" :foreground "rgbi:1.00/1.00/0.00")))) - (custom-documentation-face ((t (:foreground "#10D010")))) - (custom-face-tag-face ((t (:underline t :foreground "goldenrod")))) - (custom-group-tag-face ((t (:underline t :foreground "light blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "pink")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:foreground "#6666dd")))) - (custom-state-face ((t (:foreground "mediumaquamarine")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "light blue")))) - (diary-face ((t (:foreground "red")))) - (eshell-ls-archive-face ((t (:foreground "green")))) - (eshell-ls-backup-face ((t (:foreground "grey60")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-ls-directory-face ((t (:bold t :foreground "SkyBlue")))) - (eshell-ls-executable-face ((t (:foreground "white")))) - (eshell-ls-missing-face ((t (:foreground "red")))) - (eshell-ls-product-face ((t (:foreground "LightSalmon")))) - (eshell-ls-readonly-face ((t (:foreground "indian red")))) - (eshell-ls-special-face ((t (:foreground "yellow")))) - (eshell-ls-symlink-face ((t (:foreground "#6666dd")))) - (eshell-ls-unreadable-face ((t (:foreground "red")))) - (eshell-prompt-face ((t (:bold t :background "#305050" :foreground "#EEDD99")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:italic t :bold t :foreground "grey66")))) - (font-lock-constant-face ((t (:foreground "indian red")))) - (font-lock-function-name-face ((t (:foreground "#D0D000")))) - (font-lock-keyword-face ((t (:foreground "#00BBBB")))) - (font-lock-string-face ((t (:foreground "#10D010")))) - (font-lock-type-face ((t (:bold t :foreground "#ff7788")))) - (font-lock-variable-name-face ((t (:foreground "#eeddaa")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (header-line ((t (:box (:line-width 1 :style released-button))))) - (highlight ((t (:background "#226644")))) - (highlight-changes-delete-face ((t (:background "navy" :foreground "red")))) - (highlight-changes-face ((t (:background "navy")))) - (holiday-face ((t (:foreground "#ff7744")))) - (italic ((t (:italic t :foreground "#AA0000")))) - (gnus-emphasis-italic ((t (:italic t :foreground "#AA0000")))) - (modeline ((t (:background "#007080" :foreground "cyan")))) - (modeline-buffer-id ((t (:background "#007080" :foreground "cyan")))) - (modeline-mousable ((t (:background "#007080" :foreground "cyan")))) - (modeline-mousable-minor-mode ((t (:background "#007080" :foreground "cyan")))) - (region ((t (:background "#226644")))) - (secondary-selection ((t (:background "darkslategrey")))) - (sgml-comment-face ((t (:foreground "grey60")))) - (sgml-doctype-face ((t (:foreground "red")))) - (sgml-end-tag-face ((t (:foreground "#00D0D0")))) - (sgml-entity-face ((t (:foreground "indian red")))) - (sgml-ignored-face ((t (:background "gray60" :foreground "gray40")))) - (sgml-ms-end-face ((t (:foreground "green")))) - (sgml-ms-start-face ((t (:foreground "green")))) - (sgml-pi-face ((t (:foreground "lime green")))) - (sgml-sgml-face ((t (:foreground "brown")))) - (sgml-short-ref-face ((t (:foreground "deep sky blue")))) - (sgml-start-tag-face ((t (:foreground "#D0D000")))) - (show-paren-match-face ((t (:background "#400055" :foreground "cyan")))) - (show-paren-mismatch-face ((t (:background "red")))) - (special-string-face ((t (:foreground "light green")))) - (term-black ((t (:background "#000055" :foreground "black")))) - (term-blackbg ((t (:background "black" :foreground "#CCBB77")))) - (term-blue ((t (:background "#000055" :foreground "blue")))) - (term-bluebg ((t (:background "blue" :foreground "#CCBB77")))) - (term-bold ((t (:bold t :background "#000055" :foreground "#CCBB77")))) - (term-cyan ((t (:background "#000055" :foreground "cyan")))) - (term-cyanbg ((t (:background "darkcyan")))) - (term-default-bg ((t (:foreground "#CCBB77")))) - (term-default-bg-inv ((t (:foreground "#CCBB77")))) - (term-default-fg ((t (:background "#000055")))) - (term-default-fg-inv ((t (:background "#000055")))) - (term-green ((t (:background "#000055" :foreground "green")))) - (term-greenbg ((t (:background "darkgreen")))) - (term-invisible ((t (:foreground "#CCBB77")))) - (term-invisible-inv ((t (:foreground "#CCBB77")))) - (term-magenta ((t (:background "#000055" :foreground "magenta")))) - (term-magentabg ((t (:background "darkmagenta")))) - (term-red ((t (:background "#000055" :foreground "red")))) - (term-redbg ((t (:background "darkred")))) - (term-underline ((t (:underline t :background "#000055" :foreground "#CCBB77")))) - (term-white ((t (:background "#000055" :foreground "white")))) - (term-whitebg ((t (:background "grey50")))) - (term-yellow ((t (:background "#000055" :foreground "yellow")))) - (term-yellowbg ((t (:background "#997700")))) - (trailing-whitespace ((t (:background "#23415A")))) - (underline ((t (:underline t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "green")))) - (widget-field-face ((t (:background "grey35" :foreground "black")))) - (widget-inactive-face ((t (:foreground "gray")))) - (widget-single-line-field-face ((t (:background "dim gray"))))))) - -(defun color-theme-gray1 () - "Color theme by Paul Pulli, created 2001-10-19." - (interactive) - (color-theme-install - '(color-theme-gray1 - ((background-color . "darkgray") - (background-mode . light) - (background-toolbar-color . "#949494949494") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#595959595959") - (cursor-color . "Yellow") - (foreground-color . "black") - (top-toolbar-shadow-color . "#b2b2b2b2b2b2")) - nil - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (nil)))) - (cperl-here-face ((t (:background "gray68" :foreground "DeepPink")))) - (font-lock-builtin-face ((t (:bold t :foreground "red3")))) - (font-lock-comment-face ((t (:foreground "gray50")))) - (font-lock-constant-face ((t (:bold t :foreground "blue3")))) - (font-lock-doc-string-face ((t (:foreground "black")))) - (font-lock-function-name-face ((t (:bold t :foreground "DeepPink3")))) - (font-lock-keyword-face ((t (:bold t :foreground "red")))) - (font-lock-other-type-face ((t (:bold t :foreground "green4")))) - (font-lock-preprocessor-face ((t (:bold t :foreground "blue3")))) - (font-lock-reference-face ((t (:bold t :foreground "red3")))) - (font-lock-string-face ((t (:foreground "red")))) - (font-lock-type-face ((t (:bold t :foreground "white")))) - (font-lock-variable-name-face ((t (:bold t :foreground "blue3")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (green ((t (:foreground "green4")))) - (gui-button-face ((t (:background "black" :foreground "red")))) - (gui-element ((t (:background "gray58")))) - (highlight ((t (:background "magenta" :foreground "yellow")))) - (isearch ((t (:background "red" :foreground "yellow")))) - (italic ((t (:italic t)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray90" :foreground "purple")))) - (m4-face ((t (:background "gray90" :foreground "orange3")))) - (message-cited-text ((t (nil)))) - (message-header-contents ((t (nil)))) - (message-headers ((t (nil)))) - (message-highlighted-header-contents ((t (nil)))) - (modeline ((t (:background "#aa80aa" :foreground "White")))) - (modeline-buffer-id ((t (:background "#aa80aa" :foreground "linen")))) - (modeline-mousable ((t (:background "#aa80aa" :foreground "cyan")))) - (modeline-mousable-minor-mode ((t (:background "#aa80aa" :foreground "yellow")))) - (paren-blink-off ((t (:foreground "gray58")))) - (paren-blink-on ((t (:foreground "purple")))) - (paren-match ((t (:background "gray68" :foreground "white")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "black")))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray")))) - (red ((t (:foreground "red")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (text-cursor ((t (:background "Yellow" :foreground "darkgray")))) - (toolbar ((t (:background "#aa80aa" :foreground "linen")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (nil)))) - (x-face ((t (:background "black" :foreground "lavenderblush")))) - (yellow ((t (:foreground "yellow3")))) - (zmacs-region ((t (:background "paleturquoise" :foreground "black"))))))) - -(defun color-theme-word-perfect () - "White on blue background, based on WordPerfect 5.1. -Color theme by Thomas Gehrlein, created 2001-10-21." - (interactive) - (color-theme-install - '(color-theme-word-perfect - ((background-color . "blue4") - (background-mode . dark) - (border-color . "black") - (cursor-color . "gold") - (foreground-color . "white") - (mouse-color . "black")) - ((ecb-source-in-directories-buffer-face . ecb-sources-face) - (gnus-mouse-face . highlight) - (goto-address-mail-face . italic) - (goto-address-mail-mouse-face . secondary-selection) - (goto-address-url-face . bold) - (goto-address-url-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bbdb-field-name ((t (:foreground "lime green")))) - (bbdb-field-value ((t (:foreground "white")))) - (bbdb-name ((t (:underline t :foreground "lime green")))) - (bold ((t (:bold t :foreground "white")))) - (bold-italic ((t (:italic t :bold t :foreground "yellow")))) - (calendar-today-face ((t (:underline t :foreground "deep sky blue")))) - (diary-face ((t (:foreground "gold")))) - (ecb-sources-face ((t (:foreground "LightBlue1")))) - (edb-inter-field-face ((t (:foreground "deep sky blue")))) - (edb-normal-summary-face ((t (:foreground "gold")))) - (emacs-wiki-bad-link-face ((t (:underline "coral" :bold t :foreground "coral")))) - (emacs-wiki-link-face ((t (:underline "cyan" :bold t :foreground "cyan")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:foreground "deep sky blue")))) - (font-lock-constant-face ((t (:foreground "lime green")))) - (font-lock-doc-face ((t (:foreground "gold")))) - (font-lock-doc-string-face ((t (:foreground "gold")))) - (font-lock-function-name-face ((t (:background "blue4" :foreground "IndianRed")))) - (font-lock-keyword-face ((t (:foreground "lime green")))) - (font-lock-preprocessor-face ((t (:foreground "lime green")))) - (font-lock-reference-face ((t (:foreground "LightSteelBlue")))) - (font-lock-string-face ((t (:foreground "gold")))) - (font-lock-type-face ((t (:foreground "lime green")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "firebrick")))) - (gnus-emphasis-bold ((t (:foreground "yellow2")))) - (gnus-emphasis-bold-italic ((t (:foreground "yellow2")))) - (gnus-emphasis-italic ((t (:foreground "yellow2")))) - (gnus-emphasis-underline ((t (:foreground "yellow2")))) - (gnus-emphasis-underline-bold ((t (:foreground "yellow2")))) - (gnus-emphasis-underline-bold-italic ((t (:foreground "yellow2")))) - (gnus-emphasis-underline-italic ((t (:foreground "yellow2")))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1")))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2")))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3")))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4")))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise")))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise")))) - (gnus-group-news-3-empty-face ((t (:foreground "deep sky blue")))) - (gnus-group-news-3-face ((t (:bold t :foreground "deep sky blue")))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise")))) - (gnus-header-content-face ((t (:foreground "gold")))) - (gnus-header-from-face ((t (:foreground "gold")))) - (gnus-header-name-face ((t (:foreground "deep sky blue")))) - (gnus-header-newsgroups-face ((t (:foreground "gold")))) - (gnus-header-subject-face ((t (:foreground "gold")))) - (gnus-signature-face ((t (:foreground "gold")))) - (gnus-splash-face ((t (:foreground "firebrick")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "deep sky blue")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "deep sky blue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "deep sky blue")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "deep sky blue")))) - (gnus-summary-high-unread-face ((t (:bold t :foreground "lime green")))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "deep sky blue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "deep sky blue")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "deep sky blue")))) - (gnus-summary-low-unread-face ((t (:italic t :foreground "lime green")))) - (gnus-summary-normal-ancient-face ((t (:foreground "deep sky blue")))) - (gnus-summary-normal-read-face ((t (:foreground "deep sky blue")))) - (gnus-summary-normal-ticked-face ((t (:foreground "deep sky blue")))) - (gnus-summary-normal-unread-face ((t (:foreground "lime green")))) - (gnus-summary-selected-face ((t (:underline t :foreground "gold")))) - (highlight ((t (:background "steel blue" :foreground "black")))) - (holiday-face ((t (:background "blue4" :foreground "IndianRed1")))) - (info-menu-5 ((t (:underline t :foreground "gold")))) - (info-node ((t (:italic t :bold t :foreground "gold")))) - (info-xref ((t (:bold t :foreground "gold")))) - (isearch ((t (:background "firebrick" :foreground "white")))) - (italic ((t (:italic t :foreground "yellow2")))) - (message-cited-text-face ((t (:foreground "gold")))) - (message-header-cc-face ((t (:bold t :foreground "green4")))) - (message-header-name-face ((t (:foreground "deep sky blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "gold")))) - (message-header-other-face ((t (:foreground "gold")))) - (message-header-subject-face ((t (:foreground "gold")))) - (message-header-to-face ((t (:bold t :foreground "gold")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-separator-face ((t (:foreground "lime green")))) - (modeline ((t (:foreground "white" :background "black")))) - (modeline-buffer-id ((t (:foreground "white" :background "black")))) - (modeline-mousable ((t (:foreground "white" :background "black")))) - (modeline-mousable-minor-mode ((t (:foreground "white" :background "black")))) - (overlay-empty-face ((t (nil)))) - (primary-selection ((t (:background "firebrick" :foreground "white")))) - (region ((t (:background "firebrick" :foreground "white")))) - (secondary-selection ((t (:background "yellow2" :foreground "black")))) - (semantic-dirty-token-face ((t (:background "gray10")))) - (show-paren-match-face ((t (:background "deep sky blue" :foreground "black")))) - (show-paren-mismatch-face ((t (:background "firebrick" :foreground "white")))) - (underline ((t (:underline t :background "blue4" :foreground "white"))))))) - -;; In order to produce this, follow these steps: -;; -;; 0. Make sure .Xresources and .Xdefaults don't have any Emacs related -;; entries. -;; -;; 1. cd into the Emacs lisp directory and run the following command: -;; ( for d in `find -type d`; \ -;; do grep --files-with-matches 'defface[ ]' $d/*.el; \ -;; done ) | sort | uniq -;; Put the result in a lisp block, using load-library calls. -;; -;; Repeat this for any directories on your load path which you want to -;; include in the standard. This might include W3, eshell, etc. -;; -;; Add some of the libraries that don't use defface: -;; -;; 2. Start emacs using the --no-init-file and --no-site-file command line -;; arguments. Evaluate the lisp block you prepared. -;; 3. Load color-theme and run color-theme-print. Save the output and use it -;; to define color-theme-standard. -;; -;; (progn -;; (load-library "add-log") -;; (load-library "calendar") -;; (load-library "comint") -;; (load-library "cus-edit") -;; (load-library "cus-face") -;; (load-library "custom") -;; (load-library "diff-mode") -;; (load-library "ediff-init") -;; (load-library "re-builder") -;; (load-library "viper-init") -;; (load-library "enriched") -;; (load-library "em-ls") -;; (load-library "em-prompt") -;; (load-library "esh-test") -;; (load-library "faces") -;; (load-library "font-lock") -;; (load-library "generic-x") -;; (load-library "gnus-art") -;; (load-library "gnus-cite") -;; (load-library "gnus") -;; (load-library "message") -;; (load-library "hilit-chg") -;; (load-library "hi-lock") -;; (load-library "info") -;; (load-library "isearch") -;; (load-library "log-view") -;; (load-library "paren") -;; (load-library "pcvs-info") -;; (load-library "antlr-mode") -;; (load-library "cperl-mode") -;; (load-library "ebrowse") -;; (load-library "idlwave") -;; (load-library "idlw-shell") -;; (load-library "make-mode") -;; (load-library "sh-script") -;; (load-library "vhdl-mode") -;; (load-library "smerge-mode") -;; (load-library "speedbar") -;; (load-library "strokes") -;; (load-library "artist") -;; (load-library "flyspell") -;; (load-library "texinfo") -;; (load-library "tex-mode") -;; (load-library "tooltip") -;; (load-library "vcursor") -;; (load-library "wid-edit") -;; (load-library "woman") -;; (load-library "term") -;; (load-library "man") -;; (load-file "/home/alex/elisp/color-theme.el") -;; (color-theme-print)) -;; -;; 4. Make the color theme usable on Xemacs (add more faces, resolve -;; :inherit attributes) -;; -(defun color-theme-emacs-21 () - "Color theme used by Emacs 21.1. -Added and adapted for XEmacs by Alex Schroeder. Adaptation mostly -consisted of resolving :inherit attributes and adding missing faces. -This theme includes faces from the following Emacs libraries: add-log -calendar comint cus-edit cus-face custom diff-mode ediff-init re-builder -viper-init enriched em-ls em-prompt esh-test faces font-lock generic-x -gnus-art gnus-cite gnus message hilit-chg hi-lock info isearch log-view -paren pcvs-info antlr-mode cperl-mode ebrowse idlwave idlw-shell -make-mode sh-script vhdl-mode smerge-mode speedbar strokes artist -flyspell texinfo tex-mode tooltip vcursor wid-edit woman term man" - (interactive) - (color-theme-install - '(color-theme-emacs-21 - ((background-color . "white") - (background-mode . light) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "black") - (mouse-color . "black")) - ((Man-overstrike-face . bold) - (Man-underline-face . underline) - (cperl-here-face . font-lock-string-face) - (cperl-invalid-face . underline) - (cperl-pod-face . font-lock-comment-face) - (cperl-pod-head-face . font-lock-variable-name-face) - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-cite-attribution-face . gnus-cite-attribution-face) - (gnus-mouse-face . highlight) - (gnus-signature-face . gnus-signature-face) - (gnus-summary-selected-face . gnus-summary-selected-face) - (help-highlight-face . underline) - (idlwave-class-arrow-face . bold) - (idlwave-shell-breakpoint-face . idlwave-shell-bp-face) - (idlwave-shell-expression-face . secondary-selection) - (idlwave-shell-stop-line-face . highlight) - (ispell-highlight-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight) - (viper-insert-state-cursor-color . "Green") - (viper-replace-overlay-cursor-color . "Red") - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728)))) - (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44)))) - (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2)))) - (Info-title-4-face ((t (:bold t :family "helv" :weight bold)))) - (antlr-font-lock-keyword-face ((t (:bold t :foreground "black" :weight bold)))) - (antlr-font-lock-literal-face ((t (:bold t :foreground "brown4" :weight bold)))) - (antlr-font-lock-ruledef-face ((t (:bold t :foreground "blue" :weight bold)))) - (antlr-font-lock-ruleref-face ((t (:foreground "blue4")))) - (antlr-font-lock-tokendef-face ((t (:bold t :foreground "blue" :weight bold)))) - (antlr-font-lock-tokenref-face ((t (:foreground "orange4")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (calendar-today-face ((t (:underline t)))) - (change-log-acknowledgement-face ((t (:foreground "Firebrick")))) - (change-log-conditionals-face ((t (:foreground "DarkGoldenrod")))) - (change-log-date-face ((t (:foreground "RosyBrown")))) - (change-log-email-face ((t (:foreground "DarkGoldenrod")))) - (change-log-file-face ((t (:foreground "Blue")))) - (change-log-function-face ((t (:foreground "DarkGoldenrod")))) - (change-log-list-face ((t (:foreground "Purple")))) - (change-log-name-face ((t (:foreground "CadetBlue")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "dark blue")))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue" :weight bold)))) - (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red" :slant italic :weight bold)))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (cursor ((t (:background "black")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "gray85")))) - (custom-comment-tag-face ((t (:foreground "blue4")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "red" :weight bold :height 1.2)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "blue" :weight bold :height 1.2)))) - (cvs-filename-face ((t (:foreground "blue4")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:bold t :foreground "blue4" :weight bold)))) - (cvs-marked-face ((t (:bold t :foreground "green3" :weight bold)))) - (cvs-msg-face ((t (:italic t :slant italic)))) - (cvs-need-action-face ((t (:foreground "orange")))) - (cvs-unknown-face ((t (:foreground "red")))) - (diary-face ((t (:foreground "red")))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (:foreground "grey50")))) - (diff-file-header-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-function-face ((t (:foreground "grey50")))) - (diff-header-face ((t (:background "grey85")))) - (diff-hunk-header-face ((t (:background "grey85")))) - (diff-index-face ((t (:bold t :weight bold :background "grey70")))) - (diff-nonexistent-face ((t (:bold t :weight bold :background "grey70")))) - (diff-removed-face ((t (nil)))) - (dired-face-boring ((t (:foreground "RosyBrown")))) - (dired-face-directory ((t (:foreground "Blue")))) - (dired-face-executable ((t (nil)))) - (dired-face-flagged ((t (:foreground "Red" :weight bold)))) - (dired-face-marked ((t (:foreground "Red" :weight bold)))) - (dired-face-permissions ((t (nil)))) - (dired-face-setuid ((t (nil)))) - (dired-face-socket ((t (nil)))) - (dired-face-symlink ((t (:foreground "Purple")))) - (ebrowse-default-face ((t (nil)))) - (ebrowse-file-name-face ((t (:italic t :slant italic)))) - (ebrowse-member-attribute-face ((t (:foreground "red")))) - (ebrowse-member-class-face ((t (:foreground "purple")))) - (ebrowse-progress-face ((t (:background "blue")))) - (ebrowse-root-class-face ((t (:bold t :foreground "blue" :weight bold)))) - (ebrowse-tree-mark-face ((t (:foreground "red")))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid" :weight bold)))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed" :weight bold)))) - (eshell-ls-directory-face ((t (:bold t :foreground "Blue" :weight bold)))) - (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen" :weight bold)))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red" :weight bold)))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta" :weight bold)))) - (eshell-ls-symlink-face ((t (:bold t :foreground "Dark Cyan" :weight bold)))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:bold t :foreground "Red" :weight bold)))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed" :weight bold)))) - (eshell-test-ok-face ((t (:bold t :foreground "Green" :weight bold)))) - (excerpt ((t (:italic t :slant italic)))) - (fixed ((t (:bold t :weight bold)))) - (fixed-pitch ((t (:family "courier")))) - (flyspell-duplicate-face ((t (:bold t :foreground "Gold3" :underline t :weight bold)))) - (flyspell-incorrect-face ((t (:bold t :foreground "OrangeRed" :underline t :weight bold)))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:foreground "Firebrick")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-doc-face ((t (:foreground "RosyBrown")))) - (font-lock-doc-string-face ((t (:foreground "RosyBrown")))) - (font-lock-function-name-face ((t (:foreground "Blue")))) - (font-lock-keyword-face ((t (:foreground "Purple")))) - (font-lock-preprocessor-face ((t (:foreground "CadetBlue")))) - (font-lock-reference-face ((t (:foreground "Orchid")))) - (font-lock-string-face ((t (:foreground "RosyBrown")))) - (font-lock-type-face ((t (:foreground "ForestGreen")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Red" :weight bold)))) - (fringe ((t (:background "grey95")))) - (gnus-cite-attribution-face ((t (:italic t :slant italic)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :weight bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t :slant italic)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4" :weight bold)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :weight bold)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t :weight bold)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t :weight bold)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen" :weight bold)))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4" :slant italic)))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue" :slant italic)))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-signature-face ((t (:italic t :slant italic)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue" :slant italic)))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen" :slant italic)))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick" :slant italic)))) - (gnus-summary-low-unread-face ((t (:italic t :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey90" :foreground "grey20" :box nil)))) - (hi-black-b ((t (:bold t :weight bold)))) - (hi-black-hb ((t (:bold t :family "helv" :weight bold :height 1.67)))) - (hi-blue ((t (:background "light blue")))) - (hi-blue-b ((t (:bold t :foreground "blue" :weight bold)))) - (hi-green ((t (:background "green")))) - (hi-green-b ((t (:bold t :foreground "green" :weight bold)))) - (hi-pink ((t (:background "pink")))) - (hi-red-b ((t (:bold t :foreground "red" :weight bold)))) - (hi-yellow ((t (:background "yellow")))) - (highlight ((t (:background "darkseagreen2")))) - (highlight-changes-delete-face ((t (:foreground "red" :underline t)))) - (highlight-changes-face ((t (:foreground "red")))) - (holiday-face ((t (:background "pink")))) - (idlwave-help-link-face ((t (:foreground "Blue")))) - (idlwave-shell-bp-face ((t (:background "Pink" :foreground "Black")))) - (info-header-node ((t (:italic t :bold t :weight bold :slant italic :foreground "brown")))) - (info-header-xref ((t (:bold t :weight bold :foreground "magenta4")))) - (info-menu-5 ((t (:foreground "red1")))) - (info-menu-header ((t (:bold t :family "helv" :weight bold)))) - (info-node ((t (:italic t :bold t :foreground "brown" :slant italic :weight bold)))) - (info-xref ((t (:bold t :foreground "magenta4" :weight bold)))) - (isearch ((t (:background "magenta4" :foreground "lightskyblue1")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise")))) - (italic ((t (:italic t :slant italic)))) - (log-view-file-face ((t (:bold t :background "grey70" :weight bold)))) - (log-view-message-face ((t (:background "grey85")))) - (makefile-space-face ((t (:background "hotpink")))) - (menu ((t (nil)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue" :weight bold)))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue" :weight bold)))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (modeline-buffer-id ((t (:bold t :background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (modeline-mousable ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (modeline-mousable-minor-mode ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (mouse ((t (:background "black")))) - (primary-selection ((t (:background "lightgoldenrod2")))) - (reb-match-0 ((t (:background "lightblue")))) - (reb-match-1 ((t (:background "aquamarine")))) - (reb-match-2 ((t (:background "springgreen")))) - (reb-match-3 ((t (:background "yellow")))) - (region ((t (:background "lightgoldenrod2")))) - (scroll-bar ((t (:background "grey75")))) - (secondary-selection ((t (:background "yellow")))) - (sh-heredoc-face ((t (:foreground "tan")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (show-tabs-space-face ((t (:foreground "yellow")))) - (show-tabs-tab-face ((t (:foreground "red")))) - (smerge-base-face ((t (:foreground "red")))) - (smerge-markers-face ((t (:background "grey85")))) - (smerge-mine-face ((t (:foreground "blue")))) - (smerge-other-face ((t (:foreground "darkgreen")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "brown")))) - (strokes-char-face ((t (:background "lightgray")))) - (term-black ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-blackbg ((t (:stipple nil :background "black" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-blue ((t (:stipple nil :background "white" :foreground "blue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-bluebg ((t (:stipple nil :background "blue" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-bold ((t (:bold t :stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight bold :width normal :family "adobe-courier")))) - (term-cyan ((t (:stipple nil :background "white" :foreground "cyan" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-cyanbg ((t (:stipple nil :background "cyan" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-bg ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-bg-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-fg ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-fg-inv ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-green ((t (:stipple nil :background "white" :foreground "green" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-greenbg ((t (:stipple nil :background "green" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-invisible ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-invisible-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-magenta ((t (:stipple nil :background "white" :foreground "magenta" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-magentabg ((t (:stipple nil :background "magenta" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-red ((t (:stipple nil :background "white" :foreground "red" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-redbg ((t (:stipple nil :background "red" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-underline ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline t :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-white ((t (:stipple nil :background "white" :foreground "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-whitebg ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-yellow ((t (:stipple nil :background "white" :foreground "yellow" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-yellowbg ((t (:stipple nil :background "yellow" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (tex-math-face ((t (:foreground "RosyBrown")))) - (texinfo-heading-face ((t (:foreground "Blue")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (vcursor ((t (:background "cyan" :foreground "blue" :underline t)))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red" :weight bold)))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange" :weight bold)))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:foreground "Blue" :underline t)))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:foreground "DarkGoldenrod" :underline t)))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:foreground "ForestGreen" :underline t)))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:foreground "Brown" :underline t)))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:foreground "Grey50" :underline t)))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (woman-addition-face ((t (:foreground "orange")))) - (woman-bold-face ((t (:bold t :foreground "blue" :weight bold)))) - (woman-italic-face ((t (:italic t :foreground "red" :underline t :slant italic)))) - (woman-unknown-face ((t (:foreground "brown")))) - (zmacs-region ((t (:background "lightgoldenrod2"))))))) - -(defun color-theme-jsc-light2 () - "Color theme by John S Cooper, created 2001-10-29. -This builds on `color-theme-jsc-light'." - (interactive) - (color-theme-jsc-light) - (let ((color-theme-is-cumulative t)) - (color-theme-install - '(color-theme-jsc-light2 - ((vc-annotate-very-old-color . "#0046FF") - (senator-eldoc-use-color . t)) - nil - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (change-log-file-face ((t (:foreground "Blue")))) - (change-log-name-face ((t (:foreground "Maroon")))) - (comint-highlight-prompt ((t (:foreground "dark blue")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "red" :weight bold :height 1.2)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "blue" :weight bold :height 1.2)))) - (font-lock-constant-face ((t (:foreground "Maroon")))) - (font-lock-function-name-face ((t (:foreground "Blue")))) - (font-lock-type-face ((t (:italic t :foreground "Navy" :slant italic)))) - (fringe ((t (:background "grey88")))) - (gnus-group-mail-1-empty-face ((t (:foreground "Blue2")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen" :weight bold)))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4" :slant italic)))) - (gnus-header-name-face ((t (:bold t :foreground "maroon" :weight bold)))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-signature-face ((t (:italic t :slant italic)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :weight bold)))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "Navy")))) - (gnus-summary-normal-unread-face ((t (:bold t :foreground "DarkGreen" :weight bold)))) - (header-line ((t (:background "grey90" :foreground "grey20" :box nil)))) - (highlight ((t (:background "darkseagreen2")))) - (ido-subdir-face ((t (:foreground "red")))) - (isearch ((t (:background "magenta4" :foreground "lightskyblue1")))) - (mode-line ((t (:background "grey88" :foreground "black" :box (:line-width -1 :style released-button))))) - (region ((t (:background "lightgoldenrod2")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "yellow")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (tooltip ((t (:background "lightyellow" :foreground "black")))))))) - -(defun color-theme-ld-dark () - "Dark Color theme by Linh Dang, created 2001-11-06." - (interactive) - (color-theme-install - '(color-theme-ld-dark - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "yellow") - (foreground-color . "white") - (mouse-color . "white")) - ((align-highlight-change-face . highlight) - (align-highlight-nochange-face . secondary-selection) - (apropos-keybinding-face . underline) - (apropos-label-face . italic) - (apropos-match-face . secondary-selection) - (apropos-property-face . bold-italic) - (apropos-symbol-face . bold) - (ebnf-except-border-color . "Black") - (ebnf-line-color . "Black") - (ebnf-non-terminal-border-color . "Black") - (ebnf-repeat-border-color . "Black") - (ebnf-special-border-color . "Black") - (ebnf-terminal-border-color . "Black") - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-carpal-button-face . bold) - (gnus-carpal-header-face . bold-italic) - (gnus-cite-attribution-face . gnus-cite-attribution-face) - (gnus-mouse-face . highlight) - (gnus-selected-tree-face . modeline) - (gnus-signature-face . gnus-signature-face) - (gnus-summary-selected-face . gnus-summary-selected-face) - (help-highlight-face . underline) - (list-matching-lines-face . bold) - (ps-line-number-color . "black") - (ps-zebra-color . 0.95) - (tags-tag-face . default) - (vc-annotate-very-old-color . "#0046FF") - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "black" :foreground "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-courier new")))) - (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728)))) - (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44)))) - (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2)))) - (Info-title-4-face ((t (:bold t :family "helv" :weight bold)))) - (bbdb-company ((t (:italic t :slant italic)))) - (bbdb-field-name ((t (:bold t :weight bold)))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (:underline t)))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (change-log-acknowledgement-face ((t (:italic t :slant oblique :foreground "AntiqueWhite3")))) - (change-log-conditionals-face ((t (:foreground "Aquamarine")))) - (change-log-date-face ((t (:italic t :slant oblique :foreground "BurlyWood")))) - (change-log-email-face ((t (:foreground "Aquamarine")))) - (change-log-file-face ((t (:bold t :family "Verdana" :weight bold :foreground "LightSkyBlue" :height 0.9)))) - (change-log-function-face ((t (:foreground "Aquamarine")))) - (change-log-list-face ((t (:foreground "LightSkyBlue")))) - (change-log-name-face ((t (:bold t :weight bold :foreground "Gold")))) - (clear-case-mode-string-face ((t (:bold t :family "Arial" :box (:line-width 2 :color "grey" :style released-button) :foreground "black" :background "grey" :weight bold :height 0.9)))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cursor ((t (:background "yellow")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "dim gray")))) - (custom-comment-tag-face ((t (:foreground "gray80")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.1)))) - (custom-group-tag-face ((t (:bold t :family "helv" :foreground "light blue" :weight bold :height 1.1)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "pink" :weight bold :height 1.1)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "lime green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "light blue" :weight bold :height 1.2)))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (:foreground "grey70")))) - (diff-file-header-face ((t (:bold t :background "grey60" :weight bold)))) - (diff-function-face ((t (:foreground "grey70")))) - (diff-header-face ((t (:background "grey45")))) - (diff-hunk-header-face ((t (:background "grey45")))) - (diff-index-face ((t (:bold t :weight bold :background "grey60")))) - (diff-nonexistent-face ((t (:bold t :weight bold :background "grey60")))) - (diff-removed-face ((t (nil)))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:foreground "SteelBlue")))) - (font-lock-comment-face ((t (:italic t :foreground "AntiqueWhite3" :slant oblique)))) - (font-lock-constant-face ((t (:bold t :foreground "Gold" :weight bold)))) - (font-lock-doc-face ((t (:italic t :slant oblique :foreground "BurlyWood")))) - (font-lock-doc-string-face ((t (:italic t :slant oblique :foreground "BurlyWood")))) - (font-lock-function-name-face ((t (:bold t :foreground "LightSkyBlue" :weight bold :height 0.9 :family "Verdana")))) - (font-lock-keyword-face ((t (:foreground "LightSkyBlue")))) - (font-lock-preprocessor-face ((t (:bold t :foreground "Gold" :weight bold)))) - (font-lock-reference-face ((t (:foreground "SteelBlue")))) - (font-lock-string-face ((t (:italic t :foreground "BurlyWood" :slant oblique)))) - (font-lock-type-face ((t (:bold t :foreground "PaleGreen" :weight bold :height 0.9 :family "Verdana")))) - (font-lock-variable-name-face ((t (:foreground "Aquamarine")))) - (font-lock-warning-face ((t (:bold t :foreground "chocolate" :weight bold)))) - (fringe ((t (:family "outline-courier new" :width normal :weight normal :slant normal :underline nil :overline nil :strike-through nil :box nil :inverse-video nil :stipple nil :background "grey4" :foreground "Wheat")))) - (gnus-cite-attribution-face ((t (:italic t :slant italic)))) - (gnus-cite-face-1 ((t (:foreground "light blue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "light cyan")))) - (gnus-cite-face-3 ((t (:foreground "light yellow")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :weight bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t :slant italic)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :weight bold)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t :weight bold)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t :weight bold)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise" :weight bold)))) - (gnus-header-content-face ((t (:italic t :foreground "forest green" :slant italic)))) - (gnus-header-from-face ((t (:foreground "spring green")))) - (gnus-header-name-face ((t (:foreground "SeaGreen")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "yellow" :slant italic)))) - (gnus-header-subject-face ((t (:foreground "SeaGreen3")))) - (gnus-signature-face ((t (:italic t :slant italic)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue" :slant italic)))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen" :slant italic)))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink" :slant italic)))) - (gnus-summary-low-unread-face ((t (:italic t :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (header-line ((t (:family "Arial" :background "grey20" :foreground "grey75" :box (:line-width 3 :color "grey20" :style released-button) :height 0.9)))) - (highlight ((t (:background "darkolivegreen")))) - (info-header-node ((t (:italic t :bold t :weight bold :slant italic :foreground "white")))) - (info-header-xref ((t (:bold t :weight bold :foreground "cyan")))) - (info-menu-5 ((t (:foreground "red1")))) - (info-menu-header ((t (:bold t :family "helv" :weight bold)))) - (info-node ((t (:italic t :bold t :foreground "white" :slant italic :weight bold)))) - (info-xref ((t (:bold t :foreground "cyan" :weight bold)))) - (isearch ((t (:background "palevioletred2")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (makefile-space-face ((t (:background "hotpink")))) - (menu ((t (nil)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "green4" :weight bold)))) - (message-header-name-face ((t (:foreground "DarkGreen")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "#b00000")))) - (message-header-subject-face ((t (:foreground "green3")))) - (message-header-to-face ((t (:bold t :foreground "green2" :weight bold)))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "blue3")))) - (modeline ((t (:background "grey" :foreground "black" :box (:line-width 2 :color "grey" :style released-button) :height 0.9 :family "Arial")))) - (modeline-mousable-minor-mode ((t (:background "grey" :foreground "black" :box (:line-width 2 :color "grey" :style released-button) :height 0.9 :family "Arial")))) - (modeline-mousable ((t (:background "grey" :foreground "black" :box (:line-width 2 :color "grey" :style released-button) :height 0.9 :family "Arial")))) - (modeline-buffer-id ((t (:background "grey" :foreground "black" :box (:line-width 2 :color "grey" :style released-button) :height 0.9 :family "Arial")))) - (mouse ((t (:background "white")))) - (primary-selection ((t (:background "DarkSlateGray")))) - (region ((t (:background "DarkSlateGray")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "SkyBlue4")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (trailing-whitespace ((t (:background "white")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray")))) - (zmacs-region ((t (:background "DarkSlateGray"))))))) - -(defun color-theme-deep-blue () - "Color theme by Tomas Cerha, created 2001-11-13." - (interactive) - (color-theme-install - '(color-theme-deep-blue - ((background-color . "#102e4e") - (background-mode . dark) - (border-color . "black") - (cursor-color . "green") - (foreground-color . "#eeeeee") - (mouse-color . "white")) - ((browse-kill-ring-separator-face . bold) - (display-time-mail-face . mode-line) - (help-highlight-face . underline) - (list-matching-lines-face . secondary-selection) - (vc-annotate-very-old-color . "#0046FF") - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "#102e4e" :foreground "#eeeeee" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "misc-fixed")))) - (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728)))) - (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44)))) - (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2)))) - (Info-title-4-face ((t (:bold t :family "helv" :weight bold)))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (calendar-today-face ((t (:background "blue")))) - (change-log-acknowledgement-face ((t (:italic t :slant italic :foreground "CadetBlue")))) - (change-log-conditionals-face ((t (:foreground "SeaGreen2")))) - (change-log-date-face ((t (:foreground "burlywood")))) - (change-log-email-face ((t (:foreground "SeaGreen2")))) - (change-log-file-face ((t (:bold t :weight bold :foreground "goldenrod")))) - (change-log-function-face ((t (:foreground "SeaGreen2")))) - (change-log-list-face ((t (:bold t :weight bold :foreground "DeepSkyBlue1")))) - (change-log-name-face ((t (:foreground "gold")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cursor ((t (:background "green" :foreground "black")))) - (cvs-filename-face ((t (:foreground "lightblue")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:bold t :foreground "lightyellow" :weight bold)))) - (cvs-marked-face ((t (:bold t :foreground "green" :weight bold)))) - (cvs-msg-face ((t (:italic t :slant italic)))) - (cvs-need-action-face ((t (:foreground "orange")))) - (cvs-unknown-face ((t (:foreground "red")))) - (diary-face ((t (:foreground "orange red")))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (:foreground "grey70")))) - (diff-file-header-face ((t (:bold t :background "grey60" :weight bold)))) - (diff-function-face ((t (:foreground "grey70")))) - (diff-header-face ((t (:background "grey45")))) - (diff-hunk-header-face ((t (:background "grey45")))) - (diff-index-face ((t (:bold t :weight bold :background "grey60")))) - (diff-nonexistent-face ((t (:bold t :weight bold :background "grey60")))) - (diff-removed-face ((t (nil)))) - (fixed-pitch ((t (:family "fixed")))) - (font-latex-bold-face ((t (:bold t :foreground "OliveDrab" :weight bold)))) - (font-latex-italic-face ((t (:italic t :foreground "OliveDrab" :slant italic)))) - (font-latex-math-face ((t (:foreground "burlywood")))) - (font-latex-sedate-face ((t (:foreground "LightGray")))) - (font-latex-string-face ((t (:foreground "LightSalmon")))) - (font-latex-warning-face ((t (:bold t :foreground "Pink" :weight bold)))) - (font-lock-builtin-face ((t (:foreground "LightCoral")))) - (font-lock-comment-face ((t (:italic t :foreground "CadetBlue" :slant italic)))) - (font-lock-constant-face ((t (:foreground "gold")))) - (font-lock-doc-face ((t (:foreground "BlanchedAlmond")))) - (font-lock-doc-string-face ((t (:foreground "BlanchedAlmond")))) - (font-lock-function-name-face ((t (:bold t :foreground "goldenrod" :weight bold)))) - (font-lock-keyword-face ((t (:bold t :foreground "DeepSkyBlue1" :weight bold)))) - (font-lock-preprocessor-face ((t (:foreground "gold")))) - (font-lock-reference-face ((t (:foreground "LightCoral")))) - (font-lock-string-face ((t (:foreground "burlywood")))) - (font-lock-type-face ((t (:foreground "CadetBlue1")))) - (font-lock-variable-name-face ((t (:foreground "SeaGreen2")))) - (font-lock-warning-face ((t (:foreground "yellow")))) - (fringe ((t (:background "#405060")))) - (header-line ((t (:box (:line-width 2 :style released-button) :background "grey20" :foreground "grey90" :box nil)))) - (highlight ((t (:background "darkgreen")))) - (holiday-face ((t (:foreground "green")))) - (info-header-node ((t (:foreground "DeepSkyBlue1")))) - (info-header-xref ((t (:bold t :weight bold :foreground "SeaGreen2")))) - (info-menu-5 ((t (:foreground "wheat")))) - (info-menu-header ((t (:bold t :family "helv" :weight bold)))) - (info-node ((t (:foreground "DeepSkyBlue1")))) - (info-xref ((t (:bold t :foreground "SeaGreen2" :weight bold)))) - (isearch ((t (:background "palevioletred2" :foreground "brown4")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (menu ((t (:background "gray" :foreground "black" :family "helvetica")))) - (modeline ((t (:background "gray" :foreground "black" :box (:line-width 2 :style released-button))))) - (modeline-buffer-id ((t (:background "gray" :foreground "black" :box (:line-width 2 :style released-button))))) - (modeline-mousable ((t (:background "gray" :foreground "black" :box (:line-width 2 :style released-button))))) - (modeline-mousable-minor-mode ((t (:background "gray" :foreground "black" :box (:line-width 2 :style released-button))))) - (mouse ((t (:background "white")))) - (region ((t (:background "DarkCyan")))) - (scroll-bar ((t (:background "gray" :foreground "#506070")))) - (secondary-selection ((t (:background "yellow" :foreground "gray10")))) - (show-paren-match-face ((t (:bold t :foreground "yellow" :weight bold)))) - (show-paren-mismatch-face ((t (:bold t :foreground "red" :weight bold)))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "#102e4e")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray"))))))) - -(defun color-theme-kingsajz () - "Color theme by Olgierd \"Kingsajz\" Ziolko, created 2001-12-04. -Another theme with wheat on DarkSlatGrey. Based on Subtle Hacker. -Used on Emacs 21.1 @ WinMe. Not tested on any other systems. - -Some faces uses Andale mono font (nice fixed-width font). -It is available at: http://www.microsoft.com/typography/downloads/andale32.exe - -Hail Eris! All hail Discordia!" - (interactive) - (color-theme-install - '(color-theme-kingsajz - ((background-color . "darkslategrey") - (background-mode . dark) - (border-color . "black") - (cursor-color . "LightGray") - (foreground-color . "wheat") - (mouse-color . "Grey")) - ((apropos-keybinding-face . underline) - (apropos-label-face face italic mouse-face highlight) - (apropos-match-face . secondary-selection) - (apropos-property-face . bold-italic) - (apropos-symbol-face . info-xref) - (display-time-mail-face . mode-line) - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-carpal-button-face . bold) - (gnus-carpal-header-face . bold-italic) - (gnus-cite-attribution-face . gnus-cite-attribution-face) - (gnus-mouse-face . highlight) - (gnus-selected-tree-face . modeline) - (gnus-signature-face . gnus-signature-face) - (gnus-summary-selected-face . gnus-summary-selected-face) - (gnus-treat-display-xface . head) - (help-highlight-face . underline) - (list-matching-lines-face . bold) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "darkslategrey" :foreground "wheat" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-andale mono")))) - (bbdb-field-name ((t (:foreground "green")))) - (bg:erc-color-face0 ((t (:background "White")))) - (bg:erc-color-face1 ((t (:background "black")))) - (bg:erc-color-face10 ((t (:background "lightblue1")))) - (bg:erc-color-face11 ((t (:background "cyan")))) - (bg:erc-color-face12 ((t (:background "blue")))) - (bg:erc-color-face13 ((t (:background "deeppink")))) - (bg:erc-color-face14 ((t (:background "gray50")))) - (bg:erc-color-face15 ((t (:background "gray90")))) - (bg:erc-color-face2 ((t (:background "blue4")))) - (bg:erc-color-face3 ((t (:background "green4")))) - (bg:erc-color-face4 ((t (:background "red")))) - (bg:erc-color-face5 ((t (:background "brown")))) - (bg:erc-color-face6 ((t (:background "purple")))) - (bg:erc-color-face7 ((t (:background "orange")))) - (bg:erc-color-face8 ((t (:background "yellow")))) - (bg:erc-color-face9 ((t (:background "green")))) - (blue ((t (:foreground "cyan")))) - (bold ((t (:bold t :foreground "OrangeRed" :weight bold :family "Arial")))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold :family "Arial")))) - (border ((t (:background "black")))) - (calendar-today-face ((t (:underline t)))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cperl-array-face ((t (:foreground "Yellow")))) - (cperl-hash-face ((t (:foreground "White")))) - (cperl-nonoverridable-face ((t (:foreground "SkyBlue")))) - (cursor ((t (:background "LightGray")))) - (custom-button-face ((t (:foreground "MediumSlateBlue" :underline t)))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "dim gray")))) - (custom-comment-tag-face ((t (:foreground "gray80")))) - (custom-documentation-face ((t (:foreground "Grey")))) - (custom-face-tag-face ((t (:bold t :family "Arial" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:foreground "MediumAquamarine")))) - (custom-group-tag-face-1 ((t (:bold t :family "Arial" :foreground "pink" :weight bold :height 1.2)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "Coral")))) - (custom-variable-button-face ((t (:underline t)))) - (custom-variable-tag-face ((t (:foreground "Aquamarine")))) - (date ((t (:foreground "green")))) - (diary-face ((t (:bold t :foreground "IndianRed" :weight bold)))) - (dired-face-directory ((t (:bold t :foreground "sky blue" :weight bold)))) - (dired-face-executable ((t (:foreground "green yellow")))) - (dired-face-flagged ((t (:foreground "tomato")))) - (dired-face-marked ((t (:foreground "light salmon")))) - (dired-face-permissions ((t (:foreground "aquamarine")))) - (erc-action-face ((t (:bold t :weight bold)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "pale green")))) - (erc-error-face ((t (:bold t :foreground "IndianRed" :weight bold)))) - (erc-highlight-face ((t (:bold t :foreground "pale green" :weight bold)))) - (erc-host-danger-face ((t (:foreground "red")))) - (erc-input-face ((t (:foreground "light blue")))) - (erc-inverse-face ((t (:background "steel blue")))) - (erc-notice-face ((t (:foreground "light salmon")))) - (erc-pal-face ((t (:foreground "pale green")))) - (erc-prompt-face ((t (:bold t :foreground "light blue" :weight bold)))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed" :weight bold)))) - (eshell-ls-backup-face ((t (:foreground "Grey")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "DimGray" :weight bold)))) - (eshell-ls-directory-face ((t (:bold t :foreground "MediumSlateBlue" :weight bold)))) - (eshell-ls-executable-face ((t (:bold t :foreground "Coral" :weight bold)))) - (eshell-ls-missing-face ((t (:bold t :foreground "black" :weight bold)))) - (eshell-ls-picture-face ((t (:foreground "Violet")))) - (eshell-ls-product-face ((t (:foreground "LightSalmon")))) - (eshell-ls-readonly-face ((t (:foreground "Aquamarine")))) - (eshell-ls-special-face ((t (:bold t :foreground "Gold" :weight bold)))) - (eshell-ls-symlink-face ((t (:bold t :foreground "White" :weight bold)))) - (eshell-ls-text-face ((t (:foreground "medium aquamarine")))) - (eshell-ls-todo-face ((t (:bold t :foreground "aquamarine" :weight bold)))) - (eshell-ls-unreadable-face ((t (:foreground "DimGray")))) - (eshell-prompt-face ((t (:foreground "powder blue")))) - (face-1 ((t (:stipple nil :foreground "royal blue" :family "andale mono")))) - (face-2 ((t (:stipple nil :foreground "DeepSkyBlue1" :overline nil :underline nil :slant normal :family "outline-andale mono")))) - (face-3 ((t (:stipple nil :foreground "NavajoWhite3")))) - (fg:erc-color-face0 ((t (:foreground "white")))) - (fg:erc-color-face1 ((t (:foreground "beige")))) - (fg:erc-color-face10 ((t (:foreground "pale goldenrod")))) - (fg:erc-color-face11 ((t (:foreground "light goldenrod yellow")))) - (fg:erc-color-face12 ((t (:foreground "light yellow")))) - (fg:erc-color-face13 ((t (:foreground "yellow")))) - (fg:erc-color-face14 ((t (:foreground "light goldenrod")))) - (fg:erc-color-face15 ((t (:foreground "lime green")))) - (fg:erc-color-face2 ((t (:foreground "lemon chiffon")))) - (fg:erc-color-face3 ((t (:foreground "light cyan")))) - (fg:erc-color-face4 ((t (:foreground "powder blue")))) - (fg:erc-color-face5 ((t (:foreground "sky blue")))) - (fg:erc-color-face6 ((t (:foreground "dark sea green")))) - (fg:erc-color-face7 ((t (:foreground "pale green")))) - (fg:erc-color-face8 ((t (:foreground "medium spring green")))) - (fg:erc-color-face9 ((t (:foreground "khaki")))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:bold t :foreground "PaleGreen" :weight bold)))) - (font-lock-comment-face ((t (:foreground "White")))) - (font-lock-constant-face ((t (:bold t :foreground "Aquamarine" :weight bold)))) - (font-lock-doc-face ((t (:italic t :slant italic :foreground "LightSalmon")))) - (font-lock-doc-string-face ((t (:foreground "LightSalmon")))) - (font-lock-function-name-face ((t (:bold t :foreground "MediumSlateBlue" :weight bold)))) - (font-lock-keyword-face ((t (:foreground "Salmon")))) - (font-lock-preprocessor-face ((t (:foreground "Salmon")))) - (font-lock-reference-face ((t (:foreground "pale green")))) - (font-lock-string-face ((t (:italic t :foreground "LightSalmon" :slant italic)))) - (font-lock-type-face ((t (:bold t :foreground "YellowGreen" :weight bold)))) - (font-lock-variable-name-face ((t (:italic t :bold t :foreground "Aquamarine" :slant italic :weight bold)))) - (font-lock-warning-face ((t (:bold t :foreground "IndianRed" :weight bold)))) - (fringe ((t (:background "darkslategrey")))) - (gnus-cite-attribution-face ((t (:family "arial")))) - (gnus-cite-face-1 ((t (:foreground "DarkGoldenrod3")))) - (gnus-cite-face-10 ((t (nil)))) - (gnus-cite-face-11 ((t (nil)))) - (gnus-cite-face-2 ((t (:foreground "IndianRed3")))) - (gnus-cite-face-3 ((t (:foreground "tomato")))) - (gnus-cite-face-4 ((t (:foreground "yellow green")))) - (gnus-cite-face-5 ((t (:foreground "SteelBlue3")))) - (gnus-cite-face-6 ((t (:foreground "Azure3")))) - (gnus-cite-face-7 ((t (:foreground "Azure4")))) - (gnus-cite-face-8 ((t (:foreground "SpringGreen4")))) - (gnus-cite-face-9 ((t (:foreground "SlateGray4")))) - (gnus-emphasis-bold ((t (:bold t :foreground "greenyellow" :weight bold :family "Arial")))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :foreground "OrangeRed1" :slant italic :weight bold :family "arial")))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "khaki")))) - (gnus-emphasis-italic ((t (:italic t :bold t :foreground "orange" :slant italic :weight bold :family "Arial")))) - (gnus-emphasis-underline ((t (:foreground "greenyellow" :underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :foreground "khaki" :underline t :weight bold :family "Arial")))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold :family "Arial")))) - (gnus-emphasis-underline-italic ((t (:italic t :foreground "orange" :underline t :slant italic :family "Arial")))) - (gnus-group-mail-1-empty-face ((t (:foreground "Salmon4")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "firebrick1" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "turquoise4")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "LightCyan4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "LightCyan1" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "SteelBlue4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "SteelBlue2" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "Salmon4")))) - (gnus-group-news-1-face ((t (:bold t :foreground "FireBrick1" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "darkorange3")))) - (gnus-group-news-2-face ((t (:bold t :foreground "dark orange" :weight bold)))) - (gnus-group-news-3-empty-face ((t (:foreground "turquoise4")))) - (gnus-group-news-3-face ((t (:bold t :foreground "Aquamarine" :weight bold)))) - (gnus-group-news-4-empty-face ((t (:foreground "SpringGreen4")))) - (gnus-group-news-4-face ((t (:bold t :foreground "SpringGreen2" :weight bold)))) - (gnus-group-news-5-empty-face ((t (:foreground "OliveDrab4")))) - (gnus-group-news-5-face ((t (:bold t :foreground "OliveDrab2" :weight bold)))) - (gnus-group-news-6-empty-face ((t (:foreground "DarkGoldenrod4")))) - (gnus-group-news-6-face ((t (:bold t :foreground "DarkGoldenrod3" :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "wheat4")))) - (gnus-group-news-low-face ((t (:bold t :foreground "tan4" :weight bold)))) - (gnus-header-content-face ((t (:foreground "LightSkyBlue3")))) - (gnus-header-from-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (gnus-header-name-face ((t (:bold t :foreground "DodgerBlue1" :weight bold)))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3" :slant italic :weight bold)))) - (gnus-header-subject-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (gnus-signature-face ((t (:italic t :foreground "salmon" :slant italic)))) - (gnus-splash-face ((t (:foreground "Firebrick1")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "MistyRose4" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "tomato3" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "coral" :weight bold)))) - (gnus-summary-high-unread-face ((t (:italic t :bold t :foreground "red1" :slant italic :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "DarkSeaGreen4" :slant italic)))) - (gnus-summary-low-read-face ((t (:foreground "SeaGreen4")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "Green4" :slant italic)))) - (gnus-summary-low-unread-face ((t (:italic t :foreground "green3" :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "khaki4")))) - (gnus-summary-normal-ticked-face ((t (:foreground "khaki3")))) - (gnus-summary-normal-unread-face ((t (:foreground "khaki")))) - (gnus-summary-selected-face ((t (:foreground "gold" :underline t)))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:foreground "red" :background "black")))) - (gui-element ((t (:bold t :background "#ffffff" :foreground "#000000" :weight bold)))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey20" :foreground "grey90" :box nil)))) - (highlight ((t (:background "PaleGreen" :foreground "DarkGreen")))) - (highline-face ((t (:background "SeaGreen")))) - (holiday-face ((t (:background "DimGray")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:bold t :foreground "DodgerBlue1" :underline t :weight bold)))) - (info-xref ((t (:bold t :foreground "DodgerBlue3" :weight bold)))) - (isearch ((t (:background "sea green" :foreground "black")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :foreground "chocolate3" :slant italic)))) - (menu ((t (nil)))) - (message-cited-text-face ((t (:foreground "White")))) - (message-header-cc-face ((t (:foreground "light cyan")))) - (message-header-name-face ((t (:foreground "DodgerBlue1")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "LightSkyBlue3")))) - (message-header-subject-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (message-header-to-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (message-header-xheader-face ((t (:foreground "DodgerBlue3")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:background "cornflower blue" :foreground "chocolate")))) - (modeline ((t (:background "dark olive green" :foreground "wheat" :box (:line-width -1 :style released-button))))) - (modeline-buffer-id ((t (:bold t :background "dark olive green" :foreground "beige" :weight bold :family "arial")))) - (modeline-mousable ((t (:bold t :background "dark olive green" :foreground "yellow green" :weight bold :family "arial")))) - (modeline-mousable-minor-mode ((t (:bold t :background "dark olive green" :foreground "wheat" :weight bold :family "arial")))) - (mouse ((t (:background "Grey")))) - (paren-blink-off ((t (:foreground "brown")))) - (region ((t (:background "dark cyan" :foreground "cyan")))) - (ruler-mode-column-number-face ((t (:box (:color "grey76" :line-width 1 :style released-button) :background "grey76" :stipple nil :inverse-video nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-andale mono" :foreground "black")))) - (ruler-mode-current-column-face ((t (:bold t :box (:color "grey76" :line-width 1 :style released-button) :background "grey76" :stipple nil :inverse-video nil :strike-through nil :overline nil :underline nil :slant normal :width normal :family "outline-andale mono" :foreground "yellow" :weight bold)))) - (ruler-mode-default-face ((t (:family "outline-andale mono" :width normal :weight normal :slant normal :underline nil :overline nil :strike-through nil :inverse-video nil :stipple nil :background "grey76" :foreground "grey64" :box (:color "grey76" :line-width 1 :style released-button))))) - (ruler-mode-fill-column-face ((t (:box (:color "grey76" :line-width 1 :style released-button) :background "grey76" :stipple nil :inverse-video nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-andale mono" :foreground "red")))) - (ruler-mode-margins-face ((t (:box (:color "grey76" :line-width 1 :style released-button) :foreground "grey64" :stipple nil :inverse-video nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-andale mono" :background "grey64")))) - (ruler-mode-tab-stop-face ((t (:box (:color "grey76" :line-width 1 :style released-button) :background "grey76" :stipple nil :inverse-video nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-andale mono" :foreground "steelblue")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "Aquamarine" :foreground "SlateBlue")))) - (show-paren-match-face ((t (:bold t :background "Aquamarine" :foreground "steel blue" :weight bold)))) - (show-paren-mismatch-face ((t (:background "Red" :foreground "White")))) - (swbuff-current-buffer-face ((t (:bold t :foreground "red" :weight bold)))) - (text-cursor ((t (:background "Red" :foreground "white")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "Arial")))) - (w3m-anchor-face ((t (:bold t :foreground "DodgerBlue1" :weight bold)))) - (w3m-arrived-anchor-face ((t (:bold t :foreground "DodgerBlue3" :weight bold)))) - (w3m-header-line-location-content-face ((t (:background "dark olive green" :foreground "wheat")))) - (w3m-header-line-location-title-face ((t (:background "dark olive green" :foreground "beige")))) - (widget-button-face ((t (:bold t :foreground "green" :weight bold :family "courier")))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:foreground "LightBlue")))) - (widget-inactive-face ((t (:foreground "DimGray")))) - (widget-single-line-field-face ((t (:foreground "LightBlue")))) - (woman-bold-face ((t (:bold t :weight bold :family "Arial")))) - (woman-italic-face ((t (:italic t :foreground "beige" :slant italic :family "Arial")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))) - (zmacs-region ((t (:background "dark cyan" :foreground "cyan"))))))) - -(defun color-theme-comidia () - "Color theme by Marcelo Dias de Toledo, created 2001-12-17. -Steel blue on black." - (interactive) - (color-theme-install - '(color-theme-comidia - ((background-color . "Black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "SteelBlue") - (foreground-color . "SteelBlue") - (mouse-color . "SteelBlue")) - ((display-time-mail-face . mode-line) - (gnus-mouse-face . highlight) - (gnus-summary-selected-face . gnus-summary-selected-face) - (help-highlight-face . underline) - (ispell-highlight-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "Black" :foreground "SteelBlue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width semi-condensed :family "misc-fixed")))) - (bg:erc-color-face0 ((t (:background "White")))) - (bg:erc-color-face1 ((t (:background "black")))) - (bg:erc-color-face10 ((t (:background "lightblue1")))) - (bg:erc-color-face11 ((t (:background "cyan")))) - (bg:erc-color-face12 ((t (:background "blue")))) - (bg:erc-color-face13 ((t (:background "deeppink")))) - (bg:erc-color-face14 ((t (:background "gray50")))) - (bg:erc-color-face15 ((t (:background "gray90")))) - (bg:erc-color-face2 ((t (:background "blue4")))) - (bg:erc-color-face3 ((t (:background "green4")))) - (bg:erc-color-face4 ((t (:background "red")))) - (bg:erc-color-face5 ((t (:background "brown")))) - (bg:erc-color-face6 ((t (:background "purple")))) - (bg:erc-color-face7 ((t (:background "orange")))) - (bg:erc-color-face8 ((t (:background "yellow")))) - (bg:erc-color-face9 ((t (:background "green")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cursor ((t (:background "SteelBlue")))) - (erc-action-face ((t (:bold t :weight bold)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-dangerous-host-face ((t (:foreground "red")))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "IndianRed")))) - (erc-error-face ((t (:background "Red" :foreground "White")))) - (erc-fool-face ((t (:foreground "dim gray")))) - (erc-input-face ((t (:foreground "brown")))) - (erc-inverse-face ((t (:background "Black" :foreground "White")))) - (erc-keyword-face ((t (:bold t :foreground "pale green" :weight bold)))) - (erc-notice-face ((t (:bold t :foreground "SlateBlue" :weight bold)))) - (erc-pal-face ((t (:bold t :foreground "Magenta" :weight bold)))) - (erc-prompt-face ((t (:bold t :background "lightBlue2" :foreground "Black" :weight bold)))) - (erc-timestamp-face ((t (:bold t :foreground "green" :weight bold)))) - (erc-underline-face ((t (:underline t)))) - (fg:erc-color-face0 ((t (:foreground "White")))) - (fg:erc-color-face1 ((t (:foreground "black")))) - (fg:erc-color-face10 ((t (:foreground "lightblue1")))) - (fg:erc-color-face11 ((t (:foreground "cyan")))) - (fg:erc-color-face12 ((t (:foreground "blue")))) - (fg:erc-color-face13 ((t (:foreground "deeppink")))) - (fg:erc-color-face14 ((t (:foreground "gray50")))) - (fg:erc-color-face15 ((t (:foreground "gray90")))) - (fg:erc-color-face2 ((t (:foreground "blue4")))) - (fg:erc-color-face3 ((t (:foreground "green4")))) - (fg:erc-color-face4 ((t (:foreground "red")))) - (fg:erc-color-face5 ((t (:foreground "brown")))) - (fg:erc-color-face6 ((t (:foreground "purple")))) - (fg:erc-color-face7 ((t (:foreground "orange")))) - (fg:erc-color-face8 ((t (:foreground "yellow")))) - (fg:erc-color-face9 ((t (:foreground "green")))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:foreground "chocolate1")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-doc-face ((t (:foreground "LightSalmon")))) - (font-lock-doc-string-face ((t (:foreground "LightSalmon")))) - (font-lock-function-name-face ((t (:foreground "LightSkyBlue")))) - (font-lock-keyword-face ((t (:foreground "Cyan")))) - (font-lock-preprocessor-face ((t (:foreground "Aquamarine")))) - (font-lock-reference-face ((t (:foreground "LightSteelBlue")))) - (font-lock-string-face ((t (:foreground "LightSalmon")))) - (font-lock-type-face ((t (:foreground "PaleGreen")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold)))) - (fringe ((t (:background "grey10")))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :weight bold)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t :weight bold)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t :weight bold)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise" :weight bold)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue" :slant italic)))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen" :slant italic)))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink" :slant italic)))) - (gnus-summary-low-unread-face ((t (:italic t :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (header-line ((t (:family "neep" :width condensed :box (:line-width 1 :style none) :background "grey20" :foreground "grey90" :box nil)))) - (highlight ((t (:background "darkolivegreen")))) - (isearch ((t (:background "palevioletred2" :foreground "brown4")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (menu ((t (nil)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "green4" :weight bold)))) - (message-header-name-face ((t (:foreground "DarkGreen")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "#b00000")))) - (message-header-subject-face ((t (:foreground "green3")))) - (message-header-to-face ((t (:bold t :foreground "green2" :weight bold)))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "blue3")))) - (modeline ((t (:background "Gray10" :foreground "SteelBlue" :box (:line-width 1 :style none) :width condensed :family "neep")))) - (modeline-buffer-id ((t (:background "Gray10" :foreground "SteelBlue" :box (:line-width 1 :style none) :width condensed :family "neep")))) - (modeline-mousable-minor-mode ((t (:background "Gray10" :foreground "SteelBlue" :box (:line-width 1 :style none) :width condensed :family "neep")))) - (modeline-mousable ((t (:background "Gray10" :foreground "SteelBlue" :box (:line-width 1 :style none) :width condensed :family "neep")))) - (mouse ((t (:background "SteelBlue")))) - (primary-selection ((t (:background "blue3")))) - (region ((t (:background "blue3")))) - (scroll-bar ((t (:background "grey75")))) - (secondary-selection ((t (:background "SkyBlue4")))) - (speedbar-button-face ((t (:foreground "green3")))) - (speedbar-directory-face ((t (:foreground "light blue")))) - (speedbar-file-face ((t (:foreground "cyan")))) - (speedbar-highlight-face ((t (:background "sea green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray")))) - (zmacs-region ((t (:background "blue3"))))))) - -(defun color-theme-katester () - "Color theme by walterh@rocketmail.com, created 2001-12-12. -A pastelly-mac like color-theme." - (interactive) - (color-theme-standard) - (let ((color-theme-is-cumulative t)) - (color-theme-install - '(color-theme-katester - ((background-color . "ivory") - (cursor-color . "slateblue") - (foreground-color . "black") - (mouse-color . "slateblue")) - (default ((t ((:background "ivory" :foreground "black"))))) - (bold ((t (:bold t)))) - (font-lock-string-face ((t (:foreground "maroon")))) - (font-lock-keyword-face ((t (:foreground "blue")))) - (font-lock-constant-face ((t (:foreground "darkblue")))) - (font-lock-type-face ((t (:foreground "black")))) - (font-lock-variable-name-face ((t (:foreground "black")))) - (font-lock-function-name-face ((t (:bold t :underline t)))) - (font-lock-comment-face ((t (:background "seashell")))) - (highlight ((t (:background "lavender")))) - (italic ((t (:italic t)))) - (modeline ((t (:background "moccasin" :foreground "black")))) - (region ((t (:background "lavender" )))) - (underline ((t (:underline t)))))))) - -(defun color-theme-arjen () - "Color theme by awiersma, created 2001-08-27." - (interactive) - (color-theme-install - '(color-theme-arjen - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "yellow") - (foreground-color . "White") - (mouse-color . "sienna1")) - ((buffers-tab-face . buffers-tab) - (cperl-here-face . font-lock-string-face) - (cperl-invalid-face quote underline) - (cperl-pod-face . font-lock-comment-face) - (cperl-pod-head-face . font-lock-variable-name-face) - (vc-mode-face . highlight)) - (default ((t (:background "black" :foreground "white")))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:bold t)))) - (border-glyph ((t (nil)))) - (buffers-tab ((t (:background "black" :foreground "white")))) - (calendar-today-face ((t (:underline t)))) - (cperl-array-face ((t (:foreground "darkseagreen")))) - (cperl-hash-face ((t (:foreground "darkseagreen")))) - (cperl-nonoverridable-face ((t (:foreground "SkyBlue")))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "light blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "pink")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "lime green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "light blue")))) - (diary-face ((t (:foreground "IndianRed")))) - (erc-action-face ((t (:bold t)))) - (erc-bold-face ((t (:bold t)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "sandybrown")))) - (erc-error-face ((t (:bold t :foreground "IndianRed")))) - (erc-input-face ((t (:foreground "Beige")))) - (erc-inverse-face ((t (:background "wheat" :foreground "darkslategrey")))) - (erc-notice-face ((t (:foreground "MediumAquamarine")))) - (erc-pal-face ((t (:foreground "pale green")))) - (erc-prompt-face ((t (:foreground "MediumAquamarine")))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed")))) - (eshell-ls-backup-face ((t (:foreground "Grey")))) - (eshell-ls-clutter-face ((t (:foreground "DimGray")))) - (eshell-ls-directory-face ((t (:bold t :foreground "MediumSlateBlue")))) - (eshell-ls-executable-face ((t (:foreground "Coral")))) - (eshell-ls-missing-face ((t (:foreground "black")))) - (eshell-ls-picture-face ((t (:foreground "Violet")))) - (eshell-ls-product-face ((t (:foreground "sandybrown")))) - (eshell-ls-readonly-face ((t (:foreground "Aquamarine")))) - (eshell-ls-special-face ((t (:foreground "Gold")))) - (eshell-ls-symlink-face ((t (:foreground "White")))) - (eshell-ls-unreadable-face ((t (:foreground "DimGray")))) - (eshell-prompt-face ((t (:foreground "MediumAquamarine")))) - (fl-comment-face ((t (:foreground "pink")))) - (fl-doc-string-face ((t (:foreground "purple")))) - (fl-function-name-face ((t (:foreground "red")))) - (fl-keyword-face ((t (:foreground "cadetblue")))) - (fl-string-face ((t (:foreground "green")))) - (fl-type-face ((t (:foreground "yellow")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:foreground "IndianRed")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-doc-string-face ((t (:foreground "DarkOrange")))) - (font-lock-function-name-face ((t (:foreground "YellowGreen")))) - (font-lock-keyword-face ((t (:foreground "PaleYellow")))) - (font-lock-preprocessor-face ((t (:foreground "Aquamarine")))) - (font-lock-reference-face ((t (:foreground "SlateBlue")))) - (font-lock-string-face ((t (:foreground "Orange")))) - (font-lock-type-face ((t (:foreground "Green")))) - (font-lock-variable-name-face ((t (:foreground "darkseagreen")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (qt-classes-face ((t (:foreground "Red")))) - (gnus-cite-attribution-face ((t (nil)))) - (gnus-cite-face-1 ((t (:bold nil :foreground "deep sky blue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:bold nil :foreground "cadetblue")))) - (gnus-cite-face-3 ((t (:bold nil :foreground "gold")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:bold nil :foreground "chocolate")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold nil)))) - (gnus-emphasis-bold-italic ((t (:bold nil)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (nil)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold nil)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :bold nil)))) - (gnus-emphasis-underline-italic ((t (:underline t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold nil :foreground "aquamarine1")))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold nil :foreground "aquamarine2")))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold nil :foreground "aquamarine3")))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold nil :foreground "aquamarine4")))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold nil :foreground "PaleTurquoise")))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold nil :foreground "turquoise")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold nil)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold nil)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold nil)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold nil)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold nil :foreground "DarkTurquoise")))) - (gnus-header-content-face ((t (:foreground "forest green")))) - (gnus-header-from-face ((t (:bold nil :foreground "spring green")))) - (gnus-header-name-face ((t (:foreground "deep sky blue")))) - (gnus-header-newsgroups-face ((t (:bold nil :foreground "purple")))) - (gnus-header-subject-face ((t (:bold nil :foreground "orange")))) - (gnus-signature-face ((t (:bold nil :foreground "khaki")))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold nil :foreground "SkyBlue")))) - (gnus-summary-high-read-face ((t (:bold nil :foreground "PaleGreen")))) - (gnus-summary-high-ticked-face ((t (:bold nil :foreground "pink")))) - (gnus-summary-high-unread-face ((t (:bold nil)))) - (gnus-summary-low-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-low-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-low-ticked-face ((t (:foreground "pink")))) - (gnus-summary-low-unread-face ((t (nil)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:background "#D4D0C8" :foreground "black")))) - (highlight ((t (:background "darkolivegreen")))) - (highline-face ((t (:background "SeaGreen")))) - (holiday-face ((t (:background "DimGray")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:underline t :bold t :foreground "DodgerBlue1")))) - (info-xref ((t (:underline t :foreground "DodgerBlue1")))) - (isearch ((t (:background "blue")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (nil)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68" :foreground "white")))) - (message-cited-text-face ((t (:bold t :foreground "green")))) - (message-header-cc-face ((t (:bold t :foreground "green4")))) - (message-header-name-face ((t (:bold t :foreground "orange")))) - (message-header-newsgroups-face ((t (:bold t :foreground "violet")))) - (message-header-other-face ((t (:bold t :foreground "chocolate")))) - (message-header-subject-face ((t (:bold t :foreground "yellow")))) - (message-header-to-face ((t (:bold t :foreground "cadetblue")))) - (message-header-xheader-face ((t (:bold t :foreground "light blue")))) - (message-mml-face ((t (:bold t :foreground "Green3")))) - (message-separator-face ((t (:foreground "blue3")))) - (modeline ((t (:background "DarkRed" :foreground "white" :box (:line-width 1 :style released-button))))) - (modeline-buffer-id ((t (:background "DarkRed" :foreground "white")))) - (modeline-mousable ((t (:background "DarkRed" :foreground "white")))) - (modeline-mousable-minor-mode ((t (:background "DarkRed" :foreground "white")))) - (p4-depot-added-face ((t (:foreground "blue")))) - (p4-depot-deleted-face ((t (:foreground "red")))) - (p4-depot-unmapped-face ((t (:foreground "grey30")))) - (p4-diff-change-face ((t (:foreground "dark green")))) - (p4-diff-del-face ((t (:foreground "red")))) - (p4-diff-file-face ((t (:background "gray90")))) - (p4-diff-head-face ((t (:background "gray95")))) - (p4-diff-ins-face ((t (:foreground "blue")))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "blue")))) - (red ((t (:foreground "red")))) - (region ((t (:background "blue")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "darkslateblue")))) - (show-paren-match-face ((t (:background "Aquamarine" :foreground "SlateBlue")))) - (show-paren-mismatch-face ((t (:background "Red" :foreground "White")))) - (text-cursor ((t (:background "yellow" :foreground "black")))) - (toolbar ((t (nil)))) - (underline ((nil (:underline nil)))) - (vertical-divider ((t (nil)))) - (widget ((t (nil)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray")))) - (woman-bold-face ((t (:bold t)))) - (woman-italic-face ((t (:foreground "beige")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "snow" :foreground "blue"))))))) - -(defun color-theme-tty-dark () - "Color theme by Oivvio Polite, created 2002-02-01. Good for tty display." - (interactive) - (color-theme-install - '(color-theme-tty-dark - ((background-color . "black") - (background-mode . dark) - (border-color . "blue") - (cursor-color . "red") - (foreground-color . "white") - (mouse-color . "black")) - ((ispell-highlight-face . highlight) - (list-matching-lines-face . bold) - (tinyreplace-:face . highlight) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:underline t :background "black" :foreground "white")))) - (bold-italic ((t (:underline t :foreground "white")))) - (calendar-today-face ((t (:underline t)))) - (diary-face ((t (:foreground "red")))) - (font-lock-builtin-face ((t (:foreground "blue")))) - (font-lock-comment-face ((t (:foreground "cyan")))) - (font-lock-constant-face ((t (:foreground "magenta")))) - (font-lock-function-name-face ((t (:foreground "cyan")))) - (font-lock-keyword-face ((t (:foreground "red")))) - (font-lock-string-face ((t (:foreground "green")))) - (font-lock-type-face ((t (:foreground "yellow")))) - (font-lock-variable-name-face ((t (:foreground "blue")))) - (font-lock-warning-face ((t (:bold t :foreground "magenta")))) - (highlight ((t (:background "blue" :foreground "yellow")))) - (holiday-face ((t (:background "cyan")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (italic ((t (:underline t :background "red")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "green")))) - (message-header-name-face ((t (:foreground "green")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow")))) - (message-header-other-face ((t (:foreground "#b00000")))) - (message-header-subject-face ((t (:foreground "green")))) - (message-header-to-face ((t (:bold t :foreground "green")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "green")))) - (message-separator-face ((t (:foreground "blue")))) - - (modeline ((t (:background "white" :foreground "blue")))) - (modeline-buffer-id ((t (:background "white" :foreground "red")))) - (modeline-mousable ((t (:background "white" :foreground "magenta")))) - (modeline-mousable-minor-mode ((t (:background "white" :foreground "yellow")))) - (region ((t (:background "white" :foreground "black")))) - (zmacs-region ((t (:background "cyan" :foreground "black")))) - (secondary-selection ((t (:background "blue")))) - (show-paren-match-face ((t (:background "red")))) - (show-paren-mismatch-face ((t (:background "magenta" :foreground "white")))) - (underline ((t (:underline t))))))) - -(defun color-theme-aliceblue () - "Color theme by Girish Bharadwaj, created 2002-03-27. -Includes comint prompt, custom, font-lock, isearch, -jde, senator, speedbar, and widget." - (interactive) - (color-theme-install - '(color-theme-aliceblue - ((background-color . "AliceBlue") - (background-mode . light) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "DarkSlateGray4") - (mouse-color . "black")) - ((help-highlight-face . underline) - (list-matching-lines-face . bold) - (semantic-which-function-use-color . t) - (senator-eldoc-use-color . t) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "AliceBlue" :foreground "DarkSlateGray4" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-courier new")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "dark blue")))) - (cursor ((t (:background "black")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "gray85")))) - (custom-comment-tag-face ((t (:foreground "blue4")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "red" :weight bold :height 1.2)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "blue" :weight bold :height 1.2)))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:italic t :foreground "Firebrick" :slant oblique)))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-function-name-face ((t (:bold t :foreground "Blue" :weight extra-bold :family "outline-verdana")))) - (font-lock-keyword-face ((t (:bold t :foreground "Purple" :weight semi-bold :family "outline-verdana")))) - (font-lock-preprocessor-face ((t (:foreground "CadetBlue")))) - (font-lock-reference-face ((t (:foreground "Orchid")))) - (font-lock-string-face ((t (:foreground "RosyBrown")))) - (font-lock-type-face ((t (:italic t :foreground "ForestGreen" :slant italic)))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod" :width condensed)))) - (font-lock-warning-face ((t (:bold t :foreground "Red" :weight bold)))) - (fringe ((t (:background "DarkSlateBlue")))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey90" :foreground "grey20" :box nil)))) - (highlight ((t (:background "darkseagreen2")))) - (isearch ((t (:background "magenta4" :foreground "lightskyblue1")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise")))) - (italic ((t (:italic t :slant italic)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black")))) - (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black")))) - (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black")))) - (jde-java-font-lock-api-face ((t (:foreground "dark goldenrod")))) - (jde-java-font-lock-bold-face ((t (:bold t :weight bold)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "CadetBlue")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "green4")))) - (jde-java-font-lock-italic-face ((t (:italic t :slant italic)))) - (jde-java-font-lock-link-face ((t (:foreground "blue" :underline t :slant normal)))) - (jde-java-font-lock-modifier-face ((t (:foreground "Orchid")))) - (jde-java-font-lock-number-face ((t (:foreground "RosyBrown")))) - (jde-java-font-lock-operator-face ((t (:foreground "medium blue")))) - (jde-java-font-lock-package-face ((t (:foreground "blue3")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (menu ((t (nil)))) - (modeline ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (modeline-buffer-id ((t (:background "grey75" :foreground "black")))) - (modeline-mousable ((t (:background "grey75" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "grey75" :foreground "black")))) - (mouse ((t (:background "black")))) - (primary-selection ((t (:background "lightgoldenrod2")))) - (region ((t (:background "lightgoldenrod2")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "yellow")))) - (semantic-dirty-token-face ((t (:background "lightyellow")))) - (semantic-unmatched-syntax-face ((t (:underline "red")))) - (senator-intangible-face ((t (:foreground "gray25")))) - (senator-momentary-highlight-face ((t (:background "gray70")))) - (senator-read-only-face ((t (:background "#CCBBBB")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "brown")))) - (template-message-face ((t (:bold t :weight bold)))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (zmacs-region ((t (:background "lightgoldenrod2"))))))) - -(defun color-theme-black-on-gray () - "Color theme by sbhojwani, created 2002-04-03. -Includes ecb, font-lock, paren, semantic, and widget faces. -Some of the font-lock faces are disabled, ie. they look just -like the default face. This is for people that don't like -the look of \"angry fruit salad\" when editing." - (interactive) - (color-theme-install - '(color-theme-black-on-gray - ((background-color . "white") - (background-mode . light) - (border-color . "blue") - (foreground-color . "black")) - ((buffers-tab-face . buffers-tab) - (ecb-directories-general-face . ecb-default-general-face) - (ecb-directory-face . ecb-default-highlight-face) - (ecb-history-face . ecb-default-highlight-face) - (ecb-history-general-face . ecb-default-general-face) - (ecb-method-face . ecb-default-highlight-face) - (ecb-methods-general-face . ecb-default-general-face) - (ecb-source-face . ecb-default-highlight-face) - (ecb-source-in-directories-buffer-face . ecb-source-in-directories-buffer-face) - (ecb-sources-general-face . ecb-default-general-face) - (ecb-token-header-face . ecb-token-header-face)) - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t :size "10pt")))) - (bold-italic ((t (:italic t :bold t :size "10pt")))) - (border-glyph ((t (:size "11pt")))) - (buffers-tab ((t (:background "gray75")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (ecb-bucket-token-face ((t (:bold t :size "10pt")))) - (ecb-default-general-face ((t (nil)))) - (ecb-default-highlight-face ((t (:background "cornflower blue" :foreground "yellow")))) - (ecb-directories-general-face ((t (nil)))) - (ecb-directory-face ((t (:background "cornflower blue" :foreground "yellow")))) - (ecb-history-face ((t (:background "cornflower blue" :foreground "yellow")))) - (ecb-history-general-face ((t (nil)))) - (ecb-method-face ((t (:background "cornflower blue" :foreground "yellow")))) - (ecb-methods-general-face ((t (nil)))) - (ecb-source-face ((t (:background "cornflower blue" :foreground "yellow")))) - (ecb-source-in-directories-buffer-face ((t (:foreground "medium blue")))) - (ecb-sources-general-face ((t (nil)))) - (ecb-token-header-face ((t (:background "SeaGreen1")))) - (ecb-type-token-class-face ((t (:bold t :size "10pt")))) - (ecb-type-token-enum-face ((t (:bold t :size "10pt")))) - (ecb-type-token-group-face ((t (:bold t :size "10pt" :foreground "dimgray")))) - (ecb-type-token-interface-face ((t (:bold t :size "10pt")))) - (ecb-type-token-struct-face ((t (:bold t :size "10pt")))) - (ecb-type-token-typedef-face ((t (:bold t :size "10pt")))) - (font-lock-builtin-face ((t (:foreground "red3")))) - (font-lock-constant-face ((t (:foreground "blue3")))) - (font-lock-comment-face ((t (:foreground "blue")))) - (font-lock-doc-face ((t (:foreground "green4")))) - (font-lock-doc-string-face ((t (:foreground "green4")))) - (font-lock-function-name-face ((t (nil)))) - (font-lock-keyword-face ((t (nil)))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (nil)))) - (font-lock-type-face ((t (nil)))) - (font-lock-variable-name-face ((t (nil)))) - (font-lock-warning-face ((t (nil)))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75")))) - (gui-element ((t (:size "8pt" :background "gray75")))) - (highlight ((t (:background "darkseagreen2")))) - (isearch ((t (:background "paleturquoise")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (:size "10pt")))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68")))) - (modeline ((t (:background "gray75")))) - (modeline-buffer-id ((t (:background "gray75" :foreground "blue4")))) - (modeline-mousable ((t (:background "gray75" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "gray75" :foreground "green4")))) - (paren-blink-off ((t (:foreground "gray")))) - (paren-match ((t (:background "darkseagreen2")))) - (paren-mismatch ((t (nil)))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "gray65")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (semantic-dirty-token-face ((t (nil)))) - (semantic-unmatched-syntax-face ((t (nil)))) - (text-cursor ((t (:background "red" :foreground "gray")))) - (toolbar ((t (:background "gray75")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (:background "gray75")))) - (widget ((t (:size "8pt" :background "gray75")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (nil)))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "gray65"))))))) - -(defun color-theme-dark-blue2 () - "Color theme by Chris McMahan, created 2002-04-12. -Includes antlr, bbdb, change-log, comint, cperl, custom cvs, diff, -dired, display-time, ebrowse, ecb, ediff, erc, eshell, fl, font-lock, -gnus, hi, highlight, html-helper, hyper-apropos, info, isearch, jde, -message, mmm, paren, semantic, senator, sgml, smerge, speedbar, -strokes, term, vhdl, viper, vm, widget, xref, xsl, xxml. Yes, it is -a large theme." - (interactive) - (color-theme-install - '(color-theme-dark-blue2 - ((background-color . "#233b5a") - (background-mode . dark) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "black") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (cursor-color . "Yellow") - (foreground-color . "#fff8dc") - (mouse-color . "Grey") - (top-toolbar-shadow-color . "#fffffbeeffff") - (viper-saved-cursor-color-in-replace-mode . "Red3")) - ((blank-space-face . blank-space-face) - (blank-tab-face . blank-tab-face) - (cperl-invalid-face . underline) - (ecb-directories-general-face . ecb-directories-general-face) - (ecb-directory-face . ecb-directory-face) - (ecb-history-face . ecb-history-face) - (ecb-history-general-face . ecb-history-general-face) - (ecb-method-face . ecb-method-face) - (ecb-methods-general-face . ecb-methods-general-face) - (ecb-source-face . ecb-source-face) - (ecb-source-in-directories-buffer-face . ecb-sources-face) - (ecb-sources-general-face . ecb-sources-general-face) - (ecb-token-header-face . ecb-token-header-face) - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-cite-attribution-face . gnus-cite-attribution-face) - (gnus-signature-face . gnus-signature-face) - (gnus-summary-selected-face . gnus-summary-selected-face) - (help-highlight-face . underline) - (highline-face . highline-face) - (highline-vertical-face . highline-vertical-face) - (list-matching-lines-face . bold) - (ps-zebra-color . 0.95) - (senator-eldoc-use-color . t) - (sgml-set-face . t) - (tags-tag-face . default) - (view-highlight-face . highlight) - (vm-highlight-url-face . bold-italic) - (vm-highlighted-header-face . bold) - (vm-mime-button-face . gui-button-face) - (vm-summary-highlight-face . bold) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "#233b5a" :foreground "#fff8dc" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-lucida console")))) - (Info-title-1-face ((t (:bold t :weight bold :height 1.728 :family "helv")))) - (Info-title-2-face ((t (:bold t :weight bold :height 1.44 :family "helv")))) - (Info-title-3-face ((t (:bold t :weight bold :height 1.2 :family "helv")))) - (Info-title-4-face ((t (:bold t :weight bold :family "helv")))) - (antlr-font-lock-keyword-face ((t (:bold t :foreground "Gray85" :weight bold)))) - (antlr-font-lock-literal-face ((t (:bold t :foreground "Gray85" :weight bold)))) - (antlr-font-lock-ruledef-face ((t (:bold t :foreground "Gray85" :weight bold)))) - (antlr-font-lock-ruleref-face ((t (:foreground "Gray85")))) - (antlr-font-lock-tokendef-face ((t (:bold t :foreground "Gray85" :weight bold)))) - (antlr-font-lock-tokenref-face ((t (:foreground "Gray85")))) - (bbdb-company ((t (:italic t :slant italic)))) - (bbdb-field-name ((t (:bold t :weight bold)))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (:underline t)))) - (bg:erc-color-face0 ((t (:background "White")))) - (bg:erc-color-face1 ((t (:background "black")))) - (bg:erc-color-face10 ((t (:background "lightblue1")))) - (bg:erc-color-face11 ((t (:background "cyan")))) - (bg:erc-color-face12 ((t (:background "blue")))) - (bg:erc-color-face13 ((t (:background "deeppink")))) - (bg:erc-color-face14 ((t (:background "gray50")))) - (bg:erc-color-face15 ((t (:background "gray90")))) - (bg:erc-color-face2 ((t (:background "blue4")))) - (bg:erc-color-face3 ((t (:background "green4")))) - (bg:erc-color-face4 ((t (:background "red")))) - (bg:erc-color-face5 ((t (:background "brown")))) - (bg:erc-color-face6 ((t (:background "purple")))) - (bg:erc-color-face7 ((t (:background "orange")))) - (bg:erc-color-face8 ((t (:background "yellow")))) - (bg:erc-color-face9 ((t (:background "green")))) - (blank-space-face ((t (:background "LightGray")))) - (blank-tab-face ((t (:background "Wheat")))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t :foreground "cyan" :weight bold)))) - (bold-italic ((t (:italic t :bold t :foreground "cyan2" :slant italic :weight bold)))) - (border ((t (:background "black")))) - (border-glyph ((t (nil)))) - (buffers-tab ((t (:background "gray30" :foreground "LightSkyBlue")))) - (calendar-today-face ((t (:underline t)))) - (change-log-acknowledgement-face ((t (:foreground "firebrick")))) - (change-log-conditionals-face ((t (:background "sienna" :foreground "khaki")))) - (change-log-date-face ((t (:foreground "gold")))) - (change-log-email-face ((t (:foreground "khaki" :underline t)))) - (change-log-file-face ((t (:bold t :foreground "lemon chiffon" :weight bold)))) - (change-log-function-face ((t (:background "sienna" :foreground "khaki")))) - (change-log-list-face ((t (:foreground "wheat")))) - (change-log-name-face ((t (:bold t :foreground "light goldenrod" :weight bold)))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (comint-input-face ((t (:foreground "deepskyblue")))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue" :weight bold)))) - (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red" :slant italic :weight bold)))) - (cperl-invalid-face ((t (:foreground "white")))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (cursor ((t (:background "Yellow")))) - (custom-button-face ((t (:bold t :weight bold)))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "gray30")))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:foreground "white")))) - (custom-comment-tag-face ((t (:foreground "white")))) - (custom-documentation-face ((t (:foreground "light blue")))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:bold t :foreground "gray85" :underline t :weight bold)))) - (custom-group-tag-face-1 ((t (:foreground "gray85" :underline t)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "gray30" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "gray85")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :foreground "gray85" :underline t :weight bold)))) - (cvs-filename-face ((t (:foreground "white")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:foreground "green")))) - (cvs-marked-face ((t (:bold t :foreground "green3" :weight bold)))) - (cvs-msg-face ((t (:foreground "gray85")))) - (cvs-need-action-face ((t (:foreground "yellow")))) - (cvs-unknown-face ((t (:foreground "grey")))) - (cyan ((t (:foreground "cyan")))) - (diary-face ((t (:bold t :foreground "gray85" :weight bold)))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (:foreground "grey50")))) - (diff-file-header-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-function-face ((t (:foreground "grey50")))) - (diff-header-face ((t (:foreground "lemon chiffon")))) - (diff-hunk-header-face ((t (:background "grey85")))) - (diff-index-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-nonexistent-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-removed-face ((t (nil)))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t :weight bold)))) - (dired-face-executable ((t (:foreground "gray85")))) - (dired-face-flagged ((t (:background "LightSlateGray")))) - (dired-face-header ((t (:background "grey75" :foreground "gray30")))) - (dired-face-marked ((t (:background "PaleVioletRed")))) - (dired-face-permissions ((t (:background "grey75" :foreground "gray30")))) - (dired-face-setuid ((t (:foreground "gray85")))) - (dired-face-socket ((t (:foreground "gray85")))) - (dired-face-symlink ((t (:foreground "cyan")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "gray85")))) - (ebrowse-default-face ((t (nil)))) - (ebrowse-file-name-face ((t (:italic t :slant italic)))) - (ebrowse-member-attribute-face ((t (:foreground "red")))) - (ebrowse-member-class-face ((t (:foreground "Gray85")))) - (ebrowse-progress-face ((t (:background "blue")))) - (ebrowse-root-class-face ((t (:bold t :foreground "Gray85" :weight bold)))) - (ebrowse-tree-mark-face ((t (:foreground "Gray85")))) - (ecb-bucket-token-face ((t (:bold t :weight bold)))) - (ecb-default-general-face ((t (:height 1.0)))) - (ecb-default-highlight-face ((t (:background "magenta" :height 1.0)))) - (ecb-directories-general-face ((t (:height 0.9)))) - (ecb-directory-face ((t (:background "Cyan4")))) - (ecb-history-face ((t (:background "Cyan4")))) - (ecb-history-general-face ((t (:height 0.9)))) - (ecb-method-face ((t (:background "Cyan4" :slant normal :weight normal)))) - (ecb-methods-general-face ((t (:slant normal)))) - (ecb-source-face ((t (:background "Cyan4")))) - (ecb-source-in-directories-buffer-face ((t (:foreground "LightBlue1")))) - (ecb-sources-face ((t (:foreground "LightBlue1")))) - (ecb-sources-general-face ((t (:height 0.9)))) - (ecb-token-header-face ((t (:background "Steelblue4")))) - (ecb-type-token-class-face ((t (:bold t :weight bold)))) - (ecb-type-token-enum-face ((t (:bold t :weight bold)))) - (ecb-type-token-group-face ((t (:bold t :foreground "dim gray" :weight bold)))) - (ecb-type-token-interface-face ((t (:bold t :weight bold)))) - (ecb-type-token-struct-face ((t (:bold t :weight bold)))) - (ecb-type-token-typedef-face ((t (:bold t :weight bold)))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Gray30")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Gray30")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Gray30")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Gray30")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Gray30")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Gray30")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Gray30")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Gray30")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (erc-action-face ((t (:bold t :weight bold)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-dangerous-host-face ((t (:foreground "red")))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "pale green")))) - (erc-error-face ((t (:bold t :foreground "gray85" :weight bold)))) - (erc-fool-face ((t (:foreground "Gray85")))) - (erc-highlight-face ((t (:bold t :foreground "pale green" :weight bold)))) - (erc-input-face ((t (:foreground "light blue")))) - (erc-inverse-face ((t (:background "Black" :foreground "White")))) - (erc-keyword-face ((t (:bold t :foreground "pale green" :weight bold)))) - (erc-notice-face ((t (:foreground "light salmon")))) - (erc-pal-face ((t (:foreground "pale green")))) - (erc-prompt-face ((t (:bold t :foreground "light blue" :weight bold)))) - (erc-timestamp-face ((t (:bold t :foreground "green" :weight bold)))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :weight bold)))) - (eshell-ls-backup-face ((t (:foreground "gray85")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "gray85" :weight bold)))) - (eshell-ls-directory-face ((t (:bold t :foreground "Cyan" :weight bold)))) - (eshell-ls-executable-face ((t (:bold t :weight bold)))) - (eshell-ls-missing-face ((t (:bold t :weight bold)))) - (eshell-ls-picture-face ((t (:foreground "gray85")))) - (eshell-ls-product-face ((t (:foreground "gray85")))) - (eshell-ls-readonly-face ((t (:foreground "gray70")))) - (eshell-ls-special-face ((t (:bold t :weight bold)))) - (eshell-ls-symlink-face ((t (:bold t :weight bold)))) - (eshell-ls-text-face ((t (:foreground "gray85")))) - (eshell-ls-todo-face ((t (:bold t :weight bold)))) - (eshell-ls-unreadable-face ((t (:foreground "gray85")))) - (eshell-prompt-face ((t (:bold t :foreground "Yellow" :weight bold)))) - (eshell-test-failed-face ((t (:bold t :weight bold)))) - (eshell-test-ok-face ((t (:bold t :weight bold)))) - (excerpt ((t (:italic t :slant italic)))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "gray85" :weight bold)))) - (fg:black ((t (:foreground "black")))) - (fg:erc-color-face0 ((t (:foreground "White")))) - (fg:erc-color-face1 ((t (:foreground "black")))) - (fg:erc-color-face10 ((t (:foreground "lightblue1")))) - (fg:erc-color-face11 ((t (:foreground "cyan")))) - (fg:erc-color-face12 ((t (:foreground "blue")))) - (fg:erc-color-face13 ((t (:foreground "deeppink")))) - (fg:erc-color-face14 ((t (:foreground "gray50")))) - (fg:erc-color-face15 ((t (:foreground "gray90")))) - (fg:erc-color-face2 ((t (:foreground "blue4")))) - (fg:erc-color-face3 ((t (:foreground "green4")))) - (fg:erc-color-face4 ((t (:foreground "red")))) - (fg:erc-color-face5 ((t (:foreground "brown")))) - (fg:erc-color-face6 ((t (:foreground "purple")))) - (fg:erc-color-face7 ((t (:foreground "orange")))) - (fg:erc-color-face8 ((t (:foreground "yellow")))) - (fg:erc-color-face9 ((t (:foreground "green")))) - (fixed ((t (:bold t :weight bold)))) - (fixed-pitch ((t (:family "outline-lucida console")))) - (fl-comment-face ((t (:foreground "gray85")))) - (fl-function-name-face ((t (:foreground "green")))) - (fl-keyword-face ((t (:foreground "LightGreen")))) - (fl-string-face ((t (:foreground "light coral")))) - (fl-type-face ((t (:foreground "cyan")))) - (flyspell-duplicate-face ((t (:bold t :foreground "Gold3" :underline t :weight bold)))) - (flyspell-incorrect-face ((t (:bold t :foreground "OrangeRed" :underline t :weight bold)))) - (font-latex-bold-face ((t (nil)))) - (font-latex-italic-face ((t (nil)))) - (font-latex-math-face ((t (nil)))) - (font-latex-sedate-face ((t (:foreground "Gray85")))) - (font-latex-string-face ((t (:foreground "orange")))) - (font-latex-warning-face ((t (:foreground "gold")))) - (font-lock-builtin-face ((t (:bold t :foreground "LightSteelBlue" :weight bold)))) - (font-lock-comment-face ((t (:italic t :foreground "medium aquamarine" :slant italic)))) - (font-lock-constant-face ((t (:bold t :foreground "Aquamarine" :weight bold)))) - (font-lock-doc-face ((t (:bold t :weight bold)))) - (font-lock-doc-string-face ((t (:bold t :foreground "aquamarine" :weight bold)))) - (font-lock-exit-face ((t (:foreground "green")))) - (font-lock-function-name-face ((t (:italic t :bold t :foreground "LightSkyBlue" :slant italic :weight bold)))) - (font-lock-keyword-face ((t (:bold t :foreground "Cyan" :weight bold)))) - (font-lock-preprocessor-face ((t (:foreground "Gray85")))) - (font-lock-reference-face ((t (:foreground "cyan")))) - (font-lock-string-face ((t (:italic t :foreground "aquamarine" :slant italic)))) - (font-lock-type-face ((t (:bold t :foreground "PaleGreen" :weight bold)))) - (font-lock-variable-name-face ((t (:italic t :bold t :foreground "LightGoldenrod" :slant italic :weight bold)))) - (font-lock-warning-face ((t (:bold t :foreground "Salmon" :weight bold)))) - (fringe ((t (:background "#3c5473")))) - (gnus-cite-attribution-face ((t (:italic t :bold t :foreground "beige" :underline t :slant italic :weight bold)))) - (gnus-cite-face-1 ((t (:foreground "gold")))) - (gnus-cite-face-10 ((t (:foreground "coral")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "wheat")))) - (gnus-cite-face-3 ((t (:foreground "light pink")))) - (gnus-cite-face-4 ((t (:foreground "khaki")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :foreground "light gray" :weight bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :foreground "cyan" :slant italic :weight bold)))) - (gnus-emphasis-highlight-words ((t (:background "gray30" :foreground "gold")))) - (gnus-emphasis-italic ((t (:italic t :foreground "cyan" :slant italic)))) - (gnus-emphasis-underline ((t (:foreground "white" :underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :foreground "white" :underline t :weight bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :foreground "white" :underline t :slant italic :weight bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :foreground "white" :underline t :slant italic)))) - (gnus-filterhist-face-1 ((t (nil)))) - (gnus-group-mail-1-empty-face ((t (:foreground "Magenta")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "Magenta" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "Cyan")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "Cyan" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "Wheat")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "Gray85" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (gnus-group-news-3-empty-face ((t (:foreground "wheat")))) - (gnus-group-news-3-face ((t (:bold t :foreground "Wheat" :weight bold)))) - (gnus-group-news-4-empty-face ((t (:foreground "Aquamarine")))) - (gnus-group-news-4-face ((t (:bold t :weight bold)))) - (gnus-group-news-5-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-5-face ((t (:bold t :weight bold)))) - (gnus-group-news-6-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-6-face ((t (:bold t :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-low-face ((t (:bold t :foreground "MediumAquamarine" :weight bold)))) - (gnus-header-content-face ((t (:italic t :foreground "Wheat" :slant italic)))) - (gnus-header-from-face ((t (:bold t :foreground "light yellow" :weight bold)))) - (gnus-header-name-face ((t (:bold t :foreground "Wheat" :weight bold)))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "gold" :slant italic :weight bold)))) - (gnus-header-subject-face ((t (:bold t :foreground "Gold" :weight bold)))) - (gnus-picons-face ((t (:background "white" :foreground "gray30")))) - (gnus-picons-xbm-face ((t (:background "white" :foreground "gray30")))) - (gnus-signature-face ((t (:italic t :foreground "white" :slant italic)))) - (gnus-splash ((t (:foreground "Brown")))) - (gnus-splash-face ((t (:foreground "orange")))) - (gnus-summary-cancelled-face ((t (:background "gray30" :foreground "orange")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "gray85" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "coral" :weight bold)))) - (gnus-summary-high-unread-face ((t (:italic t :bold t :foreground "gold" :slant italic :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue" :slant italic)))) - (gnus-summary-low-read-face ((t (:italic t :foreground "gray85" :slant italic)))) - (gnus-summary-low-ticked-face ((t (:italic t :bold t :foreground "coral" :slant italic :weight bold)))) - (gnus-summary-low-unread-face ((t (:italic t :foreground "white" :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "gray70")))) - (gnus-summary-normal-ticked-face ((t (:bold t :foreground "pink" :weight bold)))) - (gnus-summary-normal-unread-face ((t (:bold t :foreground "gray85" :weight bold)))) - (gnus-summary-selected-face ((t (:foreground "white" :underline t)))) - (gnus-x-face ((t (:background "white" :foreground "gray30")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "gray30")))) - (gui-element ((t (:background "Gray80")))) - (header-line ((t (:background "grey20" :foreground "grey90")))) - (hi-black-b ((t (:bold t :weight bold)))) - (hi-black-hb ((t (:bold t :weight bold :height 1.67 :family "helv")))) - (hi-blue ((t (:background "light blue")))) - (hi-blue-b ((t (:bold t :foreground "blue" :weight bold)))) - (hi-green ((t (:background "green")))) - (hi-green-b ((t (:bold t :foreground "green" :weight bold)))) - (hi-pink ((t (:background "pink")))) - (hi-red-b ((t (:bold t :foreground "red" :weight bold)))) - (hi-yellow ((t (:background "yellow")))) - (highlight ((t (:background "SkyBlue3")))) - (highlight-changes-delete-face ((t (:foreground "gray85" :underline t)))) - (highlight-changes-face ((t (:foreground "gray85")))) - (highline-face ((t (:background "#3c5473")))) - (highline-vertical-face ((t (:background "lightcyan")))) - (holiday-face ((t (:background "pink" :foreground "gray30")))) - (html-helper-bold-face ((t (:bold t :weight bold)))) - (html-helper-bold-italic-face ((t (nil)))) - (html-helper-builtin-face ((t (:foreground "gray85" :underline t)))) - (html-helper-italic-face ((t (:bold t :foreground "yellow" :weight bold)))) - (html-helper-underline-face ((t (:underline t)))) - (html-tag-face ((t (:bold t :weight bold)))) - (hyper-apropos-documentation ((t (:foreground "white")))) - (hyper-apropos-heading ((t (:bold t :weight bold)))) - (hyper-apropos-hyperlink ((t (:foreground "sky blue")))) - (hyper-apropos-major-heading ((t (:bold t :weight bold)))) - (hyper-apropos-section-heading ((t (:bold t :weight bold)))) - (hyper-apropos-warning ((t (:bold t :foreground "gray85" :weight bold)))) - (ibuffer-marked-face ((t (:foreground "gray85")))) - (idlwave-help-link-face ((t (:foreground "Blue")))) - (idlwave-shell-bp-face ((t (:background "Pink" :foreground "Black")))) - (info-header-node ((t (:italic t :bold t :foreground "brown" :slant italic :weight bold)))) - (info-header-xref ((t (:bold t :foreground "magenta4" :weight bold)))) - (info-menu-5 ((t (:underline t)))) - (info-menu-6 ((t (nil)))) - (info-menu-header ((t (:bold t :weight bold :family "helv")))) - (info-node ((t (:italic t :bold t :slant italic :weight bold)))) - (info-xref ((t (:bold t :weight bold)))) - (isearch ((t (:background "LightSeaGreen")))) - (isearch-lazy-highlight-face ((t (:background "cyan4")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (:italic t :bold t :slant italic :weight bold)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-bug-breakpoint-marker ((t (:background "yellow" :foreground "red")))) - (jde-java-font-lock-api-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-bold-face ((t (:bold t :weight bold)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-italic-face ((t (:italic t :slant italic)))) - (jde-java-font-lock-link-face ((t (:foreground "cyan3" :underline t)))) - (jde-java-font-lock-modifier-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-number-face ((t (:foreground "RosyBrown")))) - (jde-java-font-lock-operator-face ((t (:foreground "cyan3")))) - (jde-java-font-lock-package-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (lazy-highlight-face ((t (:bold t :foreground "yellow" :weight bold)))) - (left-margin ((t (nil)))) - (linemenu-face ((t (:background "gray30")))) - (list-mode-item-selected ((t (:background "gray68")))) - (log-view-file-face ((t (:bold t :background "grey70" :weight bold)))) - (log-view-message-face ((t (:background "grey85")))) - (magenta ((t (:foreground "gray85")))) - (makefile-space-face ((t (:background "hotpink" :foreground "white")))) - (man-bold ((t (:bold t :weight bold)))) - (man-heading ((t (:bold t :weight bold)))) - (man-italic ((t (:foreground "yellow")))) - (man-xref ((t (:underline t)))) - (menu ((t (:background "wheat" :foreground "gray30")))) - (message-cited-text ((t (:foreground "orange")))) - (message-cited-text-face ((t (:foreground "medium aquamarine")))) - (message-header-cc-face ((t (:bold t :foreground "gray85" :weight bold)))) - (message-header-contents ((t (:foreground "white")))) - (message-header-name-face ((t (:foreground "gray85")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "gray85")))) - (message-header-subject-face ((t (:bold t :foreground "green3" :weight bold)))) - (message-header-to-face ((t (:bold t :foreground "green2" :weight bold)))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-headers ((t (:bold t :foreground "orange" :weight bold)))) - (message-highlighted-header-contents ((t (:bold t :weight bold)))) - (message-mml-face ((t (:bold t :foreground "gray85" :weight bold)))) - (message-separator-face ((t (:foreground "gray85")))) - (message-url ((t (:bold t :foreground "pink" :weight bold)))) - (mmm-default-submode-face ((t (:background "#c0c0c5")))) - (mmm-face ((t (:background "black" :foreground "green")))) - (modeline ((t (:background "#3c5473" :foreground "lightgray" :box (:line-width -1 :style released-button :family "helv"))))) - (modeline-buffer-id ((t (:background "white" :foreground "DeepSkyBlue3" :slant normal :weight normal :width normal :family "outline-verdana")))) - (modeline-mousable ((t (:background "white" :foreground "DeepSkyBlue3")))) - (modeline-mousable-minor-mode ((t (:background "white" :foreground "DeepSkyBlue3")))) - (mouse ((t (:background "Grey")))) - (my-summary-highlight-face ((t (:background "PaleTurquoise4" :foreground "White")))) - (my-url-face ((t (:foreground "LightBlue")))) - (nil ((t (nil)))) - (paren-blink-off ((t (:foreground "gray80")))) - (paren-face-match ((t (:background "turquoise")))) - (paren-face-mismatch ((t (:background "purple" :foreground "white")))) - (paren-face-no-match ((t (:background "yellow" :foreground "gray30")))) - (paren-match ((t (:background "darkseagreen2")))) - (paren-mismatch ((t (:background "RosyBrown" :foreground "gray30")))) - (paren-mismatch-face ((t (:bold t :background "white" :foreground "red" :weight bold)))) - (paren-no-match-face ((t (:bold t :background "white" :foreground "red" :weight bold)))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray40")))) - (reb-match-0 ((t (:background "lightblue")))) - (reb-match-1 ((t (:background "aquamarine")))) - (reb-match-2 ((t (:background "springgreen")))) - (reb-match-3 ((t (:background "yellow")))) - (red ((t (:foreground "red")))) - (region ((t (:background "Cyan4")))) - (right-margin ((t (nil)))) - (scroll-bar ((t (:background "grey75")))) - (secondary-selection ((t (:background "gray60")))) - (semantic-dirty-token-face ((t (:background "gray10")))) - (semantic-intangible-face ((t (:foreground "gray25")))) - (semantic-read-only-face ((t (:background "gray25")))) - (semantic-unmatched-syntax-face ((t (:underline "red")))) - (senator-intangible-face ((t (:foreground "gray75")))) - (senator-momentary-highlight-face ((t (:background "gray70")))) - (senator-read-only-face ((t (:background "#664444")))) - (sgml-comment-face ((t (:foreground "dark turquoise")))) - (sgml-doctype-face ((t (:foreground "turquoise")))) - (sgml-end-tag-face ((t (:foreground "aquamarine")))) - (sgml-entity-face ((t (:foreground "gray85")))) - (sgml-ignored-face ((t (:background "gray60" :foreground "gray40")))) - (sgml-ms-end-face ((t (:foreground "green")))) - (sgml-ms-start-face ((t (:foreground "yellow")))) - (sgml-pi-face ((t (:foreground "lime green")))) - (sgml-sgml-face ((t (:foreground "brown")))) - (sgml-short-ref-face ((t (:foreground "deep sky blue")))) - (sgml-start-tag-face ((t (:foreground "aquamarine")))) - (sh-heredoc-face ((t (:foreground "tan")))) - (shell-option-face ((t (:foreground "gray85")))) - (shell-output-2-face ((t (:foreground "gray85")))) - (shell-output-3-face ((t (:foreground "gray85")))) - (shell-output-face ((t (:bold t :weight bold)))) - (shell-prompt-face ((t (:foreground "yellow")))) - (show-paren-match-face ((t (:bold t :background "turquoise" :weight bold)))) - (show-paren-mismatch-face ((t (:bold t :background "RosyBrown" :foreground "white" :weight bold)))) - (show-tabs-space-face ((t (:foreground "yellow")))) - (show-tabs-tab-face ((t (:foreground "red")))) - (smerge-base-face ((t (:foreground "red")))) - (smerge-markers-face ((t (:background "grey85")))) - (smerge-mine-face ((t (:foreground "Gray85")))) - (smerge-other-face ((t (:foreground "darkgreen")))) - (speedbar-button-face ((t (:bold t :weight bold)))) - (speedbar-directory-face ((t (:bold t :weight bold)))) - (speedbar-file-face ((t (:bold t :weight bold)))) - (speedbar-highlight-face ((t (:background "sea green")))) - (speedbar-selected-face ((t (:underline t)))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (strokes-char-face ((t (:background "lightgray")))) - (swbuff-current-buffer-face ((t (:bold t :foreground "gray85" :weight bold)))) - (template-message-face ((t (:bold t :weight bold)))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (:background "black")))) - (term-blue ((t (:foreground "blue")))) - (term-bluebg ((t (:background "blue")))) - (term-bold ((t (:bold t :weight bold)))) - (term-cyan ((t (:foreground "cyan")))) - (term-cyanbg ((t (:background "cyan")))) - (term-default ((t (:background "gray80" :foreground "gray30" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-lucida console")))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-green ((t (:foreground "green")))) - (term-greenbg ((t (:background "green")))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (:foreground "magenta")))) - (term-magentabg ((t (:background "magenta")))) - (term-red ((t (:foreground "red")))) - (term-redbg ((t (:background "red")))) - (term-underline ((t (:underline t)))) - (term-white ((t (:foreground "white")))) - (term-whitebg ((t (:background "white")))) - (term-yellow ((t (:foreground "yellow")))) - (term-yellowbg ((t (:background "yellow")))) - (tex-math-face ((t (:foreground "RosyBrown")))) - (texinfo-heading-face ((t (:foreground "Blue")))) - (text-cursor ((t (:background "Red3" :foreground "gray80")))) - (tool-bar ((t (:background "grey75" :foreground "black")))) - (toolbar ((t (:background "Gray80")))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (vc-annotate-face-0046FF ((t (:background "black" :foreground "wheat")))) - (vcursor ((t (:background "cyan" :foreground "blue" :underline t)))) - (vertical-divider ((t (:background "Gray80")))) - (vhdl-font-lock-attribute-face ((t (:foreground "gray85")))) - (vhdl-font-lock-directive-face ((t (:foreground "gray85")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "gray85")))) - (vhdl-font-lock-function-face ((t (:foreground "gray85")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "gray85" :weight bold)))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "gray85" :weight bold)))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "gray85")))) - (vhdl-speedbar-architecture-selected-face ((t (:foreground "gray85" :underline t)))) - (vhdl-speedbar-configuration-face ((t (:foreground "gray85")))) - (vhdl-speedbar-configuration-selected-face ((t (:foreground "gray85" :underline t)))) - (vhdl-speedbar-entity-face ((t (:foreground "gray85")))) - (vhdl-speedbar-entity-selected-face ((t (:foreground "gray85" :underline t)))) - (vhdl-speedbar-instantiation-face ((t (:foreground "gray85")))) - (vhdl-speedbar-instantiation-selected-face ((t (:foreground "gray85" :underline t)))) - (vhdl-speedbar-package-face ((t (:foreground "gray85")))) - (vhdl-speedbar-package-selected-face ((t (:foreground "gray85" :underline t)))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (vm-header-content-face ((t (:italic t :foreground "wheat" :slant italic)))) - (vm-header-from-face ((t (:italic t :foreground "wheat" :slant italic)))) - (vm-header-name-face ((t (:foreground "cyan")))) - (vm-header-subject-face ((t (:foreground "cyan")))) - (vm-header-to-face ((t (:italic t :foreground "cyan" :slant italic)))) - (vm-message-cited-face ((t (:foreground "Gray80")))) - (vm-monochrome-image ((t (:background "white" :foreground "gray30")))) - (vm-summary-face-1 ((t (:foreground "MediumAquamarine")))) - (vm-summary-face-2 ((t (:foreground "MediumAquamarine")))) - (vm-summary-face-3 ((t (:foreground "MediumAquamarine")))) - (vm-summary-face-4 ((t (:foreground "MediumAquamarine")))) - (vm-summary-highlight-face ((t (:foreground "White")))) - (vm-xface ((t (:background "white" :foreground "gray30")))) - (vmpc-pre-sig-face ((t (:foreground "gray85")))) - (vmpc-sig-face ((t (:foreground "gray85")))) - (vvb-face ((t (:background "pink" :foreground "gray30")))) - (w3m-anchor-face ((t (:bold t :foreground "gray85" :weight bold)))) - (w3m-arrived-anchor-face ((t (:bold t :foreground "gray85" :weight bold)))) - (w3m-header-line-location-content-face ((t (:background "dark olive green" :foreground "wheat")))) - (w3m-header-line-location-title-face ((t (:background "dark olive green" :foreground "beige")))) - (white ((t (:foreground "white")))) - (widget ((t (nil)))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "gray85")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85" :foreground "gray30")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "dim gray" :foreground "white")))) - (woman-addition-face ((t (:foreground "orange")))) - (woman-bold-face ((t (:bold t :weight bold)))) - (woman-italic-face ((t (:foreground "beige")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))) - (x-face ((t (:background "white" :foreground "gray30")))) - (xrdb-option-name-face ((t (:foreground "gray85")))) - (xref-keyword-face ((t (:foreground "gray85")))) - (xref-list-default-face ((t (nil)))) - (xref-list-pilot-face ((t (:foreground "gray85")))) - (xref-list-symbol-face ((t (:foreground "navy")))) - (xsl-fo-alternate-face ((t (:foreground "Yellow")))) - (xsl-fo-main-face ((t (:foreground "PaleGreen")))) - (xsl-other-element-face ((t (:foreground "Coral")))) - (xsl-xslt-alternate-face ((t (:foreground "LightGray")))) - (xsl-xslt-main-face ((t (:foreground "Wheat")))) - (xxml-emph-1-face ((t (:background "lightyellow")))) - (xxml-emph-2-face ((t (:background "lightyellow")))) - (xxml-header-1-face ((t (:background "seashell1" :foreground "MediumAquamarine")))) - (xxml-header-2-face ((t (:background "seashell1" :foreground "SkyBlue")))) - (xxml-header-3-face ((t (:background "seashell1")))) - (xxml-header-4-face ((t (:background "seashell1")))) - (xxml-interaction-face ((t (:background "lightcyan")))) - (xxml-rug-face ((t (:background "cyan")))) - (xxml-sparkle-face ((t (:background "yellow")))) - (xxml-unbreakable-space-face ((t (:foreground "grey" :underline t)))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "Cyan4"))))))) - -(defun color-theme-blue-mood () - "Color theme by Nelson Loyola, created 2002-04-15. -Includes cperl, custom, font-lock, p4, speedbar, widget." - (interactive) - (color-theme-install - '(color-theme-blue-mood - ((background-color . "DodgerBlue4") - (background-mode . dark) - (background-toolbar-color . "#bfbfbfbfbfbf") - (border-color . "Blue") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#6c6c68686868") - (cursor-color . "DarkGoldenrod1") - (foreground-color . "white smoke") - (mouse-color . "black") - (top-toolbar-shadow-color . "#e5e5e0e0e1e1")) - ((vc-annotate-very-old-color . "#0046FF")) - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (nil)))) - (border-glyph ((t (nil)))) - (cmode-bracket-face ((t (:bold t)))) - (cperl-array-face ((t (:bold t :foreground "wheat")))) - (cperl-hash-face ((t (:bold t :foreground "chartreuse")))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:bold t :foreground "cyan")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue")))) - (font-lock-builtin-face ((t (:bold t :foreground "wheat")))) - (font-lock-comment-face ((t (:bold t :foreground "gray72")))) - (font-lock-constant-face ((t (:bold t :foreground "cyan3")))) - (font-lock-doc-string-face ((t (:foreground "#00C000")))) - (font-lock-function-name-face ((t (:bold t :foreground "chartreuse")))) - (font-lock-keyword-face ((t (:bold t :foreground "gold1")))) - (font-lock-other-emphasized-face ((t (:bold t :foreground "gold1")))) - (font-lock-other-type-face ((t (:bold t :foreground "gold1")))) - (font-lock-preprocessor-face ((t (:foreground "plum")))) - (font-lock-reference-face ((t (:bold t :foreground "orangered")))) - (font-lock-string-face ((t (:foreground "tomato")))) - (font-lock-type-face ((t (:bold t :foreground "gold1")))) - (font-lock-variable-name-face ((t (:foreground "light yellow")))) - (font-lock-warning-face ((t (:foreground "tomato")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:size "nil" :background "#e7e3d6" :foreground" #000000")))) - (highlight ((t (:background "red" :foreground "yellow")))) - (isearch ((t (:bold t :background "pale turquoise" :foreground "blue")))) - (italic ((t (nil)))) - (lazy-highlight-face ((t (:bold t :foreground "dark magenta")))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:bold t :background "gray68" :foreground "yellow")))) - (modeline ((t (:background "goldenrod" :foreground "darkblue")))) - (modeline-buffer-id ((t (:background "goldenrod" :foreground "darkblue")))) - (modeline-mousable ((t (:background "goldenrod" :foreground "darkblue")))) - (modeline-mousable-minor-mode ((t (:background "goldenrod" :foreground "darkblue")))) - (my-tab-face ((t (:background "SlateBlue1")))) - (p4-depot-added-face ((t (:foreground "steelblue1")))) - (p4-depot-deleted-face ((t (:foreground "red")))) - (p4-depot-unmapped-face ((t (:foreground "grey90")))) - (p4-diff-change-face ((t (:foreground "dark green")))) - (p4-diff-del-face ((t (:bold t :foreground "salmon")))) - (p4-diff-file-face ((t (:background "blue")))) - (p4-diff-head-face ((t (:background "blue")))) - (p4-diff-ins-face ((t (:foreground "steelblue1")))) - (paren-blink-off ((t (:foreground "DodgerBlue4")))) - (paren-match ((t (:background "red" :foreground "yellow")))) - (paren-mismatch ((t (:background "DeepPink")))) - (pointer ((t (:background "white")))) - (primary-selection ((t (:bold t :background "medium sea green")))) - (red ((t (:foreground "red")))) - (region ((t (:background "red" :foreground "yellow")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "gray91" :foreground "sienna3")))) - (show-paren-match-face ((t (:background "cyan3" :foreground "blue")))) - (show-paren-mismatch-face ((t (:background "red" :foreground "blue")))) - (show-trailing-whitespace ((t (:background "red" :foreground "blue")))) - (speedbar-button-face ((t (:foreground "white")))) - (speedbar-directory-face ((t (:foreground "gray")))) - (speedbar-file-face ((t (:foreground "gold1")))) - (speedbar-highlight-face ((t (:background "lightslateblue" :foreground "gold1")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "chartreuse")))) - (text-cursor ((t (:background "DarkGoldenrod1" :foreground "DodgerBlue4")))) - (toolbar ((t (:background "#e7e3d6" :foreground "#000000")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (:background "#e7e3d6" :foreground "#000000")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "white" :foreground "midnightblue"))))))) - -(defun color-theme-euphoria () - "Color theme by oGLOWo, created 2000-04-19. -Green on black theme including font-lock, speedbar, and widget." - (interactive) - (color-theme-install - '(color-theme-euphoria - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "yellow") - (foreground-color . "#00ff00") - (mouse-color . "yellow")) - ((help-highlight-face . underline) - (list-matching-lines-face . bold) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "black" :foreground "#00ff00" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "misc-fixed")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cursor ((t (:background "yellow")))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:foreground "magenta")))) - (font-lock-comment-face ((t (:foreground "deeppink")))) - (font-lock-constant-face ((t (:foreground "blue")))) - (font-lock-doc-face ((t (:foreground "cyan")))) - (font-lock-doc-string-face ((t (:foreground "cyan")))) - (font-lock-function-name-face ((t (:foreground "purple")))) - (font-lock-keyword-face ((t (:foreground "red")))) - (font-lock-preprocessor-face ((t (:foreground "blue1")))) - (font-lock-reference-face ((t (nil)))) - (font-lock-string-face ((t (:foreground "cyan")))) - (font-lock-type-face ((t (:foreground "yellow")))) - (font-lock-variable-name-face ((t (:foreground "violet")))) - (font-lock-warning-face ((t (:bold t :foreground "red" :weight bold)))) - (fringe ((t (:background "gray16" :foreground "#00ff00")))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey20" :foreground "grey90" :box nil)))) - (highlight ((t (:background "darkolivegreen")))) - (horizontal-divider ((t (:background "gray16" :foreground "#00ff00")))) - (isearch ((t (:background "palevioletred2" :foreground "brown4")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (menu ((t (:background "gray16" :foreground "green")))) - (modeline ((t (:background "gray16" :foreground "#00ff00" :box (:line-width -1 :style released-button))))) - (modeline-buffer-id ((t (:background "gray16" :foreground "#00ff00")))) - (modeline-mousable ((t (:background "gray16" :foreground "#00ff00")))) - (modeline-mousable-minor-mode ((t (:background "gray16" :foreground "#00ff00")))) - (mouse ((t (:background "yellow")))) - (primary-selection ((t (:background "#00ff00" :foreground "black")))) - (region ((t (:background "steelblue" :foreground "white")))) - (scroll-bar ((t (:background "gray16" :foreground "#00ff00")))) - (secondary-selection ((t (:background "#00ff00" :foreground "black")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:foreground "#00ff00")))) - (speedbar-directory-face ((t (:foreground "#00ff00")))) - (speedbar-file-face ((t (:foreground "cyan")))) - (speedbar-highlight-face ((t (:background "#00ff00" :foreground "purple")))) - (speedbar-selected-face ((t (:foreground "deeppink" :underline t)))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (tool-bar ((t (:background "gray16" :foreground "green" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "gray16" :foreground "#00ff00")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (vertical-divider ((t (:background "gray16" :foreground "#00ff00")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray")))) - (zmacs-region ((t (:background "steelblue" :foreground "white"))))))) - -(defun color-theme-resolve () - "Color theme by Damien Elmes, created 2002-04-24. -A white smoke on blue color theme." - (interactive) - (color-theme-install - '(color-theme-resolve - ((background-color . "#00457f") - (background-mode . dark) - (border-color . "black") - (cursor-color . "DarkGoldenrod1") - (foreground-color . "white smoke") - (mouse-color . "white")) - ((display-time-mail-face . mode-line) - (help-highlight-face . underline) - (list-matching-lines-face . bold) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "#00457f" :foreground "white smoke" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "b&h-lucidatypewriter")))) - (bold ((t (:bold t :foreground "snow2" :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (calendar-today-face ((t (:underline t)))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cperl-array-face ((t (:bold t :foreground "wheat" :weight bold)))) - (cperl-hash-face ((t (:bold t :foreground "chartreuse" :weight bold)))) - (cursor ((t (:background "DarkGoldenrod1")))) - (diary-face ((t (:foreground "yellow")))) - (erc-input-face ((t (:foreground "lightblue2")))) - (erc-notice-face ((t (:foreground "lightyellow3")))) - (fixed-pitch ((t (:family "courier")))) - (font-latex-bold-face ((t (:bold t :foreground "DarkOliveGreen" :weight bold)))) - (font-latex-italic-face ((t (:italic t :foreground "DarkOliveGreen" :slant italic)))) - (font-latex-math-face ((t (:foreground "burlywood")))) - (font-latex-sedate-face ((t (:foreground "LightGray")))) - (font-latex-string-face ((t (:foreground "RosyBrown")))) - (font-latex-warning-face ((t (:bold t :foreground "Red" :weight bold)))) - (font-lock-builtin-face ((t (:foreground "wheat")))) - (font-lock-comment-face ((t (:foreground "light steel blue")))) - (font-lock-constant-face ((t (:foreground "seashell3")))) - (font-lock-doc-face ((t (:foreground "plum")))) - (font-lock-doc-string-face ((t (:foreground "#008000")))) - (font-lock-function-name-face ((t (:foreground "thistle1")))) - (font-lock-keyword-face ((t (:foreground "wheat")))) - (font-lock-other-emphasized-face ((t (:bold t :foreground "gold1" :weight bold)))) - (font-lock-other-type-face ((t (:bold t :foreground "gold1" :weight bold)))) - (font-lock-preprocessor-face ((t (:foreground "#800080")))) - (font-lock-reference-face ((t (:foreground "wheat")))) - (font-lock-string-face ((t (:foreground "plum")))) - (font-lock-type-face ((t (:foreground "lawn green")))) - (font-lock-variable-name-face ((t (:foreground "light yellow")))) - (font-lock-warning-face ((t (:foreground "plum")))) - (fringe ((t (:background "#000000")))) - (gnus-cite-attribution-face ((t (:italic t :slant italic)))) - (gnus-cite-face-1 ((t (:foreground "light blue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "light cyan")))) - (gnus-cite-face-3 ((t (:foreground "light yellow")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :weight bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t :slant italic)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :weight bold)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t :weight bold)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t :weight bold)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise" :weight bold)))) - (gnus-header-content-face ((t (:italic t :foreground "snow2" :slant italic)))) - (gnus-header-from-face ((t (:foreground "spring green")))) - (gnus-header-name-face ((t (:bold t :foreground "snow2" :weight bold)))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "yellow" :slant italic)))) - (gnus-header-subject-face ((t (:bold t :foreground "peach puff" :weight bold)))) - (gnus-signature-face ((t (:italic t :slant italic)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue" :slant italic)))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen" :slant italic)))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink" :slant italic)))) - (gnus-summary-low-unread-face ((t (:italic t :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (header-line ((t (:background "grey20" :foreground "grey90")))) - (highlight ((t (:background "gray91" :foreground "firebrick")))) - (highline-face ((t (:background "paleturquoise" :foreground "black")))) - (holiday-face ((t (:background "chocolate4")))) - (isearch ((t (:background "palevioletred2" :foreground "brown4")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (menu ((t (nil)))) - (message-cited-text-face ((t (:foreground "seashell3")))) - (message-header-cc-face ((t (:bold t :foreground "snow2" :weight bold)))) - (message-header-name-face ((t (:bold t :foreground "snow1" :weight bold)))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "snow2")))) - (message-header-subject-face ((t (:bold t :foreground "snow2" :weight bold)))) - (message-header-to-face ((t (:bold t :foreground "snow2" :weight bold)))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "misty rose")))) - (modeline ((t (:foreground "white" :background "#001040" :box (:line-width -1 :style released-button))))) - (modeline-buffer-id ((t (:foreground "white" :background "#001040")))) - (modeline-mousable ((t (:foreground "white" :background "#001040")))) - (modeline-mousable-minor-mode ((t (:foreground "white" :background "#001040")))) - (mouse ((t (:background "white")))) - (my-tab-face ((t (:background "SlateBlue1")))) - (p4-diff-del-face ((t (:bold t :foreground "salmon" :weight bold)))) - (primary-selection ((t (:background "gray91" :foreground "DodgerBlue4")))) - (region ((t (:background "gray91" :foreground "DodgerBlue4")))) - (scroll-bar ((t (:background "grey75")))) - (secondary-selection ((t (:background "gray91" :foreground "sienna3")))) - (show-paren-match-face ((t (:background "cyan3" :foreground "blue")))) - (show-paren-mismatch-face ((t (:background "red" :foreground "blue")))) - (tool-bar ((t (:background "grey75" :foreground "black")))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "steel blue")))) - (widget-inactive-face ((t (:foreground "grey")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (zmacs-region ((t (:background "gray91" :foreground "DodgerBlue4"))))))) - -(defun color-theme-xp () - "Color theme by Girish Bharadwaj, created 2002-04-25. -Includes custom, erc, font-lock, jde, semantic, speedbar, widget." - (interactive) - (color-theme-install - '(color-theme-xp - ((background-color . "lightyellow2") - (background-mode . light) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "gray20") - (mouse-color . "black")) - ((help-highlight-face . underline) - (list-matching-lines-face . bold) - (semantic-which-function-use-color . t) - (senator-eldoc-use-color . t) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "lightyellow2" :foreground "gray20" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-courier new")))) - (bg:erc-color-face0 ((t (:background "White")))) - (bg:erc-color-face1 ((t (:background "black")))) - (bg:erc-color-face10 ((t (:background "lightblue1")))) - (bg:erc-color-face11 ((t (:background "cyan")))) - (bg:erc-color-face12 ((t (:background "blue")))) - (bg:erc-color-face13 ((t (:background "deeppink")))) - (bg:erc-color-face14 ((t (:background "gray50")))) - (bg:erc-color-face15 ((t (:background "gray90")))) - (bg:erc-color-face2 ((t (:background "blue4")))) - (bg:erc-color-face3 ((t (:background "green4")))) - (bg:erc-color-face4 ((t (:background "red")))) - (bg:erc-color-face5 ((t (:background "brown")))) - (bg:erc-color-face6 ((t (:background "purple")))) - (bg:erc-color-face7 ((t (:background "orange")))) - (bg:erc-color-face8 ((t (:background "yellow")))) - (bg:erc-color-face9 ((t (:background "green")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (button ((t (:underline t)))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "dark blue")))) - (cursor ((t (:background "black")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "gray85")))) - (custom-comment-tag-face ((t (:foreground "blue4")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "red" :weight bold :height 1.2)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "blue" :weight bold :height 1.2)))) - (erc-action-face ((t (:bold t :weight bold)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "IndianRed")))) - (erc-error-face ((t (:background "Red" :foreground "White")))) - (erc-input-face ((t (:foreground "brown")))) - (erc-inverse-face ((t (:background "Black" :foreground "White")))) - (erc-notice-face ((t (:bold t :foreground "SlateBlue" :weight bold)))) - (erc-prompt-face ((t (:bold t :background "lightBlue2" :foreground "Black" :weight bold)))) - (erc-timestamp-face ((t (:bold t :foreground "green" :weight bold)))) - (erc-underline-face ((t (:underline t)))) - (fg:erc-color-face0 ((t (:foreground "White")))) - (fg:erc-color-face1 ((t (:foreground "black")))) - (fg:erc-color-face10 ((t (:foreground "lightblue1")))) - (fg:erc-color-face11 ((t (:foreground "cyan")))) - (fg:erc-color-face12 ((t (:foreground "blue")))) - (fg:erc-color-face13 ((t (:foreground "deeppink")))) - (fg:erc-color-face14 ((t (:foreground "gray50")))) - (fg:erc-color-face15 ((t (:foreground "gray90")))) - (fg:erc-color-face2 ((t (:foreground "blue4")))) - (fg:erc-color-face3 ((t (:foreground "green4")))) - (fg:erc-color-face4 ((t (:foreground "red")))) - (fg:erc-color-face5 ((t (:foreground "brown")))) - (fg:erc-color-face6 ((t (:foreground "purple")))) - (fg:erc-color-face7 ((t (:foreground "orange")))) - (fg:erc-color-face8 ((t (:foreground "yellow")))) - (fg:erc-color-face9 ((t (:foreground "green")))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:foreground "magenta3" :underline t :height 0.9)))) - (font-lock-comment-face ((t (:italic t :foreground "gray60" :slant oblique :height 0.9)))) - (font-lock-constant-face ((t (:bold t :foreground "medium purple" :weight bold :height 0.9)))) - (font-lock-function-name-face ((t (:bold t :foreground "black" :weight bold)))) - (font-lock-keyword-face ((t (:bold t :foreground "blue" :weight bold)))) - (font-lock-string-face ((t (:foreground "red" :height 0.9)))) - (font-lock-type-face ((t (:foreground "Royalblue")))) - (font-lock-variable-name-face ((t (:bold t :foreground "maroon" :weight bold :height 0.9)))) - (font-lock-warning-face ((t (:bold t :foreground "Red" :weight bold)))) - (fringe ((t (:background "dodgerblue")))) - (header-line ((t (:underline "red" :overline "red" :background "grey90" :foreground "grey20" :box nil)))) - (highlight ((t (:background "darkseagreen2")))) - (isearch ((t (:background "magenta2" :foreground "lightskyblue1")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise")))) - (italic ((t (:italic t :slant italic)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black")))) - (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black")))) - (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black")))) - (jde-java-font-lock-api-face ((t (:foreground "dark goldenrod")))) - (jde-java-font-lock-bold-face ((t (:bold t :weight bold)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "CadetBlue")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "green4")))) - (jde-java-font-lock-italic-face ((t (:italic t :slant italic)))) - (jde-java-font-lock-link-face ((t (:foreground "cadetblue" :underline t :slant normal)))) - (jde-java-font-lock-modifier-face ((t (:foreground "Orchid")))) - (jde-java-font-lock-number-face ((t (:foreground "RosyBrown")))) - (jde-java-font-lock-operator-face ((t (:foreground "medium blue")))) - (jde-java-font-lock-package-face ((t (:foreground "blue3")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (menu ((t (nil)))) - (minibuffer-prompt ((t (:foreground "dark blue")))) - (modeline ((t (:background "dodgerblue" :foreground "black" :overline "red" :underline "red")))) - (modeline-buffer-id ((t (:background "dodgerblue" :foreground "black")))) - (modeline-mousable ((t (:background "dodgerblue" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "dodgerblue" :foreground "black")))) - (mode-line-inactive ((t (:italic t :underline "red" :overline "red" :background "white" :foreground "cadetblue" :box (:line-width -1 :color "grey75") :slant oblique :weight light)))) - (mouse ((t (:background "black")))) - (primary-selection ((t (:background "lightgoldenrod2")))) - (region ((t (:background "lightgoldenrod2")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "yellow")))) - (semantic-dirty-token-face ((t (:background "lightyellow")))) - (semantic-unmatched-syntax-face ((t (:underline "red")))) - (senator-intangible-face ((t (:foreground "gray25")))) - (senator-momentary-highlight-face ((t (:background "gray70")))) - (senator-read-only-face ((t (:background "#CCBBBB")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "brown")))) - (template-message-face ((t (:bold t :weight bold)))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (zmacs-region ((t (:background "lightgoldenrod2"))))))) - -(defun color-theme-gray30 () - "Color theme by Girish Bharadwaj, created 2002-04-22." - (interactive) - (color-theme-install - '(color-theme-gray30 - ((background-color . "grey30") - (background-mode . dark) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "gainsboro") - (mouse-color . "black")) - ((help-highlight-face . underline) - (list-matching-lines-face . bold) - (semantic-which-function-use-color . t) - (senator-eldoc-use-color . t) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "grey30" :foreground "gainsboro" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-courier new")))) - (bg:erc-color-face0 ((t (:background "White")))) - (bg:erc-color-face1 ((t (:background "black")))) - (bg:erc-color-face10 ((t (:background "lightblue1")))) - (bg:erc-color-face11 ((t (:background "cyan")))) - (bg:erc-color-face12 ((t (:background "blue")))) - (bg:erc-color-face13 ((t (:background "deeppink")))) - (bg:erc-color-face14 ((t (:background "gray50")))) - (bg:erc-color-face15 ((t (:background "gray90")))) - (bg:erc-color-face2 ((t (:background "blue4")))) - (bg:erc-color-face3 ((t (:background "green4")))) - (bg:erc-color-face4 ((t (:background "red")))) - (bg:erc-color-face5 ((t (:background "brown")))) - (bg:erc-color-face6 ((t (:background "purple")))) - (bg:erc-color-face7 ((t (:background "orange")))) - (bg:erc-color-face8 ((t (:background "yellow")))) - (bg:erc-color-face9 ((t (:background "green")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (button ((t (:underline t)))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cursor ((t (:background "black")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "dim gray")))) - (custom-comment-tag-face ((t (:foreground "gray80")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:bold t :foreground "light blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "pink" :weight bold :height 1.2)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "lime green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "light blue" :weight bold :height 1.2)))) - (erc-action-face ((t (:bold t :weight bold)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "IndianRed")))) - (erc-error-face ((t (:background "Red" :foreground "White")))) - (erc-input-face ((t (:foreground "brown")))) - (erc-inverse-face ((t (:background "Black" :foreground "White")))) - (erc-notice-face ((t (:bold t :foreground "SlateBlue" :weight bold)))) - (erc-prompt-face ((t (:bold t :background "lightBlue2" :foreground "Black" :weight bold)))) - (erc-timestamp-face ((t (:bold t :foreground "green" :weight bold)))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid" :weight bold)))) - (eshell-ls-backup-face ((t (:foreground "LightSalmon")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed" :weight bold)))) - (eshell-ls-directory-face ((t (:bold t :foreground "SkyBlue" :weight bold)))) - (eshell-ls-executable-face ((t (:bold t :foreground "Green" :weight bold)))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red" :weight bold)))) - (eshell-ls-product-face ((t (:foreground "LightSalmon")))) - (eshell-ls-readonly-face ((t (:foreground "Pink")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta" :weight bold)))) - (eshell-ls-symlink-face ((t (:bold t :foreground "Cyan" :weight bold)))) - (eshell-ls-unreadable-face ((t (:foreground "DarkGrey")))) - (fg:erc-color-face0 ((t (:foreground "White")))) - (fg:erc-color-face1 ((t (:foreground "black")))) - (fg:erc-color-face10 ((t (:foreground "lightblue1")))) - (fg:erc-color-face11 ((t (:foreground "cyan")))) - (fg:erc-color-face12 ((t (:foreground "blue")))) - (fg:erc-color-face13 ((t (:foreground "deeppink")))) - (fg:erc-color-face14 ((t (:foreground "gray50")))) - (fg:erc-color-face15 ((t (:foreground "gray90")))) - (fg:erc-color-face2 ((t (:foreground "blue4")))) - (fg:erc-color-face3 ((t (:foreground "green4")))) - (fg:erc-color-face4 ((t (:foreground "red")))) - (fg:erc-color-face5 ((t (:foreground "brown")))) - (fg:erc-color-face6 ((t (:foreground "purple")))) - (fg:erc-color-face7 ((t (:foreground "orange")))) - (fg:erc-color-face8 ((t (:foreground "yellow")))) - (fg:erc-color-face9 ((t (:foreground "green")))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:foreground "LightSkyBlue" :underline t)))) - (font-lock-comment-face ((t (:italic t :foreground "lightgreen" :slant oblique)))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-function-name-face ((t (:bold t :foreground "DodgerBlue" :weight bold :height 1.05)))) - (font-lock-keyword-face ((t (:foreground "LightPink" :height 1.05)))) - (font-lock-string-face ((t (:foreground "LightSalmon")))) - (font-lock-type-face ((t (:foreground "yellow" :height 1.05)))) - (font-lock-variable-name-face ((t (:foreground "gold")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold)))) - (fringe ((t (:background "grey10")))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey20" :foreground "grey90" :box nil)))) - (highlight ((t (:background "darkolivegreen")))) - (isearch ((t (:background "palevioletred2" :foreground "brown4")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black")))) - (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black")))) - (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black")))) - (jde-java-font-lock-api-face ((t (:foreground "light goldenrod")))) - (jde-java-font-lock-bold-face ((t (:bold t :weight bold)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "Aquamarine")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "light coral")))) - (jde-java-font-lock-italic-face ((t (:italic t :slant italic)))) - (jde-java-font-lock-link-face ((t (:foreground "cadetblue" :underline t :slant normal)))) - (jde-java-font-lock-modifier-face ((t (:foreground "LightSteelBlue")))) - (jde-java-font-lock-number-face ((t (:foreground "LightSalmon")))) - (jde-java-font-lock-operator-face ((t (:foreground "medium blue")))) - (jde-java-font-lock-package-face ((t (:foreground "steelblue1")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (menu ((t (nil)))) - (minibuffer-prompt ((t (:foreground "cyan")))) - (mode-line ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (mode-line-inactive ((t (:background "grey30" :foreground "grey80" :box (:line-width -1 :color "grey40" :style nil) :weight light)))) - (mouse ((t (:background "black")))) - (primary-selection ((t (:background "blue3")))) - (region ((t (:background "blue3")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "SkyBlue4")))) - (semantic-dirty-token-face ((t (:background "lightyellow")))) - (semantic-unmatched-syntax-face ((t (:underline "red")))) - (senator-intangible-face ((t (:foreground "gray75")))) - (senator-momentary-highlight-face ((t (:background "gray30")))) - (senator-read-only-face ((t (:background "#664444")))) - (show-paren-match-face ((t (:background "steelblue3")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green3")))) - (speedbar-directory-face ((t (:foreground "light blue")))) - (speedbar-file-face ((t (:foreground "cyan")))) - (speedbar-highlight-face ((t (:background "sea green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (template-message-face ((t (:bold t :weight bold)))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray")))) - (zmacs-region ((t (:background "blue3"))))))) - -(defun color-theme-dark-green () - "Color theme by ces93, created 2002-03-30." - (interactive) - (color-theme-install - '(color-theme-dark-green - ((background-mode . light) - (background-toolbar-color . "#e79ddf7ddf7d") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#8e3886178617") - (top-toolbar-shadow-color . "#ffffffffffff")) - nil - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (nil)))) - (fringe ((t (nil)))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:background "#ffffff" :foreground "#000000")))) - (highlight ((t (:background "gray" :foreground "darkred")))) - (isearch ((t (:background "LightSlateGray" :foreground "red")))) - (italic ((t (:italic t)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68")))) - (mode-line ((t (:background "LightSlateGray" :foreground "black")))) - (modeline ((t (:background "LightSlateGray" :foreground "black")))) - (modeline-buffer-id ((t (:background "LightSlateGray" :foreground "blue4")))) - (modeline-mousable ((t (:background "LightSlateGray" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "LightSlateGray" :foreground "green4")))) - (pointer ((t (:background "#ffffff" :foreground "#000000")))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "gray65")))) - (right-margin ((t (nil)))) - (rpm-spec-dir-face ((t (:foreground "green")))) - (rpm-spec-doc-face ((t (:foreground "magenta")))) - (rpm-spec-ghost-face ((t (:foreground "red")))) - (rpm-spec-macro-face ((t (:foreground "purple")))) - (rpm-spec-package-face ((t (:foreground "red")))) - (rpm-spec-tag-face ((t (:foreground "blue")))) - (secondary-selection ((t (:background "paleturquoise")))) - (text-cursor ((t (:background "Red3" :foreground "DarkSlateGray")))) - (tool-bar ((t (nil)))) - (toolbar ((t (:background "#ffffff" :foreground "#000000")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (:background "#ffffff" :foreground "#000000")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "darkorange" :foreground "black"))))))) - -(defun color-theme-whateveryouwant () - "Color theme by Fabien Penso, created 2002-05-02." - (interactive) - (color-theme-install - '(color-theme-whateveryouwant - ((background-color . "white") - (background-mode . light) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "black") - (mouse-color . "black")) - ((cperl-here-face . font-lock-string-face) - (cperl-invalid-face . underline) - (cperl-pod-face . font-lock-comment-face) - (cperl-pod-head-face . font-lock-variable-name-face) - (display-time-mail-face . mode-line) - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-carpal-button-face . bold) - (gnus-carpal-header-face . bold-italic) - (gnus-cite-attribution-face . gnus-cite-attribution-face) - (gnus-mouse-face . highlight) - (gnus-selected-tree-face . modeline) - (gnus-signature-face . gnus-signature-face) - (gnus-summary-selected-face . gnus-summary-selected-face) - (gnus-treat-display-xface . head) - (help-highlight-face . underline) - (ispell-highlight-face . flyspell-incorrect-face) - (list-matching-lines-face . bold) - (sgml-set-face . t) - (view-highlight-face . highlight) - (widget-mouse-face . highlight) - (x-face-mouse-face . highlight)) - (default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 116 :width normal :family "monotype-courier new")))) - (Info-title-1-face ((t (:bold t :weight bold :height 1.728 :family "helv")))) - (Info-title-2-face ((t (:bold t :weight bold :height 1.44 :family "helv")))) - (Info-title-3-face ((t (:bold t :weight bold :height 1.2 :family "helv")))) - (Info-title-4-face ((t (:bold t :weight bold :family "helv")))) - (antlr-font-lock-keyword-face ((t (:bold t :foreground "black" :weight bold)))) - (antlr-font-lock-literal-face ((t (:bold t :foreground "brown4" :weight bold)))) - (antlr-font-lock-ruledef-face ((t (:bold t :foreground "blue" :weight bold)))) - (antlr-font-lock-ruleref-face ((t (:foreground "blue4")))) - (antlr-font-lock-tokendef-face ((t (:bold t :foreground "blue" :weight bold)))) - (antlr-font-lock-tokenref-face ((t (:foreground "orange4")))) - (bbdb-company ((t (:italic t :slant italic)))) - (bbdb-field-name ((t (:bold t :foreground "gray40" :weight bold)))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (:underline t)))) - (bold ((t (:bold t :foreground "gray40" :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (calendar-today-face ((t (:underline t)))) - (change-log-acknowledgement-face ((t (:foreground "Firebrick")))) - (change-log-conditionals-face ((t (:foreground "DarkGoldenrod")))) - (change-log-date-face ((t (:foreground "RosyBrown")))) - (change-log-email-face ((t (:foreground "DarkGoldenrod")))) - (change-log-file-face ((t (:foreground "Blue")))) - (change-log-function-face ((t (:foreground "DarkGoldenrod")))) - (change-log-list-face ((t (:foreground "Purple")))) - (change-log-name-face ((t (:foreground "CadetBlue")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "dark blue")))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue" :weight bold)))) - (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red" :slant italic :weight bold)))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (cursor ((t (:background "black")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "gray85")))) - (custom-comment-tag-face ((t (:foreground "blue4")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :weight bold :height 1.2 :family "helv")))) - (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :foreground "red" :weight bold :height 1.2 :family "helv")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2 :family "helv")))) - (cvs-filename-face ((t (:foreground "blue4")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:bold t :foreground "blue4" :weight bold)))) - (cvs-marked-face ((t (:bold t :foreground "green3" :weight bold)))) - (cvs-msg-face ((t (:italic t :slant italic)))) - (cvs-need-action-face ((t (:foreground "orange")))) - (cvs-unknown-face ((t (:foreground "red")))) - (diary-face ((t (:foreground "red")))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (:foreground "grey50")))) - (diff-file-header-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-function-face ((t (:foreground "grey50")))) - (diff-header-face ((t (:background "grey85")))) - (diff-hunk-header-face ((t (:background "grey85")))) - (diff-index-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-nonexistent-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-removed-face ((t (nil)))) - (dired-face-boring ((t (:foreground "RosyBrown")))) - (dired-face-directory ((t (:foreground "Blue")))) - (dired-face-executable ((t (nil)))) - (dired-face-flagged ((t (:bold t :foreground "Red" :weight bold)))) - (dired-face-marked ((t (:bold t :foreground "Red" :weight bold)))) - (dired-face-permissions ((t (nil)))) - (dired-face-setuid ((t (nil)))) - (dired-face-socket ((t (nil)))) - (dired-face-symlink ((t (:foreground "Purple")))) - (ebrowse-default-face ((t (nil)))) - (ebrowse-file-name-face ((t (:italic t :slant italic)))) - (ebrowse-member-attribute-face ((t (:foreground "red")))) - (ebrowse-member-class-face ((t (:foreground "purple")))) - (ebrowse-progress-face ((t (:background "blue")))) - (ebrowse-root-class-face ((t (:bold t :foreground "blue" :weight bold)))) - (ebrowse-tree-mark-face ((t (:foreground "red")))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (erc-action-face ((t (:bold t :weight bold)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "LightSalmon")))) - (erc-error-face ((t (:bold t :foreground "IndianRed" :weight bold)))) - (erc-input-face ((t (:foreground "Beige")))) - (erc-inverse-face ((t (:background "wheat" :foreground "darkslategrey")))) - (erc-notice-face ((t (:foreground "MediumAquamarine")))) - (erc-pal-face ((t (:foreground "pale green")))) - (erc-prompt-face ((t (:foreground "MediumAquamarine")))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid" :weight bold)))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed" :weight bold)))) - (eshell-ls-directory-face ((t (:bold t :foreground "Blue" :weight bold)))) - (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen" :weight bold)))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red" :weight bold)))) - (eshell-ls-picture-face ((t (:foreground "Violet")))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta" :weight bold)))) - (eshell-ls-symlink-face ((t (:bold t :foreground "Dark Cyan" :weight bold)))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:bold t :foreground "#aa0000" :weight bold :width condensed :family "neep-alt")))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed" :weight bold)))) - (eshell-test-ok-face ((t (:bold t :foreground "Green" :weight bold)))) - (excerpt ((t (:italic t :slant italic)))) - (fixed ((t (:bold t :weight bold)))) - (fixed-pitch ((t (:family "courier")))) - (flyspell-duplicate-face ((t (:bold t :foreground "Gold3" :underline t :weight bold)))) - (flyspell-incorrect-face ((t (:bold t :foreground "OrangeRed" :underline t :weight bold)))) - (font-latex-bold-face ((t (:bold t :foreground "DarkOliveGreen" :weight bold)))) - (font-latex-italic-face ((t (:italic t :foreground "DarkOliveGreen" :slant italic)))) - (font-latex-math-face ((t (:foreground "SaddleBrown")))) - (font-latex-sedate-face ((t (:foreground "DimGray")))) - (font-latex-string-face ((t (:foreground "RosyBrown")))) - (font-latex-warning-face ((t (:bold t :foreground "Red" :weight bold)))) - (font-lock-builtin-face ((t (:foreground "dodgerblue3")))) - (font-lock-comment-face ((t (:foreground "#cc0000" :width semi-condensed :family "helvetica")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-doc-face ((t (:foreground "RosyBrown")))) - (font-lock-doc-string-face ((t (:foreground "RosyBrown")))) - (font-lock-function-name-face ((t (:bold t :foreground "navy" :weight bold :height 100)))) - (font-lock-keyword-face ((t (:bold t :foreground "red4" :weight bold)))) - (font-lock-preprocessor-face ((t (:foreground "CadetBlue")))) - (font-lock-reference-face ((t (:foreground "Orchid")))) - (font-lock-string-face ((t (:foreground "navy")))) - (font-lock-type-face ((t (:bold t :foreground "black" :weight bold)))) - (font-lock-variable-name-face ((t (:foreground "black")))) - (font-lock-warning-face ((t (:foreground "orange2")))) - (fringe ((t (:background "white")))) - (gnus-cite-attribution-face ((t (:italic t :slant italic)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :weight bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t :slant italic)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "red" :weight normal :height 120 :family "courier")))) - (gnus-group-news-1-face ((t (:foreground "red" :weight normal :height 120 :family "courier")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4" :weight bold)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :weight bold)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t :weight bold)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t :weight bold)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen" :weight bold)))) - (gnus-header-content-face ((t (:foreground "goldenrod" :slant normal :family "helvetica")))) - (gnus-header-from-face ((t (:bold t :foreground "grey75" :weight bold :height 140 :family "helvetica")))) - (gnus-header-name-face ((t (:foreground "grey75" :height 120 :family "helvetica")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue" :slant italic)))) - (gnus-header-subject-face ((t (:bold t :foreground "firebrick" :weight bold :height 160 :family "helvetica")))) - (gnus-picon-face ((t (:background "white" :foreground "black")))) - (gnus-picon-xbm-face ((t (:background "white" :foreground "black")))) - (gnus-signature-face ((t (:italic t :slant italic)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue" :slant italic)))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen" :slant italic)))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick" :slant italic)))) - (gnus-summary-low-unread-face ((t (:italic t :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "grey65" :height 110 :width condensed :family "neep")))) - (gnus-summary-normal-read-face ((t (:foreground "grey75" :height 110 :width condensed :family "neep")))) - (gnus-summary-normal-ticked-face ((t (:bold t :foreground "firebrick" :weight bold :height 110 :width condensed :family "neep")))) - (gnus-summary-normal-unread-face ((t (:foreground "firebrick" :height 110 :width condensed :family "neep")))) - (gnus-summary-selected-face ((t (:background "gold" :foreground "black" :box (:line-width 1 :color "yellow" :style released-button) :height 140 :width condensed :family "neep")))) - (header-line ((t (:background "grey90" :foreground "grey20" :box nil)))) - (hi-black-b ((t (:bold t :weight bold)))) - (hi-black-hb ((t (:bold t :weight bold :height 1.67 :family "helv")))) - (hi-blue ((t (:background "light blue")))) - (hi-blue-b ((t (:bold t :foreground "blue" :weight bold)))) - (hi-green ((t (:background "green")))) - (hi-green-b ((t (:bold t :foreground "green" :weight bold)))) - (hi-pink ((t (:background "pink")))) - (hi-red-b ((t (:bold t :foreground "red" :weight bold)))) - (hi-yellow ((t (:background "yellow")))) - (highlight ((t (:background "black" :foreground "white")))) - (highlight-changes-delete-face ((t (:foreground "red" :underline t)))) - (highlight-changes-face ((t (:foreground "red")))) - (highline-face ((t (:background "gray80")))) - (holiday-face ((t (:background "pink")))) - (idlwave-help-link-face ((t (:foreground "Blue")))) - (idlwave-shell-bp-face ((t (:background "Pink" :foreground "Black")))) - (info-header-node ((t (:italic t :bold t :foreground "brown" :slant italic :weight bold)))) - (info-header-xref ((t (:bold t :foreground "magenta4" :weight bold)))) - (info-menu-5 ((t (:foreground "red1")))) - (info-menu-header ((t (:bold t :weight bold :family "helv")))) - (info-node ((t (:italic t :bold t :foreground "brown" :slant italic :weight bold)))) - (info-xref ((t (:bold t :foreground "magenta4" :weight bold)))) - (isearch ((t (:background "magenta4" :foreground "lightskyblue1")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise")))) - (italic ((t (:italic t :slant italic)))) - (log-view-file-face ((t (:bold t :background "grey70" :weight bold)))) - (log-view-message-face ((t (:background "grey85")))) - (makefile-space-face ((t (:background "hotpink")))) - (menu ((t (nil)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "grey45" :weight normal :family "helvetica")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue" :weight bold)))) - (message-header-to-face ((t (:bold t :foreground "grey60" :weight bold :height 120 :family "helvetica")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (mode-line ((t (:background "grey90" :foreground "black" :box (:line-width 1 :style none) :width condensed :family "neep")))) - (modeline-buffer-id ((t (:bold t :background "grey75" :foreground "black" :box (:line-width -1 :style released-button) :weight bold)))) - (modeline-mousable ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (modeline-mousable-minor-mode ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (mouse ((t (:background "black")))) - (mpg123-face-cur ((t (:background "#004080" :foreground "yellow")))) - (mpg123-face-slider ((t (:background "yellow" :foreground "black")))) - (primary-selection ((t (:background "lightgoldenrod2")))) - (reb-match-0 ((t (:background "lightblue")))) - (reb-match-1 ((t (:background "aquamarine")))) - (reb-match-2 ((t (:background "springgreen")))) - (reb-match-3 ((t (:background "yellow")))) - (region ((t (:background "#aa0000" :foreground "white")))) - (scroll-bar ((t (:background "grey75")))) - (secondary-selection ((t (:background "yellow")))) - (sgml-comment-face ((t (:italic t :foreground "SeaGreen" :slant italic)))) - (sgml-doctype-face ((t (:bold t :foreground "FireBrick" :weight bold)))) - (sgml-end-tag-face ((t (:stipple nil :background "white" :foreground "SlateBlue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 116 :width normal :family "monotype-courier new")))) - (sgml-entity-face ((t (:stipple nil :background "SlateBlue" :foreground "Red" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 116 :width normal :family "monotype-courier new")))) - (sgml-ignored-face ((t (nil)))) - (sgml-ms-end-face ((t (nil)))) - (sgml-ms-start-face ((t (nil)))) - (sgml-pi-face ((t (:bold t :foreground "gray40" :weight bold)))) - (sgml-sgml-face ((t (:bold t :foreground "gray40" :weight bold)))) - (sgml-short-ref-face ((t (nil)))) - (sgml-shortref-face ((t (:bold t :foreground "gray40" :weight bold)))) - (sgml-start-tag-face ((t (:stipple nil :background "white" :foreground "SlateBlue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 116 :width normal :family "monotype-courier new")))) - (sh-heredoc-face ((t (:foreground "tan")))) - (show-paren-match-face ((t (:background "gray80" :foreground "black")))) - (show-paren-mismatch-face ((t (:background "red" :foreground "yellow")))) - (show-tabs-space-face ((t (:foreground "yellow")))) - (show-tabs-tab-face ((t (:foreground "red")))) - (smerge-base-face ((t (:foreground "red")))) - (smerge-markers-face ((t (:background "grey85")))) - (smerge-mine-face ((t (:foreground "blue")))) - (smerge-other-face ((t (:foreground "darkgreen")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "brown")))) - (strokes-char-face ((t (:background "lightgray")))) - (term-black ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-blackbg ((t (:stipple nil :background "black" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-blue ((t (:stipple nil :background "white" :foreground "blue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-bluebg ((t (:stipple nil :background "blue" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-bold ((t (:bold t :stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight bold :width normal :family "adobe-courier")))) - (term-cyan ((t (:stipple nil :background "white" :foreground "cyan" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-cyanbg ((t (:stipple nil :background "cyan" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-bg ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-bg-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-fg ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-fg-inv ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-green ((t (:stipple nil :background "white" :foreground "green" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-greenbg ((t (:stipple nil :background "green" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-invisible ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-invisible-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-magenta ((t (:stipple nil :background "white" :foreground "magenta" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-magentabg ((t (:stipple nil :background "magenta" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-red ((t (:stipple nil :background "white" :foreground "red" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-redbg ((t (:stipple nil :background "red" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-underline ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline t :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-white ((t (:stipple nil :background "white" :foreground "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-whitebg ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-yellow ((t (:stipple nil :background "white" :foreground "yellow" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-yellowbg ((t (:stipple nil :background "yellow" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (tex-math-face ((t (:foreground "RosyBrown")))) - (texinfo-heading-face ((t (:foreground "Blue")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:foreground "navy" :underline t)))) - (variable-pitch ((t (:family "helv")))) - (vcursor ((t (:background "cyan" :foreground "blue" :underline t)))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red" :weight bold)))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange" :weight bold)))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:foreground "Blue" :underline t)))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:foreground "DarkGoldenrod" :underline t)))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:foreground "ForestGreen" :underline t)))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:foreground "Brown" :underline t)))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:foreground "Grey50" :underline t)))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (woman-addition-face ((t (:foreground "orange")))) - (woman-bold-face ((t (:bold t :foreground "blue" :weight bold)))) - (woman-italic-face ((t (:italic t :foreground "red" :underline t :slant italic)))) - (woman-unknown-face ((t (:foreground "brown")))) - (zmacs-region ((t (:background "lightgoldenrod2"))))))) - -(defun color-theme-bharadwaj-slate () - "Color theme by Girish Bharadwaj, created 2002-05-06." - (interactive) - (color-theme-install - '(color-theme-bharadwaj-slate - ((background-color . "DarkSlateGray") - (background-mode . dark) - (border-color . "black") - (cursor-color . "khaki") - (foreground-color . "palegreen") - (mouse-color . "black")) - ((display-time-mail-face . mode-line) - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-mouse-face . highlight) - (help-highlight-face . underline) - (ibuffer-deletion-face . font-lock-type-face) - (ibuffer-filter-group-name-face . bold) - (ibuffer-marked-face . font-lock-warning-face) - (ibuffer-title-face . font-lock-type-face) - (list-matching-lines-buffer-name-face . underline) - (list-matching-lines-face . bold) - (semantic-which-function-use-color . t) - (senator-eldoc-use-color . t) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "DarkSlateGray" :foreground "palegreen" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-lucida sans typewriter")))) - (bg:erc-color-face0 ((t (:background "White")))) - (bg:erc-color-face1 ((t (:background "black")))) - (bg:erc-color-face10 ((t (:background "lightblue1")))) - (bg:erc-color-face11 ((t (:background "cyan")))) - (bg:erc-color-face12 ((t (:background "blue")))) - (bg:erc-color-face13 ((t (:background "deeppink")))) - (bg:erc-color-face14 ((t (:background "gray50")))) - (bg:erc-color-face15 ((t (:background "gray90")))) - (bg:erc-color-face2 ((t (:background "blue4")))) - (bg:erc-color-face3 ((t (:background "green4")))) - (bg:erc-color-face4 ((t (:background "red")))) - (bg:erc-color-face5 ((t (:background "brown")))) - (bg:erc-color-face6 ((t (:background "purple")))) - (bg:erc-color-face7 ((t (:background "orange")))) - (bg:erc-color-face8 ((t (:background "yellow")))) - (bg:erc-color-face9 ((t (:background "green")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (button ((t (:underline t)))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cursor ((t (:background "khaki")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "dim gray")))) - (custom-comment-tag-face ((t (:foreground "gray80")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:bold t :foreground "light blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "pink" :weight bold :height 1.2)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "lime green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "light blue" :weight bold :height 1.2)))) - (erc-action-face ((t (:bold t :box (:line-width 2 :color "grey75") :weight bold)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "IndianRed")))) - (erc-error-face ((t (:background "Red" :foreground "White")))) - (erc-input-face ((t (:foreground "lightblue")))) - (erc-inverse-face ((t (:background "Black" :foreground "White")))) - (erc-notice-face ((t (:bold t :foreground "dodgerblue" :weight bold)))) - (erc-prompt-face ((t (:bold t :background "black" :foreground "white" :weight bold)))) - (erc-timestamp-face ((t (:bold t :foreground "green" :weight bold)))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid" :weight bold)))) - (eshell-ls-backup-face ((t (:foreground "LightSalmon")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed" :weight bold)))) - (eshell-ls-directory-face ((t (:bold t :foreground "SkyBlue" :weight bold)))) - (eshell-ls-executable-face ((t (:bold t :foreground "Green" :weight bold)))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red" :weight bold)))) - (eshell-ls-product-face ((t (:foreground "LightSalmon")))) - (eshell-ls-readonly-face ((t (:foreground "Pink")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta" :weight bold)))) - (eshell-ls-symlink-face ((t (:bold t :foreground "Cyan" :weight bold)))) - (eshell-ls-unreadable-face ((t (:foreground "DarkGrey")))) - (eshell-prompt-face ((t (:bold t :foreground "Pink" :weight bold)))) - (fg:erc-color-face0 ((t (:foreground "White")))) - (fg:erc-color-face1 ((t (:foreground "black")))) - (fg:erc-color-face10 ((t (:foreground "lightblue1")))) - (fg:erc-color-face11 ((t (:foreground "cyan")))) - (fg:erc-color-face12 ((t (:foreground "blue")))) - (fg:erc-color-face13 ((t (:foreground "deeppink")))) - (fg:erc-color-face14 ((t (:foreground "gray50")))) - (fg:erc-color-face15 ((t (:foreground "gray90")))) - (fg:erc-color-face2 ((t (:foreground "blue4")))) - (fg:erc-color-face3 ((t (:foreground "green4")))) - (fg:erc-color-face4 ((t (:foreground "red")))) - (fg:erc-color-face5 ((t (:foreground "brown")))) - (fg:erc-color-face6 ((t (:foreground "purple")))) - (fg:erc-color-face7 ((t (:foreground "orange")))) - (fg:erc-color-face8 ((t (:foreground "yellow")))) - (fg:erc-color-face9 ((t (:foreground "green")))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:bold t :foreground "pink" :weight bold :height 1.1)))) - (font-lock-comment-face ((t (:foreground "violet" :height 1.0)))) - (font-lock-constant-face ((t (:bold t :foreground "tomato" :weight bold :height 1.0)))) - (font-lock-function-name-face ((t (:bold t :foreground "DodgerBlue" :weight bold)))) - (font-lock-keyword-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (font-lock-preprocessor-face ((t (:bold t :foreground "tomato" :weight bold :height 1.0)))) - (font-lock-reference-face ((t (:bold t :foreground "pink" :weight bold :height 1.1)))) - (font-lock-string-face ((t (:foreground "red" :height 1.0)))) - (font-lock-type-face ((t (:foreground "lightblue3")))) - (font-lock-variable-name-face ((t (:bold t :foreground "gray" :weight bold :height 1.0)))) - (font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold)))) - (fringe ((t (:background "DarkSlateGray")))) - (gnus-cite-attribution-face ((t (:italic t :slant italic)))) - (gnus-cite-face-1 ((t (:foreground "light blue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "light cyan")))) - (gnus-cite-face-3 ((t (:foreground "light yellow")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :weight bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t :slant italic)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :weight bold)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t :weight bold)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t :weight bold)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise" :weight bold)))) - (gnus-header-content-face ((t (:italic t :foreground "forest green" :slant italic)))) - (gnus-header-from-face ((t (:foreground "spring green")))) - (gnus-header-name-face ((t (:foreground "SeaGreen")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "yellow" :slant italic)))) - (gnus-header-subject-face ((t (:foreground "SeaGreen3")))) - (gnus-signature-face ((t (:italic t :slant italic)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue" :slant italic)))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen" :slant italic)))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink" :slant italic)))) - (gnus-summary-low-unread-face ((t (:italic t :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (header-line ((t (:underline "blueviolet" :overline "blueviolet" :box (:line-width -1 :style released-button) :background "grey20" :foreground "grey90" :box nil)))) - (highlight ((t (:background "darkolivegreen")))) - (html-helper-bold-face ((t (:bold t :foreground "wheat" :weight bold)))) - (html-helper-italic-face ((t (:italic t :foreground "spring green" :slant italic)))) - (html-helper-underline-face ((t (:foreground "cornsilk" :underline t)))) - (html-tag-face ((t (:bold t :foreground "deep sky blue" :weight bold)))) - (info-menu-6 ((t (nil)))) - (isearch ((t (:background "palevioletred2" :foreground "brown4")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black")))) - (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black")))) - (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black")))) - (jde-java-font-lock-api-face ((t (:foreground "light goldenrod")))) - (jde-java-font-lock-bold-face ((t (:bold t :weight bold)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "Aquamarine")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "light coral")))) - (jde-java-font-lock-italic-face ((t (:italic t :slant italic)))) - (jde-java-font-lock-link-face ((t (:foreground "blue" :underline t :slant normal)))) - (jde-java-font-lock-modifier-face ((t (:foreground "LightSteelBlue")))) - (jde-java-font-lock-number-face ((t (:foreground "LightSalmon")))) - (jde-java-font-lock-operator-face ((t (:foreground "medium blue")))) - (jde-java-font-lock-package-face ((t (:foreground "steelblue1")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (menu ((t (nil)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "green4" :weight bold)))) - (message-header-name-face ((t (:foreground "DarkGreen")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "#b00000")))) - (message-header-subject-face ((t (:foreground "green3")))) - (message-header-to-face ((t (:bold t :foreground "green2" :weight bold)))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "blue3")))) - (minibuffer-prompt ((t (:foreground "cyan")))) - (mode-line ((t (:background "Darkslategray" :foreground "white" :box (:line-width -1 :style released-button) :overline "blueviolet" :underline "blueviolet")))) - (mode-line-inactive ((t (:italic t :underline "blueviolet" :overline "blueviolet" :background "white" :foreground "cadetblue" :box (:line-width -1 :color "grey75") :slant oblique :weight light)))) - (modeline ((t (:background "Darkslategray" :foreground "white" :box (:line-width -1 :style released-button) :overline "blueviolet" :underline "blueviolet")))) - (modeline-buffer-id ((t (:background "Darkslategray" :foreground "white" :box (:line-width -1 :style released-button) :overline "blueviolet" :underline "blueviolet")))) - (modeline-mousable ((t (:background "Darkslategray" :foreground "white" :box (:line-width -1 :style released-button) :overline "blueviolet" :underline "blueviolet")))) - (modeline-mousable-minor-mode ((t (:background "Darkslategray" :foreground "white" :box (:line-width -1 :style released-button) :overline "blueviolet" :underline "blueviolet")))) - (mouse ((t (:background "black")))) - (primary-selection ((t (:background "dimgray")))) - (region ((t (:background "dimgray")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "SkyBlue4")))) - (semantic-dirty-token-face ((t (:background "lightyellow")))) - (semantic-unmatched-syntax-face ((t (:underline "red")))) - (senator-intangible-face ((t (:foreground "gray75")))) - (senator-momentary-highlight-face ((t (:background "gray30")))) - (senator-read-only-face ((t (:background "#664444")))) - (show-paren-match-face ((t (:bold t :foreground "lightblue" :weight bold :height 1.1)))) - (show-paren-mismatch-face ((t (:bold t :foreground "red" :weight bold :height 1.1)))) - (show-tabs-space-face ((t (:foreground "yellow")))) - (show-tabs-tab-face ((t (:foreground "red")))) - (speedbar-button-face ((t (:foreground "green3")))) - (speedbar-directory-face ((t (:foreground "light blue")))) - (speedbar-file-face ((t (:foreground "cyan")))) - (speedbar-highlight-face ((t (:background "sea green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (template-message-face ((t (:bold t :weight bold)))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (:background "black")))) - (term-blue ((t (:foreground "blue")))) - (term-bluebg ((t (:background "blue")))) - (term-bold ((t (:bold t :weight bold)))) - (term-cyan ((t (:foreground "cyan")))) - (term-cyanbg ((t (:background "cyan")))) - (term-default ((t (:stipple nil :background "DarkSlateGray" :foreground "palegreen" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-lucida sans typewriter")))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-green ((t (:foreground "green")))) - (term-greenbg ((t (:background "green")))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (:foreground "magenta")))) - (term-magentabg ((t (:background "magenta")))) - (term-red ((t (:foreground "red")))) - (term-redbg ((t (:background "red")))) - (term-underline ((t (:underline t)))) - (term-white ((t (:foreground "white")))) - (term-whitebg ((t (:background "white")))) - (term-yellow ((t (:foreground "yellow")))) - (term-yellowbg ((t (:background "yellow")))) - (tool-bar ((t (:background "DarkSlateGray" :foreground "White" :box (:line-width 1 :color "blue"))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray")))) - (zmacs-region ((t (:background "dimgray"))))))) - -(defun color-theme-lethe () - "Color theme by Ivica Loncar, created 2002-08-02. -Some additional X resources as suggested by the author: - -Emacs*menubar.Foreground: Yellow -Emacs*menubar.Background: #1a2b3c -Emacs*menubar.topShadowColor: gray -Emacs*menubar.bottomShadowColor: dimgray - -Some fonts I really like (note: this fonts are not highly -available): - -Emacs.default.attributeFont: -letl-*-medium-r-*-*-*-*-*-*-*-*-iso8859-2 -Emacs*menubar*Font: -etl-fixed-medium-r-normal--14-*-*-*-*-*-iso8859-1 - -Mouse fix: - -Emacs*dialog*XmPushButton.translations:#override\n\ - : Arm()\n\ - ,: Activate()\ - Disarm()\n\ - (2+): MultiArm()\n\ - (2+): MultiActivate()\n\ - : Activate()\ - Disarm()\n\ - osfSelect: ArmAndActivate()\n\ - osfActivate: ArmAndActivate()\n\ - osfHelp: Help()\n\ - ~Shift ~Meta ~Alt Return: ArmAndActivate()\n\ - : Enter()\n\ - : Leave()\n - -Bonus: do not use 3D modeline." - (interactive) - (color-theme-install - '(color-theme-lethe - ((background-color . "black") - (background-mode . dark) - (background-toolbar-color . "#000000000000") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "red") - (cursor-color . "red") - (foreground-color . "peachpuff") - (mouse-color . "red") - (top-toolbar-shadow-color . "#f5f5f5f5f5f5")) - ((buffers-tab-face . buffers-tab) - (cscope-use-face . t) - (gnus-mouse-face . highlight)) - (default ((t (nil)))) - (bg:erc-color-face0 ((t (:background "White")))) - (bg:erc-color-face1 ((t (nil)))) - (bg:erc-color-face10 ((t (:background "lightblue1")))) - (bg:erc-color-face11 ((t (:background "cyan")))) - (bg:erc-color-face12 ((t (:background "blue")))) - (bg:erc-color-face13 ((t (:background "deeppink")))) - (bg:erc-color-face14 ((t (:background "gray50")))) - (bg:erc-color-face15 ((t (:background "gray90")))) - (bg:erc-color-face2 ((t (:background "blue4")))) - (bg:erc-color-face3 ((t (:background "green4")))) - (bg:erc-color-face4 ((t (:background "red")))) - (bg:erc-color-face5 ((t (:background "brown")))) - (bg:erc-color-face6 ((t (:background "purple")))) - (bg:erc-color-face7 ((t (:background "orange")))) - (bg:erc-color-face8 ((t (:background "yellow")))) - (bg:erc-color-face9 ((t (:background "green")))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border ((t (nil)))) - (border-glyph ((t (nil)))) - (buffers-tab ((t (:bold t :foreground "red")))) - (button ((t (:underline t)))) - (calendar-today-face ((t (:underline t)))) - (comint-highlight-input ((t (:bold t)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue")))) - (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red")))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (cscope-file-face ((t (:foreground "blue")))) - (cscope-function-face ((t (:foreground "magenta")))) - (cscope-line-face ((t (:foreground "green")))) - (cscope-line-number-face ((t (:foreground "red")))) - (cscope-mouse-face ((t (:background "blue" :foreground "white")))) - (cursor ((t (nil)))) - (custom-button-face ((t (nil)))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black")))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "dim gray")))) - (custom-comment-tag-face ((t (:foreground "gray80")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (cyan ((t (:foreground "cyan")))) - (diary-face ((t (:foreground "red")))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t)))) - (dired-face-executable ((t (:foreground "SeaGreen")))) - (dired-face-flagged ((t (:background "LightSlateGray")))) - (dired-face-marked ((t (:background "PaleVioletRed")))) - (dired-face-permissions ((t (:background "grey75" :foreground "black")))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (dired-face-symlink ((t (:foreground "cyan")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (erc-action-face ((t (:bold t)))) - (erc-bold-face ((t (:bold t)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "IndianRed")))) - (erc-error-face ((t (:background "Red" :foreground "White")))) - (erc-input-face ((t (:foreground "brown")))) - (erc-inverse-face ((t (:background "Black" :foreground "White")))) - (erc-notice-face ((t (:bold t :foreground "SlateBlue")))) - (erc-prompt-face ((t (:bold t :background "lightBlue2" :foreground "Black")))) - (erc-timestamp-face ((t (:bold t :foreground "green")))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid")))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-ls-directory-face ((t (:bold t :foreground "Blue")))) - (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen")))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red")))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta")))) - (eshell-ls-symlink-face ((t (:bold t :foreground "DarkCyan")))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:bold t :foreground "Red")))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-test-ok-face ((t (:bold t :foreground "Green")))) - (excerpt ((t (:italic t)))) - (fg:erc-color-face0 ((t (:foreground "White")))) - (fg:erc-color-face1 ((t (:foreground "black")))) - (fg:erc-color-face10 ((t (:foreground "lightblue1")))) - (fg:erc-color-face11 ((t (:foreground "cyan")))) - (fg:erc-color-face12 ((t (:foreground "blue")))) - (fg:erc-color-face13 ((t (:foreground "deeppink")))) - (fg:erc-color-face14 ((t (:foreground "gray50")))) - (fg:erc-color-face15 ((t (:foreground "gray90")))) - (fg:erc-color-face2 ((t (:foreground "blue4")))) - (fg:erc-color-face3 ((t (:foreground "green4")))) - (fg:erc-color-face4 ((t (:foreground "red")))) - (fg:erc-color-face5 ((t (:foreground "brown")))) - (fg:erc-color-face6 ((t (:foreground "purple")))) - (fg:erc-color-face7 ((t (:foreground "orange")))) - (fg:erc-color-face8 ((t (:foreground "yellow")))) - (fg:erc-color-face9 ((t (:foreground "green")))) - (fixed ((t (:bold t)))) - (fixed-pitch ((t (:size "16")))) - (flyspell-duplicate-face ((t (:underline t :bold t :foreground "Gold3")))) - (flyspell-incorrect-face ((t (:underline t :bold t :foreground "OrangeRed")))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:bold t :foreground "cyan")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-doc-face ((t (:bold t :foreground "red")))) - (font-lock-doc-string-face ((t (:bold t :foreground "red")))) - (font-lock-function-name-face ((t (:bold t :foreground "white")))) - (font-lock-keyword-face ((t (:bold t :foreground "yellow")))) - (font-lock-preprocessor-face ((t (:bold t :foreground "blue")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:bold t :foreground "magenta")))) - (font-lock-type-face ((t (:bold t :foreground "lightgreen")))) - (font-lock-variable-name-face ((t (:bold t :foreground "white")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (fringe ((t (:background "grey95")))) - (gdb-arrow-face ((t (:bold t :background "yellow" :foreground "red")))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4")))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-picons-face ((t (:background "white" :foreground "black")))) - (gnus-picons-xbm-face ((t (:background "white" :foreground "black")))) - (gnus-signature-face ((t (:italic t)))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-summary-cancelled-face ((t (:foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-x-face ((t (:background "white" :foreground "black")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:size "12" :background "Gray80" :foreground "black")))) - (header-line ((t (:background "grey20" :foreground "grey90")))) - (highlight ((t (:bold t :background "yellow" :foreground "red")))) - (highlight-changes-delete-face ((t (:underline t :foreground "red")))) - (highlight-changes-face ((t (:foreground "red")))) - (highline-face ((t (:background "paleturquoise")))) - (holiday-face ((t (:background "pink")))) - (hyper-apropos-documentation ((t (:foreground "#aaaaaa")))) - (hyper-apropos-heading ((t (:bold t :foreground "#999999")))) - (hyper-apropos-hyperlink ((t (:foreground "Violet")))) - (hyper-apropos-major-heading ((t (:bold t :foreground "#ff0000")))) - (hyper-apropos-section-heading ((t (:italic t :bold t :foreground "#33aa55")))) - (hyper-apropos-warning ((t (:bold t :foreground "red")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (isearch ((t (:background "paleturquoise")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (:italic t)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black")))) - (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black")))) - (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black")))) - (jde-java-font-lock-api-face ((t (:foreground "light goldenrod")))) - (jde-java-font-lock-bold-face ((t (:bold t)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "Aquamarine")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "light coral")))) - (jde-java-font-lock-italic-face ((t (:italic t)))) - (jde-java-font-lock-link-face ((t (:underline t :foreground "cadetblue")))) - (jde-java-font-lock-modifier-face ((t (:foreground "LightSteelBlue")))) - (jde-java-font-lock-number-face ((t (:foreground "LightSalmon")))) - (jde-java-font-lock-operator-face ((t (:foreground "medium blue")))) - (jde-java-font-lock-package-face ((t (:foreground "steelblue1")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68")))) - (magenta ((t (:foreground "magenta")))) - (makefile-space-face ((t (:background "hotpink")))) - (menu ((t (nil)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:bold t :foreground "cyan")))) - (message-separator-face ((t (:foreground "brown")))) - (minibuffer-prompt ((t (:foreground "cyan")))) - (mode-line ((t (:background "grey75" :foreground "black")))) - (mode-line-inactive ((t (:background "grey30" :foreground "grey80")))) - (modeline ((t (:bold t :background "red" :foreground "yellow")))) - (modeline-buffer-id ((t (:bold t :background "red" :foreground "yellow")))) - (modeline-mousable ((t (:background "red" :foreground "yellow")))) - (modeline-mousable-minor-mode ((t (:background "red" :foreground "green4")))) - (mouse ((t (nil)))) - (paren-blink-off ((t (:foreground "black")))) - (paren-match ((t (:bold t :background "yellow" :foreground "red")))) - (paren-mismatch ((t (:background "DeepPink")))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "gray75")))) - (right-margin ((t (nil)))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (semantic-dirty-token-face ((t (:background "lightyellow")))) - (semantic-unmatched-syntax-face ((t (nil)))) - (senator-intangible-face ((t (:foreground "gray75")))) - (senator-momentary-highlight-face ((t (:background "gray30")))) - (senator-read-only-face ((t (:background "#664444")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (template-message-face ((t (:bold t)))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (nil)))) - (term-blue ((t (:foreground "blue")))) - (term-blue-bold-face ((t (:bold t :foreground "blue")))) - (term-blue-face ((t (:foreground "blue")))) - (term-blue-inv-face ((t (:background "blue")))) - (term-blue-ul-face ((t (:underline t :foreground "blue")))) - (term-bluebg ((t (:background "blue")))) - (term-bold ((t (:bold t)))) - (term-cyan ((t (:foreground "cyan")))) - (term-cyan-bold-face ((t (:bold t :foreground "cyan")))) - (term-cyan-face ((t (:foreground "cyan")))) - (term-cyan-inv-face ((t (:background "cyan")))) - (term-cyan-ul-face ((t (:underline t :foreground "cyan")))) - (term-cyanbg ((t (:background "cyan")))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-bold-face ((t (:bold t)))) - (term-default-face ((t (nil)))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-default-inv-face ((t (:background "peachpuff" :foreground "black")))) - (term-default-ul-face ((t (:underline t)))) - (term-green ((t (:foreground "green")))) - (term-green-bold-face ((t (:bold t :foreground "green")))) - (term-green-face ((t (:foreground "green")))) - (term-green-inv-face ((t (:background "green")))) - (term-green-ul-face ((t (:underline t :foreground "green")))) - (term-greenbg ((t (:background "green")))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (:foreground "magenta")))) - (term-magenta-bold-face ((t (:bold t :foreground "magenta")))) - (term-magenta-face ((t (:foreground "magenta")))) - (term-magenta-inv-face ((t (:background "magenta")))) - (term-magenta-ul-face ((t (:underline t :foreground "magenta")))) - (term-magentabg ((t (:background "magenta")))) - (term-red ((t (:foreground "red")))) - (term-red-bold-face ((t (:bold t :foreground "red")))) - (term-red-face ((t (:foreground "red")))) - (term-red-inv-face ((t (:background "red")))) - (term-red-ul-face ((t (:underline t :foreground "red")))) - (term-redbg ((t (:background "red")))) - (term-underline ((t (:underline t)))) - (term-white ((t (:foreground "white")))) - (term-white-bold-face ((t (:bold t :foreground "white")))) - (term-white-face ((t (:foreground "white")))) - (term-white-inv-face ((t (nil)))) - (term-white-ul-face ((t (:underline t :foreground "white")))) - (term-whitebg ((t (:background "white")))) - (term-yellow ((t (:foreground "yellow")))) - (term-yellow-bold-face ((t (:bold t :foreground "yellow")))) - (term-yellow-face ((t (:foreground "yellow")))) - (term-yellow-inv-face ((t (:background "yellow")))) - (term-yellow-ul-face ((t (:underline t :foreground "yellow")))) - (term-yellowbg ((t (:background "yellow")))) - (text-cursor ((t (:background "red" :foreground "black")))) - (tool-bar ((t (:background "grey75" :foreground "black")))) - (toolbar ((t (:background "Gray80" :foreground "black")))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (nil)))) - (vcursor ((t (:underline t :background "cyan" :foreground "blue")))) - (vertical-divider ((t (:background "Gray80" :foreground "black")))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red")))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange")))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue")))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod")))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen")))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown")))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Grey50")))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (white ((t (:foreground "white")))) - (widget ((t (:size "12" :background "Gray80" :foreground "black")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (nil)))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (x-face ((t (:bold t :background "wheat" :foreground "black")))) - (xrdb-option-name-face ((t (:bold t :foreground "yellow")))) - (xrdb-option-value-face ((t (:bold t :foreground "magenta")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "white" :foreground "black"))))))) - -(defun color-theme-shaman () - "Color theme by shaman, created 2002-11-11." - (interactive) - (color-theme-install - '(color-theme-shaman - ((background-color . "#456345") - (background-mode . dark) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (foreground-color . "White") - (top-toolbar-shadow-color . "#f7defbeef7de")) - ((buffers-tab-face . buffers-tab)) - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t :size "12")))) - (bold-italic ((t (:italic t :bold t :size "12")))) - (border-glyph ((t (nil)))) - (buffers-tab ((t (:background "Gray80" :foreground "black")))) - (font-lock-builtin-face ((t (:foreground "cadetblue2")))) - (font-lock-comment-face ((t (:foreground "gray80")))) - (font-lock-constant-face ((t (:foreground "steelblue1")))) - (font-lock-doc-face ((t (:foreground "light coral")))) - (font-lock-doc-string-face ((t (:foreground "light coral")))) - (font-lock-function-name-face ((t (:foreground "aquamarine")))) - (font-lock-keyword-face ((t (:foreground "cyan")))) - (font-lock-preprocessor-face ((t (:foreground "steelblue1")))) - (font-lock-reference-face ((t (:foreground "cadetblue2")))) - (font-lock-string-face ((t (:foreground "tan")))) - (font-lock-type-face ((t (:foreground "wheat")))) - (font-lock-variable-name-face ((t (:foreground "cyan3")))) - (font-lock-warning-face ((t (:bold t :size "12" :foreground "Pink")))) - (fringe ((t (nil)))) - (gnus-x-face ((t (:background "white" :foreground "black")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:size "12" :background "Gray80" :foreground "black")))) - (highlight ((t (:background "darkseagreen2")))) - (isearch ((t (:background "paleturquoise")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (:italic t :size "12")))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "green4")))) - (message-header-name-face ((t (:foreground "DarkGreen")))) - (message-header-newsgroups-face ((t (:bold t :foreground "yellow")))) - (message-header-other-face ((t (:foreground "#b00000")))) - (message-header-subject-face ((t (:foreground "green3")))) - (message-header-to-face ((t (:bold t :foreground "green2")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "blue3")))) - (mode-line ((t (:background "Gray80" :foreground "black")))) - (modeline ((t (:background "Gray80" :foreground "black")))) - (modeline-buffer-id ((t (:background "Gray80" :foreground "blue4")))) - (modeline-mousable ((t (:background "Gray80" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "Gray80" :foreground "green4")))) - (pointer ((t (:foreground "White")))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "gray65")))) - (right-margin ((t (nil)))) - (rpm-spec-dir-face ((t (:foreground "green")))) - (rpm-spec-doc-face ((t (:foreground "magenta")))) - (rpm-spec-ghost-face ((t (:foreground "red")))) - (rpm-spec-macro-face ((t (:foreground "yellow")))) - (rpm-spec-package-face ((t (:foreground "red")))) - (rpm-spec-tag-face ((t (:foreground "blue")))) - (rpm-spec-var-face ((t (:foreground "maroon")))) - (secondary-selection ((t (:background "paleturquoise")))) - (text-cursor ((t (:background "Pink" :foreground "Black")))) - (tool-bar ((t (nil)))) - (toolbar ((t (:background "Gray80" :foreground "black")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (:background "Gray80" :foreground "black")))) - (widget ((t (:size "12" :background "Gray80" :foreground "black")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "gray65"))))))) - -(defun color-theme-emacs-nw () - "Follow emacs21's color-theme, with -nw getting 100% compatibility. - -Alex's `color-theme-emacs-21' follows emacs21's theme, but in the -current scheme of things, that means that when it works on X, it won't -work in -nw perfectly. The modeline and menuline will have same -colors as the rest of emacs, which can be particularly disturbing when -there are multiple windows. - -OTOH, `color-theme-emacs-nw' follows emacs21's theme but the goal is -100% -nw compatibility, and in X; we shall try for decent color -scheme, and as much compability default emacs21's X as possble. -Bugs to deego@gnufans.org. - -TODO: Try to make this theme relative to color-theme-emacs-21 rather -than absolute, viz: call that first and then tweak minor stuff." - (interactive) - (color-theme-install - '(color-theme-emacs-nw - ((background-color . "white") - (background-mode . light) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "black") - (mouse-color . "black")) - ((Man-overstrike-face . bold) - (Man-underline-face . underline) - (cperl-here-face . font-lock-string-face) - (cperl-invalid-face . underline) - (cperl-pod-face . font-lock-comment-face) - (cperl-pod-head-face . font-lock-variable-name-face) - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-cite-attribution-face . gnus-cite-attribution-face) - (gnus-mouse-face . highlight) - (gnus-signature-face . gnus-signature-face) - (gnus-summary-selected-face . gnus-summary-selected-face) - (help-highlight-face . underline) - (idlwave-class-arrow-face . bold) - (idlwave-shell-breakpoint-face . idlwave-shell-bp-face) - (idlwave-shell-expression-face . secondary-selection) - (idlwave-shell-stop-line-face . highlight) - (ispell-highlight-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight) - (viper-insert-state-cursor-color . "Green") - (viper-replace-overlay-cursor-color . "Red") - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728)))) - (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44)))) - (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2)))) - (Info-title-4-face ((t (:bold t :family "helv" :weight bold)))) - (antlr-font-lock-keyword-face ((t (:bold t :foreground "black" :weight bold)))) - (antlr-font-lock-literal-face ((t (:bold t :foreground "brown4" :weight bold)))) - (antlr-font-lock-ruledef-face ((t (:bold t :foreground "blue" :weight bold)))) - (antlr-font-lock-ruleref-face ((t (:foreground "blue4")))) - (antlr-font-lock-tokendef-face ((t (:bold t :foreground "blue" :weight bold)))) - (antlr-font-lock-tokenref-face ((t (:foreground "orange4")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (calendar-today-face ((t (:underline t)))) - (change-log-acknowledgement-face ((t (:foreground "Firebrick")))) - (change-log-conditionals-face ((t (:foreground "DarkGoldenrod")))) - (change-log-date-face ((t (:foreground "RosyBrown")))) - (change-log-email-face ((t (:foreground "DarkGoldenrod")))) - (change-log-file-face ((t (:foreground "Blue")))) - (change-log-function-face ((t (:foreground "DarkGoldenrod")))) - (change-log-list-face ((t (:foreground "Purple")))) - (change-log-name-face ((t (:foreground "CadetBlue")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "dark blue")))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue" :weight bold)))) - (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red" :slant italic :weight bold)))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (cursor ((t (:background "black")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "gray85")))) - (custom-comment-tag-face ((t (:foreground "blue4")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "red" :weight bold :height 1.2)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "blue" :weight bold :height 1.2)))) - (cvs-filename-face ((t (:foreground "blue4")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:bold t :foreground "blue4" :weight bold)))) - (cvs-marked-face ((t (:bold t :foreground "green3" :weight bold)))) - (cvs-msg-face ((t (:italic t :slant italic)))) - (cvs-need-action-face ((t (:foreground "orange")))) - (cvs-unknown-face ((t (:foreground "red")))) - (diary-face ((t (:foreground "red")))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (:foreground "grey50")))) - (diff-file-header-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-function-face ((t (:foreground "grey50")))) - (diff-header-face ((t (:background "grey85")))) - (diff-hunk-header-face ((t (:background "grey85")))) - (diff-index-face ((t (:bold t :weight bold :background "grey70")))) - (diff-nonexistent-face ((t (:bold t :weight bold :background "grey70")))) - (diff-removed-face ((t (nil)))) - (dired-face-boring ((t (:foreground "RosyBrown")))) - (dired-face-directory ((t (:foreground "Blue")))) - (dired-face-executable ((t (nil)))) - (dired-face-flagged ((t (:foreground "Red" :weight bold)))) - (dired-face-marked ((t (:foreground "Red" :weight bold)))) - (dired-face-permissions ((t (nil)))) - (dired-face-setuid ((t (nil)))) - (dired-face-socket ((t (nil)))) - (dired-face-symlink ((t (:foreground "Purple")))) - (ebrowse-default-face ((t (nil)))) - (ebrowse-file-name-face ((t (:italic t :slant italic)))) - (ebrowse-member-attribute-face ((t (:foreground "red")))) - (ebrowse-member-class-face ((t (:foreground "purple")))) - (ebrowse-progress-face ((t (:background "blue")))) - (ebrowse-root-class-face ((t (:bold t :foreground "blue" :weight bold)))) - (ebrowse-tree-mark-face ((t (:foreground "red")))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid" :weight bold)))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed" :weight bold)))) - (eshell-ls-directory-face ((t (:bold t :foreground "Blue" :weight bold)))) - (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen" :weight bold)))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red" :weight bold)))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta" :weight bold)))) - (eshell-ls-symlink-face ((t (:bold t :foreground "Dark Cyan" :weight bold)))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:bold t :foreground "Red" :weight bold)))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed" :weight bold)))) - (eshell-test-ok-face ((t (:bold t :foreground "Green" :weight bold)))) - (excerpt ((t (:italic t :slant italic)))) - (fixed ((t (:bold t :weight bold)))) - (fixed-pitch ((t (:family "courier")))) - (flyspell-duplicate-face ((t (:bold t :foreground "Gold3" :underline t :weight bold)))) - (flyspell-incorrect-face ((t (:bold t :foreground "OrangeRed" :underline t :weight bold)))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:foreground "Firebrick")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-doc-face ((t (:foreground "RosyBrown")))) - (font-lock-doc-string-face ((t (:foreground "RosyBrown")))) - (font-lock-function-name-face ((t (:foreground "Blue")))) - (font-lock-keyword-face ((t (:foreground "Purple")))) - (font-lock-preprocessor-face ((t (:foreground "CadetBlue")))) - (font-lock-reference-face ((t (:foreground "Orchid")))) - (font-lock-string-face ((t (:foreground "RosyBrown")))) - (font-lock-type-face ((t (:foreground "ForestGreen")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Red" :weight bold)))) - (fringe ((t (:background "grey95")))) - (gnus-cite-attribution-face ((t (:italic t :slant italic)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :weight bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t :slant italic)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4" :weight bold)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :weight bold)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t :weight bold)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t :weight bold)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen" :weight bold)))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4" :slant italic)))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue" :slant italic)))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-signature-face ((t (:italic t :slant italic)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue" :slant italic)))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen" :slant italic)))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick" :slant italic)))) - (gnus-summary-low-unread-face ((t (:italic t :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey90" :foreground "grey20" :box nil)))) - (hi-black-b ((t (:bold t :weight bold)))) - (hi-black-hb ((t (:bold t :family "helv" :weight bold :height 1.67)))) - (hi-blue ((t (:background "light blue")))) - (hi-blue-b ((t (:bold t :foreground "blue" :weight bold)))) - (hi-green ((t (:background "green")))) - (hi-green-b ((t (:bold t :foreground "green" :weight bold)))) - (hi-pink ((t (:background "pink")))) - (hi-red-b ((t (:bold t :foreground "red" :weight bold)))) - (hi-yellow ((t (:background "yellow")))) - (highlight ((t (:background "darkseagreen2")))) - (highlight-changes-delete-face ((t (:foreground "red" :underline t)))) - (highlight-changes-face ((t (:foreground "red")))) - (holiday-face ((t (:background "pink")))) - (idlwave-help-link-face ((t (:foreground "Blue")))) - (idlwave-shell-bp-face ((t (:background "Pink" :foreground "Black")))) - (info-header-node ((t (:italic t :bold t :weight bold :slant italic :foreground "brown")))) - (info-header-xref ((t (:bold t :weight bold :foreground "magenta4")))) - (info-menu-5 ((t (:foreground "red1")))) - (info-menu-header ((t (:bold t :family "helv" :weight bold)))) - (info-node ((t (:italic t :bold t :foreground "brown" :slant italic :weight bold)))) - (info-xref ((t (:bold t :foreground "magenta4" :weight bold)))) - (isearch ((t (:background "magenta4" :foreground "lightskyblue1")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise")))) - (italic ((t (:italic t :slant italic)))) - (log-view-file-face ((t (:bold t :background "grey70" :weight bold)))) - (log-view-message-face ((t (:background "grey85")))) - (makefile-space-face ((t (:background "hotpink")))) - (menu ((t (:background "grey50" :foreground "white" :box (:line-width -1 :style released-button))))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue" :weight bold)))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue" :weight bold)))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (mode-line ((t (:background "grey50" :foreground "white" :box (:line-width -1 :style released-button))))) - (modeline ((t (:background "grey50" :foreground "white" :box (:line-width -1 :style released-button))))) - (modeline-buffer-id ((t (:bold t :background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (modeline-mousable ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (modeline-mousable-minor-mode ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (mouse ((t (:background "black")))) - (primary-selection ((t (:background "lightgoldenrod2")))) - (reb-match-0 ((t (:background "lightblue")))) - (reb-match-1 ((t (:background "aquamarine")))) - (reb-match-2 ((t (:background "springgreen")))) - (reb-match-3 ((t (:background "yellow")))) - (region ((t (:background "lightgoldenrod2")))) - (scroll-bar ((t (:background "grey75")))) - (secondary-selection ((t (:background "yellow")))) - (sh-heredoc-face ((t (:foreground "tan")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (show-tabs-space-face ((t (:foreground "yellow")))) - (show-tabs-tab-face ((t (:foreground "red")))) - (smerge-base-face ((t (:foreground "red")))) - (smerge-markers-face ((t (:background "grey85")))) - (smerge-mine-face ((t (:foreground "blue")))) - (smerge-other-face ((t (:foreground "darkgreen")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "brown")))) - (strokes-char-face ((t (:background "lightgray")))) - (term-black ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-blackbg ((t (:stipple nil :background "black" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-blue ((t (:stipple nil :background "white" :foreground "blue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-bluebg ((t (:stipple nil :background "blue" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-bold ((t (:bold t :stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight bold :width normal :family "adobe-courier")))) - (term-cyan ((t (:stipple nil :background "white" :foreground "cyan" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-cyanbg ((t (:stipple nil :background "cyan" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-bg ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-bg-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-fg ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-fg-inv ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-green ((t (:stipple nil :background "white" :foreground "green" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-greenbg ((t (:stipple nil :background "green" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-invisible ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-invisible-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-magenta ((t (:stipple nil :background "white" :foreground "magenta" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-magentabg ((t (:stipple nil :background "magenta" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-red ((t (:stipple nil :background "white" :foreground "red" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-redbg ((t (:stipple nil :background "red" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-underline ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline t :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-white ((t (:stipple nil :background "white" :foreground "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-whitebg ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-yellow ((t (:stipple nil :background "white" :foreground "yellow" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-yellowbg ((t (:stipple nil :background "yellow" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (tex-math-face ((t (:foreground "RosyBrown")))) - (texinfo-heading-face ((t (:foreground "Blue")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (vcursor ((t (:background "cyan" :foreground "blue" :underline t)))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red" :weight bold)))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange" :weight bold)))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:foreground "Blue" :underline t)))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:foreground "DarkGoldenrod" :underline t)))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:foreground "ForestGreen" :underline t)))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:foreground "Brown" :underline t)))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:foreground "Grey50" :underline t)))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (woman-addition-face ((t (:foreground "orange")))) - (woman-bold-face ((t (:bold t :foreground "blue" :weight bold)))) - (woman-italic-face ((t (:italic t :foreground "red" :underline t :slant italic)))) - (woman-unknown-face ((t (:foreground "brown")))) - (zmacs-region ((t (:background "lightgoldenrod2"))))))) - -(defun color-theme-late-night () - "Color theme by Alex Schroeder, created 2003-08-07. -This theme is for use late at night, with only little light in the room. -The goal was to make something as dark and subtle as the text console in -its default 80x25 state -- dark grey on black." - (interactive) - (let ((color-theme-is-cumulative t)) - (color-theme-dark-erc) - (color-theme-dark-gnus) - ;; (color-theme-dark-diff) - ;; (color-theme-dark-eshell) - (color-theme-dark-info) - (color-theme-dark-font-lock) - (color-theme-install - '(color-theme-late-night - ((background-color . "#000") - (background-mode . dark) - (background-toolbar-color . "#000") - (border-color . "#000") - (bottom-toolbar-shadow-color . "#000") - (cursor-color . "#888") - (foreground-color . "#666") - (top-toolbar-shadow-color . "#111")) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (button ((t (:bold t)))) - (custom-button-face ((t (:bold t :foreground "#999")))) - (fringe ((t (:background "#111" :foreground "#444")))) - (header-line ((t (:background "#333" :foreground "#000")))) - (highlight ((t (:background "dark slate blue" :foreground "light blue")))) - (holiday-face ((t (:background "#000" :foreground "#777")))) - (isearch ((t (:foreground "pink" :background "red")))) - (isearch-lazy-highlight-face ((t (:foreground "red")))) - (italic ((t (:bold t)))) - (menu ((t (:background "#111" :foreground "#444")))) - (minibuffer-prompt ((t (:foreground "555")))) - (modeline ((t (:background "#111" :foreground "#444")))) - (mode-line-inactive ((t (:background "#000" :foreground "#444")))) - (modeline-buffer-id ((t (:background "#000" :foreground "#555")))) - (modeline-mousable ((t (:background "#000" :foreground "#555")))) - (modeline-mousable-minor-mode ((t (:background "#000" :foreground "#555")))) - (region ((t (:background "dark cyan" :foreground "cyan")))) - (secondary-selection ((t (:background "Aquamarine" :foreground "SlateBlue")))) - (show-paren-match-face ((t (:foreground "white" :background "light slate blue")))) - (show-paren-mismatch-face ((t (:foreground "white" :background "red")))) - (tool-bar ((t (:background "#111" :foreground "#777")))) - (tooltip ((t (:background "#333" :foreground "#777")))) - (underline ((t (:bold t)))) - (variable-pitch ((t (nil)))) - (widget-button-face ((t (:bold t :foreground "#888")))) - (widget-field-face ((t (:bold t :foreground "#999")))))))) - -(defun color-theme-clarity () - "White on black color theme by Richard Wellum, created 2003-01-16." - (interactive) - (color-theme-install - '(color-theme-clarity - ((background-color . "black") - (background-mode . dark) - (border-color . "white") - (cursor-color . "yellow") - (foreground-color . "white") - (mouse-color . "white")) - ((CUA-mode-global-mark-cursor-color . "cyan") - (CUA-mode-normal-cursor-color . "yellow") - (CUA-mode-overwrite-cursor-color . "red") - (CUA-mode-read-only-cursor-color . "green") - (help-highlight-face . underline) - (ibuffer-dired-buffer-face . font-lock-function-name-face) - (ibuffer-help-buffer-face . font-lock-comment-face) - (ibuffer-hidden-buffer-face . font-lock-warning-face) - (ibuffer-occur-match-face . font-lock-warning-face) - (ibuffer-read-only-buffer-face . font-lock-type-face) - (ibuffer-special-buffer-face . font-lock-keyword-face) - (ibuffer-title-face . font-lock-type-face) - (list-matching-lines-face . bold) - (ps-line-number-color . "black") - (ps-zebra-color . 0.95) - (tags-tag-face . default) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (nil)))) - (CUA-global-mark-face ((t (:background "cyan" :foreground "black")))) - (CUA-rectangle-face ((t (:background "maroon" :foreground "white")))) - (CUA-rectangle-noselect-face ((t (:background "dimgray" :foreground "white")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "white")))) - (clearcase-dired-checkedout-face ((t (:foreground "red")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cursor ((t (:background "yellow")))) - (fixed-pitch ((t (:family "courier")))) - (flash-paren-face-off ((t (nil)))) - (flash-paren-face-on ((t (nil)))) - (flash-paren-face-region ((t (nil)))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:foreground "OrangeRed")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-doc-face ((t (:foreground "LightSalmon")))) - (font-lock-function-name-face ((t (:foreground "LightSkyBlue")))) - (font-lock-keyword-face ((t (:foreground "Cyan")))) - (font-lock-string-face ((t (:foreground "LightSalmon")))) - (font-lock-type-face ((t (:foreground "PaleGreen")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold)))) - (fringe ((t (:background "grey10")))) - (header-line ((t (:box (:line-width -1 :style released-button) :foreground "grey20" :background "grey90" :box nil)))) - (highlight ((t (:background "darkolivegreen")))) - (ibuffer-deletion-face ((t (:foreground "red")))) - (ibuffer-marked-face ((t (:foreground "green")))) - (isearch ((t (:background "palevioletred2" :foreground "brown4")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (menu ((t (nil)))) - (mode-line ((t (:foreground "yellow" :background "darkslateblue" :box (:line-width -1 :style released-button))))) - (mouse ((t (:background "white")))) - (region ((t (:background "blue")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "darkslateblue")))) - (show-block-face1 ((t (:background "gray10")))) - (show-block-face2 ((t (:background "gray15")))) - (show-block-face3 ((t (:background "gray20")))) - (show-block-face4 ((t (:background "gray25")))) - (show-block-face5 ((t (:background "gray30")))) - (show-block-face6 ((t (:background "gray35")))) - (show-block-face7 ((t (:background "gray40")))) - (show-block-face8 ((t (:background "gray45")))) - (show-block-face9 ((t (:background "gray50")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray"))))))) - -(defun color-theme-andreas () - "Color theme by Andreas Busch, created 2003-02-06." - (interactive) - (color-theme-install - '(color-theme-andreas - ((background-mode . light) - (background-color . "white") - (background-toolbar-color . "#cccccccccccc") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#7a7a7a7a7a7a") - (foreground-color . "black") - (top-toolbar-shadow-color . "#f5f5f5f5f5f5")) - ((gnus-mouse-face . highlight) - (ispell-highlight-face . highlight)) - (default ((t (nil)))) - (OrangeRed ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (nil)))) - (calendar-today-face ((t (:underline t)))) - (color-mode-face-@ ((t (:foreground "orange")))) - (color-mode-face-a ((t (:foreground "blue")))) - (color-mode-face-b ((t (:foreground "red")))) - (color-mode-face-c ((t (:foreground "green3")))) - (color-mode-face-d ((t (:background "red" :foreground "white")))) - (color-mode-face-e ((t (:background "orange" :foreground "blue")))) - (color-mode-face-f ((t (:background "blue" :foreground "yellow")))) - (color-mode-face-g ((t (:background "lightblue" :foreground "brown")))) - (color-mode-face-h ((t (:background "brown" :foreground "white")))) - (custom-button-face ((t (:bold t)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t :background "gray90")))) - (custom-variable-tag-face ((t (:underline t :background "gray95" :foreground "blue")))) - (diary-face ((t (:foreground "red")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (emacs-wiki-bad-link-face ((t (:bold t :foreground "red")))) - (emacs-wiki-link-face ((t (:bold t :foreground "green")))) - (font-lock-comment-face ((t (:foreground "orange1")))) - (font-lock-doc-string-face ((t (:foreground "green4")))) - (font-lock-function-name-face ((t (:foreground "blue3")))) - (font-lock-keyword-face ((t (:foreground "red1")))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:foreground "green4")))) - (font-lock-type-face ((t (:foreground "#6920ac")))) - (font-lock-variable-name-face ((t (:foreground "blue3")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (gnu-cite-face-3 ((t (nil)))) - (gnu-cite-face-4 ((t (nil)))) - (gnus-cite-attribution-face ((t (:underline t)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4")))) - (gnus-header-from-face ((t (:bold t :foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:bold t :foreground "red4")))) - (gnus-splash-face ((t (:foreground "red")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "DarkRed")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "Red")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-x-face ((t (nil)))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75")))) - (gui-element ((t (:background "Gray80")))) - (highlight ((t (nil)))) - (holiday-face ((t (:background "pink")))) - (hyper-apropos-documentation ((t (:foreground "darkred")))) - (hyper-apropos-heading ((t (:bold t)))) - (hyper-apropos-hyperlink ((t (:foreground "blue4")))) - (hyper-apropos-major-heading ((t (:bold t)))) - (hyper-apropos-section-heading ((t (:italic t :bold t)))) - (hyper-apropos-warning ((t (:bold t :foreground "red")))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (isearch ((t (:background "yellow" :foreground "red")))) - (italic ((t (:italic t)))) - (kai-gnus-cite-face-1 ((t (:foreground "LightCyan4")))) - (kai-gnus-cite-face-2 ((t (:foreground "LightSkyBlue2")))) - (kai-gnus-cite-face-3 ((t (:foreground "DodgerBlue3")))) - (kai-gnus-group-mail-face ((t (:foreground "darkslategrey")))) - (kai-gnus-group-nonempty-mail-face ((t (:foreground "DarkRed")))) - (kai-gnus-group-starred-face ((t (:foreground "grey50")))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68")))) - (message-cited-text ((t (:italic t)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-contents ((t (:italic t)))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-headers ((t (:bold t)))) - (message-highlighted-header-contents ((t (:italic t :bold t)))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "Gray75" :foreground "Black")))) - (modeline-buffer-id ((t (:background "Gray75" :foreground "blue4")))) - (modeline-mousable ((t (:background "Gray75" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "Gray75" :foreground "green4")))) - (paren-blink-off ((t (:foreground "gray80")))) - (paren-match ((t (:background "red" :foreground "white")))) - (paren-mismatch ((t (:background "DeepPink")))) - (pointer ((t (:foreground "blue")))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "gray75")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (text-cursor ((t (:background "red" :foreground "LightYellow1")))) - (toolbar ((t (:background "Gray80")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (:background "Gray80")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (x-face ((t (:background "white")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "gray65" :foreground "yellow"))))))) - -(defun color-theme-charcoal-black () - "Color theme by Lars Chr. Hausmann, created 2003-03-24." - (interactive) - (color-theme-install - '(color-theme-charcoal-black - ((background-color . "Grey15") - (background-mode . dark) - (border-color . "Grey") - (cursor-color . "Grey") - (foreground-color . "Grey") - (mouse-color . "Grey")) - ((display-time-mail-face . mode-line) - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-mouse-face . highlight) - (gnus-server-agent-face . gnus-server-agent-face) - (gnus-server-closed-face . gnus-server-closed-face) - (gnus-server-denied-face . gnus-server-denied-face) - (gnus-server-offline-face . gnus-server-offline-face) - (gnus-server-opened-face . gnus-server-opened-face) - (gnus-signature-face . gnus-signature-face) - (gnus-summary-selected-face . gnus-summary-selected-face) - (help-highlight-face . underline) - (list-matching-lines-face . bold) - (mime-button-face . bold) - (mime-button-mouse-face . highlight) - (sgml-set-face . t) - (tags-tag-face . default) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "Grey15" :foreground "Grey" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 87 :width semi-condensed :family "misc-fixed")))) - (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728)))) - (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44)))) - (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2)))) - (Info-title-4-face ((t (:bold t :family "helv" :weight bold)))) - (bg:erc-color-face0 ((t (nil)))) - (bg:erc-color-face1 ((t (nil)))) - (bg:erc-color-face10 ((t (nil)))) - (bg:erc-color-face11 ((t (nil)))) - (bg:erc-color-face12 ((t (nil)))) - (bg:erc-color-face13 ((t (nil)))) - (bg:erc-color-face14 ((t (nil)))) - (bg:erc-color-face15 ((t (nil)))) - (bg:erc-color-face2 ((t (nil)))) - (bg:erc-color-face3 ((t (nil)))) - (bg:erc-color-face4 ((t (nil)))) - (bg:erc-color-face5 ((t (nil)))) - (bg:erc-color-face6 ((t (nil)))) - (bg:erc-color-face7 ((t (nil)))) - (bg:erc-color-face8 ((t (nil)))) - (bg:erc-color-face9 ((t (nil)))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:bold t :foreground "beige" :weight bold)))) - (border ((t (:background "Grey")))) - (calendar-today-face ((t (:underline t)))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cperl-array-face ((t (:bold t :foreground "light salmon" :weight bold)))) - (cperl-hash-face ((t (:italic t :bold t :foreground "beige" :slant italic :weight bold)))) - (cperl-nonoverridable-face ((t (:foreground "aquamarine")))) - (cursor ((t (:background "Grey")))) - (custom-button-face ((t (:foreground "gainsboro")))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "dim gray")))) - (custom-comment-tag-face ((t (:foreground "gray80")))) - (custom-documentation-face ((t (:foreground "light blue")))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:bold t :foreground "pale turquoise" :weight bold)))) - (custom-group-tag-face-1 ((t (:foreground "pale turquoise" :underline t)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "light salmon")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (diary-face ((t (:foreground "red")))) - (dired-face-directory ((t (:bold t :foreground "sky blue" :weight bold)))) - (dired-face-executable ((t (:foreground "green yellow")))) - (dired-face-flagged ((t (:foreground "tomato")))) - (dired-face-marked ((t (:foreground "light salmon")))) - (dired-face-permissions ((t (:foreground "aquamarine")))) - (erc-action-face ((t (nil)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "pale green")))) - (erc-error-face ((t (:bold t :foreground "IndianRed" :weight bold)))) - (erc-highlight-face ((t (:bold t :foreground "pale green" :weight bold)))) - (erc-input-face ((t (:foreground "light blue")))) - (erc-inverse-face ((t (:background "steel blue")))) - (erc-notice-face ((t (:foreground "light salmon")))) - (erc-pal-face ((t (:foreground "pale green")))) - (erc-prompt-face ((t (:bold t :foreground "light blue" :weight bold)))) - (eshell-ls-archive-face ((t (:bold t :foreground "medium purple" :weight bold)))) - (eshell-ls-backup-face ((t (:foreground "dim gray")))) - (eshell-ls-clutter-face ((t (:foreground "dim gray")))) - (eshell-ls-directory-face ((t (:bold t :foreground "medium slate blue" :weight bold)))) - (eshell-ls-executable-face ((t (:bold t :foreground "aquamarine" :weight bold)))) - (eshell-ls-missing-face ((t (:foreground "black")))) - (eshell-ls-picture-face ((t (:foreground "violet")))) - (eshell-ls-product-face ((t (:foreground "light steel blue")))) - (eshell-ls-readonly-face ((t (:foreground "aquamarine")))) - (eshell-ls-special-face ((t (:foreground "gold")))) - (eshell-ls-symlink-face ((t (:foreground "white")))) - (eshell-ls-unreadable-face ((t (:foreground "dim gray")))) - (eshell-prompt-face ((t (:bold t :foreground "light sky blue" :weight bold)))) - (excerpt ((t (:italic t :slant italic)))) - (fg:erc-color-face0 ((t (:foreground "white")))) - (fg:erc-color-face1 ((t (:foreground "beige")))) - (fg:erc-color-face10 ((t (:foreground "pale goldenrod")))) - (fg:erc-color-face11 ((t (:foreground "light goldenrod yellow")))) - (fg:erc-color-face12 ((t (:foreground "light yellow")))) - (fg:erc-color-face13 ((t (:foreground "yellow")))) - (fg:erc-color-face14 ((t (:foreground "light goldenrod")))) - (fg:erc-color-face15 ((t (:foreground "lime green")))) - (fg:erc-color-face2 ((t (:foreground "lemon chiffon")))) - (fg:erc-color-face3 ((t (:foreground "light cyan")))) - (fg:erc-color-face4 ((t (:foreground "powder blue")))) - (fg:erc-color-face5 ((t (:foreground "sky blue")))) - (fg:erc-color-face6 ((t (:foreground "dark sea green")))) - (fg:erc-color-face7 ((t (:foreground "pale green")))) - (fg:erc-color-face8 ((t (:foreground "medium spring green")))) - (fg:erc-color-face9 ((t (:foreground "khaki")))) - (fixed ((t (:bold t :weight bold)))) - (fixed-pitch ((t (:family "courier")))) - (flyspell-duplicate-face ((t (:bold t :foreground "Gold3" :underline t :weight bold)))) - (flyspell-incorrect-face ((t (:bold t :foreground "OrangeRed" :underline t :weight bold)))) - (font-lock-builtin-face ((t (:foreground "aquamarine")))) - (font-lock-comment-face ((t (:foreground "light blue")))) - (font-lock-constant-face ((t (:foreground "pale green")))) - (font-lock-doc-face ((t (:foreground "light sky blue")))) - (font-lock-doc-string-face ((t (:foreground "sky blue")))) - (font-lock-function-name-face ((t (:bold t :foreground "aquamarine" :weight bold)))) - (font-lock-keyword-face ((t (:bold t :foreground "pale turquoise" :weight bold)))) - (font-lock-reference-face ((t (:foreground "pale green")))) - (font-lock-string-face ((t (:foreground "light sky blue")))) - (font-lock-type-face ((t (:bold t :foreground "sky blue" :weight bold)))) - (font-lock-variable-name-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (font-lock-warning-face ((t (:bold t :foreground "Red" :weight bold)))) - (fringe ((t (:background "Grey15")))) - (gnus-cite-face-1 ((t (:foreground "LightSalmon")))) - (gnus-cite-face-2 ((t (:foreground "Khaki")))) - (gnus-cite-face-3 ((t (:foreground "Coral")))) - (gnus-cite-face-4 ((t (:foreground "yellow green")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "bisque")))) - (gnus-cite-face-7 ((t (:foreground "peru")))) - (gnus-cite-face-8 ((t (:foreground "light coral")))) - (gnus-cite-face-9 ((t (:foreground "plum")))) - (gnus-emphasis-bold ((t (:bold t :weight bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t :slant italic)))) - (gnus-emphasis-strikethru ((t (nil)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) - (gnus-group-mail-1-empty-face ((t (:foreground "White")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "White" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "light cyan")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "LightBlue")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "LightBlue" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "Aquamarine")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "Aquamarine" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "White")))) - (gnus-group-news-1-face ((t (:bold t :foreground "White" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "light cyan")))) - (gnus-group-news-2-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (gnus-group-news-3-empty-face ((t (:foreground "LightBlue")))) - (gnus-group-news-3-face ((t (:bold t :foreground "LightBlue" :weight bold)))) - (gnus-group-news-4-empty-face ((t (:foreground "Aquamarine")))) - (gnus-group-news-4-face ((t (:bold t :foreground "Aquamarine" :weight bold)))) - (gnus-group-news-5-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-5-face ((t (:bold t :foreground "MediumAquamarine" :weight bold)))) - (gnus-group-news-6-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-6-face ((t (:bold t :foreground "MediumAquamarine" :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-low-face ((t (:bold t :foreground "MediumAquamarine" :weight bold)))) - (gnus-header-content-face ((t (:foreground "LightSkyBlue3")))) - (gnus-header-from-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (gnus-header-name-face ((t (:bold t :foreground "LightBlue" :weight bold)))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "MediumAquamarine" :slant italic :weight bold)))) - (gnus-header-subject-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (gnus-server-agent-face ((t (:bold t :foreground "PaleTurquoise" :weight bold)))) - (gnus-server-closed-face ((t (:italic t :foreground "Light Steel Blue" :slant italic)))) - (gnus-server-denied-face ((t (:bold t :foreground "Pink" :weight bold)))) - (gnus-server-offline-face ((t (:bold t :foreground "Yellow" :weight bold)))) - (gnus-server-opened-face ((t (:bold t :foreground "Green1" :weight bold)))) - (gnus-signature-face ((t (:foreground "Grey")))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-summary-cancelled-face ((t (:background "Black" :foreground "Yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "MediumAquamarine" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "Aquamarine" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "LightSalmon" :weight bold)))) - (gnus-summary-high-unread-face ((t (:italic t :bold t :foreground "beige" :slant italic :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "DimGray" :slant italic)))) - (gnus-summary-low-read-face ((t (:foreground "slate gray")))) - (gnus-summary-low-ticked-face ((t (:foreground "Pink")))) - (gnus-summary-low-unread-face ((t (:foreground "LightGray")))) - (gnus-summary-normal-ancient-face ((t (:foreground "MediumAquamarine")))) - (gnus-summary-normal-read-face ((t (:foreground "Aquamarine")))) - (gnus-summary-normal-ticked-face ((t (:foreground "LightSalmon")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey20" :foreground "grey90" :box nil)))) - (highlight ((t (:background "dark slate blue" :foreground "light blue")))) - (highline-face ((t (:background "DeepSkyBlue4")))) - (holiday-face ((t (:background "pink")))) - (info-header-node ((t (:bold t :weight bold)))) - (info-header-xref ((t (:bold t :weight bold :foreground "sky blue")))) - (info-menu-5 ((t (:underline t)))) - (info-menu-header ((t (:bold t :family "helv" :weight bold)))) - (info-node ((t (:bold t :weight bold)))) - (info-xref ((t (:bold t :foreground "sky blue" :weight bold)))) - (isearch ((t (:background "slate blue")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:foreground "sky blue")))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-bug-breakpoint-marker ((t (:background "yellow" :foreground "red")))) - (jde-java-font-lock-api-face ((t (:foreground "light goldenrod")))) - (jde-java-font-lock-bold-face ((t (:bold t :weight bold)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "Aquamarine")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "light coral")))) - (jde-java-font-lock-italic-face ((t (:italic t :slant italic)))) - (jde-java-font-lock-link-face ((t (:foreground "blue" :underline t :slant normal)))) - (jde-java-font-lock-modifier-face ((t (:foreground "LightSteelBlue")))) - (jde-java-font-lock-number-face ((t (:foreground "LightSalmon")))) - (jde-java-font-lock-package-face ((t (:foreground "steelblue1")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (makefile-space-face ((t (:background "hotpink")))) - (menu ((t (:background "MidnightBlue" :foreground "Grey")))) - (message-cited-text-face ((t (:foreground "LightSalmon")))) - (message-header-cc-face ((t (:foreground "light cyan")))) - (message-header-name-face ((t (:foreground "LightBlue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "MediumAquamarine" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "MediumAquamarine")))) - (message-header-subject-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (message-header-to-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (message-header-xheader-face ((t (:foreground "MediumAquamarine")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "chocolate")))) - (mode-line ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (mouse ((t (:background "Grey")))) - (region ((t (:background "DarkSlateBlue")))) - (scroll-bar ((t (:background "grey75")))) - (secondary-selection ((t (:background "steel blue")))) - (semantic-dirty-token-face ((t (:background "gray10")))) - (semantic-unmatched-syntax-face ((t (:underline "red")))) - (show-paren-match-face ((t (:background "light slate blue" :foreground "white")))) - (show-paren-mismatch-face ((t (:background "red" :foreground "white")))) - (speedbar-button-face ((t (:foreground "seashell2")))) - (speedbar-directory-face ((t (:foreground "seashell3")))) - (speedbar-file-face ((t (:foreground "seashell4")))) - (speedbar-highlight-face ((t (:background "dark slate blue" :foreground "wheat")))) - (speedbar-selected-face ((t (:foreground "seashell1" :underline t)))) - (speedbar-separator-face ((t (:background "blue" :foreground "white" :overline "gray")))) - (speedbar-tag-face ((t (:foreground "antique white")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "light blue")))) - (widget-field-face ((t (:background "RoyalBlue4" :foreground "wheat")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "slate blue" :foreground "wheat")))) - (woman-bold-face ((t (:bold t :foreground "sky blue" :weight bold)))) - (woman-italic-face ((t (:foreground "deep sky blue")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))) - (zmacs-region ((t (:background "DarkSlateBlue"))))))) - -(defun color-theme-vim-colors () - "Color theme by Michael Soulier, created 2003-03-26." - (interactive) - (color-theme-install - '(color-theme-vim-colors - ((background-color . "#ffffff") - (background-mode . light) - (border-color . "black") - (cursor-color . "#000000") - (foreground-color . "#000000") - (mouse-color . "#000000")) - ((Man-overstrike-face . bold) - (Man-underline-face . underline) - (apropos-keybinding-face . underline) - (apropos-label-face . italic) - (apropos-match-face . secondary-selection) - (apropos-property-face . bold-italic) - (apropos-symbol-face . bold) - (cperl-here-face . font-lock-string-face) - (cperl-invalid-face quote underline) - (cperl-pod-face . font-lock-comment-face) - (cperl-pod-head-face . font-lock-variable-name-face) - (help-highlight-face . underline) - (ispell-highlight-face . highlight) - (list-matching-lines-face . bold) - (rpm-spec-dir-face . rpm-spec-dir-face) - (rpm-spec-doc-face . rpm-spec-doc-face) - (rpm-spec-ghost-face . rpm-spec-ghost-face) - (rpm-spec-macro-face . rpm-spec-macro-face) - (rpm-spec-package-face . rpm-spec-package-face) - (rpm-spec-tag-face . rpm-spec-tag-face) - (tags-tag-face . default) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:background "#ffffff" :foreground "#000000")))) - (Info-title-1-face ((t (nil)))) - (Info-title-2-face ((t (nil)))) - (Info-title-3-face ((t (nil)))) - (Info-title-4-face ((t (:bold (bold extra-bold ultra-bold))))) - (bold ((t (:bold (bold extra-bold ultra-bold))))) - (bold-italic ((t (:italic (italic oblique) :bold (bold extra-bold ultra-bold))))) - (border ((t (:background "black")))) - (comint-highlight-input ((t (:bold (bold extra-bold ultra-bold))))) - (comint-highlight-prompt ((t (:foreground "dark blue")))) - (cperl-array-face ((t (:foreground "brown")))) - (cperl-hash-face ((t (:foreground "red")))) - (cperl-nonoverridable-face ((t (:foreground "#008b8b")))) - (cursor ((t (:background "#000000")))) - (fixed-pitch ((t (nil)))) - (font-lock-builtin-face ((t (:foreground "purple")))) - (font-lock-comment-face ((t (:foreground "blue")))) - (font-lock-constant-face ((t (:foreground "green4")))) - (font-lock-doc-face ((t (:background "#f2f2f2")))) - (font-lock-function-name-face ((t (:foreground "#008b8b")))) - (font-lock-keyword-face ((t (:bold (bold extra-bold ultra-bold) :foreground "#a52a2a")))) - (font-lock-string-face ((t (:background "#f2f2f2" :foreground "#ff00ff")))) - (font-lock-type-face ((t (:foreground "ForestGreen")))) - (font-lock-variable-name-face ((t (:foreground "#008b8b")))) - (font-lock-warning-face ((t (:bold (bold extra-bold ultra-bold) :foreground "Red")))) - (fringe ((t (:background "#e5e5e5")))) - (header-line ((t (:background "grey90" :foreground "grey20")))) - (highlight ((t (:background "darkseagreen2")))) - (info-header-node ((t (nil)))) - (info-header-xref ((t (nil)))) - (info-menu-5 ((t (:foreground "red1")))) - (info-menu-header ((t (:bold (bold extra-bold ultra-bold))))) - (info-node ((t (:italic (italic oblique) :bold (bold extra-bold ultra-bold) :foreground "brown")))) - (info-xref ((t (:bold (bold extra-bold ultra-bold) :foreground "magenta4")))) - (isearch ((t (:background "magenta4" :foreground "lightskyblue1")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise")))) - (italic ((t (:italic (italic oblique))))) - (menu ((t (nil)))) - (mode-line ((t (:background "grey75" :foreground "black")))) - (mouse ((t (:background "#000000")))) - (region ((t (:background "lightgoldenrod2")))) - (rpm-spec-dir-face ((t (:foreground "green")))) - (rpm-spec-doc-face ((t (:foreground "magenta")))) - (rpm-spec-ghost-face ((t (:foreground "red")))) - (rpm-spec-macro-face ((t (:foreground "purple")))) - (rpm-spec-package-face ((t (:foreground "red")))) - (rpm-spec-tag-face ((t (:foreground "blue")))) - (scroll-bar ((t (:background "grey75" :foreground "#000000")))) - (secondary-selection ((t (:background "yellow")))) - (sh-heredoc-face ((t (:foreground "tan")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (tool-bar ((t (:background "grey75" :foreground "black")))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (nil)))) - (widget-button-face ((t (:bold (bold extra-bold ultra-bold))))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85"))))))) - -(defun color-theme-calm-forest () - "Color theme by Artur Hefczyc, created 2003-04-18." - (interactive) - (color-theme-install - '(color-theme-calm-forest - ((background-color . "gray12") - (background-mode . dark) - (border-color . "black") - (cursor-color . "orange") - (foreground-color . "green") - (mouse-color . "yellow")) - ((help-highlight-face . underline) - (list-matching-lines-face . bold) - (senator-eldoc-use-color . t) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "gray12" :foreground "green" :inverse-video nil :box nil -:strike-through nil :overline nil :underline nil :slant normal :weight normal :height 98 :width -normal :family "outline-courier new")))) - (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728)))) - (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44)))) - (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2)))) - (Info-title-4-face ((t (:bold t :family "helv" :weight bold)))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cparen-around-andor-face ((t (:bold t :foreground "maroon" :weight bold)))) - (cparen-around-begin-face ((t (:foreground "maroon")))) - (cparen-around-conditional-face ((t (:bold t :foreground "RoyalBlue" :weight bold)))) - (cparen-around-define-face ((t (:bold t :foreground "Blue" :weight bold)))) - (cparen-around-lambda-face ((t (:foreground "LightSeaGreen")))) - (cparen-around-letdo-face ((t (:bold t :foreground "LightSeaGreen" :weight bold)))) - (cparen-around-quote-face ((t (:foreground "SaddleBrown")))) - (cparen-around-set!-face ((t (:foreground "OrangeRed")))) - (cparen-around-syntax-rules-face ((t (:foreground "Magenta")))) - (cparen-around-vector-face ((t (:foreground "chocolate")))) - (cparen-binding-face ((t (:foreground "ForestGreen")))) - (cparen-binding-list-face ((t (:bold t :foreground "ForestGreen" :weight bold)))) - (cparen-conditional-clause-face ((t (:foreground "RoyalBlue")))) - (cparen-normal-paren-face ((t (:foreground "grey50")))) - (cursor ((t (:background "orange")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style -released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width -2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "dim gray")))) - (custom-comment-tag-face ((t (:foreground "gray80")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:bold t :foreground "light blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "pink" :weight bold :height -1.2)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "lime green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "light blue" :weight bold -:height 1.2)))) - (eieio-custom-slot-tag-face ((t (:foreground "light blue")))) - (extra-whitespace-face ((t (:background "pale green")))) - (fixed-pitch ((t (:family "courier")))) - (font-latex-bold-face ((t (:bold t :foreground "OliveDrab" :weight bold)))) - (font-latex-italic-face ((t (:italic t :foreground "OliveDrab" :slant italic)))) - (font-latex-math-face ((t (:foreground "burlywood")))) - (font-latex-sedate-face ((t (:foreground "LightGray")))) - (font-latex-string-face ((t (:foreground "RosyBrown")))) - (font-latex-warning-face ((t (:bold t :foreground "Red" :weight bold)))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:foreground "chocolate1")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-doc-face ((t (:foreground "LightSalmon")))) - (font-lock-function-name-face ((t (:foreground "LightSkyBlue")))) - (font-lock-keyword-face ((t (:foreground "Cyan")))) - (font-lock-string-face ((t (:foreground "LightSalmon")))) - (font-lock-type-face ((t (:foreground "PaleGreen")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold)))) - (fringe ((t (:background "grey10")))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey20" :foreground -"grey90" :box nil)))) - (highlight ((t (:background "darkolivegreen")))) - (info-header-node ((t (:italic t :bold t :weight bold :slant italic :foreground "white")))) - (info-header-xref ((t (:bold t :weight bold :foreground "cyan")))) - (info-menu-5 ((t (:foreground "red1")))) - (info-menu-header ((t (:bold t :family "helv" :weight bold)))) - (info-node ((t (:italic t :bold t :foreground "white" :slant italic :weight bold)))) - (info-xref ((t (:bold t :foreground "cyan" :weight bold)))) - (isearch ((t (:background "palevioletred2" :foreground "brown4")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black")))) - (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black")))) - (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black")))) - (jde-java-font-lock-api-face ((t (:foreground "light goldenrod")))) - (jde-java-font-lock-bold-face ((t (:bold t :weight bold)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "Aquamarine")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "light coral")))) - (jde-java-font-lock-italic-face ((t (:italic t :slant italic)))) - (jde-java-font-lock-link-face ((t (:foreground "blue" :underline t :slant normal)))) - (jde-java-font-lock-modifier-face ((t (:foreground "LightSteelBlue")))) - (jde-java-font-lock-number-face ((t (:foreground "LightSalmon")))) - (jde-java-font-lock-operator-face ((t (:foreground "medium blue")))) - (jde-java-font-lock-package-face ((t (:foreground "steelblue1")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (menu ((t (nil)))) - (mode-line ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style -released-button))))) - (mouse ((t (:background "yellow")))) - (region ((t (:background "blue3")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "SkyBlue4")))) - (semantic-dirty-token-face ((t (:background "gray10")))) - (semantic-unmatched-syntax-face ((t (:underline "red")))) - (senator-intangible-face ((t (:foreground "gray75")))) - (senator-momentary-highlight-face ((t (:background "gray30")))) - (senator-read-only-face ((t (:background "#664444")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green3")))) - (speedbar-directory-face ((t (:foreground "light blue")))) - (speedbar-file-face ((t (:foreground "cyan")))) - (speedbar-highlight-face ((t (:background "sea green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-separator-face ((t (:background "blue" :foreground "white" :overline "gray")))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style -released-button))))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray"))))))) - -(defun color-theme-lawrence () - "Color theme by lawrence mitchell . -Mainly shades of green. -Contains faces for erc, gnus, most of jde." - (interactive) - (color-theme-install - '(color-theme-lawrence - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "green") - (foreground-color . "#00CC00") - (mouse-color . "black")) - ((erc-button-face . bold) - (erc-button-mouse-face . highlight) - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-cite-attribution-face . gnus-cite-attribution-face) - (gnus-mouse-face . highlight) - (gnus-server-agent-face . gnus-server-agent-face) - (gnus-server-closed-face . gnus-server-closed-face) - (gnus-server-denied-face . gnus-server-denied-face) - (gnus-server-offline-face . gnus-server-offline-face) - (gnus-server-opened-face . gnus-server-opened-face) - (gnus-signature-face . gnus-signature-face) - (gnus-summary-selected-face . gnus-summary-selected-face) - (gnus-treat-display-face . head) - (gnus-treat-display-xface . head) - (list-matching-lines-buffer-name-face . underline) - (list-matching-lines-face . bold) - (paren-match-face . paren-face-match) - (paren-mismatch-face . paren-face-mismatch) - (paren-no-match-face . paren-face-no-match) - (sgml-set-face . t) - (tags-tag-face . default) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (nil)))) - (Buffer-menu-buffer-face ((t (:bold t :weight bold)))) - (bg:erc-color-face0 ((t (:background "White")))) - (bg:erc-color-face1 ((t (:background "black")))) - (bg:erc-color-face10 ((t (:background "lightblue1")))) - (bg:erc-color-face11 ((t (:background "cyan")))) - (bg:erc-color-face12 ((t (:background "blue")))) - (bg:erc-color-face13 ((t (:background "deeppink")))) - (bg:erc-color-face14 ((t (:background "gray50")))) - (bg:erc-color-face15 ((t (:background "gray90")))) - (bg:erc-color-face2 ((t (:background "blue4")))) - (bg:erc-color-face3 ((t (:background "green4")))) - (bg:erc-color-face4 ((t (:background "red")))) - (bg:erc-color-face5 ((t (:background "brown")))) - (bg:erc-color-face6 ((t (:background "purple")))) - (bg:erc-color-face7 ((t (:background "orange")))) - (bg:erc-color-face8 ((t (:background "yellow")))) - (bg:erc-color-face9 ((t (:background "green")))) - (bold ((t (:bold t :foreground "#00CC00" :background "black")))) - (bold-italic ((t (:italic t :bold t :slant oblique :weight semi-bold)))) - (border ((t (:background "black")))) - (button ((t (:underline t)))) - (comint-highlight-input ((t (nil)))) - (comint-highlight-prompt ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (cursor ((t (:background "green")))) - (custom-button-face ((t (:bold t :foreground "#00CC00" :background "black")))) - (custom-button-pressed-face ((t (nil)))) - (custom-changed-face ((t (:italic t :foreground "#00CC00" :background "black" :slant oblique)))) - (custom-comment-face ((t (nil)))) - (custom-comment-tag-face ((t (nil)))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (nil)))) - (custom-group-tag-face ((t (nil)))) - (custom-group-tag-face-1 ((t (nil)))) - (custom-invalid-face ((t (:foreground "#00CC00" :background "black" :strike-through t)))) - (custom-modified-face ((t (nil)))) - (custom-rogue-face ((t (nil)))) - (custom-saved-face ((t (nil)))) - (custom-set-face ((t (nil)))) - (custom-state-face ((t (nil)))) - (custom-variable-button-face ((t (nil)))) - (custom-variable-tag-face ((t (nil)))) - (erc-action-face ((t (:bold t :weight semi-bold)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-current-nick-face ((t (:bold t :foreground "LightSeaGreen" :weight semi-bold)))) - (erc-dangerous-host-face ((t (:foreground "red")))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "IndianRed")))) - (erc-error-face ((t (:bold t :weight semi-bold :background "darkblue" :foreground "#00CC00")))) - (erc-fool-face ((t (:foreground "dim gray")))) - (erc-input-face ((t (:foreground "springgreen")))) - (erc-inverse-face ((t (:bold t :background "Darkgreen" :foreground "Black" :weight semi-bold)))) - (erc-keyword-face ((t (:bold t :foreground "pale green" :weight bold)))) - (erc-nick-default-face ((t (:bold t :weight semi-bold)))) - (erc-nick-msg-face ((t (:bold t :foreground "springgreen" :weight semi-bold)))) - (erc-notice-face ((t (:foreground "seagreen" :weight normal)))) - (erc-pal-face ((t (:bold t :foreground "Magenta" :weight bold)))) - (erc-prompt-face ((t (:bold t :background "lightBlue2" :foreground "Black" :weight semi-bold)))) - (erc-timestamp-face ((t (:foreground "seagreen" :weight normal)))) - (erc-underline-face ((t (:underline t)))) - (fg:erc-color-face0 ((t (:foreground "White")))) - (fg:erc-color-face1 ((t (:foreground "black")))) - (fg:erc-color-face10 ((t (:foreground "lightblue1")))) - (fg:erc-color-face11 ((t (:foreground "cyan")))) - (fg:erc-color-face12 ((t (:foreground "blue")))) - (fg:erc-color-face13 ((t (:foreground "deeppink")))) - (fg:erc-color-face14 ((t (:foreground "gray50")))) - (fg:erc-color-face15 ((t (:foreground "gray90")))) - (fg:erc-color-face2 ((t (:foreground "blue4")))) - (fg:erc-color-face3 ((t (:foreground "green4")))) - (fg:erc-color-face4 ((t (:foreground "red")))) - (fg:erc-color-face5 ((t (:foreground "brown")))) - (fg:erc-color-face6 ((t (:foreground "purple")))) - (fg:erc-color-face7 ((t (:foreground "orange")))) - (fg:erc-color-face8 ((t (:foreground "yellow")))) - (fg:erc-color-face9 ((t (:foreground "green")))) - (fixed-pitch ((t (nil)))) - (font-latex-string-face ((t (:bold t :weight semi-bold :foreground "seagreen" :background "black")))) - (font-latex-warning-face ((t (:bold t :weight semi-bold :background "darkblue" :foreground "#00CC00")))) - (font-lock-builtin-face ((t (:foreground "seagreen1")))) - (font-lock-comment-face ((t (:background "black" :foreground "medium spring green")))) - (font-lock-constant-face ((t (nil)))) - (font-lock-doc-face ((t (:bold t :background "black" :foreground "seagreen" :weight semi-bold)))) - (font-lock-function-name-face ((t (:bold t :foreground "#00CC00" :background "black")))) - (font-lock-keyword-face ((t (:bold t :background "black" :foreground "green" :underline t :weight semi-bold)))) - (font-lock-preprocessor-face ((t (:foreground "#00ccdd")))) - (font-lock-string-face ((t (:bold t :background "black" :foreground "seagreen" :weight semi-bold)))) - (font-lock-type-face ((t (nil)))) - (font-lock-variable-name-face ((t (nil)))) - (font-lock-warning-face ((t (:bold t :foreground "#00CC00" :background "darkblue" :weight semi-bold)))) - (fringe ((t (:foreground "#00CC00" :background "#151515")))) - (gnus-cite-attribution-face ((t (:italic t :foreground "#00CC00" :background "black" :slant italic)))) - (gnus-cite-face-1 ((t (:background "black" :foreground "springgreen")))) - (gnus-cite-face-10 ((t (nil)))) - (gnus-cite-face-11 ((t (nil)))) - (gnus-cite-face-2 ((t (:background "black" :foreground "lightseagreen")))) - (gnus-cite-face-3 ((t (:background "black" :foreground "darkseagreen")))) - (gnus-cite-face-4 ((t (:background "black" :foreground "forestgreen")))) - (gnus-cite-face-5 ((t (:background "black" :foreground "springgreen")))) - (gnus-cite-face-6 ((t (:background "black" :foreground "springgreen")))) - (gnus-cite-face-7 ((t (:background "black" :foreground "springgreen")))) - (gnus-cite-face-8 ((t (:background "black" :foreground "springgreen")))) - (gnus-cite-face-9 ((t (:background "black" :foreground "springgreen")))) - (gnus-emphasis-bold ((t (:bold t :weight semi-bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight semi-bold)))) - (gnus-emphasis-highlight-words ((t (:bold t :foreground "#00CC00" :background "black" :underline t :weight bold)))) - (gnus-emphasis-italic ((t (:italic t :slant italic)))) - (gnus-emphasis-strikethru ((t (nil)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight semi-bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight semi-bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) - (gnus-group-mail-1-empty-face ((t (nil)))) - (gnus-group-mail-1-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (nil)))) - (gnus-group-mail-2-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (nil)))) - (gnus-group-mail-3-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (nil)))) - (gnus-group-mail-low-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-news-1-empty-face ((t (nil)))) - (gnus-group-news-1-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-news-2-empty-face ((t (nil)))) - (gnus-group-news-2-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-news-low-empty-face ((t (nil)))) - (gnus-group-news-low-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-header-content-face ((t (:background "black" :foreground "springgreen")))) - (gnus-header-from-face ((t (nil)))) - (gnus-header-name-face ((t (nil)))) - (gnus-header-newsgroups-face ((t (nil)))) - (gnus-header-subject-face ((t (nil)))) - (gnus-server-agent-face ((t (:bold t :foreground "PaleTurquoise" :weight bold)))) - (gnus-server-closed-face ((t (:italic t :foreground "Light Steel Blue" :slant italic)))) - (gnus-server-denied-face ((t (:bold t :foreground "Pink" :weight semi-bold)))) - (gnus-server-offline-face ((t (:bold t :foreground "Yellow" :weight bold)))) - (gnus-server-opened-face ((t (:bold t :foreground "Green1" :weight semi-bold)))) - (gnus-signature-face ((t (:background "black" :foreground "springgreen" :slant normal)))) - (gnus-splash-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-summary-cancelled-face ((t (:foreground "#00CC00" :background "black" :strike-through t)))) - (gnus-summary-high-ancient-face ((t (nil)))) - (gnus-summary-high-read-face ((t (nil)))) - (gnus-summary-high-ticked-face ((t (:background "black" :foreground "seagreen")))) - (gnus-summary-high-undownloaded-face ((t (:bold t :foreground "LightGray" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-summary-low-ancient-face ((t (nil)))) - (gnus-summary-low-read-face ((t (nil)))) - (gnus-summary-low-ticked-face ((t (nil)))) - (gnus-summary-low-undownloaded-face ((t (:italic t :foreground "LightGray" :slant italic :weight normal)))) - (gnus-summary-low-unread-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-summary-normal-ancient-face ((t (nil)))) - (gnus-summary-normal-read-face ((t (nil)))) - (gnus-summary-normal-ticked-face ((t (:bold t :foreground "#00CC00" :background "black")))) - (gnus-summary-normal-undownloaded-face ((t (:foreground "LightGray" :weight normal)))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:background "#101010")))) - (gnus-x-face ((t (:background "white" :foreground "black")))) - (header-line ((t (nil)))) - (highlight ((t (:foreground "#00CC00" :background "darkgreen")))) - (ido-first-match-face ((t (:bold t :weight bold)))) - (ido-indicator-face ((t (:background "red" :foreground "yellow" :width condensed)))) - (ido-only-match-face ((t (:foreground "ForestGreen")))) - (ido-subdir-face ((t (:foreground "red")))) - (isearch ((t (:background "seagreen" :foreground "black")))) - (isearch-lazy-highlight-face ((t (:background "darkseagreen" :foreground "black")))) - (italic ((t (:italic t :foreground "#00CC00" :background "black" :slant oblique)))) - (menu ((t (:bold t :background "black" :foreground "green" :box (:line-width -1 :color "#606060") :weight semi-bold)))) - (message-cited-text-face ((t (:italic t :foreground "#00CC00" :background "black" :slant oblique)))) - (message-header-cc-face ((t (nil)))) - (message-header-name-face ((t (nil)))) - (message-header-newsgroups-face ((t (:bold t :foreground "#00CC00" :background "black")))) - (message-header-other-face ((t (:bold t :foreground "#00CC00" :background "black")))) - (message-header-subject-face ((t (:bold t :foreground "#00CC00" :background "black")))) - (message-header-to-face ((t (:bold t :foreground "#00CC00" :background "black")))) - (message-header-xheader-face ((t (nil)))) - (message-mml-face ((t (:italic t :foreground "#00CC00" :background "black" :slant oblique)))) - (message-separator-face ((t (nil)))) - (minibuffer-prompt ((t (:background "black" :foreground "seagreen")))) - (mode-line ((t (:bold t :background "#404040" :foreground "green" :box (:line-width -1 :color "#606060") :weight semi-bold)))) - (mode-line-inactive ((t (:bold t :weight semi-bold :box (:line-width -1 :color "#606060") :foreground "green" :background "#101010")))) - (mouse ((t (:background "black")))) - (paren-face ((t (:background "black" :foreground "darkgreen")))) - (paren-face-match ((t (:background "black" :foreground "springgreen")))) - (paren-face-mismatch ((t (:foreground "#00CC00" :background "black" :strike-through t)))) - (paren-face-no-match ((t (:background "black" :foreground "red")))) - (region ((t (:background "seagreen" :foreground "black")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "darkseagreen" :foreground "black")))) - (semantic-dirty-token-face ((t (:background "gray10")))) - (semantic-unmatched-syntax-face ((t (:underline "red")))) - (sgml-end-tag-face ((t (:foreground "seagreen")))) - (sgml-start-tag-face ((t (:foreground "seagreen")))) - (tabbar-button-face ((t (:background "black" :foreground "#00cc00" :box (:line-width 2 :color "black" :style released-button))))) - (tabbar-default-face ((t (:background "black" :foreground "#00cc00")))) - (tabbar-selected-face ((t (:background "black" :foreground "springgreen" :box (:line-width 2 :color "black" :style released-button))))) - (tabbar-separator-face ((t (:foreground "#00cc00" :background "black")))) - (tabbar-unselected-face ((t (:background "black" :foreground "seagreen" :box (:line-width 2 :color "black" :style pressed-button))))) - (tool-bar ((t (:box (:line-width 1 :style released-button))))) - (tooltip ((t (nil)))) - (trailing-whitespace ((t (:background "lightseagreen" :foreground "black")))) - (underline ((t (:foreground "#00CC00" :background "black" :underline t)))) - (variable-pitch ((t (:underline nil :foreground "#00CC00" :background "black")))) - (widget-button-face ((t (:bold t :foreground "#00CC00" :background "black")))) - (widget-button-pressed-face ((t (nil)))) - (widget-documentation-face ((t (nil)))) - (widget-field-face ((t (:italic t :foreground "#00CC00" :background "black" :slant oblique)))) - (widget-inactive-face ((t (nil)))) - (widget-single-line-field-face ((t (nil))))))) - -(defun color-theme-matrix () - "Color theme by walterh@rocketmail.com, created 2003-10-16." - (interactive) - (color-theme-install - '(color-theme-matrix - ((background-color . "black") - (background-mode . dark) - (background-toolbar-color . "bisque") - (border-color . "orange") - (bottom-toolbar-shadow-color . "#909099999999") - (cursor-color . "#7eff00") - (foreground-color . "#7eff00") - (mouse-color . "#7eff00") - (top-toolbar-shadow-color . "#ffffffffffff")) - ((help-highlight-face . underline) - (list-matching-lines-face . bold) - (rmail-highlight-face . font-lock-function-name-face) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "black" :foreground -"#7eff00" :inverse-video nil :box nil :strike-through nil :overline nil -:underline nil :slant normal :weight normal :height 90 :width normal -:family "outline-courier new")))) - (Buffer-menu-buffer-face ((t (nil)))) - (CUA-global-mark-face ((t (nil)))) - (CUA-rectangle-face ((t (nil)))) - (CUA-rectangle-noselect-face ((t (nil)))) - (Info-title-1-face ((t (nil)))) - (Info-title-2-face ((t (nil)))) - (Info-title-3-face ((t (nil)))) - (Info-title-4-face ((t (nil)))) - (antlr-font-lock-keyword-face ((t (nil)))) - (antlr-font-lock-literal-face ((t (nil)))) - (antlr-font-lock-ruledef-face ((t (nil)))) - (antlr-font-lock-ruleref-face ((t (nil)))) - (antlr-font-lock-tokendef-face ((t (nil)))) - (antlr-font-lock-tokenref-face ((t (nil)))) - (bbdb-company ((t (nil)))) - (bbdb-field-name ((t (nil)))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (nil)))) - (bg:erc-color-face0 ((t (nil)))) - (bg:erc-color-face1 ((t (nil)))) - (bg:erc-color-face10 ((t (nil)))) - (bg:erc-color-face11 ((t (nil)))) - (bg:erc-color-face12 ((t (nil)))) - (bg:erc-color-face13 ((t (nil)))) - (bg:erc-color-face14 ((t (nil)))) - (bg:erc-color-face15 ((t (nil)))) - (bg:erc-color-face2 ((t (nil)))) - (bg:erc-color-face3 ((t (nil)))) - (bg:erc-color-face4 ((t (nil)))) - (bg:erc-color-face5 ((t (nil)))) - (bg:erc-color-face6 ((t (nil)))) - (bg:erc-color-face7 ((t (nil)))) - (bg:erc-color-face8 ((t (nil)))) - (bg:erc-color-face9 ((t (nil)))) - (blank-space-face ((t (nil)))) - (blank-tab-face ((t (nil)))) - (blue ((t (nil)))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:bold t :weight bold)))) - (border ((t (:background "orange")))) - (border-glyph ((t (nil)))) - (buffers-tab ((t (nil)))) - (button ((t (nil)))) - (calendar-today-face ((t (nil)))) - (change-log-acknowledgement-face ((t (nil)))) - (change-log-conditionals-face ((t (nil)))) - (change-log-date-face ((t (nil)))) - (change-log-email-face ((t (nil)))) - (change-log-file-face ((t (nil)))) - (change-log-function-face ((t (nil)))) - (change-log-list-face ((t (nil)))) - (change-log-name-face ((t (nil)))) - (clearcase-dired-checkedout-face ((t (nil)))) - (comint-highlight-input ((t (nil)))) - (comint-highlight-prompt ((t (nil)))) - (cparen-around-andor-face ((t (nil)))) - (cparen-around-begin-face ((t (nil)))) - (cparen-around-conditional-face ((t (nil)))) - (cparen-around-define-face ((t (nil)))) - (cparen-around-lambda-face ((t (nil)))) - (cparen-around-letdo-face ((t (nil)))) - (cparen-around-quote-face ((t (nil)))) - (cparen-around-set!-face ((t (nil)))) - (cparen-around-syntax-rules-face ((t (nil)))) - (cparen-around-vector-face ((t (nil)))) - (cparen-binding-face ((t (nil)))) - (cparen-binding-list-face ((t (nil)))) - (cparen-conditional-clause-face ((t (nil)))) - (cparen-normal-paren-face ((t (nil)))) - (cperl-array-face ((t (nil)))) - (cperl-hash-face ((t (nil)))) - (cperl-invalid-face ((t (nil)))) - (cperl-nonoverridable-face ((t (nil)))) - (cursor ((t (:background "#7eff00" :foreground "black")))) - (custom-button-face ((t (nil)))) - (custom-button-pressed-face ((t (nil)))) - (custom-changed-face ((t (nil)))) - (custom-comment-face ((t (nil)))) - (custom-comment-tag-face ((t (nil)))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (nil)))) - (custom-group-tag-face ((t (nil)))) - (custom-group-tag-face-1 ((t (nil)))) - (custom-invalid-face ((t (nil)))) - (custom-modified-face ((t (nil)))) - (custom-rogue-face ((t (nil)))) - (custom-saved-face ((t (nil)))) - (custom-set-face ((t (nil)))) - (custom-state-face ((t (nil)))) - (custom-variable-button-face ((t (nil)))) - (custom-variable-tag-face ((t (nil)))) - (cvs-filename-face ((t (nil)))) - (cvs-handled-face ((t (nil)))) - (cvs-header-face ((t (nil)))) - (cvs-marked-face ((t (nil)))) - (cvs-msg-face ((t (nil)))) - (cvs-need-action-face ((t (nil)))) - (cvs-unknown-face ((t (nil)))) - (cyan ((t (nil)))) - (diary-face ((t (nil)))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (nil)))) - (diff-file-header-face ((t (nil)))) - (diff-function-face ((t (nil)))) - (diff-header-face ((t (nil)))) - (diff-hunk-header-face ((t (nil)))) - (diff-index-face ((t (nil)))) - (diff-nonexistent-face ((t (nil)))) - (diff-removed-face ((t (nil)))) - (dired-face-boring ((t (nil)))) - (dired-face-directory ((t (nil)))) - (dired-face-executable ((t (nil)))) - (dired-face-flagged ((t (nil)))) - (dired-face-header ((t (nil)))) - (dired-face-marked ((t (nil)))) - (dired-face-permissions ((t (nil)))) - (dired-face-setuid ((t (nil)))) - (dired-face-socket ((t (nil)))) - (dired-face-symlink ((t (nil)))) - (display-time-mail-balloon-enhance-face ((t (nil)))) - (display-time-mail-balloon-gnus-group-face ((t (nil)))) - (display-time-time-balloon-face ((t (nil)))) - (ebrowse-default-face ((t (nil)))) - (ebrowse-file-name-face ((t (nil)))) - (ebrowse-member-attribute-face ((t (nil)))) - (ebrowse-member-class-face ((t (nil)))) - (ebrowse-progress-face ((t (nil)))) - (ebrowse-root-class-face ((t (nil)))) - (ebrowse-tree-mark-face ((t (nil)))) - (ecb-sources-face ((t (nil)))) - (edb-inter-field-face ((t (nil)))) - (edb-normal-summary-face ((t (nil)))) - (ediff-current-diff-face-A ((t (nil)))) - (ediff-current-diff-face-Ancestor ((t (nil)))) - (ediff-current-diff-face-B ((t (nil)))) - (ediff-current-diff-face-C ((t (nil)))) - (ediff-even-diff-face-A ((t (nil)))) - (ediff-even-diff-face-Ancestor ((t (nil)))) - (ediff-even-diff-face-B ((t (nil)))) - (ediff-even-diff-face-C ((t (nil)))) - (ediff-fine-diff-face-A ((t (nil)))) - (ediff-fine-diff-face-Ancestor ((t (nil)))) - (ediff-fine-diff-face-B ((t (nil)))) - (ediff-fine-diff-face-C ((t (nil)))) - (ediff-odd-diff-face-A ((t (nil)))) - (ediff-odd-diff-face-Ancestor ((t (nil)))) - (ediff-odd-diff-face-B ((t (nil)))) - (ediff-odd-diff-face-C ((t (nil)))) - (eieio-custom-slot-tag-face ((t (nil)))) - (emacs-wiki-bad-link-face ((t (nil)))) - (emacs-wiki-link-face ((t (nil)))) - (erc-action-face ((t (nil)))) - (erc-bold-face ((t (nil)))) - (erc-current-nick-face ((t (nil)))) - (erc-dangerous-host-face ((t (nil)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (nil)))) - (erc-error-face ((t (nil)))) - (erc-fool-face ((t (nil)))) - (erc-highlight-face ((t (nil)))) - (erc-input-face ((t (nil)))) - (erc-inverse-face ((t (nil)))) - (erc-keyword-face ((t (nil)))) - (erc-nick-default-face ((t (nil)))) - (erc-nick-msg-face ((t (nil)))) - (erc-notice-face ((t (nil)))) - (erc-pal-face ((t (nil)))) - (erc-prompt-face ((t (nil)))) - (erc-timestamp-face ((t (nil)))) - (erc-underline-face ((t (nil)))) - (eshell-ls-archive-face ((t (nil)))) - (eshell-ls-backup-face ((t (nil)))) - (eshell-ls-clutter-face ((t (nil)))) - (eshell-ls-directory-face ((t (nil)))) - (eshell-ls-executable-face ((t (nil)))) - (eshell-ls-missing-face ((t (nil)))) - (eshell-ls-picture-face ((t (nil)))) - (eshell-ls-product-face ((t (nil)))) - (eshell-ls-readonly-face ((t (nil)))) - (eshell-ls-special-face ((t (nil)))) - (eshell-ls-symlink-face ((t (nil)))) - (eshell-ls-text-face ((t (nil)))) - (eshell-ls-todo-face ((t (nil)))) - (eshell-ls-unreadable-face ((t (nil)))) - (eshell-prompt-face ((t (nil)))) - (eshell-test-failed-face ((t (nil)))) - (eshell-test-ok-face ((t (nil)))) - (excerpt ((t (nil)))) - (extra-whitespace-face ((t (nil)))) - (ff-paths-non-existant-file-face ((t (nil)))) - (fg:black ((t (nil)))) - (fg:erc-color-face0 ((t (nil)))) - (fg:erc-color-face1 ((t (nil)))) - (fg:erc-color-face10 ((t (nil)))) - (fg:erc-color-face11 ((t (nil)))) - (fg:erc-color-face12 ((t (nil)))) - (fg:erc-color-face13 ((t (nil)))) - (fg:erc-color-face14 ((t (nil)))) - (fg:erc-color-face15 ((t (nil)))) - (fg:erc-color-face2 ((t (nil)))) - (fg:erc-color-face3 ((t (nil)))) - (fg:erc-color-face4 ((t (nil)))) - (fg:erc-color-face5 ((t (nil)))) - (fg:erc-color-face6 ((t (nil)))) - (fg:erc-color-face7 ((t (nil)))) - (fg:erc-color-face8 ((t (nil)))) - (fg:erc-color-face9 ((t (nil)))) - (fixed ((t (nil)))) - (fixed-pitch ((t (nil)))) - (fl-comment-face ((t (nil)))) - (fl-function-name-face ((t (nil)))) - (fl-keyword-face ((t (nil)))) - (fl-string-face ((t (nil)))) - (fl-type-face ((t (nil)))) - (flash-paren-face-off ((t (nil)))) - (flash-paren-face-on ((t (nil)))) - (flash-paren-face-region ((t (nil)))) - (flyspell-duplicate-face ((t (nil)))) - (flyspell-incorrect-face ((t (nil)))) - (font-latex-bold-face ((t (nil)))) - (font-latex-italic-face ((t (nil)))) - (font-latex-math-face ((t (nil)))) - (font-latex-sedate-face ((t (nil)))) - (font-latex-string-face ((t (nil)))) - (font-latex-warning-face ((t (nil)))) - (font-lock-builtin-face ((t (:foreground "pink2")))) - (font-lock-comment-face ((t (:italic t :background "black" :slant -italic)))) - (font-lock-constant-face ((t (:foreground "magenta")))) - (font-lock-doc-face ((t (nil)))) - (font-lock-doc-string-face ((t (nil)))) - (font-lock-exit-face ((t (nil)))) - (font-lock-function-name-face ((t (:bold t :underline t :weight -bold)))) - (font-lock-keyword-face ((t (:foreground "yellow1")))) - (font-lock-other-emphasized-face ((t (nil)))) - (font-lock-other-type-face ((t (nil)))) - (font-lock-preprocessor-face ((t (nil)))) - (font-lock-reference-face ((t (nil)))) - (font-lock-special-comment-face ((t (nil)))) - (font-lock-special-keyword-face ((t (nil)))) - (font-lock-string-face ((t (:foreground "yellow2")))) - (font-lock-type-face ((t (:foreground "LightYellow1")))) - (font-lock-variable-name-face ((t (:foreground "light green")))) - (font-lock-warning-face ((t (nil)))) - (fringe ((t (nil)))) - (gnus-cite-attribution-face ((t (nil)))) - (gnus-cite-face-1 ((t (nil)))) - (gnus-cite-face-10 ((t (nil)))) - (gnus-cite-face-11 ((t (nil)))) - (gnus-cite-face-2 ((t (nil)))) - (gnus-cite-face-3 ((t (nil)))) - (gnus-cite-face-4 ((t (nil)))) - (gnus-cite-face-5 ((t (nil)))) - (gnus-cite-face-6 ((t (nil)))) - (gnus-cite-face-7 ((t (nil)))) - (gnus-cite-face-8 ((t (nil)))) - (gnus-cite-face-9 ((t (nil)))) - (gnus-emphasis-bold ((t (nil)))) - (gnus-emphasis-bold-italic ((t (nil)))) - (gnus-emphasis-highlight-words ((t (nil)))) - (gnus-emphasis-italic ((t (nil)))) - (gnus-emphasis-strikethru ((t (nil)))) - (gnus-emphasis-underline ((t (nil)))) - (gnus-emphasis-underline-bold ((t (nil)))) - (gnus-emphasis-underline-bold-italic ((t (nil)))) - (gnus-emphasis-underline-italic ((t (nil)))) - (gnus-filterhist-face-1 ((t (nil)))) - (gnus-group-mail-1-empty-face ((t (nil)))) - (gnus-group-mail-1-face ((t (nil)))) - (gnus-group-mail-2-empty-face ((t (nil)))) - (gnus-group-mail-2-face ((t (nil)))) - (gnus-group-mail-3-empty-face ((t (nil)))) - (gnus-group-mail-3-face ((t (nil)))) - (gnus-group-mail-low-empty-face ((t (nil)))) - (gnus-group-mail-low-face ((t (nil)))) - (gnus-group-news-1-empty-face ((t (nil)))) - (gnus-group-news-1-face ((t (nil)))) - (gnus-group-news-2-empty-face ((t (nil)))) - (gnus-group-news-2-face ((t (nil)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (nil)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (nil)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (nil)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (nil)))) - (gnus-group-news-low-empty-face ((t (nil)))) - (gnus-group-news-low-face ((t (nil)))) - (gnus-header-content-face ((t (nil)))) - (gnus-header-from-face ((t (nil)))) - (gnus-header-name-face ((t (nil)))) - (gnus-header-newsgroups-face ((t (nil)))) - (gnus-header-subject-face ((t (nil)))) - (gnus-picon-face ((t (nil)))) - (gnus-picon-xbm-face ((t (nil)))) - (gnus-picons-face ((t (nil)))) - (gnus-picons-xbm-face ((t (nil)))) - (gnus-server-agent-face ((t (nil)))) - (gnus-server-closed-face ((t (nil)))) - (gnus-server-denied-face ((t (nil)))) - (gnus-server-offline-face ((t (nil)))) - (gnus-server-opened-face ((t (nil)))) - (gnus-signature-face ((t (nil)))) - (gnus-splash ((t (nil)))) - (gnus-splash-face ((t (nil)))) - (gnus-summary-cancelled-face ((t (nil)))) - (gnus-summary-high-ancient-face ((t (nil)))) - (gnus-summary-high-read-face ((t (nil)))) - (gnus-summary-high-ticked-face ((t (nil)))) - (gnus-summary-high-undownloaded-face ((t (nil)))) - (gnus-summary-high-unread-face ((t (nil)))) - (gnus-summary-low-ancient-face ((t (nil)))) - (gnus-summary-low-read-face ((t (nil)))) - (gnus-summary-low-ticked-face ((t (nil)))) - (gnus-summary-low-undownloaded-face ((t (nil)))) - (gnus-summary-low-unread-face ((t (nil)))) - (gnus-summary-normal-ancient-face ((t (nil)))) - (gnus-summary-normal-read-face ((t (nil)))) - (gnus-summary-normal-ticked-face ((t (nil)))) - (gnus-summary-normal-undownloaded-face ((t (nil)))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (nil)))) - (gnus-x-face ((t (nil)))) - (green ((t (nil)))) - (gui-button-face ((t (nil)))) - (gui-element ((t (nil)))) - (header-line ((t (nil)))) - (hi-black-b ((t (nil)))) - (hi-black-hb ((t (nil)))) - (hi-blue ((t (nil)))) - (hi-blue-b ((t (nil)))) - (hi-green ((t (nil)))) - (hi-green-b ((t (nil)))) - (hi-pink ((t (nil)))) - (hi-red-b ((t (nil)))) - (hi-yellow ((t (nil)))) - (highlight ((t (:background "#7eff00" :foreground "black")))) - (highlight-changes-delete-face ((t (nil)))) - (highlight-changes-face ((t (nil)))) - (highline-face ((t (nil)))) - (holiday-face ((t (nil)))) - (html-helper-bold-face ((t (nil)))) - (html-helper-bold-italic-face ((t (nil)))) - (html-helper-builtin-face ((t (nil)))) - (html-helper-italic-face ((t (nil)))) - (html-helper-underline-face ((t (nil)))) - (html-tag-face ((t (nil)))) - (hyper-apropos-documentation ((t (nil)))) - (hyper-apropos-heading ((t (nil)))) - (hyper-apropos-hyperlink ((t (nil)))) - (hyper-apropos-major-heading ((t (nil)))) - (hyper-apropos-section-heading ((t (nil)))) - (hyper-apropos-warning ((t (nil)))) - (ibuffer-deletion-face ((t (nil)))) - (ibuffer-marked-face ((t (nil)))) - (idlwave-help-link-face ((t (nil)))) - (idlwave-shell-bp-face ((t (nil)))) - (ido-first-match-face ((t (nil)))) - (ido-indicator-face ((t (nil)))) - (ido-only-match-face ((t (nil)))) - (ido-subdir-face ((t (nil)))) - (info-header-node ((t (nil)))) - (info-header-xref ((t (nil)))) - (info-menu-5 ((t (nil)))) - (info-menu-6 ((t (nil)))) - (info-menu-header ((t (nil)))) - (info-node ((t (nil)))) - (info-xref ((t (nil)))) - (isearch ((t (nil)))) - (isearch-lazy-highlight-face ((t (nil)))) - (isearch-secondary ((t (nil)))) - (italic ((t (:underline t)))) - (jde-bug-breakpoint-cursor ((t (nil)))) - (jde-bug-breakpoint-marker ((t (nil)))) - (jde-db-active-breakpoint-face ((t (nil)))) - (jde-db-requested-breakpoint-face ((t (nil)))) - (jde-db-spec-breakpoint-face ((t (nil)))) - (jde-java-font-lock-api-face ((t (nil)))) - (jde-java-font-lock-bold-face ((t (nil)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (nil)))) - (jde-java-font-lock-doc-tag-face ((t (nil)))) - (jde-java-font-lock-italic-face ((t (nil)))) - (jde-java-font-lock-link-face ((t (nil)))) - (jde-java-font-lock-modifier-face ((t (nil)))) - (jde-java-font-lock-number-face ((t (nil)))) - (jde-java-font-lock-operator-face ((t (nil)))) - (jde-java-font-lock-package-face ((t (nil)))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (nil)))) - (lazy-highlight-face ((t (nil)))) - (left-margin ((t (nil)))) - (linemenu-face ((t (nil)))) - (list-mode-item-selected ((t (nil)))) - (log-view-file-face ((t (nil)))) - (log-view-message-face ((t (nil)))) - (magenta ((t (nil)))) - (makefile-space-face ((t (nil)))) - (man-bold ((t (nil)))) - (man-heading ((t (nil)))) - (man-italic ((t (nil)))) - (man-xref ((t (nil)))) - (menu ((t (nil)))) - (message-cited-text ((t (nil)))) - (message-cited-text-face ((t (nil)))) - (message-header-cc-face ((t (nil)))) - (message-header-contents ((t (nil)))) - (message-header-name-face ((t (nil)))) - (message-header-newsgroups-face ((t (nil)))) - (message-header-other-face ((t (nil)))) - (message-header-subject-face ((t (nil)))) - (message-header-to-face ((t (nil)))) - (message-header-xheader-face ((t (nil)))) - (message-headers ((t (nil)))) - (message-highlighted-header-contents ((t (nil)))) - (message-mml-face ((t (nil)))) - (message-separator-face ((t (nil)))) - (message-url ((t (nil)))) - (minibuffer-prompt ((t (nil)))) - (mmm-face ((t (nil)))) - (mode-line ((t (:bold t :background "gray" :foreground "black" -:weight bold)))) - (mode-line-inactive ((t (nil)))) - (modeline-buffer-id ((t (:background "orange" :foreground -"black")))) - (modeline-mousable ((t (:background "orange" :foreground -"black")))) - (modeline-mousable-minor-mode ((t (:background "orange" -:foreground "black")))) - (mouse ((t (nil)))) - (mpg123-face-cur ((t (nil)))) - (mpg123-face-slider ((t (nil)))) - (my-tab-face ((t (nil)))) - (nil ((t (nil)))) - (overlay-empty-face ((t (nil)))) - (p4-diff-del-face ((t (nil)))) - (paren-blink-off ((t (nil)))) - (paren-face ((t (nil)))) - (paren-face-match ((t (nil)))) - (paren-face-mismatch ((t (nil)))) - (paren-face-no-match ((t (nil)))) - (paren-match ((t (nil)))) - (paren-mismatch ((t (nil)))) - (paren-mismatch-face ((t (nil)))) - (paren-no-match-face ((t (nil)))) - (pointer ((t (nil)))) - (primary-selection ((t (nil)))) - (reb-match-0 ((t (nil)))) - (reb-match-1 ((t (nil)))) - (reb-match-2 ((t (nil)))) - (reb-match-3 ((t (nil)))) - (red ((t (nil)))) - (region ((t (:background "#7eff00" :foreground "black")))) - (right-margin ((t (nil)))) - (rpm-spec-dir-face ((t (nil)))) - (rpm-spec-doc-face ((t (nil)))) - (rpm-spec-ghost-face ((t (nil)))) - (rpm-spec-macro-face ((t (nil)))) - (rpm-spec-package-face ((t (nil)))) - (rpm-spec-tag-face ((t (nil)))) - (rpm-spec-var-face ((t (nil)))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "orange" :foreground -"black")))) - (semantic-dirty-token-face ((t (nil)))) - (semantic-intangible-face ((t (nil)))) - (semantic-read-only-face ((t (nil)))) - (semantic-unmatched-syntax-face ((t (nil)))) - (senator-intangible-face ((t (nil)))) - (senator-momentary-highlight-face ((t (nil)))) - (senator-read-only-face ((t (nil)))) - (sgml-comment-face ((t (nil)))) - (sgml-doctype-face ((t (nil)))) - (sgml-end-tag-face ((t (nil)))) - (sgml-entity-face ((t (nil)))) - (sgml-ignored-face ((t (nil)))) - (sgml-ms-end-face ((t (nil)))) - (sgml-ms-start-face ((t (nil)))) - (sgml-pi-face ((t (nil)))) - (sgml-sgml-face ((t (nil)))) - (sgml-short-ref-face ((t (nil)))) - (sgml-shortref-face ((t (nil)))) - (sgml-start-tag-face ((t (nil)))) - (sh-heredoc-face ((t (nil)))) - (shell-option-face ((t (nil)))) - (shell-output-2-face ((t (nil)))) - (shell-output-3-face ((t (nil)))) - (shell-output-face ((t (nil)))) - (shell-prompt-face ((t (nil)))) - (show-block-face1 ((t (nil)))) - (show-block-face2 ((t (nil)))) - (show-block-face3 ((t (nil)))) - (show-block-face4 ((t (nil)))) - (show-block-face5 ((t (nil)))) - (show-block-face6 ((t (nil)))) - (show-block-face7 ((t (nil)))) - (show-block-face8 ((t (nil)))) - (show-block-face9 ((t (nil)))) - (show-paren-match-face ((t (:background "orange" :foreground -"black")))) - (show-paren-mismatch-face ((t (:underline t)))) - (show-tabs-space-face ((t (nil)))) - (show-tabs-tab-face ((t (nil)))) - (smerge-base-face ((t (nil)))) - (smerge-markers-face ((t (nil)))) - (smerge-mine-face ((t (nil)))) - (smerge-other-face ((t (nil)))) - (speedbar-button-face ((t (nil)))) - (speedbar-directory-face ((t (nil)))) - (speedbar-file-face ((t (nil)))) - (speedbar-highlight-face ((t (nil)))) - (speedbar-selected-face ((t (nil)))) - (speedbar-separator-face ((t (nil)))) - (speedbar-tag-face ((t (nil)))) - (strokes-char-face ((t (nil)))) - (swbuff-current-buffer-face ((t (nil)))) - (tabbar-button-face ((t (nil)))) - (tabbar-default-face ((t (nil)))) - (tabbar-selected-face ((t (nil)))) - (tabbar-separator-face ((t (nil)))) - (tabbar-unselected-face ((t (nil)))) - (template-message-face ((t (nil)))) - (term-black ((t (nil)))) - (term-blackbg ((t (nil)))) - (term-blue ((t (nil)))) - (term-blue-bold-face ((t (nil)))) - (term-blue-face ((t (nil)))) - (term-blue-inv-face ((t (nil)))) - (term-blue-ul-face ((t (nil)))) - (term-bluebg ((t (nil)))) - (term-bold ((t (nil)))) - (term-cyan ((t (nil)))) - (term-cyan-bold-face ((t (nil)))) - (term-cyan-face ((t (nil)))) - (term-cyan-inv-face ((t (nil)))) - (term-cyan-ul-face ((t (nil)))) - (term-cyanbg ((t (nil)))) - (term-default ((t (nil)))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-bold-face ((t (nil)))) - (term-default-face ((t (nil)))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-default-inv-face ((t (nil)))) - (term-default-ul-face ((t (nil)))) - (term-green ((t (nil)))) - (term-green-bold-face ((t (nil)))) - (term-green-face ((t (nil)))) - (term-green-inv-face ((t (nil)))) - (term-green-ul-face ((t (nil)))) - (term-greenbg ((t (nil)))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (nil)))) - (term-magenta-bold-face ((t (nil)))) - (term-magenta-face ((t (nil)))) - (term-magenta-inv-face ((t (nil)))) - (term-magenta-ul-face ((t (nil)))) - (term-magentabg ((t (nil)))) - (term-red ((t (nil)))) - (term-red-bold-face ((t (nil)))) - (term-red-face ((t (nil)))) - (term-red-inv-face ((t (nil)))) - (term-red-ul-face ((t (nil)))) - (term-redbg ((t (nil)))) - (term-underline ((t (nil)))) - (term-white ((t (nil)))) - (term-white-bold-face ((t (nil)))) - (term-white-face ((t (nil)))) - (term-white-inv-face ((t (nil)))) - (term-white-ul-face ((t (nil)))) - (term-whitebg ((t (nil)))) - (term-yellow ((t (nil)))) - (term-yellow-bold-face ((t (nil)))) - (term-yellow-face ((t (nil)))) - (term-yellow-inv-face ((t (nil)))) - (term-yellow-ul-face ((t (nil)))) - (term-yellowbg ((t (nil)))) - (tex-math-face ((t (nil)))) - (texinfo-heading-face ((t (nil)))) - (text-cursor ((t (nil)))) - (tool-bar ((t (nil)))) - (tooltip ((t (nil)))) - (trailing-whitespace ((t (nil)))) - (underline ((t (:underline t)))) - (variable-pitch ((t (nil)))) - (vc-annotate-face-0046FF ((t (nil)))) - (vcursor ((t (nil)))) - (vertical-divider ((t (nil)))) - (vhdl-font-lock-attribute-face ((t (nil)))) - (vhdl-font-lock-directive-face ((t (nil)))) - (vhdl-font-lock-enumvalue-face ((t (nil)))) - (vhdl-font-lock-function-face ((t (nil)))) - (vhdl-font-lock-generic-/constant-face ((t (nil)))) - (vhdl-font-lock-prompt-face ((t (nil)))) - (vhdl-font-lock-reserved-words-face ((t (nil)))) - (vhdl-font-lock-translate-off-face ((t (nil)))) - (vhdl-font-lock-type-face ((t (nil)))) - (vhdl-font-lock-variable-face ((t (nil)))) - (vhdl-speedbar-architecture-face ((t (nil)))) - (vhdl-speedbar-architecture-selected-face ((t (nil)))) - (vhdl-speedbar-configuration-face ((t (nil)))) - (vhdl-speedbar-configuration-selected-face ((t (nil)))) - (vhdl-speedbar-entity-face ((t (nil)))) - (vhdl-speedbar-entity-selected-face ((t (nil)))) - (vhdl-speedbar-instantiation-face ((t (nil)))) - (vhdl-speedbar-instantiation-selected-face ((t (nil)))) - (vhdl-speedbar-package-face ((t (nil)))) - (vhdl-speedbar-package-selected-face ((t (nil)))) - (vhdl-speedbar-subprogram-face ((t (nil)))) - (viper-minibuffer-emacs-face ((t (nil)))) - (viper-minibuffer-insert-face ((t (nil)))) - (viper-minibuffer-vi-face ((t (nil)))) - (viper-replace-overlay-face ((t (nil)))) - (viper-search-face ((t (nil)))) - (vm-xface ((t (nil)))) - (vmpc-pre-sig-face ((t (nil)))) - (vmpc-sig-face ((t (nil)))) - (w3m-anchor-face ((t (nil)))) - (w3m-arrived-anchor-face ((t (nil)))) - (w3m-header-line-location-content-face ((t (nil)))) - (w3m-header-line-location-title-face ((t (nil)))) - (white ((t (nil)))) - (widget ((t (nil)))) - (widget-button-face ((t (nil)))) - (widget-button-pressed-face ((t (nil)))) - (widget-documentation-face ((t (nil)))) - (widget-field-face ((t (nil)))) - (widget-inactive-face ((t (nil)))) - (widget-single-line-field-face ((t (nil)))) - (woman-addition-face ((t (nil)))) - (woman-bold-face ((t (nil)))) - (woman-italic-face ((t (nil)))) - (woman-unknown-face ((t (nil)))) - (x-face ((t (nil)))) - (xrdb-option-name-face ((t (nil)))) - (xref-keyword-face ((t (nil)))) - (xref-list-default-face ((t (nil)))) - (xref-list-pilot-face ((t (nil)))) - (xref-list-symbol-face ((t (nil)))) - (yellow ((t (nil)))) - (zmacs-region ((t (nil))))))) - -(defun color-theme-feng-shui () - "Color theme by walterh@rocketmail.com (www.xanadb.com), created - 2003-10-16. Evolved from color-theme-katester" - (interactive) - (color-theme-install - '(color-theme-feng-shui - ((background-color . "ivory") - (background-mode . light) - (border-color . "black") - (cursor-color . "slateblue") - (foreground-color . "black") - (mouse-color . "slateblue")) - ((help-highlight-face . underline) - (list-matching-lines-face . bold) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "ivory" :foreground "black" -:inverse-video nil :box nil :strike-through nil :overline nil -:underline nil :slant normal :weight normal :height 90 :width normal -:family "outline-courier new")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (cursor ((t (:background "slateblue" :foreground "black")))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:foreground "black")))) - (font-lock-comment-face ((t (:italic t :background "seashell" -:slant italic)))) - (font-lock-constant-face ((t (:foreground "darkblue")))) - (font-lock-doc-face ((t (:background "lemonChiffon")))) - (font-lock-function-name-face ((t (:bold t :underline t :weight -bold)))) - (font-lock-keyword-face ((t (:foreground "blue")))) - (font-lock-string-face ((t (:background "lemonChiffon")))) - (font-lock-type-face ((t (:foreground "black")))) - (font-lock-variable-name-face ((t (:foreground "black")))) - (font-lock-warning-face ((t (:bold t :foreground "Red" :weight -bold)))) - (fringe ((t (:background "grey95")))) - (header-line ((t (:bold t :weight bold :underline t :background -"grey90" :foreground "grey20" :box nil)))) - (highlight ((t (:background "mistyRose" :foreground "black")))) - (isearch ((t (:background "magenta4" :foreground -"lightskyblue1")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise")))) - (italic ((t (:italic t :slant italic)))) - (menu ((t (nil)))) - (mode-line ((t (:bold t :background "mistyRose" :foreground "navy" -:underline t :weight bold)))) - (mouse ((t (:background "slateblue")))) - (region ((t (:background "lavender" :foreground "black")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "yellow")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box -(:line-width 1 :style released-button))))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85"))))))) - - -(defun color-theme-renegade () - "Renegade BBS styled color theme. Works well in X and terminals. -Created by Dave Benjamin Dec 23 2005." - (interactive) - (color-theme-install - '(color-theme-renegade - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "cyan3") - (mouse-color . "white")) - (default ((t (nil)))) - (bold ((t (:bold t :foreground "cyan" :weight bold)))) - (bold-italic ((t (:italic t :bold t :foreground "cyan" :slant italic :weight bold)))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:bold t :foreground "cornflower blue" :weight bold)))) - (font-lock-comment-face ((t (:bold t :foreground "yellow" :weight bold)))) - (font-lock-constant-face ((t (:foreground "magenta3")))) - (font-lock-doc-face ((t (:bold t :weight bold :foreground "red")))) - (font-lock-function-name-face ((t (:foreground "gray")))) - (font-lock-keyword-face ((t (:bold t :foreground "cyan" :weight bold)))) - (font-lock-string-face ((t (:bold t :foreground "red" :weight bold)))) - (font-lock-type-face ((t (:bold t :foreground "cyan" :weight bold)))) - (font-lock-variable-name-face ((t (:foreground "cyan3")))) - (font-lock-warning-face ((t (:bold t :foreground "red" :weight bold)))) - (fringe ((t (:background "gray32")))) - (highlight ((t (:background "blue")))) - (isearch ((t (:background "blue" :foreground "cyan3")))) - (isearch-lazy-highlight-face ((t (:background "turquoise3" :foreground "black")))) - (menu ((t (nil)))) - (mode-line ((t (:bold t :background "blue3" :foreground "white" :box (:line-width -1 :style released-button) :weight bold)))) - (mouse ((t (:background "white")))) - (region ((t (:bold t :background "white" :foreground "blue" :weight bold)))) - (scroll-bar ((t (nil)))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv"))))))) - -(defun color-theme-domq-pastel () - "Color theme by Dominique Quatravaux, created 2008-02-25." - (interactive) - (color-theme-install - '(my-color-theme - ((background-color . "white") - (background-mode . light) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "black") - (mouse-color . "black")) - ((compilation-message-face . underline) - (goto-address-mail-face . italic) - (goto-address-mail-mouse-face . secondary-selection) - (goto-address-url-face . bold) - (goto-address-url-mouse-face . highlight) - (ibuffer-dired-buffer-face . font-lock-function-name-face) - (ibuffer-help-buffer-face . font-lock-comment-face) - (ibuffer-hidden-buffer-face . font-lock-warning-face) - (ibuffer-occur-match-face . font-lock-warning-face) - (ibuffer-read-only-buffer-face . font-lock-type-face) - (ibuffer-special-buffer-face . font-lock-keyword-face) - (ibuffer-title-face . font-lock-type-face) - (list-matching-lines-buffer-name-face . underline) - (list-matching-lines-face . match) - (rmail-highlight-face . rmail-highlight) - (rst-block-face . font-lock-keyword-face) - (rst-comment-face . font-lock-comment-face) - (rst-definition-face . font-lock-function-name-face) - (rst-directive-face . font-lock-builtin-face) - (rst-emphasis1-face quote italic) - (rst-emphasis2-face quote bold) - (rst-external-face . font-lock-type-face) - (rst-level-face-base-color . "grey") - (rst-literal-face . font-lock-string-face) - (rst-reference-face . font-lock-variable-name-face) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 120 :width normal :family "apple-monaco")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (buffer-menu-buffer ((t (:bold t :weight bold)))) - (button ((t (:underline t)))) - (compilation-column-number ((t (:foreground "cyan3")))) - (compilation-error ((t (:bold t :weight bold :foreground "Red1")))) - (compilation-info ((t (:bold t :foreground "Green3" :weight bold)))) - (compilation-line-number ((t (:foreground "darkgoldenrod")))) - (compilation-warning ((t (:bold t :foreground "Orange" :weight bold)))) - (completions-common-part ((t (:family "apple-monaco" :width normal :weight normal :slant normal :underline nil :overline nil :strike-through nil :box nil :inverse-video nil :foreground "black" :background "white" :stipple nil :height 120)))) - (completions-first-difference ((t (:bold t :weight bold)))) - (cursor ((t (:background "black")))) - (escape-glyph ((t (:foreground "brown")))) - (file-name-shadow ((t (:foreground "grey50")))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-delimiter-face ((t (:foreground "blue4")))) - (font-lock-comment-face ((t (:foreground "blue4")))) - (font-lock-constant-face ((t (:foreground "cadetblue")))) - (font-lock-doc-face ((t (:foreground "green4")))) - (font-lock-function-name-face ((t (:foreground "blue")))) - (font-lock-keyword-face ((t (:foreground "purple")))) - (font-lock-negation-char-face ((t (nil)))) - (font-lock-preprocessor-face ((t (:foreground "Orchid")))) - (font-lock-regexp-grouping-backslash ((t (:bold t :weight bold)))) - (font-lock-regexp-grouping-construct ((t (:bold t :weight bold)))) - (font-lock-string-face ((t (:foreground "green4")))) - (font-lock-type-face ((t (:foreground "cyan3")))) - (font-lock-variable-name-face ((t (:foreground "darkgoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Red1" :weight bold)))) - (fringe ((t (:background "grey95")))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey90" :foreground "grey20" :box nil)))) - (help-argument-name ((t (:italic t :slant italic)))) - (highlight ((t (:background "darkseagreen2")))) - (ibuffer-deletion-face ((t (:foreground "red")))) - (ibuffer-marked-face ((t (:foreground "green")))) - (isearch ((t (:background "magenta4" :foreground "lightskyblue1")))) - (italic ((t (:italic t :slant italic)))) - (lazy-highlight ((t (:background "paleturquoise")))) - (link ((t (:foreground "blue1" :underline t)))) - (link-visited ((t (:underline t :foreground "magenta4")))) - (mac-ts-block-fill-text ((t (:underline t)))) - (mac-ts-caret-position ((t (nil)))) - (mac-ts-converted-text ((t (:underline "gray80")))) - (mac-ts-no-hilite ((t (:family "apple-monaco" :width normal :weight normal :slant normal :underline nil :overline nil :strike-through nil :box nil :inverse-video nil :foreground "black" :background "white" :stipple nil :height 120)))) - (mac-ts-outline-text ((t (:underline t)))) - (mac-ts-raw-text ((t (:underline t)))) - (mac-ts-selected-converted-text ((t (:underline t)))) - (mac-ts-selected-raw-text ((t (:underline t)))) - (mac-ts-selected-text ((t (:underline t)))) - (match ((t (:background "yellow1")))) - (menu ((t (nil)))) - (minibuffer-prompt ((t (:foreground "medium blue")))) - (mmm-cleanup-submode-face ((t (:background "Wheat")))) - (mmm-code-submode-face ((t (:background "LightGray")))) - (mmm-comment-submode-face ((t (:background "SkyBlue")))) - (mmm-declaration-submode-face ((t (:background "Aquamarine")))) - (mmm-default-submode-face ((t (:background "gray85")))) - (mmm-delimiter-face ((t (nil)))) - (mmm-init-submode-face ((t (:background "Pink")))) - (mmm-output-submode-face ((t (:background "Plum")))) - (mmm-special-submode-face ((t (:background "MediumSpringGreen")))) - (mode-line ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (mode-line-buffer-id ((t (:bold t :weight bold)))) - (mode-line-highlight ((t (:box (:line-width 2 :color "grey40" :style released-button))))) - (mode-line-inactive ((t (:background "grey90" :foreground "grey20" :box (:line-width -1 :color "grey75" :style nil) :weight light)))) - (mouse ((t (:background "black")))) - (next-error ((t (:background "lightgoldenrod2")))) - (nobreak-space ((t (:foreground "brown" :underline t)))) - (query-replace ((t (:foreground "lightskyblue1" :background "magenta4")))) - (region ((t (:background "lightgoldenrod2")))) - (rst-level-1-face ((t (:background "grey85")))) - (rst-level-2-face ((t (:background "grey78")))) - (rst-level-3-face ((t (:background "grey71")))) - (rst-level-4-face ((t (:background "grey64")))) - (rst-level-5-face ((t (:background "grey57")))) - (rst-level-6-face ((t (:background "grey50")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "yellow1")))) - (shadow ((t (:foreground "grey50")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:family "helv" :background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (vertical-border ((t (nil)))) - (widget-button ((t (:bold t :weight bold)))) - (widget-button-pressed ((t (:foreground "red1")))) - (widget-documentation ((t (:foreground "dark green")))) - (widget-field ((t (:background "gray85")))) - (widget-inactive ((t (:foreground "grey50")))) - (widget-single-line-field ((t (:background "gray85"))))))) - -;;; color-theme-library.el ends here diff --git a/elpa/color-theme-6.5.5/color-theme-autoloads.el b/elpa/color-theme-6.5.5/color-theme-autoloads.el deleted file mode 100644 index afb05fb4..00000000 --- a/elpa/color-theme-6.5.5/color-theme-autoloads.el +++ /dev/null @@ -1,18 +0,0 @@ -;;; color-theme-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads nil nil ("color-theme-pkg.el" "color-theme.el") -;;;;;; (20805 11467 185491)) - -;;;*** - -(provide 'color-theme-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; color-theme-autoloads.el ends here diff --git a/elpa/color-theme-6.5.5/color-theme-pkg.el b/elpa/color-theme-6.5.5/color-theme-pkg.el deleted file mode 100644 index adeb2562..00000000 --- a/elpa/color-theme-6.5.5/color-theme-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "color-theme" "6.5.5" "install color themes" (quote nil)) diff --git a/elpa/color-theme-6.5.5/color-theme.el b/elpa/color-theme-6.5.5/color-theme.el deleted file mode 100644 index 78577c95..00000000 --- a/elpa/color-theme-6.5.5/color-theme.el +++ /dev/null @@ -1,15170 +0,0 @@ -;;; color-theme.el --- install color themes - -;; Copyright (C) 1999, 2000 Jonadab the Unsightly One -;; Copyright (C) 2000, 2001, 2002, 2003 Alex Schroeder -;; Copyright (C) 2003, 2004 Xavier Maillard - -;; Version: 6.5.5 -;; Keywords: faces -;; Author: Jonadab the Unsightly One -;; Maintainer: Xavier Maillard -;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ColorTheme - -;; This file is not part of GNU Emacs. - -;; This is free software; you can redistribute it and/or modify it under -;; the terms of the GNU General Public License as published by the Free -;; Software Foundation; either version 2, or (at your option) any later -;; version. -;; -;; This is distributed in the hope that it will be useful, but WITHOUT -;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -;; for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, -;; MA 02111-1307, USA. - -;;; Commentary: - -;; Sharing your current color setup: -;; -;; Use `color-theme-submit'. If you have already invested time in -;; customizing Emacs faces, please consider sharing your current setup. -;; Make sure that color-theme.el is in your `load-path'. Type M-x -;; load-library RET color-theme RET to load all the functions. Type M-x -;; color-theme-submit RET and mail the result to the maintainer of this -;; package (see above for mail addres). -;; -;; If you want to make sure that all your customization was exported, -;; type M-x list-faces-display RET to get a list of all faces currently -;; defined. This is the list of faces that `color-theme-print' uses. - -;; Installing a color theme: -;; -;; Make sure that color-theme.el is in your `load-path'. Type M-x -;; load-library RET color-theme RET to load all the functions. -;; -;; The main function to call is color-theme-select. Type M-x -;; color-theme-select RET. That creates a Color Theme Selection -;; buffer. Press RET or `i' on a color theme to install it for the -;; rest of your session. -;; -;; If you want to install the color theme as soon as Emacs is started -;; up, read the description of the theme you like and remember the -;; name of the color theme function. Press `d' on a color theme in -;; the Color Theme Selection buffer to read the description. Assuming -;; you like the Gnome2 theme, you'll find that the function to use is -;; called `color-theme-gnome2'. Add the following to the end of your -;; .emacs (removing the leading `;;'). -;; -;; (require 'color-theme) -;; (color-theme-gnome2) - -;; Changing menu colors: -;; -;; In Emacs 21 on X, you can set the menu colors and font using the -;; menu face. Example for your .emacs file: -;; -;; (set-face-font 'menu "7x14") -;; (set-face-foreground 'menu "white"). -;; -;; If are using X, you can set the menu foreground and background using -;; a resource file, usually .Xdefaults or .Xresources. Usually -;; .Xdefaults is used when you start your session using a display -;; manager such as xdm or gdm. .Xresources is usually used when you -;; start X directly via a shell script such as startx. If you set -;; Emacs*Background and Emacs*Foreground in such a resource file, the -;; foreground and background of Emacs including the menu will be set. -;; If your .emacs then loads a color theme, the foreground and -;; background are changed -- with the exception of the menu. There is -;; no way to manipulate the menu foreground and background color from -;; elisp. You can also set more specific menu resources for Emacs in -;; the resource file. Here is a sample entry for your resource file: -;; -;; Emacs*Background: DarkSlateGray -;; Emacs*Foreground: wheat - -;; Creating your own color theme: -;; -;; Use M-x customize-face and customize the faces. Make sure to "Set -;; for Current Session" -- you don't want to save these using custom! -;; When you are done, call M-x color-theme-print to produce the elisp -;; code required to recreate your theme. Better yet, use M-x -;; color-theme-submit to mail it to the maintainer. That way it will be -;; added to future versions of color-theme.el. -;; -;; For more information on the elisp format of a color theme, start with -;; the documentation of `color-theme-install' using C-h f -;; color-theme-install. -;; -;; When your color theme is just a variation of an existing color theme, -;; take a look at `color-theme-robin-hood' in order to see an example of -;; how to do it. Essentially you want to call all the parent color -;; themes before installing your changes. For all but the first parent -;; color theme, you need to make sure that `color-theme-is-cumulative' -;; is bound to t. If you don't do that, users that set -;; `color-theme-is-cumulative' to nil will only install your changes -;; without the parent color themes. - -;; Making a color theme work for both Emacs and XEmacs: -;; -;; Once you have printed the color-theme, you can make sure it looks -;; similar in both Emacs and XEmacs by running -;; `color-theme-analyze-defun' on the printed theme. This function -;; will check for missing faces for the other editor... - -;;; Thanks - -;; Deepak Goel -;; S. Pokrovsky for ideas and discussion. -;; Gordon Messmer for ideas and discussion. -;; Sriram Karra for the color-theme-submit stuff. -;; Olgierd `Kingsajz' Ziolko for the spec-filter idea. -;; All the users that contributed their color themes. - -;;; Bugs: - -;; Emacs 20.7: Some faces are created using copy-face; these faces are -;; not printed correctly using M-x color-theme-print. They will have -;; (nil) in their spec. M-x customize-face has the same problem. -;; Example: -;; (copy-face 'bold 'new-bold) -;; (color-theme-spec 'bold) -;; => (bold ((t (:bold t)))) -;; (color-theme-spec 'new-bold) -;; => (new-bold ((t (nil)))) -;; -;; XEmacs 21.1: Some faces are defined using a certain font instead of -;; of the correct attribute. They will have (nil) in their spec. -;; M-x customize-face has the same problem. -;; Example: -;; (color-theme-spec 'bold) -;; => (bold ((t (nil)))) -;; -;; XEmacs 21.2 and up, Emacs 21: Not compatible with the custom-theme -;; mode. It should be easy to transform the color-theme source into -;; custom-theme source, however. -;; -;; If you are running XEmacs, then only foreground and background color -;; of the default face and only the background color of the text-cursor -;; face will used. This is due to the fact that these three pieces of -;; information are stored as frame parameters in Emacs. -;; -;; If you are running XEmacs, variables cannot have a frame-local -;; binding. Therefore, if color-theme-is-global is set to nil, the -;; variable settings in a color theme are ignored. -;; -;; Using Emacs and a non-nil value for color-theme-is-global will -;; install a new color theme for all frames. Using XEmacs and a non-nil -;; value for color-theme-is-global will install a new color theme only -;; on those frames that are not using a local color theme. -;; -;; If your system does not define the color names used, you will get the -;; error "undefined color". See the output of `list-colors-display' for -;; a list of colors defined on your display. -;; -;; The :box, :height, and other new attributes will be honored in Emacs -;; 21, but when you print such a color-theme on Emacs 20 or XEmacs 21, -;; the information will get lost. So don't do that. Furthermore, -;; customizing these faces may end up showing you a lisp expression -;; instead of the real widgets on Emacs 20 or XEmacs 21 because these -;; attributes are not understood. -;; -;; :inverse-video handling differs in Emacs and XEmacs. We therefore do -;; away with it. When printing a color-theme, the inverse-video -;; attribute should be handled correctly without ever appearing in color -;; themes. For maintenance, the following might be usefull for -;; query-replace-regexp. -;; :background "\([^"]*\)"\(.*\):foreground "\([^"]*\)"\(.*\) :inverse-video t -;; :background "\3"\2:foreground "\1"\4 -;; -;; In XEmacs 21.1, some of the face tests don't work. Example: -;; (custom-face-bold 'bold) returns nil on my system. A bug report was -;; submitted. -;; -;; Emacs 20 users will loose with new color themes, because these will -;; set the colors of the default face only, leaving frame background -;; untouched. In Emacs 20, the colors of the default face and of the -;; frame could be changed independently. In Emacs 21, this is no longer -;; true. New color themes will not be made backwards compatible. -;; -;; This release was superficially tested with Emacs 21.2 and XEmacs 21.4. - - - -;;; Code: - -(require 'cl); set-difference is a function... - -;; for custom-face-attributes-get or face-custom-attributes-get -(require 'cus-face) -(require 'wid-edit); for widget-apply stuff in cus-face.el - -(defconst color-theme-maintainer-address "zedek@gnu-rox.org" - "Address used by `submit-color-theme'.") - -;; Emacs / XEmacs compatibility and workaround layer - -(cond ((and (facep 'tool-bar) - (not (facep 'toolbar))) - (put 'toolbar 'face-alias 'tool-bar)) - ((and (facep 'toolbar) - (not (facep 'tool-bar))) - (put 'tool-bar 'face-alias 'toolbar))) - -(defvar color-theme-xemacs-p (string-match "XEmacs" emacs-version) - "Non-nil if running XEmacs.") - -;; face-attr-construct has a problem in Emacs 20.7 and older when -;; dealing with inverse-video faces. Here is a short test to check -;; wether you are affected. - -;; (set-background-color "wheat") -;; (set-foreground-color "black") -;; (setq a (make-face 'a-face)) -;; (face-spec-set a '((t (:background "white" :foreground "black" :inverse-video t)))) -;; (face-attr-construct a) -;; => (:background "black" :inverse-video t) - -;; The expected response is the original specification: -;; => (:background "white" :foreground "black" :inverse-video t) - -;; That's why we depend on cus-face.el functionality. - -(cond ((fboundp 'custom-face-attributes-get) - (defalias 'color-theme-face-attr-construct - 'custom-face-attributes-get)) - ((fboundp 'face-custom-attributes-get) - (defalias 'color-theme-face-attr-construct - 'face-custom-attributes-get)) - (t - (defun color-theme-face-attr-construct (&rest ignore) - (error "Unable to construct face attributes")))) - -(defun color-theme-alist (plist) - "Transform PLIST into an alist if it is a plist and return it. -If the first element of PLIST is a cons cell, we just return PLIST, -assuming PLIST to be an alist. If the first element of plist is not a -symbol, this is an error: We cannot distinguish a plist from an ordinary -list, but a list that doesn't start with a symbol is certainly no plist -and no alist. - -This is used to make sure `default-frame-alist' really is an alist and not -a plist. In XEmacs, the alist is deprecated; a plist is used instead." - (cond ((consp (car plist)) - plist) - ((not (symbolp (car plist))) - (error "Wrong type argument: plist, %S" plist)) - (t - (plist-to-alist plist)))); XEmacs only - -;; Customization - -(defgroup color-theme nil - "Color Themes for Emacs. -A color theme consists of frame parameter settings, variable settings, -and face definitions." - :version "20.6" - :group 'faces) - -(defcustom color-theme-legal-frame-parameters "\\(color\\|mode\\)$" - "Regexp that matches frame parameter names. -Only frame parameter names that match this regexp can be changed as part -of a color theme." - :type '(choice (const :tag "Colors only" "\\(color\\|mode\\)$") - (const :tag "Colors, fonts, and size" - "\\(color\\|mode\\|font\\|height\\|width\\)$") - (regexp :tag "Custom regexp")) - :group 'color-theme - :link '(info-link "(elisp)Window Frame Parameters")) - -(defcustom color-theme-legal-variables "\\(color\\|face\\)$" - "Regexp that matches variable names. -Only variables that match this regexp can be changed as part of a color -theme. In addition to matching this name, the variables have to be user -variables (see function `user-variable-p')." - :type 'regexp - :group 'color-theme) - -(defcustom color-theme-illegal-faces "^w3-" - "Regexp that matches face names forbidden in themes. -The default setting \"^w3-\" excludes w3 faces since these -are created dynamically." - :type 'regexp - :group 'color-theme - :link '(info-link "(elisp)Faces for Font Lock") - :link '(info-link "(elisp)Standard Faces")) - -(defcustom color-theme-illegal-default-attributes '(:family :height :width) - "A list of face properties to be ignored when installing faces. -This prevents Emacs from doing terrible things to your display just because -a theme author likes weird fonts." - :type '(repeat symbol) - :group 'color-theme) - -(defcustom color-theme-is-global t - "*Determines wether a color theme is installed on all frames or not. -If non-nil, color themes will be installed for all frames. -If nil, color themes will be installed for the selected frame only. - -A possible use for this variable is dynamic binding. Here is a larger -example to put in your ~/.emacs; it will make the Blue Sea color theme -the default used for the first frame, and it will create two additional -frames with different color themes. - -setup: - \(require 'color-theme) - ;; set default color theme - \(color-theme-blue-sea) - ;; create some frames with different color themes - \(let ((color-theme-is-global nil)) - \(select-frame (make-frame)) - \(color-theme-gnome2) - \(select-frame (make-frame)) - \(color-theme-standard)) - -Please note that using XEmacs and and a nil value for -color-theme-is-global will ignore any variable settings for the color -theme, since XEmacs doesn't have frame-local variable bindings. - -Also note that using Emacs and a non-nil value for color-theme-is-global -will install a new color theme for all frames. Using XEmacs and a -non-nil value for color-theme-is-global will install a new color theme -only on those frames that are not using a local color theme." - :type 'boolean - :group 'color-theme) - -(defcustom color-theme-is-cumulative t - "*Determines wether new color themes are installed on top of each other. -If non-nil, installing a color theme will undo all settings made by -previous color themes." - :type 'boolean - :group 'color-theme) - -(defcustom color-theme-mode-hook nil - "Hook for color-theme-mode." - :type 'hook - :group 'color-theme) - -(defvar color-theme-mode-map - (let ((map (make-sparse-keymap))) - (define-key map (kbd "RET") 'color-theme-install-at-point) - (define-key map (kbd "c") 'list-colors-display) - (define-key map (kbd "d") 'color-theme-describe) - (define-key map (kbd "f") 'list-faces-display) - (define-key map (kbd "i") 'color-theme-install-at-point) - (define-key map (kbd "l") 'color-theme-install-at-point-for-current-frame) - (define-key map (kbd "p") 'color-theme-print) - (define-key map (kbd "q") 'bury-buffer) - (define-key map (kbd "?") 'color-theme-describe) - (if color-theme-xemacs-p - (define-key map (kbd "") 'color-theme-install-at-mouse) - (define-key map (kbd "") 'color-theme-install-at-mouse)) - map) - "Mode map used for the buffer created by `color-theme-select'.") - -(defvar color-theme-buffer-name "*Color Theme Selection*" - "Name of the color theme selection buffer.") - -(defvar color-theme-original-frame-alist nil - "nil until one of the color themes has been installed.") - -(defvar color-theme-history nil - "List of color-themes called, in reverse order") - -(defcustom color-theme-history-max-length nil - "Max length of history to maintain. -Two other values are acceptable: t means no limit, and -nil means that no history is maintained." - :type '(choice (const :tag "No history" nil) - (const :tag "Unlimited length" t) - integer) - :group 'color-theme) - -(defvar color-theme-counter 0 - "Counter for every addition to `color-theme-history'. -This counts how many themes were installed, regardless -of `color-theme-history-max-length'.") - -(defun color-theme-add-to-history (name) - "Add color-theme NAME to `color-theme-history'." - (setq color-theme-history - (cons (list name color-theme-is-cumulative) - color-theme-history) - color-theme-counter (+ 1 color-theme-counter)) - ;; Truncate the list if necessary. - (when (and (integerp color-theme-history-max-length) - (>= (length color-theme-history) - color-theme-history-max-length)) - (setcdr (nthcdr (1- color-theme-history-max-length) - color-theme-history) - nil))) - -;; (let ((l '(1 2 3 4 5))) -;; (setcdr (nthcdr 2 l) nil) -;; l) - - - -;; List of color themes used to create the *Color Theme Selection* -;; buffer. - -(defvar color-themes - '((color-theme-aalto-dark "Aalto Dark" "Jari Aalto ") - (color-theme-aalto-light "Aalto Light" "Jari Aalto ") - (color-theme-aliceblue "Alice Blue" "Girish Bharadwaj ") - (color-theme-andreas "Andreas" "Andreas Busch ") - (color-theme-arjen "Arjen" "Arjen Wiersma ") - (color-theme-beige-diff "Beige Diff" "Alex Schroeder " t) - (color-theme-bharadwaj "Bharadwaj" "Girish Bharadwaj ") - (color-theme-bharadwaj-slate "Bharadwaj Slate" "Girish Bharadwaj ") - (color-theme-billw "Billw" "Bill White ") - (color-theme-black-on-gray "BlackOnGray" "Sudhir Bhojwani ") - (color-theme-blippblopp "Blipp Blopp" "Thomas Sicheritz-Ponten") - (color-theme-simple-1 "Black" "Jonadab ") - (color-theme-blue-erc "Blue ERC" "Alex Schroeder " t) - (color-theme-blue-gnus "Blue Gnus" "Alex Schroeder " t) - (color-theme-blue-mood "Blue Mood" "Nelson Loyola ") - (color-theme-blue-sea "Blue Sea" "Alex Schroeder ") - (color-theme-calm-forest "Calm Forest" "Artur Hefczyc ") - (color-theme-charcoal-black "Charcoal Black" "Lars Chr. Hausmann ") - (color-theme-goldenrod "Cheap Goldenrod" "Alex Schroeder ") - (color-theme-clarity "Clarity and Beauty" "Richard Wellum ") - (color-theme-classic "Classic" "Frederic Giroud ") - (color-theme-comidia "Comidia" "Marcelo Dias de Toledo ") - (color-theme-jsc-dark "Cooper Dark" "John S Cooper ") - (color-theme-jsc-light "Cooper Light" "John S Cooper ") - (color-theme-jsc-light2 "Cooper Light 2" "John S Cooper ") - (color-theme-dark-blue "Dark Blue" "Chris McMahan ") - (color-theme-dark-blue2 "Dark Blue 2" "Chris McMahan ") - (color-theme-dark-green "Dark Green" "eddy_woody@hotmail.com") - (color-theme-dark-laptop "Dark Laptop" "Laurent Michel ") - (color-theme-deep-blue "Deep Blue" "Tomas Cerha ") - (color-theme-digital-ofs1 "Digital OFS1" "Gareth Owen ") - (color-theme-euphoria "Euphoria" "oGLOWo@oGLOWo.cjb.net") - (color-theme-feng-shui "Feng Shui" "Walter Higgins ") - (color-theme-fischmeister "Fischmeister" - "Sebastian Fischmeister ") - (color-theme-gnome "Gnome" "Jonadab ") - (color-theme-gnome2 "Gnome 2" "Alex Schroeder ") - (color-theme-gray1 "Gray1" "Paul Pulli ") - (color-theme-gray30 "Gray30" "Girish Bharadwaj ") - (color-theme-kingsajz "Green Kingsajz" "Olgierd `Kingsajz' Ziolko ") - (color-theme-greiner "Greiner" "Kevin Greiner ") - (color-theme-gtk-ide "GTK IDE" "Gordon Messmer ") - (color-theme-high-contrast "High Contrast" "Alex Schroeder ") - (color-theme-hober "Hober" "Edward O'Connor ") - (color-theme-infodoc "Infodoc" "Frederic Giroud ") - (color-theme-jb-simple "JB Simple" "jeff@dvns.com") - (color-theme-jedit-grey "Jedit Grey" "Gordon Messmer ") - (color-theme-jonadabian "Jonadab" "Jonadab ") - (color-theme-jonadabian-slate "Jonadabian Slate" "Jonadab ") - (color-theme-katester "Katester" "Higgins_Walter@emc.com") - (color-theme-late-night "Late Night" "Alex Schroeder ") - (color-theme-lawrence "Lawrence" "lawrence mitchell ") - (color-theme-lethe "Lethe" "Ivica Loncar ") - (color-theme-ld-dark "Linh Dang Dark" "Linh Dang ") - (color-theme-marine "Marine" "Girish Bharadwaj ") - (color-theme-matrix "Matrix" "Walter Higgins ") - (color-theme-marquardt "Marquardt" "Colin Marquardt ") - (color-theme-midnight "Midnight" "Gordon Messmer ") - (color-theme-mistyday "Misty Day" "Hari Kumar ") - (color-theme-montz "Montz" "Brady Montz ") - (color-theme-oswald "Oswald" "Tom Oswald ") - (color-theme-parus "Parus" "Jon K Hellan ") - (color-theme-pierson "Pierson" "Dan L. Pierson ") - (color-theme-ramangalahy "Ramangalahy" "Solofo Ramangalahy ") - (color-theme-raspopovic "Raspopovic" "Pedja Raspopovic ") - (color-theme-resolve "Resolve" "Damien Elmes ") - (color-theme-retro-green "Retro Green" "Alex Schroeder ") - (color-theme-retro-orange "Retro Orange" "Alex Schroeder ") - (color-theme-robin-hood "Robin Hood" "Alex Schroeder ") - (color-theme-rotor "Rotor" "Jinwei Shen ") - (color-theme-ryerson "Ryerson" "Luis Fernandes ") - (color-theme-salmon-diff "Salmon Diff" "Alex Schroeder " t) - (color-theme-salmon-font-lock "Salmon Font-Lock" "Alex Schroeder " t) - (color-theme-scintilla "Scintilla" "Gordon Messmer ") - (color-theme-shaman "Shaman" "shaman@interdon.net") - (color-theme-sitaramv-nt "Sitaram NT" - "Sitaram Venkatraman ") - (color-theme-sitaramv-solaris "Sitaram Solaris" - "Sitaram Venkatraman ") - (color-theme-snow "Snow" "Nicolas Rist ") - (color-theme-snowish "Snowish" "Girish Bharadwaj ") - (color-theme-standard-ediff "Standard Ediff" "Emacs Team, added by Alex Schroeder " t) - (color-theme-standard "Standard Emacs 20" "Emacs Team, added by Alex Schroeder ") - (color-theme-emacs-21 "Standard Emacs 21" "Emacs Team, added by Alex Schroeder ") - (color-theme-emacs-nw "Standard Emacs 21 No Window" "Emacs Team, added by D. Goel ") - (color-theme-xemacs "Standard XEmacs" "XEmacs Team, added by Alex Schroeder ") - (color-theme-subtle-blue "Subtle Blue" "Chris McMahan ") - (color-theme-subtle-hacker "Subtle Hacker" "Colin Walters ") - (color-theme-taming-mr-arneson "Taming Mr Arneson" "Erik Arneson ") - (color-theme-taylor "Taylor" "Art Taylor ") - (color-theme-tty-dark "TTY Dark" "O Polite ") - (color-theme-vim-colors "Vim Colors" "Michael Soulier ") - (color-theme-whateveryouwant "Whateveryouwant" "Fabien Penso , color by Scott Jaderholm ") - (color-theme-wheat "Wheat" "Alex Schroeder ") - (color-theme-pok-wob "White On Black" "S. Pokrovsky ") - (color-theme-pok-wog "White On Grey" "S. Pokrovsky ") - (color-theme-word-perfect "WordPerfect" "Thomas Gehrlein ") - (color-theme-xp "XP" "Girish Bharadwaj ")) - "List of color themes. - -Each THEME is itself a three element list (FUNC NAME MAINTAINER &optional LIBRARY). - -FUNC is a color theme function which does the setup. The function -FUNC may call `color-theme-install'. The color theme function may be -interactive. - -NAME is the name of the theme and MAINTAINER is the name and/or email of -the maintainer of the theme. - -If LIBRARY is non-nil, the color theme will be considered a library and -may not be shown in the default menu. - -If you defined your own color theme and want to add it to this list, -use something like this: - - (add-to-list 'color-themes '(color-theme-gnome2 \"Gnome2\" \"Alex\"))") - -;;; Functions - -(defun color-theme-backup-original-values () - "Back up the original `default-frame-alist'. -The values are stored in `color-theme-original-frame-alist' on -startup." - (if (null color-theme-original-frame-alist) - (setq color-theme-original-frame-alist - (color-theme-filter (frame-parameters (selected-frame)) - color-theme-legal-frame-parameters)))) -(add-hook 'after-init-hook 'color-theme-backup-original-values) - -(defun color-theme-select (&optional arg) - "Displays a special buffer for selecting and installing a color theme. -With optional prefix ARG, this buffer will include color theme libraries -as well. A color theme library is in itself not complete, it must be -used as part of another color theme to be useful. Thus, color theme -libraries are mainly useful for color theme authors." - (interactive "P") - (switch-to-buffer (get-buffer-create color-theme-buffer-name)) - (setq buffer-read-only nil) - (erase-buffer) - ;; recreate the snapshot if necessary - (when (or (not (assq 'color-theme-snapshot color-themes)) - (not (commandp 'color-theme-snapshot))) - (fset 'color-theme-snapshot (color-theme-make-snapshot)) - (setq color-themes (delq (assq 'color-theme-snapshot color-themes) - color-themes) - color-themes (delq (assq 'bury-buffer color-themes) - color-themes) - color-themes (append '((color-theme-snapshot - "[Reset]" "Undo changes, if possible.") - (bury-buffer - "[Quit]" "Bury this buffer.")) - color-themes))) - (dolist (theme color-themes) - (let ((func (nth 0 theme)) - (name (nth 1 theme)) - (author (nth 2 theme)) - (library (nth 3 theme)) - (desc)) - (when (or (not library) arg) - (setq desc (format "%-23s %s" - (if library (concat name " [lib]") name) - author)) - (put-text-property 0 (length desc) 'color-theme func desc) - (put-text-property 0 (length name) 'face 'bold desc) - (put-text-property 0 (length name) 'mouse-face 'highlight desc) - (insert desc) - (newline)))) - (beginning-of-buffer) - (setq buffer-read-only t) - (set-buffer-modified-p nil) - (color-theme-mode)) - -(require 'easymenu) -(easy-menu-add-item nil '("Tools") "--") -(easy-menu-add-item nil '("Tools") - ["Color Themes" color-theme-select t]) - -(defun color-theme-mode () - "Major mode to select and install color themes. - -Use \\[color-theme-install-at-point] to install a color theme on all frames. -Use \\[color-theme-install-at-point-for-current-frame] to install a color theme for the current frame only. - -The changes are applied on top of your current setup. This is a -feature. - -Some of the themes should be considered extensions to the standard color -theme: they modify only a limited number of faces and variables. To -verify the final look of a color theme, install the standard color -theme, then install the other color theme. This is a feature. It allows -you to mix several color themes. - -Use \\[color-theme-describe] to read more about the color theme function at point. -If you want to install the color theme permanently, put the call to the -color theme function into your ~/.emacs: - - \(require 'color-theme) - \(color-theme-gnome2) - -If you worry about the size of color-theme.el: You are right. Use -\\[color-theme-print] to print the current color theme and save the resulting buffer -as ~/.emacs-color-theme. Now you can install only this specific color -theme in your .emacs: - - \(load-file \"~/.emacs-color-theme\") - \(my-color-theme) - -The Emacs menu is not affected by color themes within Emacs. Depending -on the toolkit you used to compile Emacs, you might have to set specific -X ressources. See the info manual for more information. Here is an -example ~/.Xdefaults fragment: - - emacs*Background: DarkSlateGray - emacs*Foreground: wheat - -\\{color-theme-mode-map} - -The color themes are listed in `color-themes', which see." - (kill-all-local-variables) - (setq major-mode 'color-theme-mode) - (setq mode-name "Color Themes") - (use-local-map color-theme-mode-map) - (when (functionp 'goto-address); Emacs - (goto-address)) - (run-hooks 'color-theme-mode-hook)) - -;;; Commands in Color Theme Selection mode - -(defun color-theme-describe () - "Describe color theme listed at point. -This shows the documentation of the value of text-property color-theme -at point. The text-property color-theme should be a color theme -function. See `color-themes'." - (interactive) - (describe-function (get-text-property (point) 'color-theme))) - -(defun color-theme-install-at-mouse (event) - "Install color theme clicked upon using the mouse. -First argument EVENT is used to set point. Then -`color-theme-install-at-point' is called." - (interactive "e") - (save-excursion - (mouse-set-point event) - (color-theme-install-at-point))) - -(defun color-theme-install-at-point () - "Install color theme at point. -This calls the value of the text-property `color-theme' at point. -The text-property `color-theme' should be a color theme function. -See `color-themes'." - (interactive) - (let ((func (get-text-property (point) 'color-theme))) - ;; install theme - (if func - (funcall func)) - ;; If goto-address is being used, remove all overlays in the current - ;; buffer and run it again. The face used for the mail addresses in - ;; the the color theme selection buffer is based on the variable - ;; goto-address-mail-face. Changes in that variable will not affect - ;; existing overlays, however, thereby confusing users. - (when (functionp 'goto-address); Emacs - (dolist (o (overlays-in (point-min) (point-max))) - (delete-overlay o)) - (goto-address)))) - -(defun color-theme-install-at-point-for-current-frame () - "Install color theme at point for current frame only. -Binds `color-theme-is-global' to nil and calls -`color-theme-install-at-point'." - (interactive) - (let ((color-theme-is-global nil)) - (color-theme-install-at-point))) - - - -;; Taking a snapshot of the current color theme and pretty printing it. - -(defun color-theme-filter (old-list regexp &optional exclude) - "Filter OLD-LIST. -The resulting list will be newly allocated and contains only elements -with names matching REGEXP. OLD-LIST may be a list or an alist. If you -want to filter a plist, use `color-theme-alist' to convert your plist to -an alist, first. - -If the optional argument EXCLUDE is non-nil, then the sense is -reversed: only non-matching elements will be retained." - (let (elem new-list) - (dolist (elem old-list) - (setq name (symbol-name (if (listp elem) (car elem) elem))) - (when (or (and (not exclude) - (string-match regexp name)) - (and exclude - (not (string-match regexp name)))) - ;; Now make sure that if elem is a cons cell, and the cdr of - ;; that cons cell is a string, then we need a *new* string in - ;; the new list. Having a new cons cell is of no use because - ;; modify-frame-parameters will modify this string, thus - ;; modifying our color theme functions! - (when (and (consp elem) - (stringp (cdr elem))) - (setq elem (cons (car elem) - (copy-sequence (cdr elem))))) - ;; Now store elem - (setq new-list (cons elem new-list)))) - new-list)) - -(defun color-theme-spec-filter (spec) - "Filter the attributes in SPEC. -This makes sure that SPEC has the form ((t (PLIST ...))). -Only properties not in `color-theme-illegal-default-attributes' -are included in the SPEC returned." - (let ((props (cadar spec)) - result prop val) - (while props - (setq prop (nth 0 props) - val (nth 1 props) - props (nthcdr 2 props)) - (unless (memq prop color-theme-illegal-default-attributes) - (setq result (cons val (cons prop result))))) - `((t ,(nreverse result))))) - -;; (color-theme-spec-filter '((t (:background "blue3")))) -;; (color-theme-spec-filter '((t (:stipple nil :background "Black" :foreground "SteelBlue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width semi-condensed :family "misc-fixed")))) - -(defun color-theme-plist-delete (plist prop) - "Delete property PROP from property list PLIST by side effect. -This modifies PLIST." - ;; deal with prop at the start - (while (eq (car plist) prop) - (setq plist (cddr plist))) - ;; deal with empty plist - (when plist - (let ((lastcell (cdr plist)) - (l (cddr plist))) - (while l - (if (eq (car l) prop) - (progn - (setq l (cddr l)) - (setcdr lastcell l)) - (setq lastcell (cdr l) - l (cddr l)))))) - plist) - -;; (color-theme-plist-delete '(a b c d e f g h) 'a) -;; (color-theme-plist-delete '(a b c d e f g h) 'b) -;; (color-theme-plist-delete '(a b c d e f g h) 'c) -;; (color-theme-plist-delete '(a b c d e f g h) 'g) -;; (color-theme-plist-delete '(a b c d c d e f g h) 'c) -;; (color-theme-plist-delete '(a b c d e f c d g h) 'c) - -(if (or (featurep 'xemacs) - (< emacs-major-version 21)) - (defalias 'color-theme-spec-compat 'identity) - (defun color-theme-spec-compat (spec) - "Filter the attributes in SPEC such that is is never invalid. -Example: Eventhough :bold works in Emacs, it is not recognized by -`customize-face' -- and then the face is uncustomizable. This -function replaces a :bold attribute with the corresponding :weight -attribute, if there is no :weight, or deletes it. This undoes the -doings of `color-theme-spec-canonical-font', more or less." - (let ((props (cadar spec))) - (when (plist-member props :bold) - (setq props (color-theme-plist-delete props :bold)) - (unless (plist-member props :weight) - (setq props (plist-put props :weight 'bold)))) - (when (plist-member props :italic) - (setq props (color-theme-plist-delete props :italic)) - (unless (plist-member props :slant) - (setq props (plist-put props :slant 'italic)))) - `((t ,props))))) - -;; (color-theme-spec-compat '((t (:foreground "blue" :bold t)))) -;; (color-theme-spec-compat '((t (:bold t :foreground "blue" :weight extra-bold)))) -;; (color-theme-spec-compat '((t (:italic t :foreground "blue")))) -;; (color-theme-spec-compat '((t (:slant oblique :italic t :foreground "blue")))) - -(defun color-theme-spec-canonical-font (atts) - "Add :bold and :italic attributes if necessary." - ;; add these to the front of atts -- this will keept the old value for - ;; customize-face in Emacs 21. - (when (and (memq (plist-get atts :weight) - '(ultra-bold extra-bold bold semi-bold)) - (not (plist-get atts :bold))) - (setq atts (cons :bold (cons t atts)))) - (when (and (not (memq (plist-get atts :slant) - '(normal nil))) - (not (plist-get atts :italic))) - (setq atts (cons :italic (cons t atts)))) - atts) -;; (color-theme-spec-canonical-font (color-theme-face-attr-construct 'bold (selected-frame))) -;; (defface foo '((t (:weight extra-bold))) "foo") -;; (color-theme-spec-canonical-font (color-theme-face-attr-construct 'foo (selected-frame))) -;; (face-spec-set 'foo '((t (:weight extra-bold))) nil) -;; (face-spec-set 'foo '((t (:bold t))) nil) -;; (face-spec-set 'foo '((t (:bold t :weight extra-bold))) nil) - -;; Handle :height according to NEWS file for Emacs 21 -(defun color-theme-spec-resolve-height (old new) - "Return the new height given OLD and NEW height. -OLD is the current setting, NEW is the setting inherited from." - (cond ((not old) - new) - ((integerp old) - old) - ((and (floatp old) - (integerp new)) - (round (* old new))) - ((and (floatp old) - (floatp new)) - (* old new)) - ((and (functionp old) - (integerp new)) - (round (funcall old new))) - ((and (functionp old) - (float new)) - `(lambda (f) (* (funcall ,old f) ,new))) - ((and (functionp old) - (functionp new)) - `(lambda (f) (* (funcall ,old (funcall ,new f))))) - (t - (error "Illegal :height attributes: %S or %S" old new)))) -;; (color-theme-spec-resolve-height 12 1.2) -;; (color-theme-spec-resolve-height 1.2 1.2) -;; (color-theme-spec-resolve-height 1.2 12) -;; (color-theme-spec-resolve-height 1.2 'foo) -;; (color-theme-spec-resolve-height (lambda (f) (* 2 f)) 5) -;; (color-theme-spec-resolve-height (lambda (f) (* 2 f)) 2.0) -;; the following lambda is the result from the above calculation -;; (color-theme-spec-resolve-height (lambda (f) (* (funcall (lambda (f) (* 2 f)) f) 2.0)) 5) - -(defun color-theme-spec-resolve-inheritance (atts) - "Resolve all occurences of the :inherit attribute." - (let ((face (plist-get atts :inherit))) - ;; From the Emacs 21 NEWS file: "Attributes from inherited faces are - ;; merged into the face like an underlying face would be." -- - ;; therefore properties of the inherited face only add missing - ;; attributes. - (when face - ;; remove :inherit face from atts -- this assumes only one - ;; :inherit attribute. - (setq atts (delq ':inherit (delq face atts))) - (let ((more-atts (color-theme-spec-resolve-inheritance - (color-theme-face-attr-construct - face (selected-frame)))) - att val) - (while more-atts - (setq att (car more-atts) - val (cadr more-atts) - more-atts (cddr more-atts)) - ;; Color-theme assumes that no value is ever 'unspecified. - (cond ((eq att ':height); cumulative effect! - (setq atts (plist-put atts - ':height - (color-theme-spec-resolve-height - (plist-get atts att) - val)))) - ;; Default: Only put if it has not been specified before. - ((not (plist-get atts att)) - (setq atts (cons att (cons val atts)))) - -)))) - atts)) -;; (color-theme-spec-resolve-inheritance '(:bold t)) -;; (color-theme-spec-resolve-inheritance '(:bold t :foreground "blue")) -;; (color-theme-face-attr-construct 'font-lock-comment-face (selected-frame)) -;; (color-theme-spec-resolve-inheritance '(:bold t :inherit font-lock-comment-face)) -;; (color-theme-spec-resolve-inheritance '(:bold t :foreground "red" :inherit font-lock-comment-face)) -;; (color-theme-face-attr-construct 'Info-title-2-face (selected-frame)) -;; (color-theme-face-attr-construct 'Info-title-3-face (selected-frame)) -;; (color-theme-face-attr-construct 'Info-title-4-face (selected-frame)) -;; (color-theme-spec-resolve-inheritance '(:inherit Info-title-2-face)) - -;; The :inverse-video attribute causes Emacs to swap foreground and -;; background colors, XEmacs does not. Therefore, if anybody chooses -;; the inverse-video attribute, we 1. swap the colors ourselves in Emacs -;; and 2. we remove the inverse-video attribute in Emacs and XEmacs. -;; Inverse-video is only useful on a monochrome tty. -(defun color-theme-spec-maybe-invert (atts) - "Remove the :inverse-video attribute from ATTS. -If ATTS contains :inverse-video t, remove it and swap foreground and -background color. Return ATTS." - (let ((inv (plist-get atts ':inverse-video))) - (if inv - (let (result att) - (while atts - (setq att (car atts) - atts (cdr atts)) - (cond ((and (eq att :foreground) (not color-theme-xemacs-p)) - (setq result (cons :background result))) - ((and (eq att :background) (not color-theme-xemacs-p)) - (setq result (cons :foreground result))) - ((eq att :inverse-video) - (setq atts (cdr atts))); this prevents using dolist - (t - (setq result (cons att result))))) - (nreverse result)) - ;; else - atts))) -;; (color-theme-spec-maybe-invert '(:bold t)) -;; (color-theme-spec-maybe-invert '(:foreground "blue")) -;; (color-theme-spec-maybe-invert '(:background "red")) -;; (color-theme-spec-maybe-invert '(:inverse-video t)) -;; (color-theme-spec-maybe-invert '(:inverse-video t :foreground "red")) -;; (color-theme-spec-maybe-invert '(:inverse-video t :background "red")) -;; (color-theme-spec-maybe-invert '(:inverse-video t :background "red" :foreground "blue" :bold t)) -;; (color-theme-spec-maybe-invert '(:inverse-video nil :background "red" :foreground "blue" :bold t)) - -(defun color-theme-spec (face) - "Return a list for FACE which has the form (FACE SPEC). -See `defface' for the format of SPEC. In this case we use only one -DISPLAY, t, and determine ATTS using `color-theme-face-attr-construct'. -If ATTS is nil, (nil) is used instead. - -If ATTS contains :inverse-video t, we remove it and swap foreground and -background color using `color-theme-spec-maybe-invert'. We do this -because :inverse-video is handled differently in Emacs and XEmacs. We -will loose on a tty without colors, because in that situation, -:inverse-video means something." - (let ((atts - (color-theme-spec-canonical-font - (color-theme-spec-maybe-invert - (color-theme-spec-resolve-inheritance - (color-theme-face-attr-construct face (selected-frame))))))) - (if atts - `(,face ((t ,atts))) - `(,face ((t (nil))))))) - -(defun color-theme-get-params () - "Return a list of frame parameter settings usable in a color theme. -Such an alist may be installed by `color-theme-install-frame-params'. The -frame parameters returned must match `color-theme-legal-frame-parameters'." - (let ((params (color-theme-filter (frame-parameters (selected-frame)) - color-theme-legal-frame-parameters))) - (sort params (lambda (a b) (string< (symbol-name (car a)) - (symbol-name (car b))))))) - -(defun color-theme-get-vars () - "Return a list of variable settings usable in a color theme. -Such an alist may be installed by `color-theme-install-variables'. -The variable names must match `color-theme-legal-variables', and the -variable must be a user variable according to `user-variable-p'." - (let ((vars) - (val)) - (mapatoms (lambda (v) - (and (boundp v) - (user-variable-p v) - (string-match color-theme-legal-variables - (symbol-name v)) - (setq val (eval v)) - (add-to-list 'vars (cons v val))))) - (sort vars (lambda (a b) (string< (car a) (car b)))))) - -(defun color-theme-print-alist (alist) - "Print ALIST." - (insert "\n " (if alist "(" "nil")) - (dolist (elem alist) - (when (= (preceding-char) ?\)) - (insert "\n ")) - (prin1 elem (current-buffer))) - (when (= (preceding-char) ?\)) (insert ")"))) - -(defun color-theme-get-faces () - "Return a list of faces usable in a color theme. -Such an alist may be installed by `color-theme-install-faces'. The -faces returned must not match `color-theme-illegal-faces'." - (let ((faces (color-theme-filter (face-list) color-theme-illegal-faces t))) - ;; default face must come first according to comments in - ;; custom-save-faces, the rest is to be sorted by name - (cons 'default (sort (delq 'default faces) 'string-lessp)))) - -(defun color-theme-get-face-definitions () - "Return face settings usable in a color-theme." - (let ((faces (color-theme-get-faces))) - (mapcar 'color-theme-spec faces))) - -(defun color-theme-print-faces (faces) - "Print face settings for all faces returned by `color-theme-get-faces'." - (when faces - (insert "\n ")) - (dolist (face faces) - (when (= (preceding-char) ?\)) - (insert "\n ")) - (prin1 face (current-buffer)))) - -(defun color-theme-reset-faces () - "Reset face settings for all faces returned by `color-theme-get-faces'." - (let ((faces (color-theme-get-faces)) - (face) (spec) (entry) - (frame (if color-theme-is-global nil (selected-frame)))) - (while faces - (setq entry (color-theme-spec (car faces))) - (setq face (nth 0 entry)) - (setq spec '((t (nil)))) - (setq faces (cdr faces)) - (if (functionp 'face-spec-reset-face) - (face-spec-reset-face face frame) - (face-spec-set face spec frame) - (if color-theme-is-global - (put face 'face-defface-spec spec)))))) - -(defun color-theme-print-theme (func doc params vars faces) - "Print a theme into the current buffer. -FUNC is the function name, DOC the doc string, PARAMS the -frame parameters, VARS the variable bindings, and FACES -the list of faces and their specs." - (insert "(defun " (symbol-name func) " ()\n" - " \"" doc "\"\n" - " (interactive)\n" - " (color-theme-install\n" - " '(" (symbol-name func)) - ;; alist of frame parameters - (color-theme-print-alist params) - ;; alist of variables - (color-theme-print-alist vars) - ;; remaining elements of snapshot: face specs - (color-theme-print-faces faces) - (insert ")))") - (goto-char (point-min))) - -(defun color-theme-print (&optional buf) - "Print the current color theme function. - -You can contribute this function to or -paste it into your .emacs file and call it. That should recreate all -the settings necessary for your color theme. - -Example: - - \(require 'color-theme) - \(defun my-color-theme () - \"Color theme by Alex Schroeder, created 2000-05-17.\" - \(interactive) - \(color-theme-install - '(... - ... - ...))) - \(my-color-theme) - -If you want to use a specific color theme function, you can call the -color theme function in your .emacs directly. - -Example: - - \(require 'color-theme) - \(color-theme-gnome2)" - (interactive) - (message "Pretty printing current color theme function...") - (switch-to-buffer (if buf - buf - (get-buffer-create "*Color Theme*"))) - (unless buf - (setq buffer-read-only nil) - (erase-buffer)) - ;; insert defun - (color-theme-print-theme 'my-color-theme - (concat "Color theme by " - (if (string= "" user-full-name) - (user-login-name) - user-full-name) - ", created " (format-time-string "%Y-%m-%d") ".") - (color-theme-get-params) - (color-theme-get-vars) - (mapcar 'color-theme-spec (color-theme-get-faces))) - (unless buf - (emacs-lisp-mode)) - (goto-char (point-min)) - (message "Pretty printing current color theme function... done")) - -(defun color-theme-analyze-find-theme (code) - "Find the sexpr that calls `color-theme-install'." - (let (theme) - (while (and (not theme) code) - (when (eq (car code) 'color-theme-install) - (setq theme code)) - (when (listp (car code)) - (setq theme (color-theme-analyze-find-theme (car code)))) - (setq code (cdr code))) - theme)) - -;; (equal (color-theme-analyze-find-theme -;; '(defun color-theme-blue-eshell () -;; "Color theme for eshell faces only." -;; (color-theme-install -;; '(color-theme-blue-eshell -;; nil -;; (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed")))) -;; (eshell-ls-backup-face ((t (:foreground "Grey")))))))) -;; '(color-theme-install -;; (quote -;; (color-theme-blue-eshell -;; nil -;; (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed")))) -;; (eshell-ls-backup-face ((t (:foreground "Grey"))))))))) - -(defun color-theme-analyze-add-face (a b regexp faces) - "If only one of A or B are in FACES, the other is added, and FACES is returned. -If REGEXP is given, this is only done if faces contains a match for regexps." - (when (or (not regexp) - (catch 'found - (dolist (face faces) - (when (string-match regexp (symbol-name (car face))) - (throw 'found t))))) - (let ((face-a (assoc a faces)) - (face-b (assoc b faces))) - (if (and face-a (not face-b)) - (setq faces (cons (list b (nth 1 face-a)) - faces)) - (if (and (not face-a) face-b) - (setq faces (cons (list a (nth 1 face-b)) - faces)))))) - faces) - -;; (equal (color-theme-analyze-add-face -;; 'blue 'violet nil -;; '((blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t)))))) -;; '((violet ((t (:foreground "blue")))) -;; (blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t)))))) -;; (equal (color-theme-analyze-add-face -;; 'violet 'blue nil -;; '((blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t)))))) -;; '((violet ((t (:foreground "blue")))) -;; (blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t)))))) -;; (equal (color-theme-analyze-add-face -;; 'violet 'blue "foo" -;; '((blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t)))))) -;; '((blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t)))))) -;; (equal (color-theme-analyze-add-face -;; 'violet 'blue "blue" -;; '((blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t)))))) -;; '((violet ((t (:foreground "blue")))) -;; (blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t)))))) - -(defun color-theme-analyze-add-faces (faces) - "Add missing faces to FACES and return it." - ;; The most important thing is to add missing faces for the other - ;; editor. These are the most important faces to check. The - ;; following rules list two faces, A and B. If either of the two is - ;; part of the theme, the other must be, too. The optional third - ;; argument specifies a regexp. Only if an existing face name - ;; matches this regexp, is the rule applied. - (let ((rules '((font-lock-builtin-face font-lock-reference-face) - (font-lock-doc-face font-lock-doc-string-face) - (font-lock-constant-face font-lock-preprocessor-face) - ;; In Emacs 21 `modeline' is just an alias for - ;; `mode-line'. I recommend the use of - ;; `modeline' until further notice. - (modeline mode-line) - (modeline modeline-buffer-id) - (modeline modeline-mousable) - (modeline modeline-mousable-minor-mode) - (region primary-selection) - (region zmacs-region) - (font-lock-string-face dired-face-boring "^dired") - (font-lock-function-name-face dired-face-directory "^dired") - (default dired-face-executable "^dired") - (font-lock-warning-face dired-face-flagged "^dired") - (font-lock-warning-face dired-face-marked "^dired") - (default dired-face-permissions "^dired") - (default dired-face-setuid "^dired") - (default dired-face-socket "^dired") - (font-lock-keyword-face dired-face-symlink "^dired") - (tool-bar menu)))) - (dolist (rule rules) - (setq faces (color-theme-analyze-add-face - (nth 0 rule) (nth 1 rule) (nth 2 rule) faces)))) - ;; The `fringe' face defines what the left and right borders of the - ;; frame look like in Emacs 21. To give them default fore- and - ;; background colors, use (fringe ((t (nil)))) in your color theme. - ;; Usually it makes more sense to choose a color slightly lighter or - ;; darker from the default background. - (unless (assoc 'fringe faces) - (setq faces (cons '(fringe ((t (nil)))) faces))) - ;; The tool-bar should not be part of the frame-parameters, since it - ;; should not appear or disappear depending on the color theme. The - ;; apppearance of the toolbar, however, can be changed by the color - ;; theme. For Emacs 21, use the `tool-bar' face. The easiest way - ;; to do this is to give it the default fore- and background colors. - ;; This can be achieved using (tool-bar ((t (nil)))) in the theme. - ;; Usually it makes more sense, however, to provide the same colors - ;; as used in the `menu' face, and to specify a :box attribute. In - ;; order to alleviate potential Emacs/XEmacs incompatibilities, - ;; `toolbar' will be defined as an alias for `tool-bar' if it does - ;; not exist, and vice-versa. This is done eventhough the face - ;; `toolbar' seems to have no effect on XEmacs. If you look at - ;; XEmacs lisp/faces.el, however, you will find that it is in fact - ;; referenced for XPM stuff. - (unless (assoc 'tool-bar faces) - (setq faces (cons '(tool-bar ((t (nil)))) faces))) - ;; Move the default face back to the front, and sort the rest. - (unless (eq (caar faces) 'default) - (let ((face (assoc 'default faces))) - (setq faces (cons face - (sort (delete face faces) - (lambda (a b) - (string-lessp (car a) (car b)))))))) - faces) - -(defun color-theme-analyze-remove-heights (faces) - "Remove :height property where it is an integer and return FACES." - ;; I don't recommend making font sizes part of a color theme. Most - ;; users would be surprised to see their font sizes change when they - ;; install a color-theme. Therefore, remove all :height attributes - ;; if the value is an integer. If the value is a float, this is ok - ;; -- the value is relative to the default height. One notable - ;; exceptions is for a color-theme created for visually impaired - ;; people. These *must* use a larger font in order to be usable. - (let (result) - (dolist (face faces) - (let ((props (cadar (nth 1 face)))) - (if (and (plist-member props :height) - (integerp (plist-get props :height))) - (setq props (color-theme-plist-delete props :height) - result (cons (list (car face) `((t ,props))) - result)) - (setq result (cons face result))))) - (nreverse result))) - -;; (equal (color-theme-analyze-remove-heights -;; '((blue ((t (:foreground "blue" :height 2)))) -;; (bold ((t (:bold t :height 1.0)))))) -;; '((blue ((t (:foreground "blue")))) -;; (bold ((t (:bold t :height 1.0)))))) - -(defun color-theme-analyze-defun () - "Once you have a color-theme printed, check for missing faces. -This is used by maintainers who receive a color-theme submission -and want to make sure it follows the guidelines by the color-theme -author." - ;; The support for :foreground and :background attributes works for - ;; Emacs 20 and 21 as well as for XEmacs. :inverse-video is taken - ;; care of while printing color themes. - (interactive) - ;; Parse the stuff and find the call to color-theme-install - (save-excursion - (save-restriction - (narrow-to-defun) - ;; define the function - (eval-defun nil) - (goto-char (point-min)) - (let* ((code (read (current-buffer))) - (theme (color-theme-canonic - (eval - (cadr - (color-theme-analyze-find-theme - code))))) - (func (color-theme-function theme)) - (doc (documentation func t)) - (variables (color-theme-variables theme)) - (faces (color-theme-faces theme)) - (params (color-theme-frame-params theme))) - (setq faces (color-theme-analyze-remove-heights - (color-theme-analyze-add-faces faces))) - ;; Remove any variable bindings of faces that point to their - ;; symbol? Perhaps not, because another theme might want to - ;; change this, so it is important to be able to reset them. - ;; (let (result) - ;; (dolist (var variables) - ;; (unless (eq (car var) (cdr var)) - ;; (setq result (cons var result)))) - ;; (setq variables (nreverse result))) - ;; Now modify the theme directly. - (setq theme (color-theme-analyze-find-theme code)) - (setcdr (cadadr theme) (list params variables faces)) - (message "Pretty printing analysed color theme function...") - (with-current-buffer (get-buffer-create "*Color Theme*") - (setq buffer-read-only nil) - (erase-buffer) - ;; insert defun - (color-theme-print-theme func doc params variables faces) - (emacs-lisp-mode)) - (message "Pretty printing analysed color theme function... done") - (ediff-buffers (current-buffer) - (get-buffer "*Color Theme*")))))) - -;;; Creating a snapshot of the current color theme - -(defun color-theme-snapshot nil) - -(defun color-theme-make-snapshot () - "Return the definition of the current color-theme. -The function returned will recreate the color-theme in use at the moment." - (eval `(lambda () - "The color theme in use when the selection buffer was created. -\\[color-theme-select] creates the color theme selection buffer. At the -same time, this snapshot is created as a very simple undo mechanism. -The snapshot is created via `color-theme-snapshot'." - (interactive) - (color-theme-install - '(color-theme-snapshot - ;; alist of frame parameters - ,(color-theme-get-params) - ;; alist of variables - ,(color-theme-get-vars) - ;; remaining elements of snapshot: face specs - ,@(color-theme-get-face-definitions)))))) - - - -;;; Handling the various parts of a color theme install - -(defvar color-theme-frame-param-frobbing-rules - '((foreground-color default foreground) - (background-color default background)) - "List of rules to use when frobbing faces based on frame parameters. -This is only necessary for XEmacs, because in Emacs 21 changing the -frame paramters automatically affects the relevant faces.") - -(defun color-theme-frob-faces (params) - "Change certain faces according to PARAMS. -This uses `color-theme-frame-param-frobbing-rules'." - (dolist (rule color-theme-frame-param-frobbing-rules) - (let* ((param (nth 0 rule)) - (face (nth 1 rule)) - (prop (nth 2 rule)) - (val (cdr (assq param params))) - (frame (if color-theme-is-global nil (selected-frame)))) - (when val - (set-face-property face prop val frame))))) - -(defun color-theme-alist-reduce (old-list) - "Reduce OLD-LIST. -The resulting list will be newly allocated and will not contain any elements -with duplicate cars. This will speed the installation of new themes by -only installing unique attributes." - (let (new-list) - (dolist (elem old-list) - (when (not (assq (car elem) new-list)) - (setq new-list (cons elem new-list)))) - new-list)) - -(defun color-theme-install-frame-params (params) - "Change frame parameters using alist PARAMETERS. - -If `color-theme-is-global' is non-nil, all frames are modified using -`modify-frame-parameters' and the PARAMETERS are prepended to -`default-frame-alist'. The value of `initial-frame-alist' is not -modified. If `color-theme-is-global' is nil, only the selected frame is -modified. If `color-theme-is-cumulative' is nil, the frame parameters -are restored from `color-theme-original-frame-alist'. - -If the current frame parameters have a parameter `minibuffer' with -value `only', then the frame parameters are not installed, since this -indicates a dedicated minibuffer frame. - -Called from `color-theme-install'." - (setq params (color-theme-filter - params color-theme-legal-frame-parameters)) - ;; We have a new list in params now, therefore we may use - ;; destructive nconc. - (if color-theme-is-global - (let ((frames (frame-list))) - (if (or color-theme-is-cumulative - (null color-theme-original-frame-alist)) - (setq default-frame-alist - (append params (color-theme-alist default-frame-alist)) - minibuffer-frame-alist - (append params (color-theme-alist minibuffer-frame-alist))) - (setq default-frame-alist - (append params color-theme-original-frame-alist) - minibuffer-frame-alist - (append params (color-theme-alist minibuffer-frame-alist)))) - (setq default-frame-alist - (color-theme-alist-reduce default-frame-alist) - minibuffer-frame-alist - (color-theme-alist-reduce minibuffer-frame-alist)) - (dolist (frame frames) - (let ((params (if (eq 'only (cdr (assq 'minibuffer (frame-parameters frame)))) - minibuffer-frame-alist - default-frame-alist))) - (condition-case var - (modify-frame-parameters frame params) - (error (message "Error using params %S: %S" params var)))))) - (condition-case var - (modify-frame-parameters (selected-frame) params) - (error (message "Error using params %S: %S" params var)))) - (when color-theme-xemacs-p - (color-theme-frob-faces params))) - -;; (setq default-frame-alist (cons '(height . 30) default-frame-alist)) - -(defun color-theme-install-variables (vars) - "Change variables using alist VARS. -All variables matching `color-theme-legal-variables' are set. - -If `color-theme-is-global' and `color-theme-xemacs-p' are nil, variables -are made frame-local before setting them. Variables are set using `set' -in either case. This may lead to problems if changing the variable -requires the usage of the function specified with the :set tag in -defcustom declarations. - -Called from `color-theme-install'." - (let ((vars (color-theme-filter vars color-theme-legal-variables))) - (dolist (var vars) - (if (or color-theme-is-global color-theme-xemacs-p) - (set (car var) (cdr var)) - (make-variable-frame-local (car var)) - (modify-frame-parameters (selected-frame) (list var)))))) - -(defun color-theme-install-faces (faces) - "Change faces using FACES. - -Change faces for all frames and create any faces listed in FACES which -don't exist. The modified faces will be marked as \"unchanged from -its standard setting\". This is OK, since the changes made by -installing a color theme should never by saved in .emacs by -customization code. - -FACES should be a list where each entry has the form: - - (FACE SPEC) - -See `defface' for the format of SPEC. - -If `color-theme-is-global' is non-nil, faces are modified on all frames -using `face-spec-set'. If `color-theme-is-global' is nil, faces are -only modified on the selected frame. Non-existing faces are created -using `make-empty-face' in either case. If `color-theme-is-cumulative' -is nil, all faces are reset before installing the new faces. - -Called from `color-theme-install'." - ;; clear all previous faces - (when (not color-theme-is-cumulative) - (color-theme-reset-faces)) - ;; install new faces - (let ((faces (color-theme-filter faces color-theme-illegal-faces t)) - (frame (if color-theme-is-global nil (selected-frame)))) - (dolist (entry faces) - (let ((face (nth 0 entry)) - (spec (nth 1 entry))) - (or (facep face) - (make-empty-face face)) - ;; remove weird properties from the default face only - (when (eq face 'default) - (setq spec (color-theme-spec-filter spec))) - ;; Emacs/XEmacs customization issues: filter out :bold when - ;; the spec contains :weight, etc, such that the spec remains - ;; "valid" for custom. - (setq spec (color-theme-spec-compat spec)) - ;; using a spec of ((t (nil))) to reset a face doesn't work - ;; in Emacs 21, we use the new function face-spec-reset-face - ;; instead - (if (and (functionp 'face-spec-reset-face) - (equal spec '((t (nil))))) - (face-spec-reset-face face frame) - (condition-case var - (progn - (face-spec-set face spec frame) - (if color-theme-is-global - (put face 'face-defface-spec spec))) - (error (message "Error using spec %S: %S" spec var)))))))) - -;; `custom-set-faces' is unusable here because it doesn't allow to set -;; the faces for one frame only. - -;; Emacs `face-spec-set': If FRAME is nil, the face is created and -;; marked as a customized face. This is achieved by setting the -;; `face-defface-spec' property. If we don't, new frames will not be -;; created using the face we installed because `face-spec-set' is -;; broken: If given a FRAME of nil, it will not set the default faces; -;; instead it will walk through all the frames and set modify the faces. -;; If we do set a property (`saved-face' or `face-defface-spec'), -;; `make-frame' will correctly use the faces we defined with our color -;; theme. If we used the property `saved-face', -;; `customize-save-customized' will save all the faces installed as part -;; of a color-theme in .emacs. That's why we use the -;; `face-defface-spec' property. - - - -;;; Theme accessor functions, canonicalization, merging, comparing - -(defun color-theme-canonic (theme) - "Return the canonic form of THEME. -This deals with all the backwards compatibility stuff." - (let (function frame-params variables faces) - (when (functionp (car theme)) - (setq function (car theme) - theme (cdr theme))) - (setq frame-params (car theme) - theme (cdr theme)) - ;; optional variable defintions (for backwards compatibility) - (when (listp (caar theme)) - (setq variables (car theme) - theme (cdr theme))) - ;; face definitions - (setq faces theme) - (list function frame-params variables faces))) - -(defun color-theme-function (theme) - "Return function used to create THEME." - (nth 0 theme)) - -(defun color-theme-frame-params (theme) - "Return frame-parameters defined by THEME." - (nth 1 theme)) - -(defun color-theme-variables (theme) - "Return variables set by THEME." - (nth 2 theme)) - -(defun color-theme-faces (theme) - "Return faces defined by THEME." - (nth 3 theme)) - -(defun color-theme-merge-alists (&rest alists) - "Merges all the alist arguments into one alist. -Only the first instance of every key will be part of the resulting -alist. Membership will be tested using `assq'." - (let (result) - (dolist (l alists) - (dolist (entry l) - (unless (assq (car entry) result) - (setq result (cons entry result))))) - (nreverse result))) -;; (color-theme-merge-alists '((a . 1) (b . 2))) -;; (color-theme-merge-alists '((a . 1) (b . 2) (a . 3))) -;; (color-theme-merge-alists '((a . 1) (b . 2)) '((a . 3))) -;; (color-theme-merge-alists '((a . 1) (b . 2)) '((c . 3))) -;; (color-theme-merge-alists '((a . 1) (b . 2)) '((c . 3) (d . 4))) -;; (color-theme-merge-alists '((a . 1) (b . 2)) '((c . 3) (d . 4) (b . 5))) - -(defun color-theme-compare (theme-a theme-b) - "Compare two color themes. -This will print the differences between installing THEME-A and -installing THEME-B. Note that the order is important: If a face is -defined in THEME-A and not in THEME-B, then this will not show up as a -difference, because there is no reset before installing THEME-B. If a -face is defined in THEME-B and not in THEME-A, then this will show up as -a difference." - (interactive - (list - (intern - (completing-read "Theme A: " - (mapcar (lambda (i) (list (symbol-name (car i)))) - color-themes) - (lambda (i) (string-match "color-theme" (car i))))) - (intern - (completing-read "Theme B: " - (mapcar (lambda (i) (list (symbol-name (car i)))) - color-themes) - (lambda (i) (string-match "color-theme" (car i))))))) - ;; install the themes in a new frame and get the definitions - (let ((color-theme-is-global nil)) - (select-frame (make-frame)) - (funcall theme-a) - (setq theme-a (list theme-a - (color-theme-get-params) - (color-theme-get-vars) - (color-theme-get-face-definitions))) - (funcall theme-b) - (setq theme-b (list theme-b - (color-theme-get-params) - (color-theme-get-vars) - (color-theme-get-face-definitions))) - (delete-frame)) - (let ((params (set-difference - (color-theme-frame-params theme-b) - (color-theme-frame-params theme-a) - :test 'equal)) - (vars (set-difference - (color-theme-variables theme-b) - (color-theme-variables theme-a) - :test 'equal)) - (faces (set-difference - (color-theme-faces theme-b) - (color-theme-faces theme-a) - :test 'equal))) - (list 'diff - params - vars - faces))) - - - -;;; Installing a color theme - -(defun color-theme-install (theme) - "Install a color theme defined by frame parameters, variables and faces. - -The theme is installed for all present and future frames; any missing -faces are created. See `color-theme-install-faces'. - -THEME is a color theme definition. See below for more information. - -If you want to install a color theme from your .emacs, use the output -generated by `color-theme-print'. This produces color theme function -which you can copy to your .emacs. - -A color theme definition is a list: -\([FUNCTION] FRAME-PARAMETERS VARIABLE-SETTINGS FACE-DEFINITIONS) - -FUNCTION is the color theme function which called `color-theme-install'. -This is no longer used. There was a time when this package supported -automatic factoring of color themes. This has been abandoned. - -FRAME-PARAMETERS is an alist of frame parameters. These are installed -with `color-theme-install-frame-params'. These are installed last such -that any changes to the default face can be changed by the frame -parameters. - -VARIABLE-DEFINITIONS is an alist of variable settings. These are -installed with `color-theme-install-variables'. - -FACE-DEFINITIONS is an alist of face definitions. These are installed -with `color-theme-install-faces'. - -If `color-theme-is-cumulative' is nil, a color theme will undo face and -frame-parameter settings of previous color themes." - (setq theme (color-theme-canonic theme)) - (color-theme-install-variables (color-theme-variables theme)) - (color-theme-install-faces (color-theme-faces theme)) - ;; frame parameters override faces - (color-theme-install-frame-params (color-theme-frame-params theme)) - (when color-theme-history-max-length - (color-theme-add-to-history - (car theme)))) - - - -;; Sharing your stuff - -(defun color-theme-submit () - "Submit your color-theme to the maintainer." - (interactive) - (require 'reporter) - (let ((reporter-eval-buffer (current-buffer)) - final-resting-place - after-sep-pos - (reporter-status-message "Formatting buffer...") - (reporter-status-count 0) - (problem "Yet another color-theme") - (agent (reporter-compose-outgoing)) - (mailbuf (current-buffer)) - hookvar) - ;; do the work - (require 'sendmail) - ;; If mailbuf did not get made visible before, make it visible now. - (let (same-window-buffer-names same-window-regexps) - (pop-to-buffer mailbuf) - ;; Just in case the original buffer is not visible now, bring it - ;; back somewhere - (and pop-up-windows (display-buffer reporter-eval-buffer))) - (goto-char (point-min)) - (mail-position-on-field "to") - (insert color-theme-maintainer-address) - (mail-position-on-field "subject") - (insert problem) - ;; move point to the body of the message - (mail-text) - (setq after-sep-pos (point)) - (unwind-protect - (progn - (setq final-resting-place (point-marker)) - (goto-char final-resting-place)) - (color-theme-print (current-buffer)) - (goto-char final-resting-place) - (insert "\n\n") - (goto-char final-resting-place) - (insert "Hello there!\n\nHere's my color theme named: ") - (set-marker final-resting-place nil)) - ;; compose the minibuf message and display this. - (let* ((sendkey-whereis (where-is-internal - (get agent 'sendfunc) nil t)) - (abortkey-whereis (where-is-internal - (get agent 'abortfunc) nil t)) - (sendkey (if sendkey-whereis - (key-description sendkey-whereis) - "C-c C-c")); TBD: BOGUS hardcode - (abortkey (if abortkey-whereis - (key-description abortkey-whereis) - "M-x kill-buffer"))); TBD: BOGUS hardcode - (message "Enter a message and type %s to send or %s to abort." - sendkey abortkey)))) - - - -;;; The color theme functions - -(defun color-theme-gnome () - "Wheat on darkslategrey scheme. -From one version of Emacs in RH6 and Gnome, modified by Jonadab." - (interactive) - (color-theme-install - '(color-theme-gnome - ((foreground-color . "wheat") - (background-color . "darkslategrey") - (background-mode . dark)) - (default ((t (nil)))) - (region ((t (:foreground "cyan" :background "dark cyan")))) - (underline ((t (:foreground "yellow" :underline t)))) - (modeline ((t (:foreground "dark cyan" :background "wheat")))) - (modeline-buffer-id ((t (:foreground "dark cyan" :background "wheat")))) - (modeline-mousable ((t (:foreground "dark cyan" :background "wheat")))) - (modeline-mousable-minor-mode ((t (:foreground "dark cyan" :background "wheat")))) - (italic ((t (:foreground "dark red" :italic t)))) - (bold-italic ((t (:foreground "dark red" :bold t :italic t)))) - (font-lock-comment-face ((t (:foreground "Firebrick")))) - (bold ((t (:bold))))))) - -(defun color-theme-blue-gnus () - "Color theme for gnus and message faces only. -This is intended for other color themes to use (eg. `color-theme-gnome2' -and `color-theme-blue-sea')." - (interactive) - (color-theme-install - '(color-theme-blue-gnus - nil - (gnus-cite-attribution-face ((t (:lforeground "lemon chiffon" :bold t)))) - (gnus-cite-face-1 ((t (:foreground "LightSalmon")))) - (gnus-cite-face-2 ((t (:foreground "Khaki")))) - (gnus-cite-face-3 ((t (:foreground "Coral")))) - (gnus-cite-face-4 ((t (:foreground "yellow green")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "bisque")))) - (gnus-cite-face-7 ((t (:foreground "peru")))) - (gnus-cite-face-8 ((t (:foreground "light coral")))) - (gnus-cite-face-9 ((t (:foreground "plum")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "White")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "White")))) - (gnus-group-mail-2-empty-face ((t (:foreground "light cyan")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "light cyan")))) - (gnus-group-mail-3-empty-face ((t (:foreground "LightBlue")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "LightBlue")))) - (gnus-group-mail-low-empty-face ((t (:foreground "Aquamarine")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "Aquamarine")))) - (gnus-group-news-1-empty-face ((t (:foreground "White")))) - (gnus-group-news-1-face ((t (:bold t :foreground "White")))) - (gnus-group-news-2-empty-face ((t (:foreground "light cyan")))) - (gnus-group-news-2-face ((t (:bold t :foreground "light cyan")))) - (gnus-group-news-3-empty-face ((t (:foreground "LightBlue")))) - (gnus-group-news-3-face ((t (:bold t :foreground "LightBlue")))) - (gnus-group-news-4-empty-face ((t (:foreground "Aquamarine")))) - (gnus-group-news-4-face ((t (:bold t :foreground "Aquamarine")))) - (gnus-group-news-5-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-5-face ((t (:bold t :foreground "MediumAquamarine")))) - (gnus-group-news-6-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-6-face ((t (:bold t :foreground "MediumAquamarine")))) - (gnus-group-news-low-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-low-face ((t (:bold t :foreground "MediumAquamarine")))) - (gnus-header-content-face ((t (:foreground "LightSkyBlue3")))) - (gnus-header-from-face ((t (:bold t :foreground "light cyan")))) - (gnus-header-name-face ((t (:bold t :foreground "LightBlue")))) - (gnus-header-newsgroups-face ((t (:bold t :foreground "MediumAquamarine")))) - (gnus-header-subject-face ((t (:bold t :foreground "light cyan")))) - (gnus-signature-face ((t (:foreground "Grey")))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-summary-cancelled-face ((t (:background "Black" :foreground "Yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "MediumAquamarine")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "Aquamarine")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "LightSalmon")))) - (gnus-summary-high-unread-face ((t (:bold t :foreground "beige")))) - (gnus-summary-low-ancient-face ((t (:foreground "DimGray")))) - (gnus-summary-low-read-face ((t (:foreground "slate gray")))) - (gnus-summary-low-ticked-face ((t (:foreground "Pink")))) - (gnus-summary-low-unread-face ((t (:foreground "LightGray")))) - (gnus-summary-normal-ancient-face ((t (:foreground "MediumAquamarine")))) - (gnus-summary-normal-read-face ((t (:foreground "Aquamarine")))) - (gnus-summary-normal-ticked-face ((t (:foreground "LightSalmon")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:background "DarkSlateBlue")))) - (message-cited-text-face ((t (:foreground "LightSalmon")))) - (message-header-cc-face ((t (:foreground "light cyan")))) - (message-header-name-face ((t (:foreground "LightBlue")))) - (message-header-newsgroups-face ((t (:bold t :foreground "MediumAquamarine")))) - (message-header-other-face ((t (:foreground "MediumAquamarine")))) - (message-header-subject-face ((t (:bold t :foreground "light cyan")))) - (message-header-to-face ((t (:bold t :foreground "light cyan")))) - (message-header-xheader-face ((t (:foreground "MediumAquamarine")))) - (message-separator-face ((t (:foreground "chocolate"))))))) - -(defun color-theme-dark-gnus () - "Color theme for gnus and message faces only. -This is intended for other color themes to use -\(eg. `color-theme-late-night')." - (interactive) - (color-theme-install - '(color-theme-blue-gnus - nil - (gnus-cite-attribution-face ((t (:foreground "#bbb")))) - (gnus-cite-face-1 ((t (:foreground "#aaa")))) - (gnus-cite-face-2 ((t (:foreground "#aaa")))) - (gnus-cite-face-3 ((t (:foreground "#aaa")))) - (gnus-cite-face-4 ((t (:foreground "#aaa")))) - (gnus-cite-face-5 ((t (:foreground "#aaa")))) - (gnus-cite-face-6 ((t (:foreground "#aaa")))) - (gnus-cite-face-7 ((t (:foreground "#aaa")))) - (gnus-cite-face-8 ((t (:foreground "#aaa")))) - (gnus-cite-face-9 ((t (:foreground "#aaa")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:foreground "#ccc")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "#999")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "#999")))) - (gnus-group-mail-2-empty-face ((t (:foreground "#999")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "#999")))) - (gnus-group-mail-3-empty-face ((t (:foreground "#888")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "#888")))) - (gnus-group-mail-low-empty-face ((t (:foreground "#777")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "#777")))) - (gnus-group-news-1-empty-face ((t (:foreground "#999")))) - (gnus-group-news-1-face ((t (:bold t :foreground "#999")))) - (gnus-group-news-2-empty-face ((t (:foreground "#888")))) - (gnus-group-news-2-face ((t (:bold t :foreground "#888")))) - (gnus-group-news-3-empty-face ((t (:foreground "#777")))) - (gnus-group-news-3-face ((t (:bold t :foreground "#777")))) - (gnus-group-news-4-empty-face ((t (:foreground "#666")))) - (gnus-group-news-4-face ((t (:bold t :foreground "#666")))) - (gnus-group-news-5-empty-face ((t (:foreground "#666")))) - (gnus-group-news-5-face ((t (:bold t :foreground "#666")))) - (gnus-group-news-6-empty-face ((t (:foreground "#666")))) - (gnus-group-news-6-face ((t (:bold t :foreground "#666")))) - (gnus-group-news-low-empty-face ((t (:foreground "#666")))) - (gnus-group-news-low-face ((t (:bold t :foreground "#666")))) - (gnus-header-content-face ((t (:foreground "#888")))) - (gnus-header-from-face ((t (:bold t :foreground "#888")))) - (gnus-header-name-face ((t (:bold t :foreground "#777")))) - (gnus-header-newsgroups-face ((t (:bold t :foreground "#777")))) - (gnus-header-subject-face ((t (:bold t :foreground "#999")))) - (gnus-signature-face ((t (:foreground "#444")))) - (gnus-splash-face ((t (:foreground "#ccc")))) - (gnus-summary-cancelled-face ((t (:background "#555" :foreground "#000")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "#555")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "#666")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "#777")))) - (gnus-summary-high-unread-face ((t (:bold t :foreground "#888")))) - (gnus-summary-low-ancient-face ((t (:foreground "#444")))) - (gnus-summary-low-read-face ((t (:foreground "#555")))) - (gnus-summary-low-ticked-face ((t (:foreground "#666")))) - (gnus-summary-low-unread-face ((t (:foreground "#777")))) - (gnus-summary-normal-ancient-face ((t (:foreground "#555")))) - (gnus-summary-normal-read-face ((t (:foreground "#666")))) - (gnus-summary-normal-ticked-face ((t (:foreground "#777")))) - (gnus-summary-normal-unread-face ((t (:foreground "#888")))) - (gnus-summary-selected-face ((t (:background "#333")))) - (message-cited-text-face ((t (:foreground "#aaa")))) - (message-header-cc-face ((t (:foreground "#888")))) - (message-header-name-face ((t (:bold t :foreground "#777")))) - (message-header-newsgroups-face ((t (:bold t :foreground "#777")))) - (message-header-other-face ((t (:foreground "#666")))) - (message-header-subject-face ((t (:bold t :foreground "#999")))) - (message-header-to-face ((t (:bold t :foreground "#777")))) - (message-header-xheader-face ((t (:foreground "#666")))) - (message-separator-face ((t (:foreground "#999"))))))) - -(defun color-theme-blue-eshell () - "Color theme for eshell faces only. -This is intended for other color themes to use (eg. `color-theme-gnome2')." - (interactive) - (color-theme-install - '(color-theme-blue-eshell - nil - (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed")))) - (eshell-ls-backup-face ((t (:foreground "Grey")))) - (eshell-ls-clutter-face ((t (:foreground "DimGray")))) - (eshell-ls-directory-face ((t (:bold t :foreground "MediumSlateBlue")))) - (eshell-ls-executable-face ((t (:foreground "Coral")))) - (eshell-ls-missing-face ((t (:foreground "black")))) - (eshell-ls-picture-face ((t (:foreground "Violet")))) ; non-standard face - (eshell-ls-product-face ((t (:foreground "LightSalmon")))) - (eshell-ls-readonly-face ((t (:foreground "Aquamarine")))) - (eshell-ls-special-face ((t (:foreground "Gold")))) - (eshell-ls-symlink-face ((t (:foreground "White")))) - (eshell-ls-text-face ((t (:foreground "medium aquamarine")))) ; non-standard face - (eshell-ls-todo-face ((t (:bold t :foreground "aquamarine")))) ; non-standard face - (eshell-ls-unreadable-face ((t (:foreground "DimGray")))) - (eshell-prompt-face ((t (:foreground "powder blue"))))))) - -(defun color-theme-salmon-font-lock () - "Color theme for font-lock faces only. -This is intended for other color themes to use (eg. `color-theme-gnome2')." - (interactive) - (color-theme-install - '(color-theme-salmon-font-lock - nil - (font-lock-builtin-face ((t (:bold t :foreground "PaleGreen")))) - (font-lock-comment-face ((t (:foreground "LightBlue")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-doc-string-face ((t (:foreground "LightSalmon")))) - (font-lock-function-name-face ((t (:bold t :foreground "Aquamarine")))) - (font-lock-keyword-face ((t (:foreground "Salmon")))) - (font-lock-preprocessor-face ((t (:foreground "Salmon")))) - (font-lock-reference-face ((t (:foreground "pale green")))) - (font-lock-string-face ((t (:foreground "LightSalmon")))) - (font-lock-type-face ((t (:bold t :foreground "YellowGreen")))) - (font-lock-variable-name-face ((t (:bold t :foreground "Aquamarine")))) - (font-lock-warning-face ((t (:bold t :foreground "red"))))))) - -(defun color-theme-dark-font-lock () - "Color theme for font-lock faces only. -This is intended for other color themes to use (eg. `color-theme-late-night')." - (interactive) - (color-theme-install - '(color-theme-dark-font-lock - nil - (font-lock-builtin-face ((t (:bold t :foreground "#777")))) - (font-lock-comment-face ((t (:foreground "#555")))) - (font-lock-constant-face ((t (:foreground "#777")))) - (font-lock-doc-string-face ((t (:foreground "#777")))) - (font-lock-doc-face ((t (:foreground "#777")))) - (font-lock-function-name-face ((t (:bold t :foreground "#777")))) - (font-lock-keyword-face ((t (:foreground "#777")))) - (font-lock-preprocessor-face ((t (:foreground "#777")))) - (font-lock-reference-face ((t (:foreground "#777")))) - (font-lock-string-face ((t (:foreground "#777")))) - (font-lock-type-face ((t (:bold t)))) - (font-lock-variable-name-face ((t (:bold t :foreground "#888")))) - (font-lock-warning-face ((t (:bold t :foreground "#999"))))))) - -(defun color-theme-dark-info () - "Color theme for info, help and apropos faces. -This is intended for other color themes to use (eg. `color-theme-late-night')." - (interactive) - (color-theme-install - '(color-theme-dark-info - nil - (info-header-node ((t (:foreground "#666")))) - (info-header-xref ((t (:foreground "#666")))) - (info-menu-5 ((t (:underline t)))) - (info-menu-header ((t (:bold t :foreground "#666")))) - (info-node ((t (:bold t :foreground "#888")))) - (info-xref ((t (:bold t :foreground "#777"))))))) - -(defun color-theme-gnome2 () - "Wheat on darkslategrey scheme. -`color-theme-gnome' started it all. - -This theme supports standard faces, font-lock, eshell, info, message, -gnus, custom, widget, woman, diary, cperl, bbdb, and erc. This theme -includes faces for Emacs and XEmacs. - -The theme does not support w3 faces because w3 faces can be controlled -by your default style sheet. - -This is what you should put in your .Xdefaults file, if you want to -change the colors of the menus in Emacs 20 as well: - -emacs*Background: DarkSlateGray -emacs*Foreground: Wheat" - (interactive) - (color-theme-blue-gnus) - (let ((color-theme-is-cumulative t)) - (color-theme-blue-erc) - (color-theme-blue-eshell) - (color-theme-salmon-font-lock) - (color-theme-salmon-diff) - (color-theme-install - '(color-theme-gnome2 - ((foreground-color . "wheat") - (background-color . "darkslategrey") - (mouse-color . "Grey") - (cursor-color . "LightGray") - (border-color . "black") - (background-mode . dark)) - ((apropos-keybinding-face . underline) - (apropos-label-face . italic) - (apropos-match-face . secondary-selection) - (apropos-property-face . bold-italic) - (apropos-symbol-face . info-xref) - (goto-address-mail-face . message-header-to-face) - (goto-address-mail-mouse-face . secondary-selection) - (goto-address-url-face . info-xref) - (goto-address-url-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bbdb-company ((t (:foreground "pale green")))) - (bbdb-name ((t (:bold t :foreground "pale green")))) - (bbdb-field-name ((t (:foreground "medium sea green")))) - (bbdb-field-value ((t (:foreground "dark sea green")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t :foreground "beige")))) - (calendar-today-face ((t (:underline t)))) - (comint-highlight-prompt ((t (:foreground "medium aquamarine")))) - (cperl-array-face ((t (:foreground "Yellow")))) - (cperl-hash-face ((t (:foreground "White")))) - (cperl-nonoverridable-face ((t (:foreground "SkyBlue")))) - (custom-button-face ((t (:underline t :foreground "MediumSlateBlue")))) - (custom-documentation-face ((t (:foreground "Grey")))) - (custom-group-tag-face ((t (:foreground "MediumAquamarine")))) - (custom-state-face ((t (:foreground "LightSalmon")))) - (custom-variable-tag-face ((t (:foreground "Aquamarine")))) - (diary-face ((t (:foreground "IndianRed")))) - (dired-face-directory ((t (:bold t :foreground "sky blue")))) - (dired-face-permissions ((t (:foreground "aquamarine")))) - (dired-face-flagged ((t (:foreground "tomato")))) - (dired-face-marked ((t (:foreground "light salmon")))) - (dired-face-executable ((t (:foreground "green yellow")))) - (fringe ((t (:background "darkslategrey")))) - (highlight ((t (:background "PaleGreen" :foreground "DarkGreen")))) - (highline-face ((t (:background "SeaGreen")))) - (holiday-face ((t (:background "DimGray")))) - (hyper-apropos-hyperlink ((t (:bold t :foreground "DodgerBlue1")))) - (hyper-apropos-documentation ((t (:foreground "LightSalmon")))) - (info-header-xref ((t (:foreground "DodgerBlue1" :bold t)))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:underline t :bold t :foreground "DodgerBlue1")))) - (info-xref ((t (:bold t :foreground "DodgerBlue1")))) - (isearch ((t (:background "sea green")))) - (italic ((t (:italic t)))) - (menu ((t (:foreground "wheat" :background "darkslategrey")))) - (modeline ((t (:background "dark olive green" :foreground "wheat")))) - (modeline-buffer-id ((t (:background "dark olive green" :foreground "beige")))) - (modeline-mousable ((t (:background "dark olive green" :foreground "yellow green")))) - (modeline-mousable-minor-mode ((t (:background "dark olive green" :foreground "wheat")))) - (region ((t (:background "dark cyan" :foreground "cyan")))) - (secondary-selection ((t (:background "Aquamarine" :foreground "SlateBlue")))) - (show-paren-match-face ((t (:bold t :background "Aquamarine" :foreground "steel blue")))) - (show-paren-mismatch-face ((t (:background "Red" :foreground "White")))) - (underline ((t (:underline t)))) - (widget-field-face ((t (:foreground "LightBlue")))) - (widget-inactive-face ((t (:foreground "DimGray")))) - (widget-single-line-field-face ((t (:foreground "LightBlue")))) - (w3m-anchor-face ((t (:bold t :foreground "DodgerBlue1")))) - (w3m-arrived-anchor-face ((t (:bold t :foreground "DodgerBlue3")))) - (w3m-header-line-location-title-face ((t (:foreground "beige" :background "dark olive green")))) - (w3m-header-line-location-content-face ((t (:foreground "wheat" :background "dark olive green")))) - (woman-bold-face ((t (:bold t)))) - (woman-italic-face ((t (:foreground "beige")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))) - (zmacs-region ((t (:background "dark cyan" :foreground "cyan")))))))) - -(defun color-theme-simple-1 () - "Black background. -Doesn't mess with most faces, but does turn on dark background mode." - (interactive) - (color-theme-install - '(color-theme-simple-1 - ((foreground-color . "white") - (background-color . "black") - (cursor-color . "indian red") - (background-mode . dark)) - (default ((t (nil)))) - (modeline ((t (:foreground "black" :background "white")))) - (modeline-buffer-id ((t (:foreground "black" :background "white")))) - (modeline-mousable ((t (:foreground "black" :background "white")))) - (modeline-mousable-minor-mode ((t (:foreground "black" :background "white")))) - (underline ((t (:underline t)))) - (region ((t (:background "grey"))))))) - -(defun color-theme-jonadabian () - "Dark blue background. -Supports standard faces, font-lock, highlight-changes, widget and -custom." - (interactive) - (color-theme-install - '(color-theme-jonadabian - ((foreground-color . "#CCBB77") - (cursor-color . "medium turquoise") - (background-color . "#000055") - (background-mode . dark)) - (default ((t (nil)))) - (modeline ((t (:foreground "cyan" :background "#007080")))) - (modeline-buffer-id ((t (:foreground "cyan" :background "#007080")))) - (modeline-mousable ((t (:foreground "cyan" :background "#007080")))) - (modeline-mousable-minor-mode ((t (:foreground "cyan" :background "#007080")))) - (underline ((t (:underline t)))) - (region ((t (:background "#004080")))) - (font-lock-keyword-face ((t (:foreground "#00BBBB")))) - (font-lock-comment-face ((t (:foreground "grey50" :bold t :italic t)))) - (font-lock-string-face ((t (:foreground "#10D010")))) - (font-lock-constant-face ((t (:foreground "indian red")))) - (highlight-changes-face ((t (:background "navy")))) - (highlight-changes-delete-face ((t (:foreground "red" :background "navy")))) - (widget-field-face ((t (:foreground "black" :background "grey35")))) - (widget-inactive-face ((t (:foreground "gray")))) - (custom-button-face ((t (:foreground "yellow" :background "dark blue")))) - (custom-state-face ((t (:foreground "mediumaquamarine")))) - (custom-face-tag-face ((t (:foreground "goldenrod" :underline t)))) - (custom-documentation-face ((t (:foreground "#10D010")))) - (custom-set-face ((t (:foreground "#2020D0"))))))) - -(defun color-theme-ryerson () - "White on midnightblue scheme. -Used at Ryerson Polytechnic University in the Electronic Engineering department." - (interactive) - (color-theme-install - '(color-theme-ryerson - ((foreground-color . "white") - (background-color . "midnightblue") - (cursor-color . "red") - (background-mode . dark)) - (default ((t (nil)))) - (modeline ((t (:foreground "black" :background "slategray3")))) - (modeline-buffer-id ((t (:foreground "black" :background "slategray3")))) - (modeline-mousable ((t (:foreground "black" :background "slategray3")))) - (modeline-mousable-minor-mode ((t (:foreground "black" :background "slategray3")))) - (underline ((t (:underline t)))) - (region ((t (:foreground "black" :background "slategray3"))))))) - -(defun color-theme-wheat () - "Default colors on a wheat background. -Calls the standard color theme function `color-theme-standard' in order -to reset all faces." - (interactive) - (color-theme-standard) - (let ((color-theme-is-cumulative t)) - (color-theme-install - '(color-theme-wheat - ((background-color . "Wheat")))))) - -(defun color-theme-standard () - "Emacs default colors. -If you are missing standard faces in this theme, please notify the maintainer." - (interactive) - ;; Note that some of the things that make up a color theme are - ;; actually variable settings! - (color-theme-install - '(color-theme-standard - ((foreground-color . "black") - (background-color . "white") - (mouse-color . "black") - (cursor-color . "black") - (border-color . "black") - (background-mode . light)) - ((Man-overstrike-face . bold) - (Man-underline-face . underline) - (apropos-keybinding-face . underline) - (apropos-label-face . italic) - (apropos-match-face . secondary-selection) - (apropos-property-face . bold-italic) - (apropos-symbol-face . bold) - (goto-address-mail-face . italic) - (goto-address-mail-mouse-face . secondary-selection) - (goto-address-url-face . bold) - (goto-address-url-mouse-face . highlight) - (help-highlight-face . underline) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:bold t :italic t)))) - (calendar-today-face ((t (:underline t)))) - (cperl-array-face ((t (:foreground "Blue" :background "lightyellow2" :bold t)))) - (cperl-hash-face ((t (:foreground "Red" :background "lightyellow2" :bold t :italic t)))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:foreground "white" :background "blue")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:foreground "blue" :underline t)))) - (custom-group-tag-face-1 ((t (:foreground "red" :underline t)))) - (custom-invalid-face ((t (:foreground "yellow" :background "red")))) - (custom-modified-face ((t (:foreground "white" :background "blue")))) - (custom-rogue-face ((t (:foreground "pink" :background "black")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:foreground "blue" :background "white")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:bold t :underline t)))) - (custom-variable-tag-face ((t (:foreground "blue" :underline t)))) - (diary-face ((t (:foreground "red")))) - (ediff-current-diff-face-A ((t (:foreground "firebrick" :background "pale green")))) - (ediff-current-diff-face-Ancestor ((t (:foreground "Black" :background "VioletRed")))) - (ediff-current-diff-face-B ((t (:foreground "DarkOrchid" :background "Yellow")))) - (ediff-current-diff-face-C ((t (:foreground "Navy" :background "Pink")))) - (ediff-even-diff-face-A ((t (:foreground "Black" :background "light grey")))) - (ediff-even-diff-face-Ancestor ((t (:foreground "White" :background "Grey")))) - (ediff-even-diff-face-B ((t (:foreground "White" :background "Grey")))) - (ediff-even-diff-face-C ((t (:foreground "Black" :background "light grey")))) - (ediff-fine-diff-face-A ((t (:foreground "Navy" :background "sky blue")))) - (ediff-fine-diff-face-Ancestor ((t (:foreground "Black" :background "Green")))) - (ediff-fine-diff-face-B ((t (:foreground "Black" :background "cyan")))) - (ediff-fine-diff-face-C ((t (:foreground "Black" :background "Turquoise")))) - (ediff-odd-diff-face-A ((t (:foreground "White" :background "Grey")))) - (ediff-odd-diff-face-Ancestor ((t (:foreground "Black" :background "light grey")))) - (ediff-odd-diff-face-B ((t (:foreground "Black" :background "light grey")))) - (ediff-odd-diff-face-C ((t (:foreground "White" :background "Grey")))) - (eshell-ls-archive-face ((t (:foreground "Orchid" :bold t)))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:foreground "OrangeRed" :bold t)))) - (eshell-ls-directory-face ((t (:foreground "Blue" :bold t)))) - (eshell-ls-executable-face ((t (:foreground "ForestGreen" :bold t)))) - (eshell-ls-missing-face ((t (:foreground "Red" :bold t)))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:foreground "Magenta" :bold t)))) - (eshell-ls-symlink-face ((t (:foreground "DarkCyan" :bold t)))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:foreground "Red" :bold t)))) - (eshell-test-failed-face ((t (:foreground "OrangeRed" :bold t)))) - (eshell-test-ok-face ((t (:foreground "Green" :bold t)))) - (excerpt ((t (:italic t)))) - (fixed ((t (:bold t)))) - (flyspell-duplicate-face ((t (:foreground "Gold3" :bold t :underline t)))) - (flyspell-incorrect-face ((t (:foreground "OrangeRed" :bold t :underline t)))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:foreground "Firebrick")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-function-name-face ((t (:foreground "Blue")))) - (font-lock-keyword-face ((t (:foreground "Purple")))) - (font-lock-string-face ((t (:foreground "RosyBrown")))) - (font-lock-type-face ((t (:foreground "ForestGreen")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-warning-face ((t (:foreground "Red" :bold t)))) - (fringe ((t (:background "grey95")))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:bold t :italic t)))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t)))) - (gnus-emphasis-underline-bold-italic ((t (:bold t :italic t :underline t)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:foreground "DeepPink3" :bold t)))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:foreground "HotPink3" :bold t)))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:foreground "magenta4" :bold t)))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:foreground "DeepPink4" :bold t)))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:foreground "ForestGreen" :bold t)))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:foreground "CadetBlue4" :bold t)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:foreground "DarkGreen" :bold t)))) - (gnus-header-content-face ((t (:foreground "indianred4" :italic t)))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:foreground "MidnightBlue" :italic t)))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-signature-face ((t (:italic t)))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-summary-cancelled-face ((t (:foreground "yellow" :background "black")))) - (gnus-summary-high-ancient-face ((t (:foreground "RoyalBlue" :bold t)))) - (gnus-summary-high-read-face ((t (:foreground "DarkGreen" :bold t)))) - (gnus-summary-high-ticked-face ((t (:foreground "firebrick" :bold t)))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:foreground "RoyalBlue" :italic t)))) - (gnus-summary-low-read-face ((t (:foreground "DarkGreen" :italic t)))) - (gnus-summary-low-ticked-face ((t (:foreground "firebrick" :italic t)))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (highlight ((t (:background "darkseagreen2")))) - (highlight-changes-delete-face ((t (:foreground "red" :underline t)))) - (highlight-changes-face ((t (:foreground "red")))) - (highline-face ((t (:background "paleturquoise")))) - (holiday-face ((t (:background "pink")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:bold t :italic t)))) - (info-xref ((t (:bold t)))) - (italic ((t (:italic t)))) - (makefile-space-face ((t (:background "hotpink")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:foreground "blue4" :bold t :italic t)))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:foreground "navy blue" :bold t)))) - (message-header-to-face ((t (:foreground "MidnightBlue" :bold t)))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:foreground "white" :background "black")))) - (modeline-buffer-id ((t (:foreground "white" :background "black")))) - (modeline-mousable ((t (:foreground "white" :background "black")))) - (modeline-mousable-minor-mode ((t (:foreground "white" :background "black")))) - (region ((t (:background "gray")))) - (secondary-selection ((t (:background "paleturquoise")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:foreground "white" :background "purple")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "brown")))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (:background "black")))) - (term-blue ((t (:foreground "blue")))) - (term-bluebg ((t (:background "blue")))) - (term-bold ((t (:bold t)))) - (term-cyan ((t (:foreground "cyan")))) - (term-cyanbg ((t (:background "cyan")))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-green ((t (:foreground "green")))) - (term-greenbg ((t (:background "green")))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (:foreground "magenta")))) - (term-magentabg ((t (:background "magenta")))) - (term-red ((t (:foreground "red")))) - (term-redbg ((t (:background "red")))) - (term-underline ((t (:underline t)))) - (term-white ((t (:foreground "white")))) - (term-whitebg ((t (:background "white")))) - (term-yellow ((t (:foreground "yellow")))) - (term-yellowbg ((t (:background "yellow")))) - (underline ((t (:underline t)))) - (vcursor ((t (:foreground "blue" :background "cyan" :underline t)))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-prompt-face ((t (:foreground "Red" :bold t)))) - (vhdl-font-lock-reserved-words-face ((t (:foreground "Orange" :bold t)))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:foreground "Blue" :underline t)))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:foreground "DarkGoldenrod" :underline t)))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:foreground "ForestGreen" :underline t)))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:foreground "Brown" :underline t)))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:foreground "Grey50" :underline t)))) - (viper-minibuffer-emacs-face ((t (:foreground "Black" :background "darkseagreen2")))) - (viper-minibuffer-insert-face ((t (:foreground "Black" :background "pink")))) - (viper-minibuffer-vi-face ((t (:foreground "DarkGreen" :background "grey")))) - (viper-replace-overlay-face ((t (:foreground "Black" :background "darkseagreen2")))) - (viper-search-face ((t (:foreground "Black" :background "khaki")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85"))))))) - -(defun color-theme-fischmeister () - "The light colors on a grey blackground. -Sebastian Fischmeister " - (interactive) - (color-theme-install - '(color-theme-fischmeister - ((foreground-color . "black") - (background-color . "gray80") - (mouse-color . "red") - (cursor-color . "yellow") - (border-color . "black") - (background-mode . light)) - (default ((t (nil)))) - (modeline ((t (:foreground "gray80" :background "black")))) - (modeline-buffer-id ((t (:foreground "gray80" :background "black")))) - (modeline-mousable ((t (:foreground "gray80" :background "black")))) - (modeline-mousable-minor-mode ((t (:foreground "gray80" :background "black")))) - (highlight ((t (:background "darkseagreen2")))) - (bold ((t (:bold t)))) - (italic ((t (:italic t)))) - (bold-italic ((t (:bold t :italic t)))) - (region ((t (:background "gray")))) - (secondary-selection ((t (:background "paleturquoise")))) - (underline ((t (:underline t)))) - (show-paren-match-face ((t (:foreground "yellow" :background "darkgreen")))) - (show-paren-mismatch-face ((t (:foreground "white" :background "red")))) - (font-lock-comment-face ((t (:foreground "FireBrick" :bold t :italic t)))) - (font-lock-string-face ((t (:foreground "DarkSlateBlue" :italic t)))) - (font-lock-keyword-face ((t (:foreground "navy")))) - (font-lock-builtin-face ((t (:foreground "white")))) - (font-lock-function-name-face ((t (:foreground "Blue")))) - (font-lock-variable-name-face ((t (:foreground "Darkblue")))) - (font-lock-type-face ((t (:foreground "darkgreen")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-warning-face ((t (:foreground "Orchid" :bold t)))) - (font-lock-reference-face ((t (:foreground "SteelBlue"))))))) - -(defun color-theme-sitaramv-solaris () - "White on a midnight blue background. Lots of yellow and orange. -Includes faces for font-lock, widget, custom, speedbar, message, gnus, -eshell." - (interactive) - (color-theme-install - '(color-theme-sitaramv-solaris - ((foreground-color . "white") - (background-color . "MidnightBlue") - (mouse-color . "yellow") - (cursor-color . "magenta2") - (border-color . "black") - (background-mode . dark)) - (default ((t (nil)))) - (modeline ((t (:foreground "black" :background "gold2")))) - (modeline-buffer-id ((t (:foreground "black" :background "gold2")))) - (modeline-mousable ((t (:foreground "black" :background "gold2")))) - (modeline-mousable-minor-mode ((t (:foreground "black" :background "gold2")))) - (highlight ((t (:foreground "black" :background "Aquamarine")))) - (bold ((t (:bold t)))) - (italic ((t (:italic t)))) - (bold-italic ((t (:bold t :italic t)))) - (region ((t (:foreground "black" :background "snow3")))) - (secondary-selection ((t (:foreground "black" :background "aquamarine")))) - (underline ((t (:underline t)))) - (lazy-highlight-face ((t (:foreground "yellow")))) - (font-lock-comment-face ((t (:foreground "orange" :italic t)))) - (font-lock-string-face ((t (:foreground "orange")))) - (font-lock-keyword-face ((t (:foreground "green")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-function-name-face ((t (:foreground "cyan" :bold t)))) - (font-lock-variable-name-face ((t (:foreground "white")))) - (font-lock-type-face ((t (:foreground "cyan")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-warning-face ((t (:foreground "Pink" :bold t)))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-button-face ((t (:bold t)))) - (widget-field-face ((t (:background "dim gray")))) - (widget-single-line-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-button-pressed-face ((t (:foreground "red")))) - (custom-invalid-face ((t (:foreground "yellow" :background "red")))) - (custom-rogue-face ((t (:foreground "pink" :background "black")))) - (custom-modified-face ((t (:foreground "white" :background "blue")))) - (custom-set-face ((t (:foreground "blue" :background "white")))) - (custom-changed-face ((t (:foreground "white" :background "blue")))) - (custom-saved-face ((t (:underline t)))) - (custom-button-face ((t (nil)))) - (custom-documentation-face ((t (nil)))) - (custom-state-face ((t (:foreground "lime green")))) - (custom-variable-tag-face ((t (:foreground "light blue" :underline t)))) - (custom-variable-button-face ((t (:bold t :underline t)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face-1 ((t (:foreground "pink" :underline t)))) - (custom-group-tag-face ((t (:foreground "light blue" :underline t)))) - (speedbar-button-face ((t (:foreground "green3")))) - (speedbar-file-face ((t (:foreground "cyan")))) - (speedbar-directory-face ((t (:foreground "light blue")))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-highlight-face ((t (:background "sea green")))) - (font-lock-doc-string-face ((t (:foreground "Plum1" :bold t)))) - (font-lock-exit-face ((t (:foreground "green")))) - (ff-paths-non-existant-file-face ((t (:foreground "NavyBlue" :bold t)))) - (show-paren-match-face ((t (:background "red")))) - (show-paren-mismatch-face ((t (:foreground "white" :background "purple")))) - (message-header-to-face ((t (:foreground "green2" :bold t)))) - (message-header-cc-face ((t (:foreground "LightGoldenrod" :bold t)))) - (message-header-subject-face ((t (:foreground "green3")))) - (message-header-newsgroups-face ((t (:foreground "yellow" :bold t :italic t)))) - (message-header-other-face ((t (:foreground "Salmon")))) - (message-header-name-face ((t (:foreground "green3")))) - (message-header-xheader-face ((t (:foreground "GreenYellow")))) - (message-separator-face ((t (:foreground "Tan")))) - (message-cited-text-face ((t (:foreground "Gold")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:foreground "PaleTurquoise" :bold t)))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-2-face ((t (:foreground "turquoise" :bold t)))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-low-face ((t (:foreground "DarkTurquoise" :bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-mail-1-face ((t (:foreground "aquamarine1" :bold t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-2-face ((t (:foreground "aquamarine2" :bold t)))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-3-face ((t (:foreground "aquamarine3" :bold t)))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-low-face ((t (:foreground "aquamarine4" :bold t)))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-summary-cancelled-face ((t (:foreground "yellow" :background "black")))) - (gnus-summary-high-ticked-face ((t (:foreground "pink" :bold t)))) - (gnus-summary-low-ticked-face ((t (:foreground "pink" :italic t)))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-high-ancient-face ((t (:foreground "SkyBlue" :bold t)))) - (gnus-summary-low-ancient-face ((t (:foreground "SkyBlue" :italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-high-read-face ((t (:foreground "PaleGreen" :bold t)))) - (gnus-summary-low-read-face ((t (:foreground "PaleGreen" :italic t)))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-splash-face ((t (:foreground "Brown")))) - (eshell-ls-directory-face ((t (:foreground "SkyBlue" :bold t)))) - (eshell-ls-symlink-face ((t (:foreground "Cyan" :bold t)))) - (eshell-ls-executable-face ((t (:foreground "Green" :bold t)))) - (eshell-ls-readonly-face ((t (:foreground "Pink")))) - (eshell-ls-unreadable-face ((t (:foreground "DarkGrey")))) - (eshell-ls-special-face ((t (:foreground "Magenta" :bold t)))) - (eshell-ls-missing-face ((t (:foreground "Red" :bold t)))) - (eshell-ls-archive-face ((t (:foreground "Orchid" :bold t)))) - (eshell-ls-backup-face ((t (:foreground "LightSalmon")))) - (eshell-ls-product-face ((t (:foreground "LightSalmon")))) - (eshell-ls-clutter-face ((t (:foreground "OrangeRed" :bold t)))) - (eshell-prompt-face ((t (:foreground "Pink" :bold t)))) - (term-default-fg ((t (nil)))) - (term-default-bg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-bold ((t (:bold t)))) - (term-underline ((t (:underline t)))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-black ((t (:foreground "black")))) - (term-red ((t (:foreground "red")))) - (term-green ((t (:foreground "green")))) - (term-yellow ((t (:foreground "yellow")))) - (term-blue ((t (:foreground "blue")))) - (term-magenta ((t (:foreground "magenta")))) - (term-cyan ((t (:foreground "cyan")))) - (term-white ((t (:foreground "white")))) - (term-blackbg ((t (:background "black")))) - (term-redbg ((t (:background "red")))) - (term-greenbg ((t (:background "green")))) - (term-yellowbg ((t (:background "yellow")))) - (term-bluebg ((t (:background "blue")))) - (term-magentabg ((t (:background "magenta")))) - (term-cyanbg ((t (:background "cyan")))) - (term-whitebg ((t (:background "white")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t)))) - (gnus-emphasis-bold-italic ((t (:bold t :italic t)))) - (gnus-emphasis-underline-bold-italic ((t (:bold t :italic t :underline t)))) - (gnus-emphasis-highlight-words ((t (:foreground "yellow" :background "black")))) - (gnus-signature-face ((t (:italic t)))) - (gnus-header-from-face ((t (:foreground "spring green")))) - (gnus-header-subject-face ((t (:foreground "yellow" :bold t)))) - (gnus-header-newsgroups-face ((t (:foreground "SeaGreen3" :bold t :italic t)))) - (gnus-header-name-face ((t (:foreground "pink")))) - (gnus-header-content-face ((t (:foreground "lime green" :italic t)))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:foreground "light blue")))) - (gnus-cite-face-2 ((t (:foreground "light cyan")))) - (gnus-cite-face-3 ((t (:foreground "light yellow")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise"))))))) - -(defun color-theme-sitaramv-nt () - "Black foreground on white background. -Includes faces for font-lock, widget, custom, speedbar." - (interactive) - (color-theme-install - '(color-theme-sitaramv-nt - ((foreground-color . "black") - (background-color . "white") - (mouse-color . "sienna3") - (cursor-color . "HotPink") - (border-color . "Blue") - (background-mode . light)) - (default ((t (nil)))) - (modeline ((t (:foreground "black" :background "gold2")))) - (modeline-buffer-id ((t (:foreground "black" :background "gold2")))) - (modeline-mousable ((t (:foreground "black" :background "gold2")))) - (modeline-mousable-minor-mode ((t (:foreground "black" :background "gold2")))) - (highlight ((t (:foreground "black" :background "darkseagreen2")))) - (bold ((t (:bold t)))) - (italic ((t (:italic t)))) - (bold-italic ((t (:bold t :italic t)))) - (region ((t (:foreground "black" :background "snow3")))) - (secondary-selection ((t (:background "paleturquoise")))) - (underline ((t (:underline t)))) - (lazy-highlight-face ((t (:foreground "dark magenta" :bold t)))) - (font-lock-comment-face ((t (:foreground "ForestGreen" :italic t)))) - (font-lock-string-face ((t (:foreground "red")))) - (font-lock-keyword-face ((t (:foreground "blue" :bold t)))) - (font-lock-builtin-face ((t (:foreground "black")))) - (font-lock-function-name-face ((t (:foreground "dark magenta" :bold t)))) - (font-lock-variable-name-face ((t (:foreground "black")))) - (font-lock-type-face ((t (:foreground "blue")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-warning-face ((t (:foreground "Red" :bold t)))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-button-face ((t (:bold t)))) - (widget-field-face ((t (:background "gray85")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-button-pressed-face ((t (:foreground "red")))) - (custom-invalid-face ((t (:foreground "yellow" :background "red")))) - (custom-rogue-face ((t (:foreground "pink" :background "black")))) - (custom-modified-face ((t (:foreground "white" :background "blue")))) - (custom-set-face ((t (:foreground "blue" :background "white")))) - (custom-changed-face ((t (:foreground "white" :background "blue")))) - (custom-saved-face ((t (:underline t)))) - (custom-button-face ((t (nil)))) - (custom-documentation-face ((t (nil)))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-tag-face ((t (:foreground "blue" :underline t)))) - (custom-variable-button-face ((t (:bold t :underline t)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face-1 ((t (:foreground "red" :underline t)))) - (custom-group-tag-face ((t (:foreground "blue" :underline t)))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-highlight-face ((t (:background "green")))) - (ff-paths-non-existant-file-face ((t (:foreground "NavyBlue" :bold t)))) - (show-paren-match-face ((t (:background "light blue")))) - (show-paren-mismatch-face ((t (:foreground "white" :background "purple"))))))) - -(defun color-theme-billw () - "Cornsilk on black. -Includes info, diary, font-lock, eshell, sgml, message, gnus, -widget, custom, latex, ediff." - (interactive) - (color-theme-install - '(color-theme-billw - ((foreground-color . "cornsilk") - (background-color . "black") - (mouse-color . "black") - (cursor-color . "white") - (border-color . "black") - (background-mode . dark)) - (default ((t (nil)))) - (modeline ((t (:foreground "black" :background "wheat")))) - (modeline-buffer-id ((t (:foreground "black" :background "wheat")))) - (modeline-mousable ((t (:foreground "black" :background "wheat")))) - (modeline-mousable-minor-mode ((t (:foreground "black" :background "wheat")))) - (highlight ((t (:foreground "wheat" :background "darkslategray")))) - (bold ((t (:bold t)))) - (italic ((t (:italic t)))) - (bold-italic ((t (:bold t :italic t)))) - (region ((t (:background "dimgray")))) - (secondary-selection ((t (:background "deepskyblue4")))) - (underline ((t (:underline t)))) - (info-node ((t (:foreground "yellow" :bold t :italic t)))) - (info-menu-5 ((t (:underline t)))) - (info-xref ((t (:foreground "yellow" :bold t)))) - (diary-face ((t (:foreground "orange")))) - (calendar-today-face ((t (:underline t)))) - (holiday-face ((t (:background "red")))) - (show-paren-match-face ((t (:background "deepskyblue4")))) - (show-paren-mismatch-face ((t (:foreground "white" :background "red")))) - (font-lock-comment-face ((t (:foreground "gold")))) - (font-lock-string-face ((t (:foreground "orange")))) - (font-lock-keyword-face ((t (:foreground "cyan1")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-function-name-face ((t (:foreground "mediumspringgreen")))) - (font-lock-variable-name-face ((t (:foreground "light salmon")))) - (font-lock-type-face ((t (:foreground "yellow1")))) - (font-lock-constant-face ((t (:foreground "salmon")))) - (font-lock-warning-face ((t (:foreground "gold" :bold t)))) - (blank-space-face ((t (:background "LightGray")))) - (blank-tab-face ((t (:foreground "black" :background "cornsilk")))) - (highline-face ((t (:background "gray35")))) - (eshell-ls-directory-face ((t (:foreground "green" :bold t)))) - (eshell-ls-symlink-face ((t (:foreground "Cyan" :bold t)))) - (eshell-ls-executable-face ((t (:foreground "orange" :bold t)))) - (eshell-ls-readonly-face ((t (:foreground "gray")))) - (eshell-ls-unreadable-face ((t (:foreground "DarkGrey")))) - (eshell-ls-special-face ((t (:foreground "Magenta" :bold t)))) - (eshell-ls-missing-face ((t (:foreground "Red" :bold t)))) - (eshell-ls-archive-face ((t (:foreground "Orchid" :bold t)))) - (eshell-ls-backup-face ((t (:foreground "LightSalmon")))) - (eshell-ls-product-face ((t (:foreground "LightSalmon")))) - (eshell-ls-clutter-face ((t (:foreground "blue" :bold t)))) - (sgml-start-tag-face ((t (:foreground "mediumspringgreen")))) - (custom-button-face ((t (:foreground "white")))) - (sgml-ignored-face ((t (:foreground "gray20" :background "gray60")))) - (sgml-doctype-face ((t (:foreground "orange")))) - (sgml-sgml-face ((t (:foreground "yellow")))) - (vc-annotate-face-0046FF ((t (:foreground "wheat" :background "black")))) - (custom-documentation-face ((t (:foreground "white")))) - (sgml-end-tag-face ((t (:foreground "greenyellow")))) - (linemenu-face ((t (:background "gray30")))) - (sgml-entity-face ((t (:foreground "gold")))) - (message-header-to-face ((t (:foreground "floral white" :bold t)))) - (message-header-cc-face ((t (:foreground "ivory")))) - (message-header-subject-face ((t (:foreground "papaya whip" :bold t)))) - (message-header-newsgroups-face ((t (:foreground "lavender blush" :bold t :italic t)))) - (message-header-other-face ((t (:foreground "pale turquoise")))) - (message-header-name-face ((t (:foreground "light sky blue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-separator-face ((t (:foreground "sandy brown")))) - (message-cited-text-face ((t (:foreground "plum1")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:foreground "white" :bold t)))) - (gnus-group-news-1-empty-face ((t (:foreground "white")))) - (gnus-group-news-2-face ((t (:foreground "lightcyan" :bold t)))) - (gnus-group-news-2-empty-face ((t (:foreground "lightcyan")))) - (gnus-group-news-3-face ((t (:foreground "tan" :bold t)))) - (gnus-group-news-3-empty-face ((t (:foreground "tan")))) - (gnus-group-news-4-face ((t (:foreground "white" :bold t)))) - (gnus-group-news-4-empty-face ((t (:foreground "white")))) - (gnus-group-news-5-face ((t (:foreground "wheat" :bold t)))) - (gnus-group-news-5-empty-face ((t (:foreground "wheat")))) - (gnus-group-news-6-face ((t (:foreground "tan" :bold t)))) - (gnus-group-news-6-empty-face ((t (:foreground "tan")))) - (gnus-group-news-low-face ((t (:foreground "DarkTurquoise" :bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-mail-1-face ((t (:foreground "white" :bold t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "gray80")))) - (gnus-group-mail-2-face ((t (:foreground "lightcyan" :bold t)))) - (gnus-group-mail-2-empty-face ((t (:foreground "lightcyan")))) - (gnus-group-mail-3-face ((t (:foreground "tan" :bold t)))) - (gnus-group-mail-3-empty-face ((t (:foreground "tan")))) - (gnus-group-mail-low-face ((t (:foreground "aquamarine4" :bold t)))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-summary-selected-face ((t (:background "deepskyblue4" :underline t)))) - (gnus-summary-cancelled-face ((t (:foreground "black" :background "gray")))) - (gnus-summary-high-ticked-face ((t (:foreground "gray70" :bold t)))) - (gnus-summary-low-ticked-face ((t (:foreground "gray70" :bold t)))) - (gnus-summary-normal-ticked-face ((t (:foreground "gray70" :bold t)))) - (gnus-summary-high-ancient-face ((t (:foreground "SkyBlue" :bold t)))) - (gnus-summary-low-ancient-face ((t (:foreground "SkyBlue" :italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-high-read-face ((t (:foreground "PaleGreen" :bold t)))) - (gnus-summary-low-read-face ((t (:foreground "PaleGreen" :italic t)))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-splash-face ((t (:foreground "gold")))) - (font-latex-bold-face ((t (nil)))) - (font-latex-italic-face ((t (nil)))) - (font-latex-math-face ((t (nil)))) - (font-latex-sedate-face ((t (:foreground "Gray85")))) - (font-latex-string-face ((t (:foreground "orange")))) - (font-latex-warning-face ((t (:foreground "gold")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-button-face ((t (:bold t)))) - (widget-field-face ((t (:background "gray20")))) - (widget-single-line-field-face ((t (:background "gray20")))) - (widget-inactive-face ((t (:foreground "wheat")))) - (widget-button-pressed-face ((t (:foreground "red")))) - (custom-invalid-face ((t (:foreground "yellow" :background "red")))) - (custom-rogue-face ((t (:foreground "pink" :background "black")))) - (custom-modified-face ((t (:foreground "white" :background "blue")))) - (custom-set-face ((t (:foreground "blue")))) - (custom-changed-face ((t (:foreground "wheat" :background "skyblue")))) - (custom-saved-face ((t (:underline t)))) - (custom-state-face ((t (:foreground "light green")))) - (custom-variable-tag-face ((t (:foreground "skyblue" :underline t)))) - (custom-variable-button-face ((t (:bold t :underline t)))) - (custom-face-tag-face ((t (:foreground "white" :underline t)))) - (custom-group-tag-face-1 ((t (:foreground "pink" :underline t)))) - (custom-group-tag-face ((t (:foreground "skyblue" :underline t)))) - (swbuff-current-buffer-face ((t (:foreground "red" :bold t)))) - (ediff-current-diff-face-A ((t (:foreground "firebrick" :background "pale green")))) - (ediff-current-diff-face-B ((t (:foreground "DarkOrchid" :background "Yellow")))) - (ediff-current-diff-face-C ((t (:foreground "white" :background "indianred")))) - (ediff-current-diff-face-Ancestor ((t (:foreground "Black" :background "VioletRed")))) - (ediff-fine-diff-face-A ((t (:foreground "Navy" :background "sky blue")))) - (ediff-fine-diff-face-B ((t (:foreground "Black" :background "cyan")))) - (ediff-fine-diff-face-C ((t (:foreground "Black" :background "Turquoise")))) - (ediff-fine-diff-face-Ancestor ((t (:foreground "Black" :background "Green")))) - (ediff-even-diff-face-A ((t (:foreground "Black" :background "light grey")))) - (ediff-even-diff-face-B ((t (:foreground "White" :background "Grey")))) - (ediff-even-diff-face-C ((t (:foreground "Black" :background "light grey")))) - (ediff-even-diff-face-Ancestor ((t (:foreground "White" :background "Grey")))) - (ediff-odd-diff-face-A ((t (:foreground "White" :background "Grey")))) - (ediff-odd-diff-face-B ((t (:foreground "Black" :background "light grey")))) - (ediff-odd-diff-face-C ((t (:foreground "White" :background "Grey")))) - (ediff-odd-diff-face-Ancestor ((t (:foreground "Black" :background "light grey")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:foreground "white" :background "goldenrod4")))) - (gnus-emphasis-underline-bold ((t (:foreground "black" :background "yellow" :bold t :underline t)))) - (gnus-emphasis-underline-italic ((t (:foreground "black" :background "yellow" :italic t :underline t)))) - (gnus-emphasis-bold-italic ((t (:bold t :italic t)))) - (gnus-emphasis-underline-bold-italic ((t (:foreground "black" :background "yellow" :bold t :italic t :underline t)))) - (gnus-emphasis-highlight-words ((t (:foreground "yellow" :background "black")))) - (gnus-signature-face ((t (:italic t)))) - (gnus-header-from-face ((t (:foreground "wheat")))) - (gnus-header-subject-face ((t (:foreground "wheat" :bold t)))) - (gnus-header-newsgroups-face ((t (:foreground "wheat" :italic t)))) - (gnus-header-name-face ((t (:foreground "white")))) - (gnus-header-content-face ((t (:foreground "tan" :italic t)))) - (gnus-filterhist-face-1 ((t (nil)))) - (gnus-splash ((t (:foreground "Brown")))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:foreground "light blue")))) - (gnus-cite-face-2 ((t (:foreground "light cyan")))) - (gnus-cite-face-3 ((t (:foreground "light yellow")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise"))))))) - -(defun color-theme-retro-green (&optional color func) - "Plain green on black faces for those longing for the good old days." - (interactive) - ;; Build a list of faces without parameters - (let ((old-faces (face-list)) - (faces) - (face) - (foreground (or color "green"))) - (dolist (face old-faces) - (cond ((memq face '(bold bold-italic)) - (add-to-list 'faces `(,face (( t (:bold t)))))) - ((memq face '(italic underline show-paren-mismatch-face)) - (add-to-list 'faces `(,face (( t (:underline t)))))) - ((memq face '(modeline modeline-buffer-id modeline-mousable - modeline-mousable-minor-mode highlight region - secondary-selection show-paren-match-face)) - (add-to-list 'faces `(,face (( t (:foreground "black" - :background ,foreground - :inverse t)))))) - (t - (add-to-list 'faces `(,face (( t (nil)))))))) - (color-theme-install - (append - (list (or func 'color-theme-retro-green) - (list (cons 'foreground-color foreground) - (cons 'background-color "black") - (cons 'mouse-color foreground) - (cons 'cursor-color foreground) - (cons 'border-color foreground) - (cons 'background-mode 'dark))) - faces)))) - -(defun color-theme-retro-orange () - "Plain orange on black faces for those longing for the good old days." - (interactive) - (color-theme-retro-green "orange" 'color-theme-retro-orange)) - -(defun color-theme-subtle-hacker () - "Subtle Hacker Color Theme. -Based on gnome2, but uses white for important things like comments, -and less of the unreadable tomato. By Colin Walters " - (interactive) - (color-theme-gnome2) - (let ((color-theme-is-cumulative t)) - (color-theme-install - '(color-theme-subtle-hacker - nil - nil - (custom-state-face ((t (:foreground "Coral")))) - (diary-face ((t (:bold t :foreground "IndianRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "DimGray")))) - (eshell-ls-executable-face ((t (:bold t :foreground "Coral")))) - (eshell-ls-missing-face ((t (:bold t :foreground "black")))) - (eshell-ls-special-face ((t (:bold t :foreground "Gold")))) - (eshell-ls-symlink-face ((t (:bold t :foreground "White")))) - (font-lock-comment-face ((t (:foreground "White")))) - (font-lock-constant-face ((t (:bold t :foreground "Aquamarine")))) - (font-lock-function-name-face ((t (:bold t :foreground "MediumSlateBlue")))) - (font-lock-string-face ((t (:italic t :foreground "LightSalmon")))) - (font-lock-variable-name-face ((t (:italic t :bold t :foreground "Aquamarine")))) - (gnus-cite-face-1 ((t (:foreground "dark khaki")))) - (gnus-cite-face-2 ((t (:foreground "chocolate")))) - (gnus-cite-face-3 ((t (:foreground "tomato")))) - (gnus-group-mail-1-empty-face ((t (:foreground "light cyan")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "light cyan")))) - (gnus-group-mail-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "turquoise")))) - (gnus-group-mail-3-empty-face ((t (:foreground "tomato")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "tomato")))) - (gnus-group-mail-low-empty-face ((t (:foreground "dodger blue")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "dodger blue")))) - (gnus-group-news-1-empty-face ((t (:foreground "green yellow")))) - (gnus-group-news-1-face ((t (:bold t :foreground "green yellow")))) - (gnus-group-news-2-empty-face ((t (:foreground "dark orange")))) - (gnus-group-news-2-face ((t (:bold t :foreground "dark orange")))) - (gnus-group-news-3-empty-face ((t (:foreground "tomato")))) - (gnus-group-news-3-face ((t (:bold t :foreground "tomato")))) - (gnus-group-news-low-empty-face ((t (:foreground "yellow green")))) - (gnus-group-news-low-face ((t (:bold t :foreground "yellow green")))) - (gnus-header-name-face ((t (:bold t :foreground "DodgerBlue1")))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3")))) - (gnus-signature-face ((t (:foreground "salmon")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "forest green")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "burlywood")))) - (gnus-summary-high-unread-face ((t (:italic t :bold t :foreground "cyan")))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "chocolate")))) - (gnus-summary-low-read-face ((t (:foreground "light sea green")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "chocolate")))) - (gnus-summary-low-unread-face ((t (:italic t :foreground "light sea green")))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "khaki")))) - (gnus-summary-normal-ticked-face ((t (:foreground "sandy brown")))) - (gnus-summary-normal-unread-face ((t (:foreground "aquamarine")))) - (message-cited-text-face ((t (:foreground "White")))) - (message-header-name-face ((t (:foreground "DodgerBlue1")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3")))) - (message-header-other-face ((t (:foreground "LightSkyBlue3")))) - (message-header-xheader-face ((t (:foreground "DodgerBlue3")))))))) - -(defun color-theme-pok-wog () - "Low-contrast White-on-Gray by S.Pokrovsky. - -The following might be a good addition to your .Xdefaults file: - -Emacs.pane.menubar.background: darkGrey -Emacs.pane.menubar.foreground: black" - (interactive) - (color-theme-install - '(color-theme-pok-wog - ((foreground-color . "White") - (background-color . "DarkSlateGray") - (mouse-color . "gold") - (cursor-color . "Cyan") - (border-color . "black") - (background-mode . dark)) - (default ((t (nil)))) - (bold ((t (:bold t :foreground "Wheat")))) - (bold-italic ((t (:italic t :bold t :foreground "wheat")))) - (calendar-today-face ((t (:underline t :foreground "white")))) - (diary-face ((t (:foreground "red")))) - (font-lock-builtin-face ((t (:bold t :foreground "cyan")))) - (font-lock-comment-face ((t (:foreground "Gold")))) - (font-lock-constant-face ((t (:bold t :foreground "LightSteelBlue")))) - (font-lock-function-name-face ((t (:bold t :foreground "Yellow")))) - (font-lock-keyword-face ((t (:bold t :foreground "Cyan")))) - (font-lock-string-face ((t (:foreground "Khaki")))) - (font-lock-type-face ((t (:bold t :foreground "Cyan")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (gnus-cite-attribution-face ((t (:bold t :foreground "Wheat")))) - (gnus-cite-face-1 ((t (:foreground "wheat")))) - (gnus-cite-face-10 ((t (:foreground "wheat")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "cyan")))) - (gnus-cite-face-3 ((t (:foreground "light yellow")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :foreground "wheat")))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t :foreground "white")))) - (gnus-emphasis-underline ((t (:underline t :foreground "white")))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t :foreground "wheat")))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t :foreground "white")))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1")))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2")))) - (gnus-group-mail-3-empty-face ((t (:foreground "Salmon")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "gold")))) - (gnus-group-mail-low-empty-face ((t (:foreground "Wheat")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4")))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise")))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :foreground "Wheat")))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise")))) - (gnus-header-content-face ((t (:italic t :foreground "Wheat")))) - (gnus-header-from-face ((t (:foreground "light yellow")))) - (gnus-header-name-face ((t (:foreground "cyan")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "yellow")))) - (gnus-header-subject-face ((t (:bold t :foreground "Gold")))) - (gnus-signature-face ((t (:italic t :foreground "wheat")))) - (gnus-splash-face ((t (:foreground "orange")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink")))) - (gnus-summary-high-unread-face ((t (:bold t :foreground "gold")))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (:foreground "wheat")))) - (gnus-summary-selected-face ((t (:underline t :foreground "white")))) - (highlight ((t (:background "Blue" :foreground "white")))) - (highline-face ((t (:background "black" :foreground "white")))) - (holiday-face ((t (:background "pink" :foreground "white")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t :foreground "white")))) - (info-xref ((t (:bold t :foreground "wheat")))) - (italic ((t (:italic t :foreground "white")))) - (makefile-space-face ((t (:background "hotpink")))) - (message-cited-text-face ((t (:foreground "green")))) - (message-header-cc-face ((t (:bold t :foreground "Aquamarine")))) - (message-header-name-face ((t (:foreground "Gold")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow")))) - (message-header-other-face ((t (:foreground "lightGray")))) - (message-header-subject-face ((t (:foreground "Yellow")))) - (message-header-to-face ((t (:bold t :foreground "green2")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:bold t :foreground "khaki")))) - (message-separator-face ((t (:background "aquamarine" :foreground "black")))) - (modeline ((t (:background "DarkGray" :foreground "Black")))) - (modeline-buffer-id ((t (:background "DarkGray" :foreground "Black")))) - (modeline-mousable ((t (:background "DarkGray" :foreground "Black")))) - (modeline-mousable-minor-mode ((t (:background "DarkGray" :foreground "Black")))) - (paren-mismatch-face ((t (:background "DeepPink" :foreground "white")))) - (paren-no-match-face ((t (:background "yellow" :foreground "white")))) - (region ((t (:background "MediumSlateBlue" :foreground "white")))) - (secondary-selection ((t (:background "Sienna" :foreground "white")))) - (show-paren-match-face ((t (:background "turquoise" :foreground "white")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:bold t :foreground "magenta")))) - (speedbar-directory-face ((t (:bold t :foreground "orchid")))) - (speedbar-file-face ((t (:foreground "pink")))) - (speedbar-highlight-face ((t (:background "black")))) - (speedbar-selected-face ((t (:underline t :foreground "cyan")))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (swbuff-current-buffer-face ((t (:bold t :foreground "red")))) - (underline ((t (:underline t :foreground "white")))) - (widget-button-face ((t (:bold t :foreground "wheat")))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray" :foreground "white")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray" :foreground "white"))))))) - -(defun color-theme-pok-wob () - "White-on-Black by S. Pokrovsky. - -The following might be a good addition to your .Xdefaults file: - -Emacs.pane.menubar.background: darkGrey -Emacs.pane.menubar.foreground: black" - (interactive) -; (setq term-default-fg-color "white" -; term-default-bg "black") - (color-theme-install - '(color-theme-pok-wob - ((foreground-color . "white") - (background-color . "black") - (mouse-color . "gold") - (cursor-color . "yellow") - (border-color . "black") - (background-mode . dark)) - (default ((t (nil)))) - (bold ((t (:bold t :foreground "light gray")))) - (bold-italic ((t (:italic t :bold t :foreground "cyan")))) - (calendar-today-face ((t (:underline t :foreground "white")))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t)))) - (custom-group-tag-face-1 ((t (:underline t)))) - (custom-invalid-face ((t (:background "red" :foreground "white")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (nil)))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t)))) - (diary-face ((t (:foreground "gold")))) - (font-lock-builtin-face ((t (:bold t :foreground "cyan")))) - (font-lock-comment-face ((t (:foreground "Gold")))) - (font-lock-constant-face ((t (:bold t :foreground "LightSteelBlue")))) - (font-lock-function-name-face ((t (:bold t :foreground "gold")))) - (font-lock-keyword-face ((t (:bold t :foreground "Cyan")))) - (font-lock-string-face ((t (:foreground "Khaki")))) - (font-lock-type-face ((t (:bold t :foreground "Cyan")))) - (font-lock-variable-name-face ((t (:italic t :foreground "gold")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (gnus-cite-attribution-face ((t (:underline t :foreground "beige")))) - (gnus-cite-face-1 ((t (:foreground "gold")))) - (gnus-cite-face-10 ((t (:foreground "coral")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "wheat")))) - (gnus-cite-face-3 ((t (:foreground "light pink")))) - (gnus-cite-face-4 ((t (:foreground "khaki")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :foreground "light gray")))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :foreground "cyan")))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "gold")))) - (gnus-emphasis-italic ((t (:italic t :foreground "cyan")))) - (gnus-emphasis-underline ((t (:underline t :foreground "white")))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t :foreground "white")))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t :foreground "white")))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t :foreground "white")))) - (gnus-group-mail-1-empty-face ((t (:foreground "Magenta")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "Magenta")))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2")))) - (gnus-group-mail-3-empty-face ((t (:foreground "Cyan")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "Cyan")))) - (gnus-group-mail-low-empty-face ((t (:foreground "Wheat")))) - (gnus-group-mail-low-face ((t (:foreground "aquamarine4")))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise")))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise")))) - (gnus-group-news-3-empty-face ((t (:foreground "wheat")))) - (gnus-group-news-3-face ((t (:bold t :foreground "Wheat")))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-low-face ((t (:bold t :foreground "MediumAquamarine")))) - (gnus-header-content-face ((t (:italic t :foreground "Wheat")))) - (gnus-header-from-face ((t (:foreground "light yellow")))) - (gnus-header-name-face ((t (:foreground "Wheat")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "gold")))) - (gnus-header-subject-face ((t (:bold t :foreground "Gold")))) - (gnus-signature-face ((t (:italic t :foreground "white")))) - (gnus-splash-face ((t (:foreground "orange")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "orange")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "red")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "coral")))) - (gnus-summary-high-unread-face ((t (:bold t :foreground "gold")))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "red")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "coral")))) - (gnus-summary-low-unread-face ((t (:italic t :foreground "white")))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (:foreground "white")))) - (gnus-summary-selected-face ((t (:underline t :foreground "white")))) - (highlight ((t (:background "Blue" :foreground "white")))) - (highline-face ((t (:background "dark slate gray" :foreground "white")))) - (holiday-face ((t (:background "red" :foreground "white")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t :foreground "white")))) - (info-xref ((t (:bold t :foreground "light gray")))) - (italic ((t (:italic t :foreground "cyan")))) - (makefile-space-face ((t (:background "hotpink" :foreground "white")))) - (message-cited-text-face ((t (:foreground "green")))) - (message-header-cc-face ((t (:bold t :foreground "Aquamarine")))) - (message-header-name-face ((t (:foreground "Gold")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "gold")))) - (message-header-other-face ((t (:foreground "lightGray")))) - (message-header-subject-face ((t (:foreground "Yellow")))) - (message-header-to-face ((t (:bold t :foreground "green2")))) - (message-header-xheader-face ((t (:foreground "sky blue")))) - (message-mml-face ((t (:bold t :foreground "khaki")))) - (message-separator-face ((t (:background "aquamarine" :foreground "black")))) - (modeline ((t (:background "dark gray" :foreground "black")))) - (modeline-buffer-id ((t (:background "dark gray" :foreground "black")))) - (modeline-mousable ((t (:background "dark gray" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "dark gray" :foreground "black")))) - (paren-mismatch-face ((t (:bold t :background "white" :foreground "red")))) - (paren-no-match-face ((t (:bold t :background "white" :foreground "red")))) - (region ((t (:background "MediumSlateBlue" :foreground "white")))) - (secondary-selection ((t (:background "Sienna" :foreground "white")))) - (show-paren-match-face ((t (:background "purple" :foreground "white")))) - (show-paren-mismatch-face ((t (:bold t :background "white" :foreground "red")))) - (speedbar-button-face ((t (nil)))) - (speedbar-directory-face ((t (nil)))) - (speedbar-file-face ((t (:bold t)))) - (speedbar-highlight-face ((t (nil)))) - (speedbar-selected-face ((t (:underline t)))) - (speedbar-tag-face ((t (nil)))) - (swbuff-current-buffer-face ((t (:bold t :foreground "red")))) - (underline ((t (:underline t :foreground "white")))) - (widget-button-face ((t (:bold t :foreground "coral")))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray" :foreground "white")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray" :foreground "white"))))))) - -(defun color-theme-blue-sea () - "The grey on midnight blue theme. - -Includes faces for apropos, font-lock (Emacs and XEmacs), speedbar, -custom, widget, info, flyspell, gnus, message, man, woman, dired. - -This is what you should put in your .Xdefaults file, if you want to -change the colors of the menus: - -emacs*Background: DarkSlateGray -emacs*Foreground: Wheat" - (interactive) - (color-theme-blue-gnus) - (let ((color-theme-is-cumulative t)) - (color-theme-blue-erc) - (color-theme-install - '(color-theme-blue-sea - ((background-color . "MidnightBlue") - (background-mode . dark) - (border-color . "Grey") - (cursor-color . "Grey") - (foreground-color . "Grey") - (mouse-color . "Grey")) - ((Man-overstrike-face . woman-bold-face) - (Man-underline-face . woman-italic-face)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:bold t :foreground "beige")))) - (calendar-today-face ((t (:underline t)))) - (cperl-array-face ((t (:foreground "light salmon" :bold t)))) - (cperl-hash-face ((t (:foreground "beige" :bold t :italic t)))) - (cperl-nonoverridable-face ((t (:foreground "aquamarine")))) - (custom-button-face ((t (:foreground "gainsboro")))) - (custom-changed-face ((t (:foreground "white" :background "blue")))) - (custom-documentation-face ((t (:foreground "light blue")))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:foreground "pale turquoise" :bold t)))) - (custom-group-tag-face-1 ((t (:foreground "pale turquoise" :underline t)))) - (custom-invalid-face ((t (:foreground "yellow" :background "red")))) - (custom-modified-face ((t (:foreground "white" :background "blue")))) - (custom-rogue-face ((t (:foreground "pink" :background "black")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:foreground "blue" :background "white")))) - (custom-state-face ((t (:foreground "light salmon")))) - (custom-variable-button-face ((t (:bold t :underline t)))) - (custom-variable-tag-face ((t (:foreground "turquoise" :bold t)))) - (diary-face ((t (:foreground "red")))) - (dired-face-directory ((t (:bold t :foreground "sky blue")))) - (dired-face-permissions ((t (:foreground "aquamarine")))) - (dired-face-flagged ((t (:foreground "tomato")))) - (dired-face-marked ((t (:foreground "light salmon")))) - (dired-face-executable ((t (:foreground "green yellow")))) - (eshell-ls-archive-face ((t (:bold t :foreground "medium purple")))) - (eshell-ls-backup-face ((t (:foreground "dim gray")))) - (eshell-ls-clutter-face ((t (:foreground "dim gray")))) - (eshell-ls-directory-face ((t (:bold t :foreground "medium slate blue")))) - (eshell-ls-executable-face ((t (:bold t :foreground "aquamarine")))) - (eshell-ls-missing-face ((t (:foreground "black")))) - (eshell-ls-picture-face ((t (:foreground "violet")))) - (eshell-ls-product-face ((t (:foreground "light steel blue")))) - (eshell-ls-readonly-face ((t (:foreground "aquamarine")))) - (eshell-ls-special-face ((t (:foreground "gold")))) - (eshell-ls-symlink-face ((t (:foreground "white")))) - (eshell-ls-unreadable-face ((t (:foreground "dim gray")))) - (eshell-prompt-face ((t (:foreground "light sky blue" :bold t)))) - (excerpt ((t (:italic t)))) - (fixed ((t (:bold t)))) - (flyspell-duplicate-face ((t (:foreground "Gold3" :bold t :underline t)))) - (flyspell-incorrect-face ((t (:foreground "OrangeRed" :bold t :underline t)))) - (font-lock-builtin-face ((t (:foreground "aquamarine")))) - (font-lock-comment-face ((t (:foreground "light blue")))) - (font-lock-constant-face ((t (:foreground "pale green")))) - (font-lock-doc-string-face ((t (:foreground "sky blue")))) - (font-lock-function-name-face ((t (:bold t :foreground "aquamarine")))) - (font-lock-keyword-face ((t (:foreground "pale turquoise" :bold t)))) - (font-lock-reference-face ((t (:foreground "pale green")))) - (font-lock-string-face ((t (:foreground "light sky blue")))) - (font-lock-type-face ((t (:foreground "sky blue" :bold t)))) - (font-lock-variable-name-face ((t (:foreground "turquoise" :bold t)))) - (font-lock-warning-face ((t (:foreground "Red" :bold t)))) - (fringe ((t (:background "MidnightBlue")))) - (header-line ((t (:background "#002" :foreground "cornflower blue")))) - (highlight ((t (:background "dark slate blue" :foreground "light blue")))) - (highline-face ((t (:background "DeepSkyBlue4")))) - (holiday-face ((t (:background "pink")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:bold t)))) - (info-xref ((t (:bold t :foreground "sky blue")))) - (isearch ((t (:background "slate blue")))) - (italic ((t (:foreground "sky blue")))) - (makefile-space-face ((t (:background "hotpink")))) - (menu ((t (:background "MidnightBlue" :foreground "Grey")))) - (modeline ((t (:foreground "wheat" :background "slate blue")))) - (mode-line-inactive ((t (:background "dark slate blue" :foreground "wheat")))) - (modeline-buffer-id ((t (:foreground "beige" :background "slate blue")))) - (modeline-mousable ((t (:foreground "light cyan" :background "slate blue")))) - (modeline-mousable-minor-mode ((t (:foreground "wheat" :background "slate blue")))) - (region ((t (:background "DarkSlateBlue")))) - (secondary-selection ((t (:background "steel blue")))) - (show-paren-match-face ((t (:foreground "white" :background "light slate blue")))) - (show-paren-mismatch-face ((t (:foreground "white" :background "red")))) - (speedbar-button-face ((t (:foreground "seashell2")))) - (speedbar-directory-face ((t (:foreground "seashell3")))) - (speedbar-file-face ((t (:foreground "seashell4")))) - (speedbar-highlight-face ((t (:background "dark slate blue" :foreground "wheat")))) - (speedbar-selected-face ((t (:foreground "seashell1" :underline t)))) - (speedbar-tag-face ((t (:foreground "antique white")))) - (tool-bar ((t (:background "MidnightBlue" :foreground "Grey" :box (:line-width 1 :style released-button))))) - (underline ((t (:underline t)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "light blue")))) - (widget-field-face ((t (:background "RoyalBlue4" :foreground "wheat")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "slate blue" :foreground "wheat")))) - (woman-bold-face ((t (:foreground "sky blue" :bold t)))) - (woman-italic-face ((t (:foreground "deep sky blue")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))) - (zmacs-region ((t (:background "DarkSlateBlue")))))))) - -(defun color-theme-rotor () - "Black on Beige color theme by Jinwei Shen, created 2000-06-08. -Supports default faces, font-lock, custom, widget, message, man, -show-paren, viper." - (interactive) - (color-theme-install - '(color-theme-rotor - ((background-color . "Beige") - (background-mode . light) - (border-color . "black") - (cursor-color . "Maroon") - (foreground-color . "Black") - (mouse-color . "Black")) - ((Man-overstrike-face . font-lock-function-name-face) - (Man-underline-face . font-lock-type-face) - (list-matching-lines-face . bold) - (rmail-highlight-face . font-lock-function-name-face) - (watson-attribution-face . italic) - (watson-url-face . bold) - (watson-url-mouse-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t :background "grey40" :foreground "yellow")))) - (bold-italic ((t (:italic t :bold t :foreground "yellow green")))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:foreground "MediumBlue")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-function-name-face ((t (:foreground "MediumSlateBlue")))) - (font-lock-keyword-face ((t (:foreground "#80a0ff")))) - (font-lock-string-face ((t (:foreground "red")))) - (font-lock-type-face ((t (:foreground "ForestGreen")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (highlight ((t (:background "PaleGreen" :foreground "black")))) - (italic ((t (:italic t :foreground "yellow3")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "wheat" :foreground "DarkOliveGreen")))) - (modeline-buffer-id ((t (:background "wheat" :foreground "DarkOliveGreen")))) - (modeline-mousable ((t (:background "wheat" :foreground "DarkOliveGreen")))) - (modeline-mousable-minor-mode ((t (:background "wheat" :foreground "DarkOliveGreen")))) - (nil ((t (nil)))) - (region ((t (:background "dark cyan" :foreground "cyan")))) - (secondary-selection ((t (:background "Turquoise" :foreground "black")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (underline ((t (:underline t)))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85"))))))) - -(defun color-theme-pierson () - "Black on White color theme by Dan L. Pierson, created 2000-06-08. -Supports default faces, font-lock, show-paren." - (interactive) - (color-theme-install - '(color-theme-pierson - ((background-color . "AntiqueWhite") - (background-mode . light) - (border-color . "black") - (cursor-color . "Orchid") - (foreground-color . "black") - (mouse-color . "Orchid")) - ((list-matching-lines-face . bold)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:foreground "ForestGreen")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-function-name-face ((t (:foreground "blue3")))) - (font-lock-keyword-face ((t (:foreground "Blue")))) - (font-lock-string-face ((t (:foreground "Firebrick")))) - (font-lock-type-face ((t (:foreground "Purple")))) - (font-lock-variable-name-face ((t (:foreground "blue3")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (highlight ((t (:background "darkseagreen2")))) - (italic ((t (:italic t)))) - (modeline ((t (:foreground "antiquewhite" :background "black")))) - (modeline-mousable-minor-mode ((t (:foreground "antiquewhite" :background "black")))) - (modeline-mousable ((t (:foreground "antiquewhite" :background "black")))) - (modeline-buffer-id ((t (:foreground "antiquewhite" :background "black")))) - (region ((t (:background "gray")))) - (secondary-selection ((t (:background "paleturquoise")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (underline ((t (:underline t))))))) - -(defun color-theme-xemacs () - "XEmacs standard colors. -If you are missing standard faces in this theme, please notify the maintainer. -Currently, this theme includes the standard faces and font-lock faces, including -some faces used in Emacs only but which are needed to recreate the look of the -XEmacs color theme." - (interactive) - (color-theme-install - '(color-theme-xemacs - ((background-color . "gray80") - (background-mode . light) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (cursor-color . "Red3") - (foreground-color . "black") - (top-toolbar-shadow-color . "#fffffbeeffff")) - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (nil)))) - (custom-button-face ((t (:bold t)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t)))) - (dired-face-executable ((t (:foreground "SeaGreen")))) - (dired-face-flagged ((t (:background "LightSlateGray")))) - (dired-face-marked ((t (:background "PaleVioletRed")))) - (dired-face-permissions ((t (:background "grey75" :foreground "black")))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (dired-face-symlink ((t (:foreground "cyan")))) - (font-lock-builtin-face ((t (:foreground "red3")))) - (font-lock-comment-face ((t (:foreground "blue4")))) - (font-lock-constant-face ((t (:foreground "red3")))) - (font-lock-doc-string-face ((t (:foreground "green4")))) - (font-lock-function-name-face ((t (:foreground "brown4")))) - (font-lock-keyword-face ((t (:foreground "red4")))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:foreground "green4")))) - (font-lock-type-face ((t (:foreground "steelblue")))) - (font-lock-variable-name-face ((t (:foreground "magenta4")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:background "Gray80")))) - (highlight ((t (:background "darkseagreen2")))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (isearch ((t (:background "paleturquoise")))) - (italic ((t (:italic t)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68")))) - (modeline ((t (:background "Gray80")))) - (modeline-buffer-id ((t (:background "Gray80" :foreground "blue4")))) - (modeline-mousable ((t (:background "Gray80" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "Gray80" :foreground "green4")))) - (paren-blink-off ((t (:foreground "gray80")))) - (paren-match ((t (:background "darkseagreen2")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "black")))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "gray65")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (text-cursor ((t (:background "Red3" :foreground "gray80")))) - (toolbar ((t (:background "Gray80")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (:background "Gray80")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "gray65"))))))) - -(defun color-theme-jsc-light () - "Color theme by John S Cooper, created 2000-06-08." - (interactive) - (color-theme-install - '(color-theme-jsc-light - ((background-color . "white") - (background-mode . light) - (border-color . "black") - (cursor-color . "Red") - (foreground-color . "black") - (mouse-color . "black")) - ((gnus-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t :foreground "red3")))) - (bold-italic ((t (:italic t :bold t :foreground "red")))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:italic t :bold t :foreground "Red3")))) - (font-lock-constant-face ((t (:foreground "navy")))) - (font-lock-function-name-face ((t (:bold t :foreground "Blue")))) - (font-lock-keyword-face ((t (:bold t :foreground "Purple")))) - (font-lock-string-face ((t (:foreground "Green4")))) - (font-lock-type-face ((t (:foreground "Navy")))) - (font-lock-variable-name-face ((t (:foreground "Tan4")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "blue2")))) - (gnus-group-news-1-face ((t (:bold t :foreground "blue2")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:italic t :foreground "blue")))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "red3")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:bold t :foreground "red")))) - (gnus-signature-face ((t (:foreground "pink")))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "navy")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:bold t :foreground "blue")))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "red3")))) - (gnus-summary-normal-ticked-face ((t (:foreground "black")))) - (gnus-summary-normal-unread-face ((t (:bold t :foreground "red3")))) - (gnus-summary-selected-face ((t (:underline t)))) - (highlight ((t (:background "antiquewhite" :foreground "blue")))) - (italic ((t (:italic t)))) - (makefile-space-face ((t (:background "hotpink")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "plum" :foreground "black")))) - (modeline-buffer-id ((t (:background "plum" :foreground "black")))) - (modeline-mousable ((t (:background "plum" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "plum" :foreground "black")))) - (region ((t (:background "plum")))) - (secondary-selection ((t (:background "palegreen")))) - (show-paren-match-face ((t (:background "plum")))) - (show-paren-mismatch-face ((t (:background "navy" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (underline ((t (:underline t)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85"))))))) - -(defun color-theme-jsc-dark () - "Color theme by John S Cooper, created 2000-06-11." - (interactive) - (color-theme-install - '(color-theme-jsc-dark - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "white") - (foreground-color . "cornsilk") - (mouse-color . "black")) - ((gnus-mouse-face . highlight) - (goto-address-mail-face . italic) - (goto-address-mail-mouse-face . secondary-selection) - (goto-address-url-face . bold) - (goto-address-url-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (blank-space-face ((t (:background "LightGray")))) - (blank-tab-face ((t (:background "cornsilk" :foreground "black")))) - (default ((t (nil)))) - (bold ((t (:bold t :foreground "white")))) - (bold-italic ((t (:italic t :bold t)))) - (calendar-today-face ((t (:underline t)))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue")))) - (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red")))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (custom-button-face ((t (:foreground "white")))) - (custom-changed-face ((t (:background "skyblue" :foreground "wheat")))) - (custom-documentation-face ((t (:foreground "white")))) - (custom-face-tag-face ((t (:underline t :foreground "white")))) - (custom-group-tag-face ((t (:underline t :foreground "skyblue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "pink")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:foreground "blue")))) - (custom-state-face ((t (:foreground "light green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "skyblue")))) - (diary-face ((t (:bold t :foreground "orange")))) - (font-lock-builtin-face ((t (:bold t :foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:italic t :foreground "red")))) - (font-lock-constant-face ((t (:bold t :foreground "salmon")))) - (font-lock-function-name-face ((t (:bold t :foreground "orange")))) - (font-lock-keyword-face ((t (:bold t :foreground "gold")))) - (font-lock-string-face ((t (:italic t :foreground "orange")))) - (font-lock-type-face ((t (:bold t :foreground "gold")))) - (font-lock-variable-name-face ((t (:italic t :bold t :foreground "light salmon")))) - (font-lock-warning-face ((t (:bold t :foreground "gold")))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:foreground "light cyan")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "light blue")))) - (gnus-cite-face-3 ((t (:foreground "light yellow")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:background "goldenrod4" :foreground "white")))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t :background "yellow" :foreground "black")))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t :background "yellow" :foreground "black")))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t :background "yellow" :foreground "black")))) - (gnus-filterhist-face-1 ((t (nil)))) - (gnus-group-mail-1-empty-face ((t (:foreground "gray80")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "white")))) - (gnus-group-mail-2-empty-face ((t (:foreground "lightcyan")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "lightcyan")))) - (gnus-group-mail-3-empty-face ((t (:foreground "tan")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "tan")))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4")))) - (gnus-group-news-1-empty-face ((t (:foreground "white")))) - (gnus-group-news-1-face ((t (:bold t :foreground "white")))) - (gnus-group-news-2-empty-face ((t (:foreground "lightcyan")))) - (gnus-group-news-2-face ((t (:bold t :foreground "lightcyan")))) - (gnus-group-news-3-empty-face ((t (:foreground "tan")))) - (gnus-group-news-3-face ((t (:bold t :foreground "tan")))) - (gnus-group-news-4-empty-face ((t (:foreground "white")))) - (gnus-group-news-4-face ((t (:bold t :foreground "white")))) - (gnus-group-news-5-empty-face ((t (:foreground "wheat")))) - (gnus-group-news-5-face ((t (:bold t :foreground "wheat")))) - (gnus-group-news-6-empty-face ((t (:foreground "tan")))) - (gnus-group-news-6-face ((t (:bold t :foreground "tan")))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise")))) - (gnus-header-content-face ((t (:italic t :foreground "plum1")))) - (gnus-header-from-face ((t (:bold t :foreground "wheat")))) - (gnus-header-name-face ((t (:bold t :foreground "gold")))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "wheat")))) - (gnus-header-subject-face ((t (:bold t :foreground "red")))) - (gnus-signature-face ((t (:italic t :foreground "maroon")))) - (gnus-splash ((t (:foreground "Brown")))) - (gnus-splash-face ((t (:foreground "gold")))) - (gnus-summary-cancelled-face ((t (:background "gray" :foreground "black")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "gray70")))) - (gnus-summary-high-unread-face ((t (:italic t :bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :bold t :foreground "gray70")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:bold t :foreground "gray70")))) - (gnus-summary-normal-unread-face ((t (:bold t)))) - (gnus-summary-selected-face ((t (:underline t :background "deepskyblue4")))) - (highlight ((t (:background "darkslategray" :foreground "wheat")))) - (highlight-changes-delete-face ((t (:underline t :foreground "red")))) - (highlight-changes-face ((t (:foreground "red")))) - (highline-face ((t (:background "gray35")))) - (holiday-face ((t (:background "red")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t :foreground "yellow")))) - (info-xref ((t (:bold t :foreground "plum")))) - (italic ((t (:italic t)))) - (lazy-highlight-face ((t (:bold t :foreground "dark magenta")))) - (linemenu-face ((t (:background "gray30")))) - (makefile-space-face ((t (:background "hotpink")))) - (message-cited-text-face ((t (:foreground "plum1")))) - (message-header-cc-face ((t (:bold t :foreground "ivory")))) - (message-header-name-face ((t (:foreground "light sky blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "lavender blush")))) - (message-header-other-face ((t (:foreground "pale turquoise")))) - (message-header-subject-face ((t (:bold t :foreground "papaya whip")))) - (message-header-to-face ((t (:bold t :foreground "floral white")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:bold t :foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "sandy brown")))) - (modeline ((t (:background "tan" :foreground "black")))) - (modeline-buffer-id ((t (:background "tan" :foreground "black")))) - (modeline-mousable ((t (:background "tan" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "tan" :foreground "black")))) - (paren-mismatch-face ((t (:bold t :background "white" :foreground "red")))) - (paren-no-match-face ((t (:bold t :background "white" :foreground "red")))) - (region ((t (:background "slategrey")))) - (secondary-selection ((t (:background "deepskyblue4")))) - (sgml-doctype-face ((t (:foreground "orange")))) - (sgml-end-tag-face ((t (:foreground "greenyellow")))) - (sgml-entity-face ((t (:foreground "gold")))) - (sgml-ignored-face ((t (:background "gray60" :foreground "gray20")))) - (sgml-sgml-face ((t (:foreground "yellow")))) - (sgml-start-tag-face ((t (:foreground "mediumspringgreen")))) - (show-paren-match-face ((t (:background "deepskyblue4")))) - (show-paren-mismatch-face ((t (:bold t :background "red" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:bold t :foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (underline ((t (:underline t)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "gray20")))) - (widget-inactive-face ((t (:foreground "wheat")))) - (widget-single-line-field-face ((t (:background "gray20")))) - (woman-bold-face ((t (:bold t)))) - (woman-italic-face ((t (:foreground "beige")))) - (woman-unknown-face ((t (:foreground "LightSalmon"))))))) - -(defun color-theme-greiner () - "Color theme by Kevin Greiner, created 2000-06-13. -Black on Beige, supports default, font-lock, speedbar, custom, widget -faces. Designed to be easy on the eyes, particularly on Win32 -computers which commonly have white window backgrounds." - (interactive) - (color-theme-install - '(color-theme-greiner - ((background-color . "beige") - (background-mode . light) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "black") - (mouse-color . "black")) - ((list-matching-lines-face . bold)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (font-lock-builtin-face ((t (:foreground "blue4")))) - (font-lock-comment-face ((t (:foreground "Firebrick")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-function-name-face ((t (:foreground "Blue")))) - (font-lock-keyword-face ((t (:foreground "royal blue")))) - (font-lock-string-face ((t (:foreground "RosyBrown")))) - (font-lock-type-face ((t (:foreground "ForestGreen")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (highlight ((t (:background "darkseagreen2")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (italic ((t (:italic t)))) - (modeline ((t (:background "black" :foreground "white")))) - (modeline-mousable-minor-mode ((t (:background "black" :foreground "white")))) - (modeline-mousable ((t (:background "black" :foreground "white")))) - (modeline-buffer-id ((t (:background "black" :foreground "white")))) - (region ((t (:background "gray")))) - (secondary-selection ((t (:background "paleturquoise")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (underline ((t (:underline t)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85"))))))) - -(defun color-theme-jb-simple () - "Color theme by jeff, created 2000-06-14. -Uses white background and bold for many things" - (interactive) - (color-theme-install - '(color-theme-jb-simple - ((background-color . "white") - (background-mode . light) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "black") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (cursor-color . "black") - (foreground-color . "black") - (mouse-color . "black") - (top-toolbar-shadow-color . "#fffffbeeffff")) - ((gnus-mouse-face . highlight) - (list-matching-lines-face . bold) - (rmail-highlight-face . font-lock-function-name-face) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (blank-space-face ((t (nil)))) - (blank-tab-face ((t (nil)))) - (blue ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (nil)))) - (calendar-today-face ((t (:underline t)))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue")))) - (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red")))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (custom-button-face ((t (:bold t)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :bold t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :bold t :foreground "blue")))) - (diary-face ((t (:bold t :foreground "red")))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (erc-action-face ((t (:bold t)))) - (erc-bold-face ((t (:bold t)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (nil)))) - (erc-error-face ((t (:bold t)))) - (erc-input-face ((t (nil)))) - (erc-inverse-face ((t (nil)))) - (erc-notice-face ((t (nil)))) - (erc-pal-face ((t (nil)))) - (erc-prompt-face ((t (nil)))) - (erc-underline-face ((t (nil)))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid")))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-ls-directory-face ((t (:bold t :foreground "Blue")))) - (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen")))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red")))) - (eshell-ls-picture-face ((t (nil)))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta")))) - (eshell-ls-symlink-face ((t (:bold t :foreground "DarkCyan")))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:bold t :foreground "Red")))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-test-ok-face ((t (:bold t :foreground "Green")))) - (excerpt ((t (:italic t)))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue")))) - (fixed ((t (:bold t)))) - (flyspell-duplicate-face ((t (:underline t :bold t :foreground "Gold3")))) - (flyspell-incorrect-face ((t (:underline t :bold t :foreground "OrangeRed")))) - (font-latex-bold-face ((t (nil)))) - (font-latex-italic-face ((t (nil)))) - (font-latex-math-face ((t (nil)))) - (font-latex-sedate-face ((t (nil)))) - (font-latex-string-face ((t (nil)))) - (font-latex-warning-face ((t (nil)))) - (font-lock-builtin-face ((t (:bold t :foreground "Orchid")))) - (font-lock-comment-face ((t (:italic t :bold t :foreground "blue4")))) - (font-lock-constant-face ((t (:bold t :foreground "CadetBlue")))) - (font-lock-doc-string-face ((t (:italic t :bold t :foreground "blue4")))) - (font-lock-exit-face ((t (nil)))) - (font-lock-function-name-face ((t (:bold t :foreground "brown4")))) - (font-lock-keyword-face ((t (:bold t :foreground "black")))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:italic t :bold t :foreground "green4")))) - (font-lock-type-face ((t (:bold t :foreground "steelblue")))) - (font-lock-variable-name-face ((t (:italic t :bold t :foreground "magenta4")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (gnus-cite-attribution-face ((t (:italic t :bold t)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (nil)))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-filterhist-face-1 ((t (nil)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4")))) - (gnus-header-from-face ((t (:bold t :foreground "red3")))) - (gnus-header-name-face ((t (:bold t :foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:bold t :foreground "red4")))) - (gnus-signature-face ((t (:italic t)))) - (gnus-splash ((t (nil)))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:italic t :bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :bold t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (:bold t)))) - (gnus-summary-selected-face ((t (:underline t)))) - (green ((t (nil)))) - (gui-button-face ((t (:background "grey75")))) - (gui-element ((t (:background "Gray80")))) - (highlight ((t (:background "darkseagreen2")))) - (highlight-changes-delete-face ((t (:underline t :foreground "red")))) - (highlight-changes-face ((t (:foreground "red")))) - (highline-face ((t (:background "paleturquoise")))) - (holiday-face ((t (:background "pink")))) - (html-helper-italic-face ((t (:italic t)))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (isearch ((t (nil)))) - (italic ((t (:italic t)))) - (lazy-highlight-face ((t (:bold t :foreground "dark magenta")))) - (left-margin ((t (nil)))) - (linemenu-face ((t (nil)))) - (list-mode-item-selected ((t (nil)))) - (makefile-space-face ((t (:background "hotpink")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:bold t)))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "darkblue" :foreground "yellow")))) - (modeline-buffer-id ((t (:background "black" :foreground "white")))) - (modeline-mousable ((t (:background "black" :foreground "white")))) - (modeline-mousable-minor-mode ((t (:background "black" :foreground "white")))) - (nil ((t (nil)))) - (paren-mismatch-face ((t (:bold t)))) - (paren-no-match-face ((t (:bold t)))) - (pointer ((t (nil)))) - (primary-selection ((t (nil)))) - (red ((t (nil)))) - (region ((t (:background "gray")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (sgml-doctype-face ((t (nil)))) - (sgml-end-tag-face ((t (nil)))) - (sgml-entity-face ((t (nil)))) - (sgml-ignored-face ((t (nil)))) - (sgml-sgml-face ((t (nil)))) - (sgml-start-tag-face ((t (nil)))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:bold t :background "purple" :foreground "white")))) - (speedbar-button-face ((t (:bold t :foreground "green4")))) - (speedbar-directory-face ((t (:bold t :foreground "blue4")))) - (speedbar-file-face ((t (:bold t :foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (swbuff-current-buffer-face ((t (:bold t)))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (:background "black")))) - (term-blue ((t (:foreground "blue")))) - (term-bluebg ((t (:background "blue")))) - (term-bold ((t (:bold t)))) - (term-cyan ((t (:foreground "cyan")))) - (term-cyanbg ((t (:background "cyan")))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-green ((t (:foreground "green")))) - (term-greenbg ((t (:background "green")))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (:foreground "magenta")))) - (term-magentabg ((t (:background "magenta")))) - (term-red ((t (:foreground "red")))) - (term-redbg ((t (:background "red")))) - (term-underline ((t (:underline t)))) - (term-white ((t (:foreground "white")))) - (term-whitebg ((t (:background "white")))) - (term-yellow ((t (:foreground "yellow")))) - (term-yellowbg ((t (:background "yellow")))) - (text-cursor ((t (nil)))) - (toolbar ((t (nil)))) - (underline ((t (:underline t)))) - (vc-annotate-face-0046FF ((t (nil)))) - (vcursor ((t (:underline t :background "cyan" :foreground "blue")))) - (vertical-divider ((t (nil)))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red")))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange")))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue")))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod")))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen")))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown")))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Grey50")))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (woman-bold-face ((t (:bold t)))) - (woman-italic-face ((t (nil)))) - (woman-unknown-face ((t (nil)))) - (yellow ((t (nil)))) - (zmacs-region ((t (nil))))))) - -(defun color-theme-beige-diff () - "Brownish faces for diff and change-log modes. -This is intended for other color themes to use (eg. `color-theme-gnome2' -and `color-theme-blue-sea')." - (color-theme-install - '(color-theme-beige-diff - nil - (change-log-acknowledgement-face ((t (:foreground "firebrick")))) - (change-log-conditionals-face ((t (:foreground "khaki" :background "sienna")))) - (change-log-date-face ((t (:foreground "gold")))) - (change-log-email-face ((t (:foreground "khaki" :underline t)))) - (change-log-file-face ((t (:bold t :foreground "lemon chiffon")))) - (change-log-function-face ((t (:foreground "khaki" :background "sienna")))) - (change-log-list-face ((t (:foreground "wheat")))) - (change-log-name-face ((t (:bold t :foreground "light goldenrod")))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (:foreground "grey50")))) - (diff-file-header-face ((t (:bold t :foreground "lemon chiffon")))) - (diff-function-face ((t (:foreground "grey50")))) - (diff-header-face ((t (:foreground "lemon chiffon")))) - (diff-hunk-header-face ((t (:foreground "light goldenrod")))) - (diff-index-face ((t (:bold t :underline t)))) - (diff-nonexistent-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-removed-face ((t (nil)))) - (log-view-message-face ((t (:foreground "lemon chiffon"))))))) - -(defun color-theme-standard-ediff () - "Standard colors for ediff faces. -This is intended for other color themes to use -\(eg. `color-theme-goldenrod')." - (color-theme-install - '(color-theme-beige-diff - nil - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White"))))))) - -(defun color-theme-beige-eshell () - "Brownish colors for eshell faces only. -This is intended for other color themes to use (eg. `color-theme-goldenrod')." - (color-theme-install - '(color-theme-beige-eshell - nil - (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed")))) - (eshell-ls-backup-face ((t (:foreground "Grey")))) - (eshell-ls-clutter-face ((t (:foreground "DimGray")))) - (eshell-ls-directory-face ((t (:bold t :foreground "dark khaki")))) - (eshell-ls-executable-face ((t (:foreground "Coral")))) - (eshell-ls-missing-face ((t (:foreground "black")))) - (eshell-ls-picture-face ((t (:foreground "gold")))) ; non-standard face - (eshell-ls-product-face ((t (:foreground "dark sea green")))) - (eshell-ls-readonly-face ((t (:foreground "light steel blue")))) - (eshell-ls-special-face ((t (:foreground "gold")))) - (eshell-ls-symlink-face ((t (:foreground "peach puff")))) - (eshell-ls-text-face ((t (:foreground "moccasin")))) ; non-standard face - (eshell-ls-todo-face ((t (:bold t :foreground "yellow green")))) ; non-standard face - (eshell-ls-unreadable-face ((t (:foreground "DimGray")))) - (eshell-prompt-face ((t (:foreground "lemon chiffon"))))))) - -(defun color-theme-goldenrod () - "Brown color theme. Very different from the others. -Supports standard, font-lock and info faces, and it uses -`color-theme-blue-gnus', `color-theme-blue-erc' , and -`color-theme-beige-diff'." - (interactive) - (color-theme-blue-gnus) - (let ((color-theme-is-cumulative t)) - (color-theme-blue-erc) - (color-theme-beige-diff) - (color-theme-beige-eshell) - (color-theme-install - '(color-theme-goldenrod - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "light goldenrod") - (foreground-color . "goldenrod") - (mouse-color . "goldenrod")) - ((goto-address-mail-face . info-xref) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t :foreground "lavender")))) - (font-lock-builtin-face ((t (:foreground "pale goldenrod")))) - (font-lock-comment-face ((t (:foreground "indian red")))) - (font-lock-constant-face ((t (:foreground "pale green")))) - (font-lock-function-name-face ((t (:bold t :foreground "lemon chiffon")))) - (font-lock-keyword-face ((t (:foreground "wheat")))) - (font-lock-string-face ((t (:foreground "gold")))) - (font-lock-type-face ((t (:foreground "dark khaki" :bold t)))) - (font-lock-variable-name-face ((t (:bold t :foreground "khaki")))) - (font-lock-warning-face ((t (:bold t :foreground "orange red")))) - (fringe ((t (:background "gray25")))) - (header-line ((t (:background "gray20" :foreground "gray70")))) - (highlight ((t (:background "dark slate blue")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:bold t)))) - (info-xref ((t (:bold t :foreground "pale goldenrod")))) - (isearch ((t (:background "SeaGreen4")))) - (isearch-lazy-highlight-face ((t (:background "DarkOliveGreen4")))) - (italic ((t (:italic t :foreground "lavender")))) - (menu ((t (:background "gray25" :foreground "lemon chiffon")))) - (modeline ((t (:background "gray40" :foreground "lemon chiffon" :box (:line-width 1 :style released-button))))) - (modeline-buffer-id ((t (:background "AntiqueWhite4" :foreground "lemon chiffon")))) - (modeline-mousable ((t (:background "AntiqueWhite4" :foreground "lemon chiffon")))) - (modeline-mousable-minor-mode ((t (:background "wheat" :foreground "lemon chiffon")))) - (mode-line-inactive ((t (:background "gray20" :foreground "lemon chiffon" :box (:line-width 1 :style released-button))))) - (region ((t (:background "dark olive green")))) - (secondary-selection ((t (:background "dark green")))) - (tool-bar ((t (:background "gray25" :foreground "lemon chiffon" :box (:line-width 1 :style released-button))))) - (underline ((t (:underline t)))))))) - -(defun color-theme-ramangalahy () - "Color theme by Solofo Ramangalahy, created 2000-10-18. -Black on light grey, includes faces for vm, ispell, gnus, -dired, display-time, cperl, font-lock, widget, x-symbol." - (interactive) - (color-theme-install - '(color-theme-ramangalahy - ((background-color . "lightgrey") - (background-mode . light) - (background-toolbar-color . "#bfbfbfbfbfbf") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#737373737373") - (cursor-color . "blue") - (foreground-color . "black") - (top-toolbar-shadow-color . "#e6e6e6e6e6e6")) - ((gnus-mouse-face . highlight) - (goto-address-mail-face . info-xref) - (ispell-highlight-face . highlight) - (notes-bold-face . notes-bold-face) - (setnu-line-number-face . bold) - (tinyreplace-:face . highlight) - (vm-highlight-url-face . bold-italic) - (vm-highlighted-header-face . bold) - (vm-mime-button-face . gui-button-face) - (vm-summary-highlight-face . bold)) - (default ((t (nil)))) - (bbdb-company ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (nil)))) - (cperl-here-face ((t (:foreground "green4")))) - (cperl-pod-face ((t (:foreground "brown4")))) - (cperl-pod-head-face ((t (:foreground "steelblue")))) - (custom-button-face ((t (:bold t)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t)))) - (dired-face-executable ((t (:foreground "SeaGreen")))) - (dired-face-flagged ((t (:background "LightSlateGray")))) - (dired-face-marked ((t (:background "PaleVioletRed")))) - (dired-face-permissions ((t (:background "grey75" :foreground "black")))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (dired-face-symlink ((t (:foreground "blue")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue")))) - (font-lock-comment-face ((t (:bold t :foreground "purple")))) - (font-lock-doc-string-face ((t (:bold t :foreground "slateblue")))) - (font-lock-emphasized-face ((t (:bold t :background "lightyellow2")))) - (font-lock-function-name-face ((t (:bold t :foreground "blue")))) - (font-lock-keyword-face ((t (:bold t :foreground "violetred")))) - (font-lock-other-emphasized-face ((t (:italic t :bold t :background "lightyellow2")))) - (font-lock-other-type-face ((t (:bold t :foreground "orange3")))) - (font-lock-preprocessor-face ((t (:bold t :foreground "mediumblue")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:foreground "green4")))) - (font-lock-type-face ((t (:bold t :foreground "steelblue")))) - (font-lock-variable-name-face ((t (:foreground "magenta4")))) - (font-lock-warning-face ((t (:bold t :background "yellow" :foreground "Red")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (nil)))) - (gnus-emphasis-italic ((t (nil)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t)))) - (gnus-emphasis-underline-italic ((t (:underline t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-news-3-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:foreground "indianred4")))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-signature-face ((t (:bold t)))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (nil)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-x-face ((t (:background "lightgrey" :foreground "black")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:background "lightgrey")))) - (highlight ((t (:background "darkseagreen2")))) - (info-node ((t (:underline t :bold t :foreground "mediumpurple")))) - (info-xref ((t (:underline t :bold t :foreground "#0000ee")))) - (isearch ((t (:background "paleturquoise")))) - (italic ((t (:italic t)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68" :foreground "black")))) - (message-cited-text ((t (:foreground "slategrey")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-contents ((t (:italic t)))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-headers ((t (:bold t)))) - (message-highlighted-header-contents ((t (:bold t)))) - (message-separator-face ((t (:foreground "brown")))) - (message-url ((t (:bold t)))) - (modeline ((t (:bold t :background "Gray75" :foreground "Black")))) - (modeline-buffer-id ((t (:bold t :background "Gray75" :foreground "blue4")))) - (modeline-mousable ((t (:bold t :background "Gray75" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:bold t :background "Gray75" :foreground "green4")))) - (paren-blink-off ((t (:foreground "lightgrey")))) - (paren-match ((t (:background "darkseagreen2")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "black")))) - (pointer ((t (:foreground "blue")))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "black" :foreground "white")))) - (right-margin ((t (nil)))) - (searchm-buffer ((t (:bold t :background "white" :foreground "red")))) - (searchm-button ((t (:bold t :background "CadetBlue" :foreground "white")))) - (searchm-field ((t (:background "grey89")))) - (searchm-field-label ((t (:bold t)))) - (searchm-highlight ((t (:bold t :background "darkseagreen2" :foreground "black")))) - (secondary-selection ((t (:background "paleturquoise")))) - (template-message-face ((t (:bold t)))) - (text-cursor ((t (:background "blue" :foreground "lightgrey")))) - (toolbar ((t (nil)))) - (underline ((t (:underline t)))) - (vertical-divider ((t (nil)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (x-face ((t (:background "white" :foreground "black")))) - (x-symbol-adobe-fontspecific-face ((t (nil)))) - (x-symbol-face ((t (nil)))) - (x-symbol-heading-face ((t (:underline t :bold t :foreground "green4")))) - (x-symbol-info-face ((t (:foreground "green4")))) - (x-symbol-invisible-face ((t (nil)))) - (x-symbol-revealed-face ((t (:background "pink")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "yellow"))))))) - -(defun color-theme-raspopovic () - "Color theme by Pedja Raspopovic, created 2000-10-19. -Includes faces for dired, font-lock, info, paren." - (interactive) - (color-theme-install - '(color-theme-raspopovic - ((background-color . "darkblue") - (background-mode . light) - (background-toolbar-color . "#bfbfbfbfbfbf") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#737373737373") - (cursor-color . "Red3") - (foreground-color . "yellow") - (top-toolbar-shadow-color . "#e6e6e6e6e6e6")) - ((setnu-line-number-face . bold) - (goto-address-mail-face . info-xref)) - (default ((t (nil)))) - (blue ((t (:background "darkblue" :foreground "blue")))) - (bold ((t (:bold t :background "darkblue" :foreground "yellow")))) - (bold-italic ((t (:bold t :background "darkblue" :foreground "red3")))) - (comint-input-face ((t (:foreground "deepskyblue")))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:foreground "lightgreen")))) - (dired-face-executable ((t (:foreground "indianred")))) - (dired-face-flagged ((t (:background "LightSlateGray")))) - (dired-face-marked ((t (:background "darkblue" :foreground "deepskyblue")))) - (dired-face-permissions ((t (:background "darkblue" :foreground "white")))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (dired-face-symlink ((t (:foreground "grey95")))) - (font-lock-comment-face ((t (:background "darkblue" :foreground "lightgreen")))) - (font-lock-doc-string-face ((t (:background "darkblue" :foreground "darkseagreen")))) - (font-lock-function-name-face ((t (:bold t :background "darkblue" :foreground "indianred")))) - (font-lock-keyword-face ((t (:background "darkblue" :foreground "skyblue")))) - (font-lock-preprocessor-face ((t (:background "darkblue" :foreground "orange")))) - (font-lock-reference-face ((t (:background "darkblue" :foreground "deepskyblue")))) - (font-lock-string-face ((t (:background "darkblue" :foreground "lightgrey")))) - (font-lock-type-face ((t (:background "darkblue" :foreground "orange")))) - (font-lock-variable-name-face ((t (:background "darkblue" :foreground "white")))) - (green ((t (:background "darkblue" :foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (highlight ((t (:background "yellow" :foreground "darkblue")))) - (info-node ((t (:bold t :background "darkblue" :foreground "red3")))) - (info-xref ((t (:bold t :background "darkblue" :foreground "yellow")))) - (isearch ((t (:background "yellow" :foreground "darkblue")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (:background "darkblue" :foreground "red3")))) - (left-margin ((t (:background "darkblue" :foreground "yellow")))) - (list-mode-item-selected ((t (:background "gray68" :foreground "yellow")))) - (makefile-space-face ((t (:background "hotpink")))) - (modeline ((t (:background "Gray75" :foreground "Black")))) - (modeline-buffer-id ((t (:background "Gray75" :foreground "blue")))) - (modeline-mousable ((t (:background "Gray75" :foreground "red")))) - (modeline-mousable-minor-mode ((t (:background "Gray75" :foreground "green4")))) - (paren-blink-off ((t (:foreground "darkblue")))) - (paren-match ((t (:background "yellow" :foreground "darkblue")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "yellow")))) - (pointer ((t (:background "darkblue" :foreground "red3")))) - (primary-selection ((t (:background "yellow" :foreground "darkblue")))) - (red ((t (:background "darkblue" :foreground "red")))) - (right-margin ((t (:background "darkblue" :foreground "yellow")))) - (secondary-selection ((t (:background "darkblue" :foreground "yellow")))) - (shell-option-face ((t (:background "darkblue" :foreground "cyan2")))) - (shell-output-2-face ((t (:background "darkblue" :foreground "darkseagreen")))) - (shell-output-3-face ((t (:background "darkblue" :foreground "lightgrey")))) - (shell-output-face ((t (:background "darkblue" :foreground "white")))) - (shell-prompt-face ((t (:background "darkblue" :foreground "red")))) - (text-cursor ((t (:background "Red3" :foreground "white")))) - (underline ((t (:underline t :background "darkblue" :foreground "yellow")))) - (vvb-face ((t (:background "pink" :foreground "black")))) - (yellow ((t (:background "darkblue" :foreground "yellow")))) - (zmacs-region ((t (:background "gray" :foreground "black"))))))) - -(defun color-theme-taylor () - "Color theme by Art Taylor, created 2000-10-20. -Wheat on black. Includes faces for font-lock, gnus, paren." - (interactive) - (color-theme-install - '(color-theme-taylor - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "red") - (foreground-color . "wheat") - (mouse-color . "black")) - ((gnus-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t :background "grey40" :foreground "yellow")))) - (bold-italic ((t (:italic t :bold t :foreground "yellow green")))) - (fl-comment-face ((t (:foreground "medium purple")))) - (fl-function-name-face ((t (:foreground "green")))) - (fl-keyword-face ((t (:foreground "LightGreen")))) - (fl-string-face ((t (:foreground "light coral")))) - (fl-type-face ((t (:foreground "cyan")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:foreground "OrangeRed")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-function-name-face ((t (:foreground "LightSkyBlue")))) - (font-lock-keyword-face ((t (:foreground "Cyan")))) - (font-lock-string-face ((t (:foreground "LightSalmon")))) - (font-lock-type-face ((t (:foreground "PaleGreen")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1")))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2")))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3")))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4")))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise")))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise")))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (highlight ((t (:background "black" :foreground "black")))) - (italic ((t (:italic t :foreground "yellow3")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "green4")))) - (message-header-name-face ((t (:foreground "DarkGreen")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow")))) - (message-header-other-face ((t (:foreground "#b00000")))) - (message-header-subject-face ((t (:foreground "green3")))) - (message-header-to-face ((t (:bold t :foreground "green2")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "blue3")))) - (modeline ((t (:background "wheat" :foreground "black")))) - (modeline-buffer-id ((t (:background "wheat" :foreground "black")))) - (modeline-mousable ((t (:background "wheat" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "wheat" :foreground "black")))) - (region ((t (:background "blue")))) - (secondary-selection ((t (:background "darkslateblue" :foreground "black")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (underline ((t (:underline t)))) - (xref-keyword-face ((t (:foreground "blue")))) - (xref-list-default-face ((t (nil)))) - (xref-list-pilot-face ((t (:foreground "navy")))) - (xref-list-symbol-face ((t (:foreground "navy"))))))) - -(defun color-theme-marquardt () - "Color theme by Colin Marquardt, created 2000-10-25. -Black on bisque, a light color. Based on some settings from Robin S. Socha. -Features some color changes to programming languages, especially vhdl-mode. -You might also want to put something like - Emacs*Foreground: Black - Emacs*Background: bisque2 -in your ~/.Xdefaults." - (interactive) - (color-theme-install - '(color-theme-marquardt - ((background-color . "bisque") - (background-mode . light) - (background-toolbar-color . "bisque") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#909099999999") - (cursor-color . "Red3") - (foreground-color . "black") - (top-toolbar-shadow-color . "#ffffffffffff")) - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:bold t)))) - (border-glyph ((t (nil)))) - (calendar-today-face ((t (:underline t)))) - (diary-face ((t (:foreground "red")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue")))) - (font-lock-comment-face ((t (:foreground "gray50")))) - (font-lock-doc-string-face ((t (:foreground "green4")))) - (font-lock-function-name-face ((t (:foreground "darkorange")))) - (font-lock-keyword-face ((t (:foreground "blue3")))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-special-comment-face ((t (:foreground "blue4")))) - (font-lock-special-keyword-face ((t (:foreground "red4")))) - (font-lock-string-face ((t (:foreground "green4")))) - (font-lock-type-face ((t (:foreground "steelblue")))) - (font-lock-variable-name-face ((t (:foreground "black")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:background "azure1" :foreground "Black")))) - (highlight ((t (:background "darkseagreen2" :foreground "blue")))) - (holiday-face ((t (:background "pink" :foreground "black")))) - (info-node ((t (:bold t)))) - (info-xref ((t (:bold t)))) - (isearch ((t (:background "yellow" :foreground "red")))) - (italic ((t (:bold t)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68" :foreground "black")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "bisque2" :foreground "steelblue4")))) - (modeline-buffer-id ((t (:background "bisque2" :foreground "blue4")))) - (modeline-mousable ((t (:background "bisque2" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "bisque2" :foreground "green4")))) - (paren-blink-off ((t (:foreground "azure1")))) - (paren-face ((t (:background "lightgoldenrod")))) - (paren-match ((t (:background "bisque2")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "black")))) - (paren-mismatch-face ((t (:background "DeepPink")))) - (paren-no-match-face ((t (:background "yellow")))) - (pointer ((t (:background "white" :foreground "blue")))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (shell-option-face ((t (:foreground "gray50")))) - (shell-output-2-face ((t (:foreground "green4")))) - (shell-output-3-face ((t (:foreground "green4")))) - (shell-output-face ((t (:bold t)))) - (shell-prompt-face ((t (:foreground "blue3")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (text-cursor ((t (:background "Red3" :foreground "bisque")))) - (toolbar ((t (:background "Gray80")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (nil)))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "SaddleBrown")))) - (vhdl-font-lock-function-face ((t (:foreground "DarkCyan")))) - (vhdl-font-lock-generic-/constant-face ((t (:foreground "Gold3")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red")))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange")))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-font-lock-type-face ((t (:foreground "ForestGreen")))) - (vhdl-font-lock-variable-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue")))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod")))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen")))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown")))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Grey50")))) - (vhdl-speedbar-subprogram-face ((t (:foreground "Orchid4")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "steelblue" :foreground "yellow"))))))) - -(defun color-theme-parus () - "Color theme by Jon K Hellan, created 2000-11-01. -White on dark blue color theme. - -There is some redundancy in the X resources, but I do not have time to -find out which should go or which should stay: - -Emacs*dialog*Background: midnightblue -Emacs*dialog*Foreground: white -Emacs*popup*Background: midnightblue -Emacs*popup*Foreground: white -emacs*background: #00005a -emacs*cursorColor: gray90 -emacs*foreground: White -emacs.dialog*.background: midnightblue -emacs.menu*.background: midnightblue -emacs.pane.menubar.background: midnightblue" - (interactive) - (color-theme-install - '(color-theme-parus - ((background-color . "#00005a") - (background-mode . dark) - (border-color . "black") - (cursor-color . "yellow") - (foreground-color . "White") - (mouse-color . "yellow")) - ((gnus-mouse-face . highlight) - (list-matching-lines-face . bold) - (paren-face . bold) - (paren-mismatch-face . paren-mismatch-face) - (paren-no-match-face . paren-no-match-face) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (font-latex-bold-face ((t (:bold t :foreground "OliveDrab")))) - (font-latex-italic-face ((t (:italic t :foreground "OliveDrab")))) - (font-latex-math-face ((t (:foreground "burlywood")))) - (font-latex-sedate-face ((t (:foreground "LightGray")))) - (font-latex-string-face ((t (:foreground "LightSalmon")))) - (font-latex-warning-face ((t (:foreground "Pink")))) - (font-lock-builtin-face ((t (:foreground "#e0e0ff")))) - (font-lock-reference-face ((t (:foreground "#e0e0ff")))) - (font-lock-comment-face ((t (:foreground "#FFd1d1")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-preprocessor-face ((t (:foreground "Aquamarine")))) - (font-lock-function-name-face ((t (:foreground "#b2e4ff")))) - (font-lock-keyword-face ((t (:foreground "#a0ffff")))) - (font-lock-string-face ((t (:foreground "#efca10")))) - (font-lock-doc-string-face ((t (:foreground "#efca10")))) - (font-lock-type-face ((t (:foreground "PaleGreen")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:foreground "#dfdfff")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "light cyan")))) - (gnus-cite-face-3 ((t (:foreground "light yellow")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1")))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2")))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3")))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4")))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise")))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise")))) - (gnus-header-content-face ((t (:italic t :foreground "#90f490")))) - (gnus-header-from-face ((t (:foreground "#aaffaa")))) - (gnus-header-name-face ((t (:foreground "#c7e3c7")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "yellow")))) - (gnus-header-subject-face ((t (:foreground "#a0f0a0")))) - (gnus-signature-face ((t (:italic t)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (highlight ((t (:background "darkolivegreen")))) - (italic ((t (:italic t)))) - (message-cited-text-face ((t (:foreground "#dfdfff")))) - (message-header-cc-face ((t (:bold t :foreground "#a0f0a0")))) - (message-header-name-face ((t (:foreground "#c7e3c7")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow")))) - (message-header-other-face ((t (:foreground "#db9b9b")))) - (message-header-subject-face ((t (:foreground "#a0f0a0")))) - (message-header-to-face ((t (:bold t :foreground "#aaffaa")))) - (message-header-xheader-face ((t (:foreground "#e2e2ff")))) - (message-mml-face ((t (:foreground "#abdbab")))) - (message-separator-face ((t (:foreground "#dfdfff")))) - (modeline ((t (:background "White" :foreground "#00005a")))) - (modeline-buffer-id ((t (:background "White" :foreground "#00005a")))) - (modeline-mousable ((t (:background "White" :foreground "#00005a")))) - (modeline-mousable-minor-mode ((t (:background "White" :foreground "#00005a")))) - (paren-mismatch-face ((t (:background "DeepPink")))) - (paren-no-match-face ((t (:background "yellow")))) - (region ((t (:background "blue")))) - (primary-selection ((t (:background "blue")))) - (isearch ((t (:background "blue")))) - (secondary-selection ((t (:background "darkslateblue")))) - (underline ((t (:underline t)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray"))))))) - -(defun color-theme-high-contrast () - "High contrast color theme, maybe for the visually impaired. -Watch out! This will set a very large font-size! - -If you want to modify the font as well, you should customize variable -`color-theme-legal-frame-parameters' to \"\\(color\\|mode\\|font\\|height\\|width\\)$\". -The default setting will prevent color themes from installing specific -fonts." - (interactive) - (color-theme-standard) - (let ((color-theme-is-cumulative t)) - (color-theme-install - '(color-theme-high-contrast - ((cursor-color . "red") - (width . 60) - (height . 25) - (background . dark)) - (default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight bold :height 240 :width normal :family "adobe-courier")))) - - (bold ((t (:bold t :underline t)))) - (bold-italic ((t (:bold t :underline t)))) - (font-lock-builtin-face ((t (:bold t :foreground "Red")))) - (font-lock-comment-face ((t (:bold t :foreground "Firebrick")))) - (font-lock-constant-face ((t (:bold t :underline t :foreground "Blue")))) - (font-lock-function-name-face ((t (:bold t :foreground "Blue")))) - (font-lock-keyword-face ((t (:bold t :foreground "Purple")))) - (font-lock-string-face ((t (:bold t :foreground "DarkGreen")))) - (font-lock-type-face ((t (:bold t :foreground "ForestGreen")))) - (font-lock-variable-name-face ((t (:bold t :foreground "DarkGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (highlight ((t (:background "black" :foreground "white" :bold 1)))) - (info-menu-5 ((t (:underline t :bold t)))) - (info-node ((t (:bold t)))) - (info-xref ((t (:bold t )))) - (italic ((t (:bold t :underline t)))) - (modeline ((t (:background "black" :foreground "white" :bold 1)))) - (modeline-buffer-id ((t (:background "black" :foreground "white" :bold 1)))) - (modeline-mousable ((t (:background "black" :foreground "white" :bold 1)))) - (modeline-mousable-minor-mode ((t (:background "black" :foreground "white" :bold 1)))) - (region ((t (:background "black" :foreground "white" :bold 1)))) - (secondary-selection ((t (:background "black" :foreground "white" :bold 1)))) - (underline ((t (:bold t :underline t)))))))) - -(defun color-theme-infodoc () - "Color theme by Frederic Giroud, created 2001-01-18. -Black on wheat scheme. Based on infodoc (xemacs variant distribution), -with my favorit fontlock color." - (interactive) - (color-theme-install - '(color-theme-infodoc - ((background-color . "wheat") - (background-mode . light) - (background-toolbar-color . "#000000000000") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#000000000000") - (cursor-color . "red") - (foreground-color . "black") - (top-toolbar-shadow-color . "#ffffffffffff")) - nil - (default ((t (:bold t)))) - (blue ((t (:bold t :foreground "blue")))) - (bold ((t (:background "wheat" :foreground "black")))) - (bold-italic ((t (:bold t :background "wheat" :foreground "black")))) - (border-glyph ((t (:bold t)))) - (calendar-today-face ((t (:underline t :bold t)))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:bold t :background "blue" :foreground "white")))) - (custom-documentation-face ((t (:bold t :background "wheat" :foreground "purple4")))) - (custom-face-tag-face ((t (:underline t :bold t)))) - (custom-group-tag-face ((t (:underline t :bold t :background "wheat" :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :bold t :background "wheat" :foreground "red")))) - (custom-invalid-face ((t (:bold t :background "red" :foreground "yellow")))) - (custom-modified-face ((t (:bold t :background "blue" :foreground "white")))) - (custom-rogue-face ((t (:bold t :background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t :bold t)))) - (custom-set-face ((t (:bold t :background "white" :foreground "blue")))) - (custom-state-face ((t (:bold t :background "wheat" :foreground "dark green")))) - (custom-variable-button-face ((t (:underline t)))) - (custom-variable-tag-face ((t (:underline t :bold t :background "wheat" :foreground "blue")))) - (diary-face ((t (:bold t :foreground "red")))) - (display-time-mail-balloon-enhance-face ((t (:bold t :background "wheat" :foreground "black")))) - (display-time-mail-balloon-gnus-group-face ((t (:bold t :background "wheat" :foreground "blue")))) - (display-time-time-balloon-face ((t (:bold t :background "light salmon" :foreground "dark green")))) - (font-lock-comment-face ((t (:bold t :background "wheat" :foreground "turquoise4")))) - (font-lock-doc-string-face ((t (:bold t :background "wheat" :foreground "purple4")))) - (font-lock-function-name-face ((t (:bold t :background "wheat" :foreground "blue4")))) - (font-lock-keyword-face ((t (:bold t :background "wheat" :foreground "dark orchid")))) - (font-lock-preprocessor-face ((t (:bold t :background "wheat" :foreground "orchid4")))) - (font-lock-reference-face ((t (:bold t :background "wheat" :foreground "red3")))) - (font-lock-string-face ((t (:bold t :background "wheat" :foreground "dark goldenrod")))) - (font-lock-type-face ((t (:bold t :background "wheat" :foreground "brown")))) - (font-lock-variable-name-face ((t (:bold t :background "wheat" :foreground "chocolate")))) - (font-lock-warning-face ((t (:bold t :background "wheat" :foreground "black")))) - (gdb-arrow-face ((t (:bold t :background "LightGreen" :foreground "black")))) - (green ((t (:bold t :foreground "green")))) - (gui-button-face ((t (:bold t :background "wheat" :foreground "red")))) - (gui-element ((t (:bold t :background "wheat" :foreground "black")))) - (highlight ((t (:bold t :background "darkseagreen2" :foreground "dark green")))) - (holiday-face ((t (:bold t :background "pink" :foreground "black")))) - (hproperty:but-face ((t (:bold t :background "wheat" :foreground "medium violet red")))) - (hproperty:flash-face ((t (:bold t :background "wheat" :foreground "gray80")))) - (hproperty:highlight-face ((t (:bold t :background "wheat" :foreground "red")))) - (hproperty:item-face ((t (:bold t)))) - (isearch ((t (:bold t :background "pale turquoise" :foreground "blue")))) - (italic ((t (:bold t :background "wheat" :foreground "black")))) - (left-margin ((t (:bold t :background "wheat" :foreground "black")))) - (list-mode-item-selected ((t (:bold t :background "gray68" :foreground "black")))) - (message-cited-text ((t (:bold t :background "wheat" :foreground "brown")))) - (message-header-contents ((t (:bold t :background "wheat" :foreground "black")))) - (message-headers ((t (:bold t :background "wheat" :foreground "black")))) - (message-highlighted-header-contents ((t (:bold t :background "wheat" :foreground "blue")))) - (message-url ((t (nil)))) - (modeline ((t (:bold t :background "light salmon" :foreground "dark green")))) - (modeline-buffer-id ((t (:bold t :background "light salmon" :foreground "blue4")))) - (modeline-mousable ((t (:bold t :background "light salmon" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:bold t :background "light salmon" :foreground "green4")))) - (pointer ((t (:bold t :background "wheat" :foreground "red")))) - (primary-selection ((t (:bold t :background "medium sea green")))) - (red ((t (:bold t :foreground "red")))) - (right-margin ((t (:bold t :background "wheat" :foreground "black")))) - (secondary-selection ((t (:bold t :background "paleturquoise" :foreground "black")))) - (shell-input-face ((t (:bold t :background "wheat" :foreground "blue")))) - (shell-option-face ((t (:bold t :background "wheat" :foreground "turquoise4")))) - (shell-output-2-face ((t (:bold t :background "wheat" :foreground "dark goldenrod")))) - (shell-output-3-face ((t (:bold t :background "wheat" :foreground "dark goldenrod")))) - (shell-output-face ((t (:bold t :background "wheat" :foreground "black")))) - (shell-prompt-face ((t (:bold t :background "wheat" :foreground "dark orchid")))) - (text-cursor ((t (:bold t :background "red" :foreground "wheat")))) - (toolbar ((t (:bold t :background "wheat" :foreground "black")))) - (underline ((t (:underline t :bold t :background "wheat" :foreground "black")))) - (vertical-divider ((t (:bold t)))) - (widget-button-face ((t (nil)))) - (widget-button-pressed-face ((t (:bold t :background "wheat" :foreground "red")))) - (widget-documentation-face ((t (:bold t :background "wheat" :foreground "dark green")))) - (widget-field-face ((t (:bold t :background "gray85")))) - (widget-inactive-face ((t (:bold t :background "wheat" :foreground "dim gray")))) - (x-face ((t (:bold t :background "wheat" :foreground "black")))) - (yellow ((t (:bold t :foreground "yellow")))) - (zmacs-region ((t (:bold t :background "lightyellow" :foreground "darkgreen"))))))) - -(defun color-theme-classic () - "Color theme by Frederic Giroud, created 2001-01-18. -AntiqueWhite on darkslategrey scheme. Based on Gnome 2, with my favorit -color foreground-color and fontlock color." - (interactive) - (color-theme-blue-gnus) - (let ((color-theme-is-cumulative t)) - (color-theme-install - '(color-theme-classic - ((foreground-color . "AntiqueWhite") - (background-color . "darkslategrey") - (mouse-color . "Grey") - (cursor-color . "Red") - (border-color . "black") - (background-mode . dark)) - ((apropos-keybinding-face . underline) - (apropos-label-face . italic) - (apropos-match-face . secondary-selection) - (apropos-property-face . bold-italic) - (apropos-symbol-face . info-xref) - (goto-address-mail-face . message-header-to-face) - (goto-address-mail-mouse-face . secondary-selection) - (goto-address-url-face . info-xref) - (goto-address-url-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t :foreground "beige")))) - (calendar-today-face ((t (:underline t)))) - (cperl-array-face ((t (:foreground "Yellow")))) - (cperl-hash-face ((t (:foreground "White")))) - (cperl-nonoverridable-face ((t (:foreground "SkyBlue")))) - (custom-button-face ((t (:underline t :foreground "MediumSlateBlue")))) - (custom-documentation-face ((t (:foreground "Grey")))) - (custom-group-tag-face ((t (:foreground "MediumAquamarine")))) - (custom-state-face ((t (:foreground "LightSalmon")))) - (custom-variable-tag-face ((t (:foreground "Aquamarine")))) - (diary-face ((t (:foreground "IndianRed")))) - (erc-action-face ((t (:bold t)))) - (erc-bold-face ((t (:bold t)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "LightSalmon")))) - (erc-error-face ((t (:bold t :foreground "IndianRed")))) - (erc-input-face ((t (:foreground "Beige")))) - (erc-inverse-face ((t (:background "wheat" :foreground "darkslategrey")))) - (erc-notice-face ((t (:foreground "MediumAquamarine")))) - (erc-pal-face ((t (:foreground "pale green")))) - (erc-prompt-face ((t (:foreground "MediumAquamarine")))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed")))) - (eshell-ls-backup-face ((t (:foreground "Grey")))) - (eshell-ls-clutter-face ((t (:foreground "DimGray")))) - (eshell-ls-directory-face ((t (:bold t :foreground "MediumSlateBlue")))) - (eshell-ls-executable-face ((t (:foreground "Coral")))) - (eshell-ls-missing-face ((t (:foreground "black")))) - (eshell-ls-picture-face ((t (:foreground "Violet")))) - (eshell-ls-product-face ((t (:foreground "LightSalmon")))) - (eshell-ls-readonly-face ((t (:foreground "Aquamarine")))) - (eshell-ls-special-face ((t (:foreground "Gold")))) - (eshell-ls-symlink-face ((t (:foreground "White")))) - (eshell-ls-unreadable-face ((t (:foreground "DimGray")))) - (eshell-prompt-face ((t (:foreground "MediumAquamarine")))) - (font-lock-builtin-face ((t (:bold t :foreground "PaleGreen")))) - (font-lock-comment-face ((t (:foreground "tomato3")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-doc-string-face ((t (:foreground "LightSalmon3")))) - (font-lock-function-name-face ((t (:foreground "SteelBlue1")))) - (font-lock-keyword-face ((t (:foreground "cyan1")))) - (font-lock-reference-face ((t (:foreground "LightSalmon2")))) - (font-lock-string-face ((t (:foreground "LightSalmon3")))) - (font-lock-type-face ((t (:foreground "PaleGreen3")))) - (font-lock-variable-name-face ((t (:foreground "khaki1")))) - (font-lock-warning-face ((t (:bold t :foreground "IndianRed")))) - (font-lock-preprocessor-face ((t (:foreground "SkyBlue3")))) - (widget-field-face ((t (:background "DarkCyan")))) - (custom-group-tag-face ((t(:foreground "brown" :underline t)))) - (custom-state-face ((t (:foreground "khaki")))) - (highlight ((t (:background "PaleGreen" :foreground "DarkGreen")))) - (highline-face ((t (:background "SeaGreen")))) - (holiday-face ((t (:background "DimGray")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:underline t :bold t :foreground "DodgerBlue1")))) - (info-xref ((t (:underline t :foreground "DodgerBlue1")))) - (isearch ((t (:foreground "red" :background "CornflowerBlue")))) - (italic ((t (:italic t)))) - (modeline ((t (:background "LightSlateGray" :foreground "AntiqueWhite")))) - (modeline-buffer-id ((t (:background "LightSlateGray" :foreground "DarkBlue")))) - (modeline-mousable ((t (:background "LightSlateGray" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "LightSlateGray" :foreground "wheat")))) - (region ((t (:background "dark cyan" :foreground "cyan")))) - (secondary-selection ((t (:background "Aquamarine" :foreground "SlateBlue")))) - (show-paren-match-face ((t (:background "Aquamarine" :foreground "SlateBlue")))) - (show-paren-mismatch-face ((t (:background "Red" :foreground "White")))) - (underline ((t (:underline t)))) - (widget-field-face ((t (:foreground "LightBlue")))) - (widget-inactive-face ((t (:foreground "DimGray")))) - (widget-single-line-field-face ((t (:foreground "LightBlue")))) - (woman-bold-face ((t (:bold t)))) - (woman-italic-face ((t (:foreground "beige")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))))))) - -(defun color-theme-scintilla () - "Color theme by Gordon Messmer, created 2001-02-07. -Based on the Scintilla editor. - -If you want to modify the font as well, you should customize variable -`color-theme-legal-frame-parameters' to \"\\(color\\|mode\\|font\\|height\\|width\\)$\". -The default setting will prevent color themes from installing specific -fonts." - (interactive) - (color-theme-install - ;; The light editor style doesn't seem to look right with - ;; the same font that works in the dark editor style. - ;; Dark letters on light background just isn't as visible. - '(color-theme-scintilla - ((font . "-monotype-courier new-bold-r-normal-*-*-140-*-*-m-*-iso8859-1") - (width . 95) - (height . 40) - (background-color . "white") - (foreground-color . "black") - (background-mode . light) - (mouse-color . "grey15") - (cursor-color . "grey15")) - (default ((t nil))) - (font-lock-comment-face ((t (:italic t :foreground "ForestGreen")))) - (font-lock-string-face ((t (:foreground "DarkMagenta")))) - (font-lock-keyword-face ((t (:foreground "NavyBlue")))) - (font-lock-warning-face ((t (:bold t :foreground "VioletRed")))) - (font-lock-constant-face ((t (:foreground "Blue")))) - (font-lock-type-face ((t (:foreground "NavyBlue")))) - (font-lock-variable-name-face ((t (:foreground "DarkCyan")))) - (font-lock-function-name-face ((t (:foreground "DarkCyan")))) - (font-lock-builtin-face ((t (:foreground "NavyBlue")))) - (highline-face ((t (:background "Grey95")))) - (show-paren-match-face ((t (:background "Grey80")))) - (region ((t (:background "Grey80")))) - (highlight ((t (:foreground "ForestGreen")))) - (secondary-selection ((t (:background "NavyBlue" :foreground "white")))) - (widget-field-face ((t (:background "NavyBlue")))) - (widget-single-line-field-face ((t (:background "RoyalBlue")))))) ) - -(defun color-theme-gtk-ide () - "Color theme by Gordon Messmer, created 2001-02-07. -Inspired by a GTK IDE whose name I've forgotten. - -If you want to modify the font as well, you should customize variable -`color-theme-legal-frame-parameters' to \"\\(color\\|mode\\|font\\|height\\|width\\)$\". -The default setting will prevent color themes from installing specific -fonts." - ;; The light editor style doesn't seem to look right with - ;; the same font that works in the dark editor style. - ;; Dark letters on light background just isn't as visible. - (interactive) - (color-theme-install - '(color-theme-gtk-ide - ((font . "-monotype-courier new-medium-r-normal-*-*-120-*-*-m-*-iso8859-15") - (width . 95) - (height . 45) - (background-color . "white") - (foreground-color . "black") - (background-mode . light) - (mouse-color . "grey15") - (cursor-color . "grey15")) - (default ((t nil))) - (font-lock-comment-face ((t (:italic t :foreground "grey55")))) - (font-lock-string-face ((t (:foreground "DarkRed")))) - (font-lock-keyword-face ((t (:foreground "DarkBlue")))) - (font-lock-warning-face ((t (:bold t :foreground "VioletRed")))) - (font-lock-constant-face ((t (:foreground "OliveDrab")))) - (font-lock-type-face ((t (:foreground "SteelBlue4")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-function-name-face ((t (:foreground "SlateBlue")))) - (font-lock-builtin-face ((t (:foreground "ForestGreen")))) - (highline-face ((t (:background "grey95")))) - (show-paren-match-face ((t (:background "grey80")))) - (region ((t (:background "grey80")))) - (highlight ((t (:background "LightSkyBlue")))) - (secondary-selection ((t (:background "grey55")))) - (widget-field-face ((t (:background "navy")))) - (widget-single-line-field-face ((t (:background "royalblue")))))) ) - -(defun color-theme-midnight () - "Color theme by Gordon Messmer, created 2001-02-07. -A color theme inspired by a certain IDE for Windows. It's all from memory, -since I only used that software in college. - -If you want to modify the font as well, you should customize variable -`color-theme-legal-frame-parameters' to \"\\(color\\|mode\\|font\\|height\\|width\\)$\". -The default setting will prevent color themes from installing specific -fonts." - (interactive) - (color-theme-install - '(color-theme-midnight - ((font . "fixed") - (width . 130) - (height . 50) - (background-color . "black") - (foreground-color . "grey85") - (background-mode . dark) - (mouse-color . "grey85") - (cursor-color . "grey85")) - (default ((t (nil)))) - (font-lock-comment-face ((t (:italic t :foreground "grey60")))) - (font-lock-string-face ((t (:foreground "Magenta")))) - (font-lock-keyword-face ((t (:foreground "Cyan")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (font-lock-constant-face ((t (:foreground "OliveDrab")))) - (font-lock-type-face ((t (:foreground "DarkCyan")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-function-name-face ((t (:foreground "SlateBlue")))) - (font-lock-builtin-face ((t (:foreground "SkyBlue")))) - (highline-face ((t (:background "grey12")))) - (setnu-line-number-face ((t (:background "Grey15" :foreground "White" :bold t)))) - (show-paren-match-face ((t (:background "grey30")))) - (region ((t (:background "grey15")))) - (highlight ((t (:background "blue")))) - (secondary-selection ((t (:background "navy")))) - (widget-field-face ((t (:background "navy")))) - (widget-single-line-field-face ((t (:background "royalblue")))))) ) - -(defun color-theme-jedit-grey () - "Color theme by Gordon Messmer, created 2001-02-07. -Based on a screenshot of jedit. - -If you want to modify the font as well, you should customize variable -`color-theme-legal-frame-parameters' to \"\\(color\\|mode\\|font\\|height\\|width\\)$\". -The default setting will prevent color themes from installing specific -fonts." - (interactive) - (color-theme-install - '(color-theme-jedit-grey - ((font . "fixed") - (width . 130) - (height . 50) - (background-color . "grey77") - (foreground-color . "black") - (background-mode . light) - (mouse-color . "black") - (cursor-color . "black")) - (default ((t (nil)))) - (font-lock-comment-face ((t (:italic t :foreground "RoyalBlue4")))) - (font-lock-string-face ((t (:foreground "Gold4")))) - (font-lock-keyword-face ((t (:bold t :foreground "DarkRed")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (font-lock-constant-face ((t (:foreground "DarkCyan")))) - (font-lock-type-face ((t (:foreground "DarkRed")))) - (font-lock-function-name-face ((t (:foreground "Green4")))) - (font-lock-builtin-face ((t (:bold t :foreground "DarkRed")))) - (highline-face ((t (:background "grey84")))) - (setnu-line-number-face ((t (:background "White" :foreground "MediumPurple3" :italic t)))) - (show-paren-match-face ((t (:background "grey60")))) - (region ((t (:background "grey70")))) - (highlight ((t (:background "grey90")))) - (secondary-selection ((t (:background "white")))) - (widget-field-face ((t (:background "royalblue")))) - (widget-single-line-field-face ((t (:background "royalblue")))))) ) - -(defun color-theme-snow () - "Color theme by Nicolas Rist, created 2001-03-08. -Black on gainsboro. In Emacs, the text background is a shade darker -than the frame background: Gainsboro instead of snow. This makes the -structure of the text clearer without being too agressive on the eyes. -On XEmacs, this doesn't really work as the frame and the default face -allways use the same foreground and background colors. -The color theme includes gnus, message, font-lock, sgml, and speedbar." - (interactive) - (color-theme-install - '(color-theme-snow - ((background-color . "snow2") - (background-mode . light) - (border-color . "black") - (cursor-color . "RoyalBlue2") - (foreground-color . "black") - (mouse-color . "black")) - ((gnus-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (:background "gainsboro" :foreground "dark slate gray")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (calendar-today-face ((t (:underline t)))) - (custom-button-face ((t (:background "gainsboro" :foreground "dark cyan")))) - (custom-documentation-face ((t (:background "gainsboro")))) - (diary-face ((t (:foreground "red")))) - (fg:black ((t (:foreground "black")))) - (font-lock-builtin-face ((t (:background "gainsboro" :foreground "medium orchid")))) - (font-lock-comment-face ((t (:background "gainsboro" :foreground "SteelBlue3")))) - (font-lock-constant-face ((t (:background "gainsboro" :foreground "orange3")))) - (font-lock-function-name-face ((t (:background "gainsboro" :foreground "blue3")))) - (font-lock-keyword-face ((t (:background "gainsboro" :foreground "red3")))) - (font-lock-string-face ((t (:background "gainsboro" :foreground "SpringGreen3")))) - (font-lock-type-face ((t (:background "gainsboro" :foreground "dark cyan")))) - (font-lock-variable-name-face ((t (:background "gainsboro" :foreground "purple2")))) - (font-lock-warning-face ((t (:bold t :background "gainsboro" :foreground "red")))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (gui-button-face ((t (:foreground "light grey")))) - (highlight ((t (:background "LightSteelBlue1")))) - (holiday-face ((t (:background "pink")))) - (ibuffer-marked-face ((t (:foreground "red")))) - (italic ((t (:italic t)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "dark slate gray" :foreground "gainsboro")))) - (modeline-buffer-id ((t (:background "dark slate gray" :foreground "gainsboro")))) - (modeline-mousable ((t (:background "dark slate gray" :foreground "gainsboro")))) - (modeline-mousable-minor-mode ((t (:background "dark slate gray" :foreground "gainsboro")))) - (region ((t (:background "lavender")))) - (secondary-selection ((t (:background "paleturquoise")))) - (sgml-comment-face ((t (:foreground "dark green")))) - (sgml-doctype-face ((t (:foreground "maroon")))) - (sgml-end-tag-face ((t (:foreground "blue2")))) - (sgml-entity-face ((t (:foreground "red2")))) - (sgml-ignored-face ((t (:background "gray90" :foreground "maroon")))) - (sgml-ms-end-face ((t (:foreground "maroon")))) - (sgml-ms-start-face ((t (:foreground "maroon")))) - (sgml-pi-face ((t (:foreground "maroon")))) - (sgml-sgml-face ((t (:foreground "maroon")))) - (sgml-short-ref-face ((t (:foreground "goldenrod")))) - (sgml-start-tag-face ((t (:foreground "blue2")))) - (show-paren-match-face ((t (:background "SlateGray1")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "dark turquoise" :foreground "white")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (underline ((t (:underline t))))))) - -(defun color-theme-montz () - "Color theme by Brady Montz, created 2001-03-08. -Black on Gray. -Includes dired, bbdb, font-lock, gnus, message, viper, and widget." - (interactive) - (color-theme-install - '(color-theme-montz - ((background-color . "gray80") - (background-mode . light) - (background-toolbar-color . "#cccccccccccc") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#7a7a7a7a7a7a") - (cursor-color . "Red3") - (foreground-color . "black") - (top-toolbar-shadow-color . "#f5f5f5f5f5f5") - (viper-saved-cursor-color-in-replace-mode . "Red3")) - ((gnus-mouse-face . highlight) - (paren-match-face . paren-face-match) - (paren-mismatch-face . paren-face-mismatch) - (paren-no-match-face . paren-face-no-match) - (smiley-mouse-face . highlight)) - (default ((t (nil)))) - (bbdb-company ((t (:italic t)))) - (bbdb-field-name ((t (:bold t)))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (:underline t)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (nil)))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t)))) - (dired-face-executable ((t (:foreground "SeaGreen")))) - (dired-face-flagged ((t (:background "LightSlateGray")))) - (dired-face-marked ((t (:background "PaleVioletRed")))) - (dired-face-permissions ((t (:background "grey75" :foreground "black")))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (dired-face-symlink ((t (:foreground "cyan")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (font-lock-builtin-face ((t (:foreground "red3")))) - (font-lock-comment-face ((t (:foreground "blue")))) - (font-lock-constant-face ((t (:foreground "red3")))) - (font-lock-doc-string-face ((t (:foreground "mediumvioletred")))) - (font-lock-function-name-face ((t (:foreground "firebrick")))) - (font-lock-keyword-face ((t (:bold t :foreground "black")))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:foreground "mediumvioletred")))) - (font-lock-type-face ((t (:foreground "darkgreen")))) - (font-lock-variable-name-face ((t (:foreground "black")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4")))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-picons-face ((t (:background "white" :foreground "black")))) - (gnus-picons-xbm-face ((t (:background "white" :foreground "black")))) - (gnus-signature-face ((t (:italic t)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-x-face ((t (:background "white" :foreground "black")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (nil)))) - (highlight ((t (:background "darkseagreen2")))) - (info-node ((t (:bold t)))) - (info-xref ((t (:bold t)))) - (isearch ((t (:background "paleturquoise")))) - (italic ((t (:italic t)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68" :foreground "black")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (nil)))) - (modeline-buffer-id ((t (:background "Gray80" :foreground "blue4")))) - (modeline-mousable ((t (:background "Gray80" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "Gray80" :foreground "green4")))) - (paren-face-match ((t (:background "turquoise")))) - (paren-face-mismatch ((t (:background "purple" :foreground "white")))) - (paren-face-no-match ((t (:background "yellow" :foreground "black")))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (text-cursor ((t (:background "Red3" :foreground "gray80")))) - (toolbar ((t (nil)))) - (underline ((t (:underline t)))) - (vertical-divider ((t (nil)))) - (viper-minibuffer-emacs-face ((t (:background "gray80" :foreground "black")))) - (viper-minibuffer-insert-face ((t (:background "gray80" :foreground "black")))) - (viper-minibuffer-vi-face ((t (:background "gray80" :foreground "black")))) - (viper-replace-overlay-face ((t (:background "black" :foreground "white")))) - (viper-search-face ((t (:background "black" :foreground "white")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "black" :foreground "white"))))))) - -(defun color-theme-aalto-light () - "Color theme by Jari Aalto, created 2001-03-08. -Black on light yellow. -Used for Win32 on a Nokia446Xpro monitor. -Includes cvs, font-lock, gnus, message, sgml, widget" - (interactive) - (color-theme-install - '(color-theme-aalto-light - ((background-color . "#FFFFE0") - (background-mode . light) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "black") - (mouse-color . "LawnGreen")) - ((gnus-mouse-face . highlight) - (list-matching-lines-face . bold) - (tinyreplace-:face . highlight) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (calendar-today-face ((t (:underline t)))) - (cvs-filename-face ((t (:foreground "blue4")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:bold t :foreground "blue4")))) - (cvs-marked-face ((t (:bold t :foreground "green3")))) - (cvs-msg-face ((t (:italic t)))) - (cvs-need-action-face ((t (:foreground "orange")))) - (cvs-unknown-face ((t (:foreground "red")))) - (diary-face ((t (:foreground "red")))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-test-ok-face ((t (:bold t :foreground "Green")))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:foreground "Firebrick")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-function-name-face ((t (:foreground "Blue")))) - (font-lock-keyword-face ((t (:foreground "Purple")))) - (font-lock-string-face ((t (:foreground "RosyBrown")))) - (font-lock-type-face ((t (:foreground "ForestGreen")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4")))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-signature-face ((t (:italic t)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (highlight ((t (:background "darkseagreen2")))) - (holiday-face ((t (:background "pink")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (italic ((t (:italic t)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "black" :foreground "white")))) - (modeline-buffer-id ((t (:background "black" :foreground "white")))) - (modeline-mousable ((t (:background "black" :foreground "white")))) - (modeline-mousable-minor-mode ((t (:background "black" :foreground "white")))) - (region ((t (:background "gray")))) - (secondary-selection ((t (:background "paleturquoise")))) - (sgml-comment-face ((t (:foreground "dark turquoise")))) - (sgml-doctype-face ((t (:foreground "red")))) - (sgml-end-tag-face ((t (:foreground "blue")))) - (sgml-entity-face ((t (:foreground "magenta")))) - (sgml-ignored-face ((t (:background "gray60" :foreground "gray40")))) - (sgml-ms-end-face ((t (:foreground "green")))) - (sgml-ms-start-face ((t (:foreground "green")))) - (sgml-pi-face ((t (:foreground "lime green")))) - (sgml-sgml-face ((t (:foreground "brown")))) - (sgml-short-ref-face ((t (:foreground "deep sky blue")))) - (sgml-start-tag-face ((t (:foreground "blue")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (underline ((t (:underline t)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85"))))))) - -(defun color-theme-aalto-dark () - "Color theme by Jari Aalto, created 2001-03-08. -White on Deep Sky Blue 3. -Used for Unix Exceed on a Nokia446Xpro monitor. -Includes font-lock, info, and message." - (interactive) - (color-theme-install - '(color-theme-aalto-dark - ((background-color . "DeepSkyBlue3") - (background-mode . dark) - (border-color . "black") - (cursor-color . "yellow") - (foreground-color . "white") - (mouse-color . "black")) - ((ispell-highlight-face . highlight) - (list-matching-lines-face . bold) - (tinyreplace-:face . highlight) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t :background "blue3" :foreground "white")))) - (bold-italic ((t (:italic t :bold t :foreground "blue3")))) - (calendar-today-face ((t (:underline t)))) - (diary-face ((t (:foreground "red")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:foreground "OrangeRed")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-function-name-face ((t (:foreground "LightSkyBlue")))) - (font-lock-keyword-face ((t (:foreground "Cyan")))) - (font-lock-string-face ((t (:foreground "LightSalmon")))) - (font-lock-type-face ((t (:foreground "PaleGreen")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (highlight ((t (:background "blue3" :foreground "white")))) - (holiday-face ((t (:background "pink")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (italic ((t (:italic t :background "gray")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "green4")))) - (message-header-name-face ((t (:foreground "DarkGreen")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow")))) - (message-header-other-face ((t (:foreground "#b00000")))) - (message-header-subject-face ((t (:foreground "green3")))) - (message-header-to-face ((t (:bold t :foreground "green2")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "blue3")))) - (modeline ((t (:background "white" :foreground "DeepSkyBlue3")))) - (modeline-buffer-id ((t (:background "white" :foreground "DeepSkyBlue3")))) - (modeline-mousable ((t (:background "white" :foreground "DeepSkyBlue3")))) - (modeline-mousable-minor-mode ((t (:background "white" :foreground "DeepSkyBlue3")))) - (region ((t (:background "gray")))) - (secondary-selection ((t (:background "darkslateblue")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (underline ((t (:underline t))))))) - -(defun color-theme-blippblopp () - "Color theme by Thomas Sicheritz-Ponten, created 2001-03-12. -Used by researchers at Uppsala University and the Center for Biological -Sequence Analysis at the Technical University of Denmark. (As some of my -swedish friends couldn't pronounce Sicheritz - they choose to transform -it to something more \"swedish\": Blippblopp :-) -Includes font-lock and message." - (interactive) - (color-theme-install - '(color-theme-blippblopp - ((background-color . "white") - (background-mode . light) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (cursor-color . "Red3") - (foreground-color . "black") - (mouse-color . "black") - (top-toolbar-shadow-color . "#fffffbeeffff") - (viper-saved-cursor-color-in-replace-mode . "Red3")) - ((ispell-highlight-face . highlight)) - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (excerpt ((t (:italic t)))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue")))) - (fg:black ((t (:foreground "black")))) - (fixed ((t (:bold t)))) - (font-lock-builtin-face ((t (:foreground "red3")))) - (font-lock-comment-face ((t (:foreground "orange")))) - (font-lock-constant-face ((t (:foreground "red3")))) - (font-lock-doc-string-face ((t (:foreground "darkgreen")))) - (font-lock-exit-face ((t (:foreground "green")))) - (font-lock-function-name-face ((t (:bold t :foreground "red")))) - (font-lock-keyword-face ((t (:bold t :foreground "steelblue")))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:foreground "green4")))) - (font-lock-type-face ((t (:bold t :foreground "blue")))) - (font-lock-variable-name-face ((t (:foreground "black")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (green ((t (:foreground "green")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "dimgray" :foreground "lemonchiffon")))) - (modeline-buffer-id ((t (:background "dimgray" :foreground "green3")))) - (modeline-mousable ((t (:background "dimgray" :foreground "orange")))) - (modeline-mousable-minor-mode ((t (:background "dimgray" :foreground "blue4")))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "gray65")))) - (secondary-selection ((t (:background "paleturquoise")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (text-cursor ((t (:background "Red3" :foreground "white")))) - (toolbar ((t (:background "Gray80")))) - (underline ((t (:underline t)))) - (vcursor ((t (:underline t :background "cyan" :foreground "blue")))) - (vertical-divider ((t (:background "Gray80")))) - (xref-keyword-face ((t (:foreground "blue")))) - (xref-list-pilot-face ((t (:foreground "navy")))) - (xref-list-symbol-face ((t (:foreground "navy")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "gray65"))))))) - -(defun color-theme-hober (&optional preview) - "Does all sorts of crazy stuff. -Originally based on color-theme-standard, so I probably still have some -setting that I haven't changed. I also liberally copied settings from -the other themes in this package. The end result isn't much like the -other ones; I hope you like it." - (interactive) - (color-theme-install - '(color-theme-hober - ((foreground-color . "#c0c0c0") - (background-color . "black") - (mouse-color . "black") - (cursor-color . "medium turquoise") - (border-color . "black") - (background-mode . dark)) - (default ((t (nil)))) - (modeline ((t (:foreground "white" :background "darkslateblue")))) - (modeline-buffer-id ((t (:foreground "white" :background "darkslateblue")))) - (modeline-mousable ((t (:foreground "white" :background "darkslateblue")))) - (modeline-mousable-minor-mode ((t (:foreground "white" :background "darkslateblue")))) - (highlight ((t (:foreground "black" :background "#c0c0c0")))) - (bold ((t (:bold t)))) - (italic ((t (:italic t)))) - (bold-italic ((t (:bold t :italic t)))) - (region ((t (:foreground "white" :background "darkslateblue")))) - (zmacs-region ((t (:foreground "white" :background "darkslateblue")))) - (secondary-selection ((t (:background "paleturquoise")))) - (underline ((t (:underline t)))) - (diary-face ((t (:foreground "red")))) - (calendar-today-face ((t (:underline t)))) - (holiday-face ((t (:background "pink")))) - (widget-documentation-face ((t (:foreground "dark green" :background "white")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red" :background "black")))) - (widget-field-face ((t (:background "gray85" :foreground "black")))) - (widget-single-line-field-face ((t (:background "gray85" :foreground "black")))) - (widget-inactive-face ((t (:foreground "dim gray" :background "red")))) - (fixed ((t (:bold t)))) - (excerpt ((t (:italic t)))) - (term-default-fg ((t (nil)))) - (term-default-bg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-bold ((t (:bold t)))) - (term-underline ((t (:underline t)))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-white ((t (:foreground "#c0c0c0")))) - (term-whitebg ((t (:background "#c0c0c0")))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (:background "black")))) - (term-red ((t (:foreground "#ef8171")))) - (term-redbg ((t (:background "#ef8171")))) - (term-green ((t (:foreground "#e5f779")))) - (term-greenbg ((t (:background "#e5f779")))) - (term-yellow ((t (:foreground "#fff796")))) - (term-yellowbg ((t (:background "#fff796")))) - (term-blue ((t (:foreground "#4186be")))) - (term-bluebg ((t (:background "#4186be")))) - (term-magenta ((t (:foreground "#ef9ebe")))) - (term-magentabg ((t (:background "#ef9ebe")))) - (term-cyan ((t (:foreground "#71bebe")))) - (term-cyanbg ((t (:background "#71bebe")))) - (font-lock-keyword-face ((t (:foreground "#00ffff")))) - (font-lock-comment-face ((t (:foreground "Red")))) - (font-lock-string-face ((t (:foreground "#ffff00")))) - (font-lock-constant-face ((t (:foreground "#00ff00")))) - (font-lock-builtin-face ((t (:foreground "#ffaa00")))) - (font-lock-type-face ((t (:foreground "Coral")))) - (font-lock-warning-face ((t (:foreground "Red" :bold t)))) - (font-lock-function-name-face ((t (:foreground "#4186be")))) - (font-lock-variable-name-face ((t (:foreground "white" :bold t)))) - (message-header-to-face ((t (:foreground "#4186be" :bold t)))) - (message-header-cc-face ((t (:foreground "#4186be")))) - (message-header-subject-face ((t (:foreground "#4186be" :bold t)))) - (message-header-newsgroups-face ((t (:foreground "Coral" :bold t)))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-name-face ((t (:foreground "white")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-separator-face ((t (:foreground "brown")))) - (message-cited-text-face ((t (:foreground "white")))) - (gnus-header-from-face ((t (:foreground "Coral")))) - (gnus-header-subject-face ((t (:foreground "#4186be")))) - (gnus-header-newsgroups-face ((t (:foreground "#4186be" :italic t)))) - (gnus-header-name-face ((t (:foreground "white")))) - (gnus-header-content-face ((t (:foreground "#4186be" :italic t)))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-list ((t (:bold nil :foreground "red")))) - (gnus-group-news-1-face ((t (:foreground "ForestGreen" :bold t)))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-2-face ((t (:foreground "CadetBlue4" :bold t)))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-low-face ((t (:foreground "DarkGreen" :bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-mail-1-face ((t (:foreground "DeepPink3" :bold t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-2-face ((t (:foreground "HotPink3" :bold t)))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-3-face ((t (:foreground "magenta4" :bold t)))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-low-face ((t (:foreground "DeepPink4" :bold t)))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-summary-cancelled-face ((t (:foreground "yellow" :background "black")))) - (gnus-summary-high-ticked-face ((t (:foreground "firebrick" :bold t)))) - (gnus-summary-low-ticked-face ((t (:foreground "firebrick" :italic t)))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-high-ancient-face ((t (:foreground "RoyalBlue" :bold t)))) - (gnus-summary-low-ancient-face ((t (:foreground "RoyalBlue" :italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-high-read-face ((t (:foreground "DarkGreen" :bold t)))) - (gnus-summary-low-read-face ((t (:foreground "DarkGreen" :italic t)))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t)))) - (gnus-emphasis-bold-italic ((t (:bold t :italic t)))) - (gnus-emphasis-underline-bold-italic ((t (:bold t :italic t :underline t)))) - (gnus-signature-face ((t (:foreground "white")))) - (gnus-cite-face-1 ((t (:foreground "Khaki")))) - (gnus-cite-face-2 ((t (:foreground "Coral")))) - (gnus-cite-face-3 ((t (:foreground "#4186be")))) - (gnus-cite-face-4 ((t (:foreground "yellow green")))) - (gnus-cite-face-5 ((t (:foreground "IndianRed")))) - (highlight-changes-face ((t (:foreground "red")))) - (highlight-changes-delete-face ((t (:foreground "red" :underline t)))) - (show-paren-match-face ((t (:foreground "white" :background "purple")))) - (show-paren-mismatch-face ((t (:foreground "white" :background "red")))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (cperl-array-face ((t (:foreground "Blue" :bold t :background "lightyellow2")))) - (cperl-hash-face ((t (:foreground "Red" :bold t :italic t :background "lightyellow2")))) - (makefile-space-face ((t (:background "hotpink")))) - (sgml-start-tag-face ((t (:foreground "mediumspringgreen")))) - (sgml-ignored-face ((t (:foreground "gray20" :background "gray60")))) - (sgml-doctype-face ((t (:foreground "orange")))) - (sgml-sgml-face ((t (:foreground "yellow")))) - (sgml-end-tag-face ((t (:foreground "greenyellow")))) - (sgml-entity-face ((t (:foreground "gold")))) - (flyspell-incorrect-face ((t (:foreground "OrangeRed" :bold t :underline t)))) - (flyspell-duplicate-face ((t (:foreground "Gold3" :bold t :underline t))))))) - -(defun color-theme-bharadwaj () - "Color theme by Girish Bharadwaj, created 2001-03-28. -Black on gainsboro. Includes BBDB, custom, cperl, cvs, dired, ediff, -erc, eshell, font-latex, font-lock, gnus, info, message, paren, sgml, -shell, speedbar, term, vhdl, viper, widget, woman, xref. Wow!" - (interactive) - (color-theme-install - '(color-theme-bharadwaj - ((background-color . "gainsboro") - (background-mode . light) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "black") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (cursor-color . "grey15") - (foreground-color . "black") - (mouse-color . "grey15") - (top-toolbar-shadow-color . "#fffffbeeffff") - (viper-saved-cursor-color-in-replace-mode . "Red3")) - ((gnus-mouse-face . highlight) - (smiley-mouse-face . highlight)) - (default ((t (nil)))) - (bbdb-company ((t (nil)))) - (bbdb-field-name ((t (:bold t)))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (:underline t)))) - (blank-space-face ((t (nil)))) - (blank-tab-face ((t (nil)))) - (blue ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:bold t)))) - (border-glyph ((t (nil)))) - (calendar-today-face ((t (:underline t)))) - (comint-input-face ((t (:foreground "deepskyblue")))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue")))) - (cperl-hash-face ((t (:bold t :background "lightyellow2" :foreground "Red")))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (custom-button-face ((t (:bold t)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :bold t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :bold t :foreground "blue")))) - (cvs-filename-face ((t (:foreground "blue4")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:bold t :foreground "blue4")))) - (cvs-marked-face ((t (:bold t :foreground "green3")))) - (cvs-msg-face ((t (nil)))) - (cvs-need-action-face ((t (:foreground "orange")))) - (cvs-unknown-face ((t (:foreground "red")))) - (diary-face ((t (:bold t :foreground "red")))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t :foreground "forestgreen")))) - (dired-face-executable ((t (:foreground "indianred")))) - (dired-face-flagged ((t (:background "SlateGray")))) - (dired-face-marked ((t (:background "darkblue" :foreground "deepskyblue")))) - (dired-face-permissions ((t (nil)))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (dired-face-symlink ((t (:foreground "grey95")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (erc-action-face ((t (:bold t)))) - (erc-bold-face ((t (:bold t)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (nil)))) - (erc-error-face ((t (:bold t)))) - (erc-input-face ((t (nil)))) - (erc-inverse-face ((t (nil)))) - (erc-notice-face ((t (nil)))) - (erc-pal-face ((t (nil)))) - (erc-prompt-face ((t (nil)))) - (erc-underline-face ((t (nil)))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid")))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-ls-directory-face ((t (:bold t :foreground "Blue")))) - (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen")))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red")))) - (eshell-ls-picture-face ((t (nil)))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta")))) - (eshell-ls-symlink-face ((t (:bold t :foreground "DarkCyan")))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:bold t :foreground "Red")))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-test-ok-face ((t (:bold t :foreground "Green")))) - (excerpt ((t (nil)))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue")))) - (fg:black ((t (:foreground "black")))) - (fixed ((t (:bold t)))) - (flyspell-duplicate-face ((t (:underline t :bold t :foreground "Gold3")))) - (flyspell-incorrect-face ((t (:underline t :bold t :foreground "OrangeRed")))) - (font-latex-bold-face ((t (nil)))) - (font-latex-italic-face ((t (nil)))) - (font-latex-math-face ((t (nil)))) - (font-latex-sedate-face ((t (nil)))) - (font-latex-string-face ((t (nil)))) - (font-latex-warning-face ((t (nil)))) - (font-lock-builtin-face ((t (:foreground "ForestGreen")))) - (font-lock-comment-face ((t (:foreground "grey55")))) - (font-lock-constant-face ((t (:foreground "OliveDrab")))) - (font-lock-doc-string-face ((t (:bold t :foreground "blue4")))) - (font-lock-exit-face ((t (nil)))) - (font-lock-function-name-face ((t (:italic t :bold t :foreground "SlateBlue")))) - (font-lock-keyword-face ((t (:foreground "DarkBlue")))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:foreground "DarkRed")))) - (font-lock-type-face ((t (:foreground "SteelBlue4")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "VioletRed")))) - (fringe ((t (:background "grey95")))) - (gnus-cite-attribution-face ((t (:bold t)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:bold t)))) - (gnus-emphasis-highlight-words ((t (nil)))) - (gnus-emphasis-italic ((t (nil)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t)))) - (gnus-filterhist-face-1 ((t (nil)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:foreground "indianred4")))) - (gnus-header-from-face ((t (:bold t :foreground "red3")))) - (gnus-header-name-face ((t (:bold t :foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:bold t :foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:bold t :foreground "red4")))) - (gnus-picons-face ((t (:background "white" :foreground "black")))) - (gnus-picons-xbm-face ((t (:background "white" :foreground "black")))) - (gnus-signature-face ((t (nil)))) - (gnus-splash ((t (nil)))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (nil)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (:bold t)))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-x-face ((t (:background "white" :foreground "black")))) - (green ((t (nil)))) - (gui-button-face ((t (:background "grey75")))) - (gui-element ((t (:background "Gray80")))) - (highlight ((t (:background "LightSkyBlue")))) - (highlight-changes-delete-face ((t (:underline t :foreground "red")))) - (highlight-changes-face ((t (:foreground "red")))) - (highline-face ((t (:background "grey95")))) - (holiday-face ((t (:background "pink")))) - (html-helper-italic-face ((t (nil)))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:bold t)))) - (info-xref ((t (:bold t)))) - (isearch ((t (:background "yellow")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (nil)))) - (lazy-highlight-face ((t (:bold t :foreground "dark magenta")))) - (left-margin ((t (nil)))) - (linemenu-face ((t (nil)))) - (list-mode-item-selected ((t (nil)))) - (makefile-space-face ((t (:background "hotpink")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:bold t)))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "white" :foreground "black")))) - (modeline-buffer-id ((t (:background "white" :foreground "black")))) - (modeline-mousable ((t (:background "white" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "white" :foreground "black")))) - (paren-blink-off ((t (:foreground "gray80")))) - (paren-face-match ((t (:background "turquoise")))) - (paren-face-mismatch ((t (:background "purple" :foreground "white")))) - (paren-face-no-match ((t (:background "yellow" :foreground "black")))) - (paren-match ((t (:background "darkseagreen2")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "black")))) - (paren-mismatch-face ((t (:bold t)))) - (paren-no-match-face ((t (:bold t)))) - (pointer ((t (nil)))) - (primary-selection ((t (nil)))) - (red ((t (nil)))) - (region ((t (:background "grey80")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "grey55")))) - (sgml-comment-face ((t (:foreground "dark turquoise")))) - (sgml-doctype-face ((t (nil)))) - (sgml-end-tag-face ((t (nil)))) - (sgml-entity-face ((t (nil)))) - (sgml-ignored-face ((t (nil)))) - (sgml-ms-end-face ((t (:foreground "green")))) - (sgml-ms-start-face ((t (:foreground "green")))) - (sgml-pi-face ((t (:foreground "lime green")))) - (sgml-sgml-face ((t (nil)))) - (sgml-short-ref-face ((t (:foreground "deep sky blue")))) - (sgml-start-tag-face ((t (nil)))) - (shell-option-face ((t (:foreground "blue")))) - (shell-output-2-face ((t (:foreground "darkseagreen")))) - (shell-output-3-face ((t (:foreground "slategrey")))) - (shell-output-face ((t (:foreground "palegreen")))) - (shell-prompt-face ((t (:foreground "red")))) - (show-paren-match-face ((t (:background "grey80")))) - (show-paren-mismatch-face ((t (:bold t :background "purple" :foreground "white")))) - (speedbar-button-face ((t (:bold t :foreground "green4")))) - (speedbar-directory-face ((t (:bold t :foreground "blue4")))) - (speedbar-file-face ((t (:bold t :foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (swbuff-current-buffer-face ((t (:bold t)))) - (template-message-face ((t (:bold t)))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (:background "black")))) - (term-blue ((t (:foreground "blue")))) - (term-bluebg ((t (:background "blue")))) - (term-bold ((t (:bold t)))) - (term-cyan ((t (:foreground "cyan")))) - (term-cyanbg ((t (:background "cyan")))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-green ((t (:foreground "green")))) - (term-greenbg ((t (:background "green")))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (:foreground "magenta")))) - (term-magentabg ((t (:background "magenta")))) - (term-red ((t (:foreground "red")))) - (term-redbg ((t (:background "red")))) - (term-underline ((t (:underline t)))) - (term-white ((t (:foreground "white")))) - (term-whitebg ((t (:background "white")))) - (term-yellow ((t (:foreground "yellow")))) - (term-yellowbg ((t (:background "yellow")))) - (text-cursor ((t (:background "grey15" :foreground "gainsboro")))) - (toolbar ((t (nil)))) - (underline ((t (:underline t)))) - (vc-annotate-face-0046FF ((t (nil)))) - (vcursor ((t (:underline t :background "cyan" :foreground "blue")))) - (vertical-divider ((t (nil)))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red")))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange")))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue")))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod")))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen")))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown")))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Grey50")))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (vvb-face ((t (:background "pink" :foreground "black")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "navy" :foreground "white")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "royalblue" :foreground "white")))) - (woman-bold-face ((t (:bold t)))) - (woman-italic-face ((t (nil)))) - (woman-unknown-face ((t (nil)))) - (xref-keyword-face ((t (:foreground "blue")))) - (xref-list-pilot-face ((t (:foreground "navy")))) - (xref-list-symbol-face ((t (:foreground "navy")))) - (yellow ((t (nil)))) - (zmacs-region ((t (:background "royalblue"))))))) - -(defun color-theme-oswald () - "Color theme by Tom Oswald, created 2001-04-18. -Green on black, includes font-lock, show-paren, and ediff." - (interactive) - (color-theme-install - '(color-theme-oswald - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "green") - (mouse-color . "black")) - ((blank-space-face . blank-space-face) - (blank-tab-face . blank-tab-face) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (blank-space-face ((t (:background "LightGray")))) - (blank-tab-face ((t (:background "green" :foreground "black")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (font-lock-builtin-face ((t (:italic t :bold t :foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:italic t :foreground "LightGoldenrod4")))) - (font-lock-constant-face ((t (:italic t :foreground "HotPink")))) - (font-lock-doc-string-face ((t (:italic t :foreground "orange")))) - (font-lock-function-name-face ((t (:italic t :bold t :foreground "red")))) - (font-lock-keyword-face ((t (:foreground "red")))) - (font-lock-preprocessor-face ((t (:italic t :foreground "HotPink")))) - (font-lock-string-face ((t (:italic t :foreground "orange")))) - (font-lock-reference-face ((t (:italic t :bold t :foreground "LightSteelBlue")))) - (font-lock-type-face ((t (:italic t :foreground "LightSlateBlue")))) - (font-lock-variable-name-face ((t (:underline t :foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (highlight ((t (:background "yellow" :foreground "red")))) - (isearch ((t (:background "dim gray" :foreground "aquamarine")))) - (ispell-face ((t (:bold t :background "#3454b4" :foreground "yellow")))) - (italic ((t (:italic t)))) - (modeline ((t (:background "green" :foreground "black")))) - (modeline-buffer-id ((t (:background "green" :foreground "black")))) - (modeline-mousable ((t (:background "green" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "green" :foreground "black")))) - (region ((t (:background "dim gray" :foreground "aquamarine")))) - (secondary-selection ((t (:background "darkslateblue" :foreground "light goldenrod")))) - (show-paren-match-face ((t (:background "turquoise" :foreground "black")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (underline ((t (:underline t)))) - (zmacs-region ((t (:background "dim gray" :foreground "aquamarine"))))))) - -(defun color-theme-salmon-diff () - "Salmon and aquamarine faces for diff and change-log modes. -This is intended for other color themes to use (eg. `color-theme-gnome2')." - (color-theme-install - '(color-theme-salmon-diff - nil - (change-log-acknowledgement-face ((t (:foreground "LightBlue")))) - (change-log-conditionals-face ((t (:bold t :weight bold :foreground "Aquamarine")))) - (change-log-date-face ((t (:foreground "LightSalmon")))) - (change-log-email-face ((t (:bold t :weight bold :foreground "Aquamarine")))) - (change-log-file-face ((t (:bold t :weight bold :foreground "Aquamarine")))) - (change-log-function-face ((t (:bold t :weight bold :foreground "Aquamarine")))) - (change-log-list-face ((t (:foreground "Salmon")))) - (change-log-name-face ((t (:foreground "Aquamarine")))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (:foreground "grey70")))) - (diff-file-header-face ((t (:bold t)))) - (diff-function-face ((t (:foreground "grey70")))) - (diff-header-face ((t (:foreground "light salmon")))) - (diff-hunk-header-face ((t (:foreground "light salmon")))) - (diff-index-face ((t (:bold t)))) - (diff-nonexistent-face ((t (:bold t)))) - (diff-removed-face ((t (nil)))) - (log-view-message-face ((t (:foreground "light salmon"))))))) - -(defun color-theme-robin-hood () - "`color-theme-gnome2' with navajo white on green. -This theme tries to avoid underlined and italic faces, because -the fonts either look ugly, or do not exist. The author himself -uses neep, for example." - (interactive) - (color-theme-gnome2) - (let ((color-theme-is-cumulative t)) - (color-theme-install - '(color-theme-robin-hood - ((foreground-color . "navajo white") - (background-color . "#304020")) - ((CUA-mode-read-only-cursor-color . "white") - (help-highlight-face . info-xref) - (list-matching-lines-buffer-name-face . bold)) - (default ((t (nil)))) - (button ((t (:bold t)))) - (calendar-today-face ((t (:foreground "lemon chiffon")))) - (custom-button-face ((t (:bold t :foreground "DodgerBlue1")))) - (diary-face ((t (:bold t :foreground "yellow")))) - (fringe ((t (:background "#003700")))) - (header-line ((t (:background "#030" :foreground "#AA7")))) - (holiday-face ((t (:bold t :foreground "peru")))) - (ido-subdir-face ((t (:foreground "MediumSlateBlue")))) - (isearch ((t (:foreground "pink" :background "red")))) - (isearch-lazy-highlight-face ((t (:foreground "red")))) - (menu ((t (:background "#304020" :foreground "navajo white")))) - (minibuffer-prompt ((t (:foreground "pale green")))) - (modeline ((t (:background "dark olive green" :foreground "wheat" :box (:line-width 1 :style released-button))))) - (mode-line-inactive ((t (:background "dark olive green" :foreground "khaki" :box (:line-width 1 :style released-button))))) - (semantic-dirty-token-face ((t (:background "grey22")))) - (tool-bar ((t (:background "#304020" :foreground "wheat" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lemon chiffon" :foreground "black")))))))) - -(defun color-theme-snowish () - "Color theme by Girish Bharadwaj, created 2001-05-17. -Dark slate gray on snow2, lots of blue colors. -Includes custom, eshell, font-lock, gnus, html-helper, -hyper-apropos, jde, message, paren, semantic, speedbar, -term, widget." - (interactive) - (color-theme-install - '(color-theme-snowish - ((background-color . "snow2") - (background-mode . light) - (cursor-color . "Red3") - (foreground-color . "darkslategray")) - ((buffers-tab-face . buffers-tab) - (gnus-mouse-face . highlight) - (sgml-set-face . t) - (smiley-mouse-face . highlight)) - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t :foreground "peru")))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (nil)))) - (buffers-tab ((t (:background "snow2" :foreground "darkslategray")))) - (custom-button-face ((t (:bold t)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "gray85")))) - (custom-comment-tag-face ((t (:foreground "blue4")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (cyan ((t (:foreground "cyan")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid")))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-ls-directory-face ((t (:bold t :foreground "Blue")))) - (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen")))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red")))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta")))) - (eshell-ls-symlink-face ((t (:bold t :foreground "Dark Cyan")))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:bold t :foreground "Red")))) - (font-lock-builtin-face ((t (:underline t :foreground "blue")))) - (font-lock-comment-face ((t (:foreground "snow4")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-doc-string-face ((t (:foreground "mediumblue")))) - (font-lock-function-name-face ((t (:bold t :foreground "darkblue")))) - (font-lock-keyword-face ((t (:bold t :foreground "dodgerblue")))) - (font-lock-preprocessor-face ((t (:underline t :foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:foreground "darkviolet")))) - (font-lock-type-face ((t (:foreground "goldenrod")))) - (font-lock-variable-name-face ((t (:foreground "tomato")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (gnus-cite-attribution-face ((t (nil)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (nil)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (nil)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t)))) - (gnus-emphasis-underline-italic ((t (:underline t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:foreground "indianred4")))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-picons-face ((t (:background "white" :foreground "black")))) - (gnus-picons-xbm-face ((t (:background "white" :foreground "black")))) - (gnus-signature-face ((t (nil)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (nil)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-x-face ((t (:background "white" :foreground "black")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:background "#D4D0C8" :foreground "black")))) - (highlight ((t (:background "darkseagreen2")))) - (html-helper-bold-face ((t (:bold t)))) - (html-helper-bold-italic-face ((t (nil)))) - (html-helper-builtin-face ((t (:underline t :foreground "blue3")))) - (html-helper-italic-face ((t (:foreground "medium sea green")))) - (html-helper-underline-face ((t (:underline t)))) - (html-tag-face ((t (:bold t)))) - (hyper-apropos-documentation ((t (:foreground "darkred")))) - (hyper-apropos-heading ((t (:bold t)))) - (hyper-apropos-hyperlink ((t (:foreground "blue4")))) - (hyper-apropos-major-heading ((t (:bold t)))) - (hyper-apropos-section-heading ((t (nil)))) - (hyper-apropos-warning ((t (:bold t :foreground "red")))) - (info-menu-6 ((t (nil)))) - (isearch ((t (:background "paleturquoise")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (nil)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-bug-breakpoint-marker ((t (:background "yellow" :foreground "red")))) - (jde-java-font-lock-link-face ((t (:underline t :foreground "blue")))) - (jde-java-font-lock-number-face ((t (:foreground "RosyBrown")))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68" :foreground "darkslategray")))) - (magenta ((t (:foreground "magenta")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (nil)))) - (modeline-buffer-id ((t (:background "#D4D0C8" :foreground "blue4")))) - (modeline-mousable ((t (:background "#D4D0C8" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "#D4D0C8" :foreground "green4")))) - (paren-blink-off ((t (:foreground "snow2")))) - (paren-match ((t (:background "darkseagreen2")))) - (paren-mismatch ((t (:background "snow2" :foreground "darkslategray")))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (semantic-intangible-face ((t (:foreground "gray25")))) - (semantic-read-only-face ((t (:background "gray25")))) - (senator-momentary-highlight-face ((t (:background "gray70")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (template-message-face ((t (:bold t)))) - (term-blue-bold-face ((t (:bold t :background "snow2" :foreground "blue")))) - (term-blue-face ((t (:foreground "blue")))) - (term-blue-inv-face ((t (:background "blue")))) - (term-blue-ul-face ((t (:underline t :background "snow2" :foreground "blue")))) - (term-cyan-bold-face ((t (:bold t :background "snow2" :foreground "cyan")))) - (term-cyan-face ((t (:foreground "cyan")))) - (term-cyan-inv-face ((t (:background "cyan")))) - (term-cyan-ul-face ((t (:underline t :background "snow2" :foreground "cyan")))) - (term-default-bold-face ((t (:bold t :background "snow2" :foreground "darkslategray")))) - (term-default-face ((t (:background "snow2" :foreground "darkslategray")))) - (term-default-inv-face ((t (:background "darkslategray" :foreground "snow2")))) - (term-default-ul-face ((t (:underline t :background "snow2" :foreground "darkslategray")))) - (term-green-bold-face ((t (:bold t :background "snow2" :foreground "green")))) - (term-green-face ((t (:foreground "green")))) - (term-green-inv-face ((t (:background "green")))) - (term-green-ul-face ((t (:underline t :background "snow2" :foreground "green")))) - (term-magenta-bold-face ((t (:bold t :background "snow2" :foreground "magenta")))) - (term-magenta-face ((t (:foreground "magenta")))) - (term-magenta-inv-face ((t (:background "magenta")))) - (term-magenta-ul-face ((t (:underline t :background "snow2" :foreground "magenta")))) - (term-red-bold-face ((t (:bold t :background "snow2" :foreground "red")))) - (term-red-face ((t (:foreground "red")))) - (term-red-inv-face ((t (:background "red")))) - (term-red-ul-face ((t (:underline t :background "snow2" :foreground "red")))) - (term-white-bold-face ((t (:bold t :background "snow2" :foreground "white")))) - (term-white-face ((t (:foreground "white")))) - (term-white-inv-face ((t (:background "snow2")))) - (term-white-ul-face ((t (:underline t :background "snow2" :foreground "white")))) - (term-yellow-bold-face ((t (:bold t :background "snow2" :foreground "yellow")))) - (term-yellow-face ((t (:foreground "yellow")))) - (term-yellow-inv-face ((t (:background "yellow")))) - (term-yellow-ul-face ((t (:underline t :background "snow2" :foreground "yellow")))) - (text-cursor ((t (:background "Red3" :foreground "snow2")))) - (toolbar ((t (nil)))) - (underline ((t (:underline t)))) - (vertical-divider ((t (nil)))) - (white ((t (:foreground "white")))) - (widget ((t (nil)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "gray65"))))))) - -(defun color-theme-dark-laptop () - "Color theme by Laurent Michel, created 2001-05-24. -Includes custom, fl, font-lock, gnus, message, widget." - (interactive) - (color-theme-install - '(color-theme-dark-laptop - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "yellow") - (foreground-color . "white") - (mouse-color . "sienna1")) - ((gnus-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "light blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "pink")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "lime green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "light blue")))) - (fl-comment-face ((t (:foreground "pink")))) - (fl-doc-string-face ((t (:foreground "purple")))) - (fl-function-name-face ((t (:foreground "red")))) - (fl-keyword-face ((t (:foreground "cyan")))) - (fl-string-face ((t (:foreground "green")))) - (fl-type-face ((t (:foreground "yellow")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:foreground "OrangeRed")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-doc-string-face ((t (:foreground "LightSalmon")))) - (font-lock-function-name-face ((t (:foreground "LightSkyBlue")))) - (font-lock-keyword-face ((t (:foreground "Cyan")))) - (font-lock-preprocessor-face ((t (:foreground "Aquamarine")))) - (font-lock-reference-face ((t (:foreground "LightSteelBlue")))) - (font-lock-string-face ((t (:foreground "LightSalmon")))) - (font-lock-type-face ((t (:foreground "PaleGreen")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:bold t :foreground "deep sky blue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:bold t :foreground "cyan")))) - (gnus-cite-face-3 ((t (:bold t :foreground "gold")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:bold t :foreground "chocolate")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1")))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2")))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3")))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4")))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise")))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise")))) - (gnus-header-content-face ((t (:italic t :foreground "forest green")))) - (gnus-header-from-face ((t (:bold t :foreground "spring green")))) - (gnus-header-name-face ((t (:foreground "deep sky blue")))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "purple")))) - (gnus-header-subject-face ((t (:bold t :foreground "orange")))) - (gnus-signature-face ((t (:bold t :foreground "khaki")))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (highlight ((t (:background "darkolivegreen")))) - (italic ((t (:italic t)))) - (message-cited-text-face ((t (:bold t :foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "green4")))) - (message-header-name-face ((t (:bold t :foreground "orange")))) - (message-header-newsgroups-face ((t (:bold t :foreground "violet")))) - (message-header-other-face ((t (:bold t :foreground "chocolate")))) - (message-header-subject-face ((t (:bold t :foreground "yellow")))) - (message-header-to-face ((t (:bold t :foreground "cyan")))) - (message-header-xheader-face ((t (:bold t :foreground "light blue")))) - (message-mml-face ((t (:bold t :background "Green3")))) - (message-separator-face ((t (:foreground "blue3")))) - (modeline ((t (:background "white" :foreground "black")))) - (modeline-buffer-id ((t (:background "white" :foreground "black")))) - (modeline-mousable ((t (:background "white" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "white" :foreground "black")))) - (region ((t (:background "blue")))) - (primary-selection ((t (:background "blue")))) - (isearch ((t (:background "blue")))) - (zmacs-region ((t (:background "blue")))) - (secondary-selection ((t (:background "darkslateblue")))) - (underline ((t (:underline t)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray"))))))) - -(defun color-theme-taming-mr-arneson () - "Color theme by Erik Arneson, created 2001-06-12. -Light sky blue on black. Includes bbdb, cperl, custom, cvs, diff, -dired, font-lock, html-helper, hyper-apropos, info, isearch, man, -message, paren, shell, and widget." - (interactive) - (color-theme-install - '(color-theme-taming-mr-arneson - ((background-color . "black") - (background-mode . light) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (cursor-color . "Red3") - (foreground-color . "LightSkyBlue") - (top-toolbar-shadow-color . "#fffffbeeffff")) - ((buffers-tab-face . buffers-tab) - (cperl-here-face . font-lock-string-face) - (cperl-invalid-face quote default) - (cperl-pod-face . font-lock-comment-face) - (cperl-pod-head-face . font-lock-variable-name-face) - (ispell-highlight-face . highlight) - (vc-mode-face . highlight) - (vm-highlight-url-face . bold-italic) - (vm-highlighted-header-face . bold) - (vm-mime-button-face . gui-button-face) - (vm-summary-highlight-face . bold)) - (default ((t (nil)))) - (bbdb-company ((t (nil)))) - (bbdb-field-name ((t (:bold t)))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (:underline t)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:bold t :foreground "yellow")))) - (border-glyph ((t (nil)))) - (buffers-tab ((t (:background "black" :foreground "LightSkyBlue")))) - (cperl-array-face ((t (:bold t :foreground "SkyBlue2")))) - (cperl-hash-face ((t (:foreground "LightBlue2")))) - (cperl-invalid-face ((t (:foreground "white")))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (custom-button-face ((t (:bold t)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:foreground "white")))) - (custom-comment-tag-face ((t (:foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "white")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (cvs-filename-face ((t (:foreground "white")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:foreground "green")))) - (cvs-marked-face ((t (:bold t :foreground "green3")))) - (cvs-msg-face ((t (:foreground "red")))) - (cvs-need-action-face ((t (:foreground "yellow")))) - (cvs-unknown-face ((t (:foreground "grey")))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-file-header-face ((t (:bold t :background "grey70")))) - (diff-hunk-header-face ((t (:background "grey85")))) - (diff-index-face ((t (:bold t :background "grey70")))) - (diff-removed-face ((t (nil)))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t :foreground "SkyBlue2")))) - (dired-face-executable ((t (:foreground "Green")))) - (dired-face-flagged ((t (:background "LightSlateGray")))) - (dired-face-header ((t (:background "grey75" :foreground "black")))) - (dired-face-marked ((t (:background "PaleVioletRed")))) - (dired-face-permissions ((t (:background "grey75" :foreground "black")))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (dired-face-symlink ((t (:foreground "cyan")))) - (excerpt ((t (nil)))) - (fixed ((t (:bold t)))) - (font-lock-builtin-face ((t (:foreground "red3")))) - (font-lock-comment-face ((t (:foreground "red")))) - (font-lock-constant-face ((t (nil)))) - (font-lock-doc-string-face ((t (:foreground "turquoise")))) - (font-lock-function-name-face ((t (:foreground "white")))) - (font-lock-keyword-face ((t (:foreground "green")))) - (font-lock-preprocessor-face ((t (:foreground "green3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:foreground "turquoise")))) - (font-lock-type-face ((t (:foreground "steelblue")))) - (font-lock-variable-name-face ((t (:foreground "magenta2")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (nil)))) - (highlight ((t (:background "darkseagreen2" :foreground "blue")))) - (html-helper-bold-face ((t (:bold t)))) - (html-helper-italic-face ((t (:bold t :foreground "yellow")))) - (html-helper-underline-face ((t (:underline t)))) - (hyper-apropos-documentation ((t (:foreground "white")))) - (hyper-apropos-heading ((t (:bold t)))) - (hyper-apropos-hyperlink ((t (:foreground "sky blue")))) - (hyper-apropos-major-heading ((t (:bold t)))) - (hyper-apropos-section-heading ((t (:bold t)))) - (hyper-apropos-warning ((t (:bold t :foreground "red")))) - (info-node ((t (:bold t :foreground "yellow")))) - (info-xref ((t (:bold t)))) - (isearch ((t (:background "paleturquoise" :foreground "dark red")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (:bold t :foreground "yellow")))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68" :foreground "dark green")))) - (man-bold ((t (:bold t)))) - (man-heading ((t (:bold t)))) - (man-italic ((t (:foreground "yellow")))) - (man-xref ((t (:underline t)))) - (message-cited-text ((t (:foreground "orange")))) - (message-header-contents ((t (:foreground "white")))) - (message-headers ((t (:bold t :foreground "orange")))) - (message-highlighted-header-contents ((t (:bold t)))) - (message-url ((t (:bold t :foreground "pink")))) - (mmm-face ((t (:background "black" :foreground "green")))) - (modeline ((t (nil)))) - (modeline-buffer-id ((t (:background "Gray80" :foreground "blue4")))) - (modeline-mousable ((t (:background "Gray80" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "Gray80" :foreground "green4")))) - (paren-blink-off ((t (:foreground "gray80")))) - (paren-match ((t (:background "dark blue")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "LightSkyBlue")))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray65" :foreground "DarkBlue")))) - (red ((t (:foreground "red")))) - (region ((t (:background "gray65" :foreground "DarkBlue")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise" :foreground "black")))) - (shell-option-face ((t (:foreground "blue4")))) - (shell-output-2-face ((t (:foreground "green4")))) - (shell-output-3-face ((t (:foreground "green4")))) - (shell-output-face ((t (:bold t)))) - (shell-prompt-face ((t (:foreground "red4")))) - (text-cursor ((t (:background "Red3" :foreground "black")))) - (toolbar ((t (:background "Gray80" :foreground "black")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (nil)))) - (vm-xface ((t (:background "white" :foreground "black")))) - (vmpc-pre-sig-face ((t (:foreground "forestgreen")))) - (vmpc-sig-face ((t (:foreground "steelblue")))) - (widget ((t (nil)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85" :foreground "black")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (x-face ((t (:background "white" :foreground "black")))) - (xrdb-option-name-face ((t (:foreground "red")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "gray65"))))))) - -(defun color-theme-digital-ofs1 () - "Color theme by Gareth Owen, created 2001-06-13. -This works well on an old, beat-up Digital Unix box with its 256 colour -display, on which other color themes hog too much of the palette. -Black on some shade of dark peach. Includes bbdb, cperl, custom, -cvs, diff, dired, ediff, erc, eshell, font-latex, font-lock, gnus, -highlight, hproperty, html-helper, hyper-apropos, info, jde, man, -message, paren, searchm, semantic, sgml, shell, speedbar, term, -vhdl, viper, w3m, widget, woman, x-symbol, xref." - (interactive) - (color-theme-install - '(color-theme-digital-ofs1 - ((background-color . "#CA94AA469193") - (background-mode . light) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "black") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (cursor-color . "Black") - (foreground-color . "Black") - (mouse-color . "Black") - (top-toolbar-shadow-color . "#fffffbeeffff") - (viper-saved-cursor-color-in-replace-mode . "Red3")) - ((Man-overstrike-face . bold) - (Man-underline-face . underline) - (gnus-mouse-face . highlight) - (goto-address-mail-face . italic) - (goto-address-mail-mouse-face . secondary-selection) - (goto-address-url-face . bold) - (goto-address-url-mouse-face . highlight) - (ispell-highlight-face . highlight) - (list-matching-lines-face . bold) - (rmail-highlight-face . font-lock-function-name-face) - (view-highlight-face . highlight)) - (default ((t (:bold t)))) - (bbdb-company ((t (:italic t)))) - (bbdb-field-name ((t (:bold t)))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (:underline t)))) - (blank-space-face ((t (nil)))) - (blank-tab-face ((t (nil)))) - (blue ((t (:bold t :foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (:bold t)))) - (buffers-tab ((t (:background "black" :foreground "LightSkyBlue")))) - (calendar-today-face ((t (:underline t :bold t :foreground "white")))) - (comint-input-face ((t (nil)))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue")))) - (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red")))) - (cperl-here-face ((t (nil)))) - (cperl-invalid-face ((t (:foreground "white")))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (cperl-pod-face ((t (nil)))) - (cperl-pod-head-face ((t (nil)))) - (custom-button-face ((t (:bold t)))) - (custom-changed-face ((t (:bold t :background "blue" :foreground "white")))) - (custom-comment-face ((t (:foreground "white")))) - (custom-comment-tag-face ((t (:foreground "white")))) - (custom-documentation-face ((t (:bold t)))) - (custom-face-tag-face ((t (:underline t :bold t)))) - (custom-group-tag-face ((t (:underline t :bold t :foreground "DarkBlue")))) - (custom-group-tag-face-1 ((t (:underline t :bold t :foreground "red")))) - (custom-invalid-face ((t (:bold t :background "red" :foreground "yellow")))) - (custom-modified-face ((t (:bold t :background "blue" :foreground "white")))) - (custom-rogue-face ((t (:bold t :background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t :bold t)))) - (custom-set-face ((t (:bold t :background "white" :foreground "blue")))) - (custom-state-face ((t (:bold t :foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :bold t :foreground "blue")))) - (cvs-filename-face ((t (:foreground "white")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:bold t :foreground "green")))) - (cvs-marked-face ((t (:bold t :foreground "green3")))) - (cvs-msg-face ((t (:italic t :foreground "red")))) - (cvs-need-action-face ((t (:foreground "yellow")))) - (cvs-unknown-face ((t (:foreground "grey")))) - (cyan ((t (:foreground "cyan")))) - (diary-face ((t (:bold t :foreground "red")))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-file-header-face ((t (:bold t :background "grey70")))) - (diff-hunk-header-face ((t (:background "grey85")))) - (diff-index-face ((t (:bold t :background "grey70")))) - (diff-removed-face ((t (nil)))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t)))) - (dired-face-executable ((t (:foreground "SeaGreen")))) - (dired-face-flagged ((t (:background "LightSlateGray")))) - (dired-face-header ((t (:background "grey75" :foreground "black")))) - (dired-face-marked ((t (:background "PaleVioletRed")))) - (dired-face-permissions ((t (:background "grey75" :foreground "black")))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (dired-face-symlink ((t (:foreground "cyan")))) - (display-time-mail-balloon-enhance-face ((t (:bold t :background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:bold t :foreground "blue")))) - (display-time-time-balloon-face ((t (:bold t :foreground "red")))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (erc-action-face ((t (:bold t)))) - (erc-bold-face ((t (:bold t)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (nil)))) - (erc-error-face ((t (:bold t)))) - (erc-input-face ((t (nil)))) - (erc-inverse-face ((t (nil)))) - (erc-notice-face ((t (nil)))) - (erc-pal-face ((t (nil)))) - (erc-prompt-face ((t (nil)))) - (erc-underline-face ((t (nil)))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid")))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-ls-directory-face ((t (:bold t :foreground "Blue")))) - (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen")))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red")))) - (eshell-ls-picture-face ((t (:foreground "Violet")))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta")))) - (eshell-ls-symlink-face ((t (:bold t :foreground "DarkCyan")))) - (eshell-ls-text-face ((t (:foreground "medium aquamarine")))) - (eshell-ls-todo-face ((t (:bold t :foreground "aquamarine")))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:bold t :foreground "Red")))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-test-ok-face ((t (:bold t :foreground "Green")))) - (excerpt ((t (:italic t)))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue")))) - (fg:black ((t (:foreground "black")))) - (fixed ((t (:bold t)))) - (fl-comment-face ((t (:foreground "medium purple")))) - (fl-doc-string-face ((t (nil)))) - (fl-function-name-face ((t (:foreground "green")))) - (fl-keyword-face ((t (:foreground "LightGreen")))) - (fl-string-face ((t (:foreground "light coral")))) - (fl-type-face ((t (:foreground "cyan")))) - (flyspell-duplicate-face ((t (:underline t :bold t :foreground "Gold3")))) - (flyspell-incorrect-face ((t (:underline t :bold t :foreground "OrangeRed")))) - (font-latex-bold-face ((t (:bold t)))) - (font-latex-italic-face ((t (:italic t)))) - (font-latex-math-face ((t (nil)))) - (font-latex-sedate-face ((t (nil)))) - (font-latex-string-face ((t (nil)))) - (font-latex-warning-face ((t (nil)))) - (font-lock-builtin-face ((t (:italic t :bold t :foreground "Orchid")))) - (font-lock-comment-face ((t (:bold t :foreground "Firebrick")))) - (font-lock-constant-face ((t (:italic t :bold t :foreground "CadetBlue")))) - (font-lock-doc-string-face ((t (:italic t :bold t :foreground "green4")))) - (font-lock-emphasized-face ((t (:bold t)))) - (font-lock-exit-face ((t (:foreground "green")))) - (font-lock-function-name-face ((t (:italic t :bold t :foreground "Blue")))) - (font-lock-keyword-face ((t (:bold t :foreground "dark olive green")))) - (font-lock-other-emphasized-face ((t (:italic t :bold t)))) - (font-lock-other-type-face ((t (:bold t :foreground "DarkBlue")))) - (font-lock-preprocessor-face ((t (:italic t :bold t :foreground "blue3")))) - (font-lock-reference-face ((t (:italic t :bold t :foreground "red3")))) - (font-lock-special-comment-face ((t (nil)))) - (font-lock-special-keyword-face ((t (nil)))) - (font-lock-string-face ((t (:italic t :bold t :foreground "DarkBlue")))) - (font-lock-type-face ((t (:italic t :bold t :foreground "DarkGreen")))) - (font-lock-variable-name-face ((t (:italic t :bold t :foreground "darkgreen")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (fringe ((t (:background "grey95")))) - (gdb-arrow-face ((t (:bold t)))) - (gnus-cite-attribution-face ((t (:italic t :bold t)))) - (gnus-cite-face-1 ((t (:bold t :foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:bold t :foreground "firebrick")))) - (gnus-cite-face-3 ((t (:bold t :foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:bold t :foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-cite-face-list ((t (nil)))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-filterhist-face-1 ((t (nil)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4")))) - (gnus-header-from-face ((t (:bold t :foreground "red3")))) - (gnus-header-name-face ((t (:bold t :foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:bold t :foreground "red4")))) - (gnus-picons-face ((t (:background "white" :foreground "black")))) - (gnus-picons-xbm-face ((t (:background "white" :foreground "black")))) - (gnus-signature-face ((t (:italic t :bold t)))) - (gnus-splash ((t (nil)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:italic t :bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :bold t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (:bold t)))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-x-face ((t (:background "white" :foreground "black")))) - (green ((t (:bold t :foreground "green")))) - (gui-button-face ((t (:bold t :background "grey75" :foreground "black")))) - (gui-element ((t (:bold t :background "Gray80")))) - (highlight ((t (:bold t :background "darkseagreen2")))) - (highlight-changes-delete-face ((t (:underline t :foreground "red")))) - (highlight-changes-face ((t (:foreground "red")))) - (highline-face ((t (:background "black" :foreground "white")))) - (holiday-face ((t (:bold t :background "pink" :foreground "white")))) - (hproperty:but-face ((t (:bold t)))) - (hproperty:flash-face ((t (:bold t)))) - (hproperty:highlight-face ((t (:bold t)))) - (hproperty:item-face ((t (:bold t)))) - (html-helper-bold-face ((t (:bold t)))) - (html-helper-bold-italic-face ((t (nil)))) - (html-helper-builtin-face ((t (:underline t :foreground "blue3")))) - (html-helper-italic-face ((t (:italic t :bold t :foreground "yellow")))) - (html-helper-underline-face ((t (:underline t)))) - (html-tag-face ((t (:bold t)))) - (hyper-apropos-documentation ((t (:foreground "white")))) - (hyper-apropos-heading ((t (:bold t)))) - (hyper-apropos-hyperlink ((t (:foreground "sky blue")))) - (hyper-apropos-major-heading ((t (:bold t)))) - (hyper-apropos-section-heading ((t (:bold t)))) - (hyper-apropos-warning ((t (:bold t :foreground "red")))) - (ibuffer-marked-face ((t (:foreground "red")))) - (info-menu-5 ((t (:underline t :bold t)))) - (info-menu-6 ((t (nil)))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (isearch ((t (:bold t :background "paleturquoise")))) - (isearch-secondary ((t (:foreground "red3")))) - (ispell-face ((t (:bold t)))) - (italic ((t (:italic t :bold t)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-bug-breakpoint-marker ((t (:background "yellow" :foreground "red")))) - (jde-java-font-lock-link-face ((t (:underline t :foreground "blue")))) - (jde-java-font-lock-number-face ((t (:foreground "RosyBrown")))) - (lazy-highlight-face ((t (:bold t :foreground "dark magenta")))) - (left-margin ((t (:bold t)))) - (linemenu-face ((t (nil)))) - (list-mode-item-selected ((t (:bold t :background "gray68")))) - (magenta ((t (:foreground "magenta")))) - (makefile-space-face ((t (:background "hotpink")))) - (man-bold ((t (:bold t)))) - (man-heading ((t (:bold t)))) - (man-italic ((t (:foreground "yellow")))) - (man-xref ((t (:underline t)))) - (message-cited-text ((t (:bold t :foreground "orange")))) - (message-cited-text-face ((t (:bold t :foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-contents ((t (:italic t :bold t :foreground "white")))) - (message-header-name-face ((t (:bold t :foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:bold t :foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:bold t :foreground "blue")))) - (message-headers ((t (:bold t :foreground "orange")))) - (message-highlighted-header-contents ((t (:bold t)))) - (message-mml-face ((t (:bold t :foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (message-url ((t (:bold t :foreground "pink")))) - (mmm-face ((t (:background "black" :foreground "green")))) - (modeline ((t (:bold t :background "Black" :foreground "#CA94AA469193")))) - (modeline-buffer-id ((t (:bold t :background "Gray80" :foreground "blue4")))) - (modeline-mousable ((t (:bold t :background "Gray80" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:bold t :background "Gray80" :foreground "green4")))) - (my-tab-face ((t (nil)))) - (nil ((t (nil)))) - (p4-diff-del-face ((t (:bold t)))) - (paren-blink-off ((t (:foreground "gray80")))) - (paren-face ((t (nil)))) - (paren-face-match ((t (nil)))) - (paren-face-mismatch ((t (nil)))) - (paren-face-no-match ((t (nil)))) - (paren-match ((t (:background "darkseagreen2")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "black")))) - (paren-mismatch-face ((t (:bold t :background "DeepPink" :foreground "white")))) - (paren-no-match-face ((t (:bold t :background "yellow" :foreground "white")))) - (pointer ((t (:bold t)))) - (primary-selection ((t (:bold t :background "gray65")))) - (red ((t (:bold t :foreground "red")))) - (region ((t (:bold t :background "gray")))) - (right-margin ((t (:bold t)))) - (searchm-buffer ((t (:bold t)))) - (searchm-button ((t (:bold t)))) - (searchm-field ((t (nil)))) - (searchm-field-label ((t (:bold t)))) - (searchm-highlight ((t (:bold t)))) - (secondary-selection ((t (:bold t :background "paleturquoise")))) - (semantic-intangible-face ((t (:foreground "gray25")))) - (semantic-read-only-face ((t (:background "gray25")))) - (senator-momentary-highlight-face ((t (:background "gray70")))) - (setnu-line-number-face ((t (:italic t :bold t)))) - (sgml-comment-face ((t (:foreground "dark green")))) - (sgml-doctype-face ((t (:foreground "maroon")))) - (sgml-end-tag-face ((t (:foreground "blue2")))) - (sgml-entity-face ((t (:foreground "red2")))) - (sgml-ignored-face ((t (:background "gray90" :foreground "maroon")))) - (sgml-ms-end-face ((t (:foreground "maroon")))) - (sgml-ms-start-face ((t (:foreground "maroon")))) - (sgml-pi-face ((t (:foreground "maroon")))) - (sgml-sgml-face ((t (:foreground "maroon")))) - (sgml-short-ref-face ((t (:foreground "goldenrod")))) - (sgml-start-tag-face ((t (:foreground "blue2")))) - (shell-input-face ((t (:bold t)))) - (shell-option-face ((t (:bold t :foreground "blue4")))) - (shell-output-2-face ((t (:bold t :foreground "green4")))) - (shell-output-3-face ((t (:bold t :foreground "green4")))) - (shell-output-face ((t (:bold t)))) - (shell-prompt-face ((t (:bold t :foreground "red4")))) - (show-paren-match-face ((t (:bold t :background "turquoise")))) - (show-paren-mismatch-face ((t (:bold t :background "purple" :foreground "white")))) - (speedbar-button-face ((t (:bold t :foreground "magenta")))) - (speedbar-directory-face ((t (:bold t :foreground "orchid")))) - (speedbar-file-face ((t (:bold t :foreground "pink")))) - (speedbar-highlight-face ((t (:background "black")))) - (speedbar-selected-face ((t (:underline t :foreground "cyan")))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (swbuff-current-buffer-face ((t (:bold t :foreground "red")))) - (template-message-face ((t (:bold t)))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (:background "black")))) - (term-blue ((t (:foreground "blue")))) - (term-blue-bold-face ((t (:bold t :background "snow2" :foreground "blue")))) - (term-blue-face ((t (:foreground "blue")))) - (term-blue-inv-face ((t (:background "blue")))) - (term-blue-ul-face ((t (:underline t :background "snow2" :foreground "blue")))) - (term-bluebg ((t (:background "blue")))) - (term-bold ((t (:bold t)))) - (term-cyan ((t (:foreground "cyan")))) - (term-cyan-bold-face ((t (:bold t :background "snow2" :foreground "cyan")))) - (term-cyan-face ((t (:foreground "cyan")))) - (term-cyan-inv-face ((t (:background "cyan")))) - (term-cyan-ul-face ((t (:underline t :background "snow2" :foreground "cyan")))) - (term-cyanbg ((t (:background "cyan")))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-bold-face ((t (:bold t :background "snow2" :foreground "darkslategray")))) - (term-default-face ((t (:background "snow2" :foreground "darkslategray")))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-default-inv-face ((t (:background "darkslategray" :foreground "snow2")))) - (term-default-ul-face ((t (:underline t :background "snow2" :foreground "darkslategray")))) - (term-green ((t (:foreground "green")))) - (term-green-bold-face ((t (:bold t :background "snow2" :foreground "green")))) - (term-green-face ((t (:foreground "green")))) - (term-green-inv-face ((t (:background "green")))) - (term-green-ul-face ((t (:underline t :background "snow2" :foreground "green")))) - (term-greenbg ((t (:background "green")))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (:foreground "magenta")))) - (term-magenta-bold-face ((t (:bold t :background "snow2" :foreground "magenta")))) - (term-magenta-face ((t (:foreground "magenta")))) - (term-magenta-inv-face ((t (:background "magenta")))) - (term-magenta-ul-face ((t (:underline t :background "snow2" :foreground "magenta")))) - (term-magentabg ((t (:background "magenta")))) - (term-red ((t (:foreground "red")))) - (term-red-bold-face ((t (:bold t :background "snow2" :foreground "red")))) - (term-red-face ((t (:foreground "red")))) - (term-red-inv-face ((t (:background "red")))) - (term-red-ul-face ((t (:underline t :background "snow2" :foreground "red")))) - (term-redbg ((t (:background "red")))) - (term-underline ((t (:underline t)))) - (term-white ((t (:foreground "white")))) - (term-white-bold-face ((t (:bold t :background "snow2" :foreground "white")))) - (term-white-face ((t (:foreground "white")))) - (term-white-inv-face ((t (:background "snow2")))) - (term-white-ul-face ((t (:underline t :background "snow2" :foreground "white")))) - (term-whitebg ((t (:background "white")))) - (term-yellow ((t (:foreground "yellow")))) - (term-yellow-bold-face ((t (:bold t :background "snow2" :foreground "yellow")))) - (term-yellow-face ((t (:foreground "yellow")))) - (term-yellow-inv-face ((t (:background "yellow")))) - (term-yellow-ul-face ((t (:underline t :background "snow2" :foreground "yellow")))) - (term-yellowbg ((t (:background "yellow")))) - (text-cursor ((t (:bold t :background "Red3" :foreground "gray80")))) - (toolbar ((t (:bold t :background "Gray80")))) - (underline ((t (:underline t :bold t)))) - (vc-annotate-face-0046FF ((t (nil)))) - (vcursor ((t (:underline t :background "cyan" :foreground "blue")))) - (vertical-divider ((t (:bold t :background "Gray80")))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-generic-/constant-face ((t (nil)))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red")))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange")))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-font-lock-type-face ((t (nil)))) - (vhdl-font-lock-variable-face ((t (nil)))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue")))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod")))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen")))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown")))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Grey50")))) - (vhdl-speedbar-subprogram-face ((t (nil)))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (vm-xface ((t (:background "white" :foreground "black")))) - (vmpc-pre-sig-face ((t (:foreground "forestgreen")))) - (vmpc-sig-face ((t (:foreground "steelblue")))) - (vvb-face ((t (nil)))) - (w3m-anchor-face ((t (:bold t :foreground "DodgerBlue1")))) - (w3m-arrived-anchor-face ((t (:bold t :foreground "DodgerBlue3")))) - (w3m-header-line-location-content-face ((t (:background "dark olive green" :foreground "wheat")))) - (w3m-header-line-location-title-face ((t (:background "dark olive green" :foreground "beige")))) - (white ((t (:foreground "white")))) - (widget ((t (nil)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:bold t :foreground "red")))) - (widget-documentation-face ((t (:bold t :foreground "dark green")))) - (widget-field-face ((t (:bold t :background "gray85")))) - (widget-inactive-face ((t (:bold t :foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (woman-bold-face ((t (:bold t)))) - (woman-italic-face ((t (:foreground "beige")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))) - (x-face ((t (:bold t :background "white" :foreground "black")))) - (x-symbol-adobe-fontspecific-face ((t (nil)))) - (x-symbol-face ((t (nil)))) - (x-symbol-heading-face ((t (:bold t)))) - (x-symbol-info-face ((t (nil)))) - (x-symbol-invisible-face ((t (nil)))) - (x-symbol-revealed-face ((t (nil)))) - (xrdb-option-name-face ((t (:foreground "red")))) - (xref-keyword-face ((t (:foreground "blue")))) - (xref-list-default-face ((t (nil)))) - (xref-list-pilot-face ((t (:foreground "navy")))) - (xref-list-symbol-face ((t (:foreground "navy")))) - (yellow ((t (:bold t :foreground "yellow")))) - (zmacs-region ((t (:bold t :background "gray65"))))))) - -(defun color-theme-mistyday () - "Color theme by K.C. Hari Kumar, created 2001-06-13. -Black on mistyrose. Includes CUA, calendar, diary, font-latex and -font-lock. Uses backgrounds on some font-lock faces." - (interactive) - (color-theme-install - '(color-theme-mistyday - ((background-color . "mistyrose") - (background-mode . light) - (border-color . "black") - (cursor-color . "deep pink") - (foreground-color . "Black") - (mouse-color . "black")) - ((goto-address-mail-face . italic) - (goto-address-mail-mouse-face . secondary-selection) - (goto-address-url-face . bold) - (goto-address-url-mouse-face . highlight) - (list-matching-lines-face . bold) - (paren-match-face . paren-face-match) - (paren-mismatch-face . paren-face-mismatch) - (paren-no-match-face . paren-face-no-match)) - (default ((t (nil)))) - (CUA-global-mark-face ((t (:background "cyan" :foreground "black")))) - (CUA-rectangle-face ((t (:background "maroon" :foreground "white")))) - (CUA-rectangle-noselect-face ((t (:background "dimgray" :foreground "white")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (calendar-today-face ((t (:underline t :background "Spring Green" :foreground "Brown")))) - (custom-button-face ((t (:background "dark slate grey" :foreground "azure")))) - (custom-documentation-face ((t (:background "white" :foreground "blue")))) - (diary-face ((t (:background "navy" :foreground "yellow")))) - (font-latex-bold-face ((t (:bold t :foreground "DarkOliveGreen")))) - (font-latex-italic-face ((t (:italic t :foreground "DarkOliveGreen")))) - (font-latex-math-face ((t (:foreground "navy")))) - (font-latex-sedate-face ((t (:foreground "DimGray")))) - (font-latex-string-face ((t (nil)))) - (font-latex-warning-face ((t (nil)))) - (font-lock-builtin-face ((t (:background "DarkTurquoise" :foreground "Navy")))) - (font-lock-comment-face ((t (:italic t :foreground "royal blue")))) - (font-lock-constant-face ((t (:background "pale green" :foreground "dark slate blue")))) - (font-lock-doc-string-face ((t (:background "medium aquamarine" :foreground "deep pink")))) - (font-lock-function-name-face ((t (:background "SpringGreen" :foreground "MidnightBlue")))) - (font-lock-keyword-face ((t (:foreground "dark magenta")))) - (font-lock-preprocessor-face ((t (:background "pale green" :foreground "dark slate blue")))) - (font-lock-reference-face ((t (:background "DarkTurquoise" :foreground "Navy")))) - (font-lock-string-face ((t (:background "medium aquamarine" :foreground "deep pink")))) - (font-lock-type-face ((t (:background "steel blue" :foreground "khaki")))) - (font-lock-variable-name-face ((t (:background "thistle" :foreground "orange red")))) - (font-lock-warning-face ((t (:background "LemonChiffon" :foreground "Red")))) - (highlight ((t (:background "dark slate grey" :foreground "light cyan")))) - (holiday-face ((t (:background "orangered" :foreground "lightyellow")))) - (ido-first-match-face ((t (:bold t)))) - (ido-only-match-face ((t (:foreground "ForestGreen")))) - (ido-subdir-face ((t (:foreground "red")))) - (italic ((t (:italic t)))) - (isearch ((t (:background "sienna" :foreground "light cyan")))) - (modeline ((t (:background "Royalblue4" :foreground "lawn green")))) - (modeline-buffer-id ((t (:background "Royalblue4" :foreground "lawn green")))) - (modeline-mousable ((t (:background "Royalblue4" :foreground "lawn green")))) - (modeline-mousable-minor-mode ((t (:background "Royalblue4" :foreground "lawn green")))) - (paren-face-match ((t (:background "turquoise")))) - (paren-face-mismatch ((t (:background "purple" :foreground "white")))) - (paren-face-no-match ((t (:background "yellow" :foreground "black")))) - (primary-selection ((t (:background "sienna" :foreground "light cyan")))) - (region ((t (:background "sienna" :foreground "light cyan")))) - (secondary-selection ((t (:background "forest green" :foreground "white smoke")))) - (underline ((t (:underline t)))) - (zmacs-region ((t (:background "sienna" :foreground "light cyan"))))))) - -(defun color-theme-marine () - "Color theme by Girish Bharadwaj, created 2001-06-22. -Matches the MS Windows Marine color theme. -Includes custom, font-lock, paren, widget." - (interactive) - (color-theme-install - '(color-theme-marine - ((background-color . "#9dcec9") - (background-mode . light) - (border-color . "black") - (cursor-color . "yellow") - (foreground-color . "darkslategray") - (mouse-color . "sienna1")) - ((buffers-tab-face . buffers-tab) - (gnus-mouse-face . highlight) - (smiley-mouse-face . highlight)) - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (nil)))) - (border-glyph ((t (nil)))) - (buffers-tab ((t (:background "#9dcec9" :foreground "darkslategray")))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "gray85")))) - (custom-comment-tag-face ((t (:foreground "blue4")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "deeppink")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "darkgreen")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (font-lock-builtin-face ((t (:foreground "SteelBlue")))) - (font-lock-comment-face ((t (:foreground "cadetblue")))) - (font-lock-constant-face ((t (:foreground "OrangeRed")))) - (font-lock-doc-string-face ((t (:foreground "Salmon")))) - (font-lock-function-name-face ((t (:bold t :foreground "NavyBlue")))) - (font-lock-keyword-face ((t (:bold t :foreground "purple")))) - (font-lock-preprocessor-face ((t (:foreground "SteelBlue")))) - (font-lock-reference-face ((t (:foreground "SteelBlue")))) - (font-lock-string-face ((t (:foreground "royalblue")))) - (font-lock-type-face ((t (:foreground "darkmagenta")))) - (font-lock-variable-name-face ((t (:foreground "violetred")))) - (font-lock-warning-face ((t (:bold t :foreground "red")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:background "#489088" :foreground "black")))) - (highlight ((t (:background "darkolivegreen" :foreground "white")))) - (isearch ((t (:background "blue")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (nil)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68" :foreground "darkslategray")))) - (modeline ((t (:background "black" :foreground "white")))) - (modeline-buffer-id ((t (:background "black" :foreground "white")))) - (modeline-mousable ((t (:background "black" :foreground "white")))) - (modeline-mousable-minor-mode ((t (:background "black" :foreground "white")))) - (paren-blink-off ((t (:foreground "black")))) - (paren-match ((t (:background "darkolivegreen" :foreground "white")))) - (paren-mismatch ((t (:background "#9dcec9" :foreground "darkslategray")))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "blue")))) - (red ((t (:foreground "red")))) - (region ((t (:background "blue")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "darkslateblue" :foreground "white")))) - (template-message-face ((t (:bold t)))) - (text-cursor ((t (:background "yellow" :foreground "#9dcec9")))) - (toolbar ((t (nil)))) - (underline ((t (:underline t)))) - (vertical-divider ((t (nil)))) - (widget ((t (nil)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "forestgreen")))) - (widget-field-face ((t (:background "gray")))) - (widget-inactive-face ((t (:foreground "dimgray")))) - (widget-single-line-field-face ((t (:background "dim gray" :foreground "white")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "blue"))))))) - -(defun color-theme-blue-erc () - "Color theme for erc faces only. -This is intended for other color themes to use (eg. `color-theme-gnome2')." - (color-theme-install - '(color-theme-blue-erc - nil - (erc-action-face ((t (nil)))) - (erc-bold-face ((t (:bold t)))) - (erc-current-nick-face ((t (:bold t :foreground "yellow")))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "pale green")))) - (erc-error-face ((t (:bold t :foreground "IndianRed")))) - (erc-highlight-face ((t (:bold t :foreground "pale green")))) - (erc-input-face ((t (:foreground "light blue")))) - (erc-inverse-face ((t (:background "steel blue")))) - (erc-keyword-face ((t (:foreground "orange" :bold t)))) - (erc-notice-face ((t (:foreground "light salmon")))) - (erc-notice-face ((t (:foreground "MediumAquamarine")))) - (erc-pal-face ((t (:foreground "pale green")))) - (erc-prompt-face ((t (:foreground "light blue" :bold t)))) - (fg:erc-color-face0 ((t (:foreground "white")))) - (fg:erc-color-face1 ((t (:foreground "beige")))) - (fg:erc-color-face2 ((t (:foreground "lemon chiffon")))) - (fg:erc-color-face3 ((t (:foreground "light cyan")))) - (fg:erc-color-face4 ((t (:foreground "powder blue")))) - (fg:erc-color-face5 ((t (:foreground "sky blue")))) - (fg:erc-color-face6 ((t (:foreground "dark sea green")))) - (fg:erc-color-face7 ((t (:foreground "pale green")))) - (fg:erc-color-face8 ((t (:foreground "medium spring green")))) - (fg:erc-color-face9 ((t (:foreground "khaki")))) - (fg:erc-color-face10 ((t (:foreground "pale goldenrod")))) - (fg:erc-color-face11 ((t (:foreground "light goldenrod yellow")))) - (fg:erc-color-face12 ((t (:foreground "light yellow")))) - (fg:erc-color-face13 ((t (:foreground "yellow")))) - (fg:erc-color-face14 ((t (:foreground "light goldenrod")))) - (fg:erc-color-face15 ((t (:foreground "lime green")))) - (bg:erc-color-face0 ((t (nil)))) - (bg:erc-color-face1 ((t (nil)))) - (bg:erc-color-face2 ((t (nil)))) - (bg:erc-color-face3 ((t (nil)))) - (bg:erc-color-face4 ((t (nil)))) - (bg:erc-color-face5 ((t (nil)))) - (bg:erc-color-face6 ((t (nil)))) - (bg:erc-color-face7 ((t (nil)))) - (bg:erc-color-face8 ((t (nil)))) - (bg:erc-color-face9 ((t (nil)))) - (bg:erc-color-face10 ((t (nil)))) - (bg:erc-color-face11 ((t (nil)))) - (bg:erc-color-face12 ((t (nil)))) - (bg:erc-color-face13 ((t (nil)))) - (bg:erc-color-face14 ((t (nil)))) - (bg:erc-color-face15 ((t (nil))))))) - -(defun color-theme-dark-erc () - "Color theme for erc faces only. -This is intended for other color themes to use (eg. `color-theme-late-night')." - (interactive) - (color-theme-install - '(color-theme-dark-erc - nil - (erc-action-face ((t (nil)))) - (erc-bold-face ((t (:bold t)))) - (erc-current-nick-face ((t (:bold t)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (nil)))) - (erc-error-face ((t (:bold t :foreground "IndianRed")))) - (erc-highlight-face ((t (:bold t :foreground "pale green")))) - (erc-input-face ((t (:foreground "#555")))) - (erc-inverse-face ((t (:background "steel blue")))) - (erc-keyword-face ((t (:foreground "#999" :bold t)))) - (erc-nick-msg-face ((t (:foreground "#888")))) - (erc-notice-face ((t (:foreground "#444")))) - (erc-pal-face ((t (:foreground "#888")))) - (erc-prompt-face ((t (:foreground "#777" :bold t)))) - (erc-timestamp-face ((t (:foreground "#777" :bold t)))) - (fg:erc-color-face0 ((t (:foreground "white")))) - (fg:erc-color-face1 ((t (:foreground "beige")))) - (fg:erc-color-face2 ((t (:foreground "lemon chiffon")))) - (fg:erc-color-face3 ((t (:foreground "light cyan")))) - (fg:erc-color-face4 ((t (:foreground "powder blue")))) - (fg:erc-color-face5 ((t (:foreground "sky blue")))) - (fg:erc-color-face6 ((t (:foreground "dark sea green")))) - (fg:erc-color-face7 ((t (:foreground "pale green")))) - (fg:erc-color-face8 ((t (:foreground "medium spring green")))) - (fg:erc-color-face9 ((t (:foreground "khaki")))) - (fg:erc-color-face10 ((t (:foreground "pale goldenrod")))) - (fg:erc-color-face11 ((t (:foreground "light goldenrod yellow")))) - (fg:erc-color-face12 ((t (:foreground "light yellow")))) - (fg:erc-color-face13 ((t (:foreground "yellow")))) - (fg:erc-color-face14 ((t (:foreground "light goldenrod")))) - (fg:erc-color-face15 ((t (:foreground "lime green")))) - (bg:erc-color-face0 ((t (nil)))) - (bg:erc-color-face1 ((t (nil)))) - (bg:erc-color-face2 ((t (nil)))) - (bg:erc-color-face3 ((t (nil)))) - (bg:erc-color-face4 ((t (nil)))) - (bg:erc-color-face5 ((t (nil)))) - (bg:erc-color-face6 ((t (nil)))) - (bg:erc-color-face7 ((t (nil)))) - (bg:erc-color-face8 ((t (nil)))) - (bg:erc-color-face9 ((t (nil)))) - (bg:erc-color-face10 ((t (nil)))) - (bg:erc-color-face11 ((t (nil)))) - (bg:erc-color-face12 ((t (nil)))) - (bg:erc-color-face13 ((t (nil)))) - (bg:erc-color-face14 ((t (nil)))) - (bg:erc-color-face15 ((t (nil))))))) - -(defun color-theme-subtle-blue () - "Color theme by Chris McMahan, created 2001-09-06. -Light blue background. Includes bbdb, comint, cperl, custom, cvs, -diary, dired, display-time, ecb, ediff, erc, eshell, font-lock, -gnus, html-helper, info, isearch, jde, message, paren, semantic, -sgml, speedbar, term, vhdl, viper, vm, widget, woman, xref, xxml." - (interactive) - (color-theme-install - '(color-theme-subtle-blue - ((background-color . "#65889C") - (background-mode . dark) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "black") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (cursor-color . "white") - (foreground-color . "#eedfcc") - (mouse-color . "Grey") - (top-toolbar-shadow-color . "#fffffbeeffff") - (viper-saved-cursor-color-in-replace-mode . "Red3")) - ((blank-space-face . blank-space-face) - (blank-tab-face . blank-tab-face) - (ecb-source-in-directories-buffer-face . ecb-sources-face) - (gnus-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight) - (vm-highlight-url-face . my-url-face) - (vm-highlighted-header-face . my-url-face) - (vm-mime-button-face . gui-button-face) - (vm-summary-highlight-face . my-summary-highlight-face)) - (default ((t (nil)))) - (bbdb-company ((t (:italic t)))) - (bbdb-field-name ((t (:bold t :foreground "MediumAquamarine")))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (:underline t)))) - (blank-space-face ((t (:background "gray80")))) - (blank-tab-face ((t (:background "LightBlue" :foreground "DarkSlateGray")))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t :foreground "MediumAquamarine")))) - (bold-italic ((t (:italic t :bold t :foreground "SkyBlue")))) - (border ((t (:background "black")))) - (border-glyph ((t (nil)))) - (calendar-today-face ((t (:underline t)))) - (comint-highlight-input ((t (:bold t)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (comint-input-face ((t (:foreground "deepskyblue")))) - (cperl-array-face ((t (:bold t :foreground "Yellow")))) - (cperl-hash-face ((t (:italic t :bold t :foreground "White")))) - (cperl-nonoverridable-face ((t (:foreground "SkyBlue")))) - (cursor ((t (:background "white")))) - (custom-button-face ((t (:underline t :bold t :foreground "MediumAquaMarine")))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black")))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "dim gray")))) - (custom-comment-tag-face ((t (:foreground "gray80")))) - (custom-documentation-face ((t (:foreground "Grey")))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:bold t :foreground "MediumAquamarine")))) - (custom-group-tag-face-1 ((t (:foreground "MediumAquaMarine")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "yellow")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:bold t :foreground "Aquamarine")))) - (cvs-filename-face ((t (:foreground "blue4")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:bold t :foreground "blue4")))) - (cvs-marked-face ((t (:bold t :foreground "green3")))) - (cvs-msg-face ((t (:italic t)))) - (cvs-need-action-face ((t (:foreground "orange")))) - (cvs-unknown-face ((t (:foreground "red")))) - (diary-face ((t (:bold t :foreground "cyan")))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t :foreground "sky blue")))) - (dired-face-executable ((t (:foreground "MediumAquaMarine")))) - (dired-face-flagged ((t (:foreground "Cyan")))) - (dired-face-marked ((t (:foreground "cyan")))) - (dired-face-permissions ((t (:foreground "aquamarine")))) - (dired-face-setuid ((t (:foreground "LightSalmon")))) - (dired-face-socket ((t (:foreground "LightBlue")))) - (dired-face-symlink ((t (:foreground "gray95")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (ecb-sources-face ((t (:foreground "LightBlue1")))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "indianred" :foreground "white")))) - (ediff-even-diff-face-A ((t (:background "light gray" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Gray" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Gray" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light gray" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Gray" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light gray" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light gray" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Gray" :foreground "White")))) - (erc-action-face ((t (:bold t)))) - (erc-bold-face ((t (:bold t)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "LightSalmon")))) - (erc-error-face ((t (:bold t :foreground "yellow")))) - (erc-input-face ((t (:foreground "Beige")))) - (erc-inverse-face ((t (:background "wheat" :foreground "darkslategrey")))) - (erc-notice-face ((t (:foreground "MediumAquamarine")))) - (erc-pal-face ((t (:foreground "PaleGreen")))) - (erc-prompt-face ((t (:foreground "MediumAquamarine")))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :foreground "wheat")))) - (eshell-ls-backup-face ((t (:foreground "Grey")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "wheat")))) - (eshell-ls-directory-face ((t (:bold t :foreground "Yellow")))) - (eshell-ls-executable-face ((t (:bold t :foreground "wheat")))) - (eshell-ls-missing-face ((t (:bold t :foreground "wheat")))) - (eshell-ls-picture-face ((t (:foreground "wheat")))) - (eshell-ls-product-face ((t (:foreground "wheat")))) - (eshell-ls-readonly-face ((t (:foreground "wheat")))) - (eshell-ls-special-face ((t (:bold t :foreground "wheat")))) - (eshell-ls-symlink-face ((t (:bold t :foreground "White")))) - (eshell-ls-text-face ((t (:foreground "wheat")))) - (eshell-ls-todo-face ((t (:foreground "wheat")))) - (eshell-ls-unreadable-face ((t (:foreground "wheat3")))) - (eshell-prompt-face ((t (:bold t :foreground "PaleGreen")))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-test-ok-face ((t (:bold t :foreground "Green")))) - (excerpt ((t (:italic t)))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue")))) - (flyspell-duplicate-face ((t (:underline t :bold t :foreground "Gold3")))) - (flyspell-incorrect-face ((t (:underline t :bold t :foreground "OrangeRed")))) - (font-latex-italic-face ((t (nil)))) - (font-latex-math-face ((t (nil)))) - (font-latex-sedate-face ((t (:foreground "Gray85")))) - (font-latex-string-face ((t (:foreground "orange")))) - (font-latex-warning-face ((t (:foreground "gold")))) - (font-lock-builtin-face ((t (:foreground "PaleGreen")))) - (font-lock-comment-face ((t (:italic t :foreground "Wheat3")))) - (font-lock-constant-face ((t (:foreground "LightBlue")))) - (font-lock-doc-face ((t (:bold t :foreground "DarkSeaGreen")))) - (font-lock-doc-string-face ((t (:bold t :foreground "DarkSeaGreen")))) - (font-lock-exit-face ((t (:foreground "green")))) - (font-lock-function-name-face ((t (:italic t :bold t :foreground "cyan")))) - (font-lock-keyword-face ((t (:bold t :foreground "LightBlue")))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "PaleGreen")))) - (font-lock-string-face ((t (:italic t :foreground "MediumAquamarine")))) - (font-lock-type-face ((t (:bold t :foreground "LightBlue")))) - (font-lock-variable-name-face ((t (:italic t :bold t :foreground "LightBlue")))) - (font-lock-warning-face ((t (:bold t :foreground "LightSalmon")))) - (fringe ((t (:background "darkslategrey")))) - (gnus-cite-attribution-face ((t (:italic t :bold t)))) - (gnus-cite-face-1 ((t (:foreground "LightBlue")))) - (gnus-cite-face-10 ((t (:foreground "LightBlue")))) - (gnus-cite-face-11 ((t (:foreground "LightBlue")))) - (gnus-cite-face-2 ((t (:foreground "LightBlue")))) - (gnus-cite-face-3 ((t (:foreground "LightBlue")))) - (gnus-cite-face-4 ((t (:foreground "LightBlue")))) - (gnus-cite-face-5 ((t (:foreground "LightBlue")))) - (gnus-cite-face-6 ((t (:foreground "LightBlue")))) - (gnus-cite-face-7 ((t (:foreground "LightBlue")))) - (gnus-cite-face-8 ((t (:foreground "LightBlue")))) - (gnus-cite-face-9 ((t (:foreground "LightBlue")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-filterhist-face-1 ((t (nil)))) - (gnus-group-mail-1-empty-face ((t (:foreground "gray80")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "light cyan")))) - (gnus-group-mail-2-empty-face ((t (:foreground "gray80")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "turquoise")))) - (gnus-group-mail-3-empty-face ((t (:foreground "gray80")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "LightBlue")))) - (gnus-group-mail-low-empty-face ((t (:foreground "gray80")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "LightBlue")))) - (gnus-group-news-1-empty-face ((t (:foreground "gray80")))) - (gnus-group-news-1-face ((t (:bold t :foreground "green yellow")))) - (gnus-group-news-2-empty-face ((t (:foreground "gray80")))) - (gnus-group-news-2-face ((t (:bold t :foreground "Aquamarine")))) - (gnus-group-news-3-empty-face ((t (:foreground "gray80")))) - (gnus-group-news-3-face ((t (:bold t :foreground "LightBlue")))) - (gnus-group-news-4-empty-face ((t (:foreground "gray80")))) - (gnus-group-news-4-face ((t (:bold t :foreground "Wheat")))) - (gnus-group-news-5-empty-face ((t (:foreground "gray80")))) - (gnus-group-news-5-face ((t (:bold t :foreground "MediumAquamarine")))) - (gnus-group-news-6-empty-face ((t (:foreground "gray80")))) - (gnus-group-news-6-face ((t (:bold t :foreground "MediumAquamarine")))) - (gnus-group-news-low-empty-face ((t (:foreground "gray80")))) - (gnus-group-news-low-face ((t (:bold t :foreground "yellow green")))) - (gnus-header-content-face ((t (:italic t :foreground "LightSkyBlue3")))) - (gnus-header-from-face ((t (:bold t :foreground "light cyan")))) - (gnus-header-name-face ((t (:bold t :foreground "LightBlue")))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3")))) - (gnus-header-subject-face ((t (:bold t :foreground "light cyan")))) - (gnus-picons-face ((t (:background "white" :foreground "black")))) - (gnus-picons-xbm-face ((t (:background "white" :foreground "black")))) - (gnus-signature-face ((t (:italic t :foreground "LightBlue")))) - (gnus-splash ((t (:foreground "Brown")))) - (gnus-splash-face ((t (:foreground "LightBlue")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "gray80")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "LightBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "gray80")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "burlywood")))) - (gnus-summary-high-unread-face ((t (:italic t :bold t :foreground "wheat")))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "LightBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "light sea green")))) - (gnus-summary-low-ticked-face ((t (:italic t :bold t :foreground "LightBlue")))) - (gnus-summary-low-unread-face ((t (:italic t :foreground "light sea green")))) - (gnus-summary-normal-ancient-face ((t (:foreground "gray80")))) - (gnus-summary-normal-read-face ((t (:foreground "gray80")))) - (gnus-summary-normal-ticked-face ((t (:bold t :foreground "sandy brown")))) - (gnus-summary-normal-unread-face ((t (:bold t :foreground "wheat")))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-x-face ((t (:background "white" :foreground "black")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "cyan" :foreground "#65889C")))) - (gui-element ((t (:background "Gray")))) - (header-line ((t (:background "grey20" :foreground "grey90")))) - (highlight ((t (:background "PaleGreen" :foreground "DarkGreen")))) - (highlight-changes-delete-face ((t (:underline t :foreground "red")))) - (highlight-changes-face ((t (:foreground "red")))) - (highline-face ((t (:background "SeaGreen")))) - (holiday-face ((t (:background "DimGray")))) - (html-helper-bold-face ((t (:foreground "DarkRed")))) - (html-helper-italic-face ((t (:foreground "DarkBlue")))) - (html-helper-underline-face ((t (:underline t :foreground "Black")))) - (html-tag-face ((t (:foreground "Blue")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:underline t :italic t :bold t :foreground "light blue")))) - (info-xref ((t (:bold t :foreground "light blue")))) - (isearch ((t (:background "Aquamarine" :foreground "SteelBlue")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (:italic t)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-bug-breakpoint-marker ((t (:background "yellow" :foreground "red")))) - (jde-java-font-lock-api-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-bold-face ((t (:bold t)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-italic-face ((t (:italic t)))) - (jde-java-font-lock-link-face ((t (:underline t :foreground "LightBlue")))) - (jde-java-font-lock-modifier-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-number-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-package-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (lazy-highlight-face ((t (:bold t :foreground "dark magenta")))) - (left-margin ((t (nil)))) - (linemenu-face ((t (:background "gray30")))) - (list-mode-item-selected ((t (nil)))) - (makefile-space-face ((t (:background "hotpink")))) - (menu ((t (:background "wheat" :foreground "gray30")))) - (message-cited-text-face ((t (:foreground "White")))) - (message-header-cc-face ((t (:bold t :foreground "light cyan")))) - (message-header-name-face ((t (:foreground "LightBlue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3")))) - (message-header-other-face ((t (:foreground "LightSkyBlue3")))) - (message-header-subject-face ((t (:bold t :foreground "light cyan")))) - (message-header-to-face ((t (:bold t :foreground "light cyan")))) - (message-header-xheader-face ((t (:foreground "LightBlue")))) - (message-mml-face ((t (:bold t :foreground "LightBlue")))) - (message-separator-face ((t (:foreground "LightBlue")))) - (mmm-default-submode-face ((t (:background "#c0c0c5")))) - (modeline ((t (:background "#4f657d" :foreground "gray80")))) - (modeline-buffer-id ((t (:background "#4f657d" :foreground "gray80")))) - (modeline-mousable ((t (:background "#4f657d" :foreground "gray80")))) - (modeline-mousable-minor-mode ((t (:background "#4f657d" :foreground "gray80")))) - (mouse ((t (:background "Grey")))) - (my-summary-highlight-face ((t (:foreground "White")))) - (my-url-face ((t (:foreground "PaleTurquoise")))) - (nil ((t (nil)))) - (paren-blink-off ((t (:foreground "gray")))) - (paren-face-match ((t (:background "turquoise")))) - (paren-face-mismatch ((t (:background "purple" :foreground "white")))) - (paren-face-no-match ((t (:background "yellow" :foreground "black")))) - (paren-match ((t (:background "darkseagreen2")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "black")))) - (paren-mismatch-face ((t (:bold t)))) - (paren-no-match-face ((t (:bold t)))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "CadetBlue" :foreground "gray80")))) - (right-margin ((t (nil)))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "LightBlue" :foreground "#4f657d")))) - (semantic-dirty-token-face ((t (:background "gray10")))) - (semantic-intangible-face ((t (:foreground "gray25")))) - (semantic-read-only-face ((t (:background "gray25")))) - (senator-intangible-face ((t (:foreground "gray75")))) - (senator-momentary-highlight-face ((t (:background "gray80")))) - (senator-read-only-face ((t (:background "#664444")))) - (sgml-comment-face ((t (:foreground "dark turquoise")))) - (sgml-doctype-face ((t (:foreground "red")))) - (sgml-end-tag-face ((t (:foreground "blue")))) - (sgml-entity-face ((t (:foreground "magenta")))) - (sgml-ignored-face ((t (:background "gray60" :foreground "gray40")))) - (sgml-ms-end-face ((t (:foreground "green")))) - (sgml-ms-start-face ((t (:foreground "yellow")))) - (sgml-pi-face ((t (:foreground "lime green")))) - (sgml-sgml-face ((t (:foreground "brown")))) - (sgml-short-ref-face ((t (:foreground "deep sky blue")))) - (sgml-start-tag-face ((t (:foreground "dark green")))) - (shell-option-face ((t (:foreground "blue")))) - (shell-output-2-face ((t (:foreground "darkseagreen")))) - (shell-output-3-face ((t (:foreground "slategray")))) - (shell-output-face ((t (:foreground "palegreen")))) - (shell-prompt-face ((t (:foreground "red")))) - (show-paren-match-face ((t (:background "Aquamarine" :foreground "steel blue")))) - (show-paren-mismatch-face ((t (:bold t :background "IndianRed" :foreground "White")))) - (speedbar-button-face ((t (:bold t :foreground "LightBlue")))) - (speedbar-directory-face ((t (:bold t :foreground "yellow")))) - (speedbar-file-face ((t (:bold t :foreground "wheat")))) - (speedbar-highlight-face ((t (:background "sea green")))) - (speedbar-selected-face ((t (:underline t)))) - (speedbar-tag-face ((t (:foreground "LightBlue")))) - (swbuff-current-buffer-face ((t (:bold t :foreground "red")))) - (template-message-face ((t (:bold t)))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (:background "black")))) - (term-blue ((t (:foreground "blue")))) - (term-bluebg ((t (:background "blue")))) - (term-bold ((t (:bold t)))) - (term-cyan ((t (:foreground "cyan")))) - (term-cyanbg ((t (:background "cyan")))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-green ((t (:foreground "green")))) - (term-greenbg ((t (:background "green")))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (:foreground "magenta")))) - (term-magentabg ((t (:background "magenta")))) - (term-red ((t (:foreground "red")))) - (term-redbg ((t (:background "red")))) - (term-underline ((t (:underline t)))) - (term-white ((t (:foreground "white")))) - (term-whitebg ((t (:background "white")))) - (term-yellow ((t (:foreground "yellow")))) - (term-yellowbg ((t (:background "yellow")))) - (text-cursor ((t (:background "Red3" :foreground "white")))) - (tool-bar ((t (:background "grey75" :foreground "black")))) - (toolbar ((t (:background "Gray")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (nil)))) - (vc-annotate-face-0046FF ((t (:background "black" :foreground "wheat")))) - (vcursor ((t (:underline t :background "cyan" :foreground "blue")))) - (vertical-divider ((t (:background "Gray")))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red")))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange")))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue")))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod")))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen")))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown")))) - (vhdl-speedbar-package-face ((t (:foreground "Gray50")))) - (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Gray50")))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "gray" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (vm-header-content-face ((t (:italic t :foreground "gray80")))) - (vm-header-from-face ((t (:italic t :background "#65889C" :foreground "cyan")))) - (vm-header-name-face ((t (:foreground "cyan")))) - (vm-header-subject-face ((t (:foreground "cyan")))) - (vm-header-to-face ((t (:italic t :foreground "cyan")))) - (vm-message-cited-face ((t (:foreground "Gray80")))) - (vm-summary-face-1 ((t (:foreground "MediumAquamarine")))) - (vm-summary-face-2 ((t (:foreground "MediumAquamarine")))) - (vm-summary-face-3 ((t (:foreground "MediumAquamarine")))) - (vm-summary-face-4 ((t (:foreground "MediumAquamarine")))) - (vm-summary-highlight-face ((t (:foreground "White")))) - (vmpc-pre-sig-face ((t (:foreground "Aquamarine")))) - (vmpc-sig-face ((t (:foreground "LightBlue")))) - (vvb-face ((t (:background "pink" :foreground "black")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "cyan")))) - (widget-documentation-face ((t (:foreground "LightBlue")))) - (widget-field-face ((t (:foreground "LightBlue")))) - (widget-inactive-face ((t (:foreground "Wheat3")))) - (widget-single-line-field-face ((t (:foreground "LightBlue")))) - (woman-bold-face ((t (:bold t)))) - (woman-italic-face ((t (:foreground "beige")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))) - (xref-keyword-face ((t (:foreground "Cyan")))) - (xref-list-pilot-face ((t (:foreground "navy")))) - (xref-list-symbol-face ((t (:foreground "navy")))) - (xxml-emph-1-face ((t (:background "lightyellow")))) - (xxml-emph-2-face ((t (:background "lightyellow")))) - (xxml-header-1-face ((t (:background "seashell1" :foreground "MediumAquamarine")))) - (xxml-header-2-face ((t (:background "seashell1" :foreground "SkyBlue")))) - (xxml-header-3-face ((t (:background "seashell1")))) - (xxml-header-4-face ((t (:background "seashell1")))) - (xxml-interaction-face ((t (:background "lightcyan")))) - (xxml-rug-face ((t (:background "cyan")))) - (xxml-sparkle-face ((t (:background "yellow")))) - (xxml-unbreakable-space-face ((t (:underline t :foreground "grey")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "#4f657d"))))))) - -(defun color-theme-dark-blue () - "Color theme by Chris McMahan, created 2001-09-09. -Based on `color-theme-subtle-blue' with a slightly darker background." - (interactive) - (color-theme-subtle-blue) - (let ((color-theme-is-cumulative t)) - (color-theme-install - '(color-theme-dark-blue - ((background-color . "#537182") - (foreground-color . "AntiqueWhite2")) - nil - (default ((t (nil)))) - (blank-space-face ((t (:background "LightGray")))) - (blank-tab-face ((t (:background "Wheat" :foreground "DarkSlateGray")))) - (cursor ((t (:background "LightGray")))) - (dired-face-executable ((t (:foreground "green yellow")))) - (dired-face-flagged ((t (:foreground "tomato")))) - (dired-face-marked ((t (:foreground "light salmon")))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (fixed ((t (:bold t)))) - (font-lock-comment-face ((t (:italic t :foreground "Gray80")))) - (font-lock-doc-face ((t (:bold t)))) - (font-lock-function-name-face ((t (:italic t :bold t :foreground "Yellow")))) - (font-lock-string-face ((t (:italic t :foreground "DarkSeaGreen")))) - (font-lock-type-face ((t (:bold t :foreground "YellowGreen")))) - (gui-button-face ((t (:background "DarkSalmon" :foreground "white")))) - (modeline ((t (:background "#c1ccd9" :foreground "#4f657d")))) - (modeline-buffer-id ((t (:background "#c1ccd9" :foreground "#4f657d")))) - (modeline-mousable ((t (:background "#c1ccd9" :foreground "#4f657d")))) - (modeline-mousable-minor-mode ((t (:background "#c1ccd9" :foreground "#4f657d")))) - (my-url-face ((t (:foreground "LightBlue")))) - (region ((t (:background "PaleTurquoise4" :foreground "gray80")))) - (secondary-selection ((t (:background "sea green" :foreground "yellow")))) - (vm-header-content-face ((t (:italic t :foreground "wheat")))) - (vm-header-from-face ((t (:italic t :foreground "wheat")))) - (widget-button-pressed-face ((t (:foreground "red")))) - (xref-keyword-face ((t (:foreground "blue")))) - (zmacs-region ((t (:background "SlateGray")))))))) - -(defun color-theme-jonadabian-slate () - "Another slate-and-wheat color theme by Jonadab the Unsightly One. -Updated 2001-10-12." - (interactive) - (color-theme-install - '(color-theme-jonadabian-slate - ((background-color . "#305050") - (background-mode . dark) - (border-color . "black") - (cursor-color . "medium turquoise") - (foreground-color . "#CCBB77") - (mouse-color . "black")) - ((list-matching-lines-face . bold) - (ued-mode-keyname-face . modeline) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (fringe ((t (:background "#007080")))) - (bold ((t (:bold t :foreground "#EEDDAA")))) - (gnus-emphasis-bold ((t (:bold t :foreground "#EEDDAA")))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t :foreground "#EEDDAA")))) - (bold-italic ((t (:italic t :bold t :foreground "#AA0000")))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :foreground "#AA0000")))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t :foreground "#AA0000")))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t :bold t :foreground "#AA0000")))) - (calendar-today-face ((t (:underline t :background "darkslategrey")))) - (cperl-array-face ((t (:background "#004060")))) - (cperl-hash-face ((t (:background "#004400")))) - (custom-button-face ((t (:background "dark blue" :foreground "rgbi:1.00/1.00/0.00")))) - (custom-documentation-face ((t (:foreground "#10D010")))) - (custom-face-tag-face ((t (:underline t :foreground "goldenrod")))) - (custom-group-tag-face ((t (:underline t :foreground "light blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "pink")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:foreground "#6666dd")))) - (custom-state-face ((t (:foreground "mediumaquamarine")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "light blue")))) - (diary-face ((t (:foreground "red")))) - (eshell-ls-archive-face ((t (:foreground "green")))) - (eshell-ls-backup-face ((t (:foreground "grey60")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-ls-directory-face ((t (:bold t :foreground "SkyBlue")))) - (eshell-ls-executable-face ((t (:foreground "white")))) - (eshell-ls-missing-face ((t (:foreground "red")))) - (eshell-ls-product-face ((t (:foreground "LightSalmon")))) - (eshell-ls-readonly-face ((t (:foreground "indian red")))) - (eshell-ls-special-face ((t (:foreground "yellow")))) - (eshell-ls-symlink-face ((t (:foreground "#6666dd")))) - (eshell-ls-unreadable-face ((t (:foreground "red")))) - (eshell-prompt-face ((t (:bold t :background "#305050" :foreground "#EEDD99")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:italic t :bold t :foreground "grey66")))) - (font-lock-constant-face ((t (:foreground "indian red")))) - (font-lock-function-name-face ((t (:foreground "#D0D000")))) - (font-lock-keyword-face ((t (:foreground "#00BBBB")))) - (font-lock-string-face ((t (:foreground "#10D010")))) - (font-lock-type-face ((t (:bold t :foreground "#ff7788")))) - (font-lock-variable-name-face ((t (:foreground "#eeddaa")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (header-line ((t (:box (:line-width 1 :style released-button))))) - (highlight ((t (:background "#226644")))) - (highlight-changes-delete-face ((t (:background "navy" :foreground "red")))) - (highlight-changes-face ((t (:background "navy")))) - (holiday-face ((t (:foreground "#ff7744")))) - (italic ((t (:italic t :foreground "#AA0000")))) - (gnus-emphasis-italic ((t (:italic t :foreground "#AA0000")))) - (modeline ((t (:background "#007080" :foreground "cyan")))) - (modeline-buffer-id ((t (:background "#007080" :foreground "cyan")))) - (modeline-mousable ((t (:background "#007080" :foreground "cyan")))) - (modeline-mousable-minor-mode ((t (:background "#007080" :foreground "cyan")))) - (region ((t (:background "#226644")))) - (secondary-selection ((t (:background "darkslategrey")))) - (sgml-comment-face ((t (:foreground "grey60")))) - (sgml-doctype-face ((t (:foreground "red")))) - (sgml-end-tag-face ((t (:foreground "#00D0D0")))) - (sgml-entity-face ((t (:foreground "indian red")))) - (sgml-ignored-face ((t (:background "gray60" :foreground "gray40")))) - (sgml-ms-end-face ((t (:foreground "green")))) - (sgml-ms-start-face ((t (:foreground "green")))) - (sgml-pi-face ((t (:foreground "lime green")))) - (sgml-sgml-face ((t (:foreground "brown")))) - (sgml-short-ref-face ((t (:foreground "deep sky blue")))) - (sgml-start-tag-face ((t (:foreground "#D0D000")))) - (show-paren-match-face ((t (:background "#400055" :foreground "cyan")))) - (show-paren-mismatch-face ((t (:background "red")))) - (special-string-face ((t (:foreground "light green")))) - (term-black ((t (:background "#000055" :foreground "black")))) - (term-blackbg ((t (:background "black" :foreground "#CCBB77")))) - (term-blue ((t (:background "#000055" :foreground "blue")))) - (term-bluebg ((t (:background "blue" :foreground "#CCBB77")))) - (term-bold ((t (:bold t :background "#000055" :foreground "#CCBB77")))) - (term-cyan ((t (:background "#000055" :foreground "cyan")))) - (term-cyanbg ((t (:background "darkcyan")))) - (term-default-bg ((t (:foreground "#CCBB77")))) - (term-default-bg-inv ((t (:foreground "#CCBB77")))) - (term-default-fg ((t (:background "#000055")))) - (term-default-fg-inv ((t (:background "#000055")))) - (term-green ((t (:background "#000055" :foreground "green")))) - (term-greenbg ((t (:background "darkgreen")))) - (term-invisible ((t (:foreground "#CCBB77")))) - (term-invisible-inv ((t (:foreground "#CCBB77")))) - (term-magenta ((t (:background "#000055" :foreground "magenta")))) - (term-magentabg ((t (:background "darkmagenta")))) - (term-red ((t (:background "#000055" :foreground "red")))) - (term-redbg ((t (:background "darkred")))) - (term-underline ((t (:underline t :background "#000055" :foreground "#CCBB77")))) - (term-white ((t (:background "#000055" :foreground "white")))) - (term-whitebg ((t (:background "grey50")))) - (term-yellow ((t (:background "#000055" :foreground "yellow")))) - (term-yellowbg ((t (:background "#997700")))) - (trailing-whitespace ((t (:background "#23415A")))) - (underline ((t (:underline t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "green")))) - (widget-field-face ((t (:background "grey35" :foreground "black")))) - (widget-inactive-face ((t (:foreground "gray")))) - (widget-single-line-field-face ((t (:background "dim gray"))))))) - -(defun color-theme-gray1 () - "Color theme by Paul Pulli, created 2001-10-19." - (interactive) - (color-theme-install - '(color-theme-gray1 - ((background-color . "darkgray") - (background-mode . light) - (background-toolbar-color . "#949494949494") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#595959595959") - (cursor-color . "Yellow") - (foreground-color . "black") - (top-toolbar-shadow-color . "#b2b2b2b2b2b2")) - nil - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (nil)))) - (cperl-here-face ((t (:background "gray68" :foreground "DeepPink")))) - (font-lock-builtin-face ((t (:bold t :foreground "red3")))) - (font-lock-comment-face ((t (:foreground "gray50")))) - (font-lock-constant-face ((t (:bold t :foreground "blue3")))) - (font-lock-doc-string-face ((t (:foreground "black")))) - (font-lock-function-name-face ((t (:bold t :foreground "DeepPink3")))) - (font-lock-keyword-face ((t (:bold t :foreground "red")))) - (font-lock-other-type-face ((t (:bold t :foreground "green4")))) - (font-lock-preprocessor-face ((t (:bold t :foreground "blue3")))) - (font-lock-reference-face ((t (:bold t :foreground "red3")))) - (font-lock-string-face ((t (:foreground "red")))) - (font-lock-type-face ((t (:bold t :foreground "white")))) - (font-lock-variable-name-face ((t (:bold t :foreground "blue3")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (green ((t (:foreground "green4")))) - (gui-button-face ((t (:background "black" :foreground "red")))) - (gui-element ((t (:background "gray58")))) - (highlight ((t (:background "magenta" :foreground "yellow")))) - (isearch ((t (:background "red" :foreground "yellow")))) - (italic ((t (:italic t)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray90" :foreground "purple")))) - (m4-face ((t (:background "gray90" :foreground "orange3")))) - (message-cited-text ((t (nil)))) - (message-header-contents ((t (nil)))) - (message-headers ((t (nil)))) - (message-highlighted-header-contents ((t (nil)))) - (modeline ((t (:background "#aa80aa" :foreground "White")))) - (modeline-buffer-id ((t (:background "#aa80aa" :foreground "linen")))) - (modeline-mousable ((t (:background "#aa80aa" :foreground "cyan")))) - (modeline-mousable-minor-mode ((t (:background "#aa80aa" :foreground "yellow")))) - (paren-blink-off ((t (:foreground "gray58")))) - (paren-blink-on ((t (:foreground "purple")))) - (paren-match ((t (:background "gray68" :foreground "white")))) - (paren-mismatch ((t (:background "DeepPink" :foreground "black")))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray")))) - (red ((t (:foreground "red")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (text-cursor ((t (:background "Yellow" :foreground "darkgray")))) - (toolbar ((t (:background "#aa80aa" :foreground "linen")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (nil)))) - (x-face ((t (:background "black" :foreground "lavenderblush")))) - (yellow ((t (:foreground "yellow3")))) - (zmacs-region ((t (:background "paleturquoise" :foreground "black"))))))) - -(defun color-theme-word-perfect () - "White on blue background, based on WordPerfect 5.1. -Color theme by Thomas Gehrlein, created 2001-10-21." - (interactive) - (color-theme-install - '(color-theme-word-perfect - ((background-color . "blue4") - (background-mode . dark) - (border-color . "black") - (cursor-color . "gold") - (foreground-color . "white") - (mouse-color . "black")) - ((ecb-source-in-directories-buffer-face . ecb-sources-face) - (gnus-mouse-face . highlight) - (goto-address-mail-face . italic) - (goto-address-mail-mouse-face . secondary-selection) - (goto-address-url-face . bold) - (goto-address-url-mouse-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bbdb-field-name ((t (:foreground "lime green")))) - (bbdb-field-value ((t (:foreground "white")))) - (bbdb-name ((t (:underline t :foreground "lime green")))) - (bold ((t (:bold t :foreground "white")))) - (bold-italic ((t (:italic t :bold t :foreground "yellow")))) - (calendar-today-face ((t (:underline t :foreground "deep sky blue")))) - (diary-face ((t (:foreground "gold")))) - (ecb-sources-face ((t (:foreground "LightBlue1")))) - (edb-inter-field-face ((t (:foreground "deep sky blue")))) - (edb-normal-summary-face ((t (:foreground "gold")))) - (emacs-wiki-bad-link-face ((t (:underline "coral" :bold t :foreground "coral")))) - (emacs-wiki-link-face ((t (:underline "cyan" :bold t :foreground "cyan")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:foreground "deep sky blue")))) - (font-lock-constant-face ((t (:foreground "lime green")))) - (font-lock-doc-face ((t (:foreground "gold")))) - (font-lock-doc-string-face ((t (:foreground "gold")))) - (font-lock-function-name-face ((t (:background "blue4" :foreground "IndianRed")))) - (font-lock-keyword-face ((t (:foreground "lime green")))) - (font-lock-preprocessor-face ((t (:foreground "lime green")))) - (font-lock-reference-face ((t (:foreground "LightSteelBlue")))) - (font-lock-string-face ((t (:foreground "gold")))) - (font-lock-type-face ((t (:foreground "lime green")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "firebrick")))) - (gnus-emphasis-bold ((t (:foreground "yellow2")))) - (gnus-emphasis-bold-italic ((t (:foreground "yellow2")))) - (gnus-emphasis-italic ((t (:foreground "yellow2")))) - (gnus-emphasis-underline ((t (:foreground "yellow2")))) - (gnus-emphasis-underline-bold ((t (:foreground "yellow2")))) - (gnus-emphasis-underline-bold-italic ((t (:foreground "yellow2")))) - (gnus-emphasis-underline-italic ((t (:foreground "yellow2")))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1")))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2")))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3")))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4")))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise")))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise")))) - (gnus-group-news-3-empty-face ((t (:foreground "deep sky blue")))) - (gnus-group-news-3-face ((t (:bold t :foreground "deep sky blue")))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise")))) - (gnus-header-content-face ((t (:foreground "gold")))) - (gnus-header-from-face ((t (:foreground "gold")))) - (gnus-header-name-face ((t (:foreground "deep sky blue")))) - (gnus-header-newsgroups-face ((t (:foreground "gold")))) - (gnus-header-subject-face ((t (:foreground "gold")))) - (gnus-signature-face ((t (:foreground "gold")))) - (gnus-splash-face ((t (:foreground "firebrick")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "deep sky blue")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "deep sky blue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "deep sky blue")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "deep sky blue")))) - (gnus-summary-high-unread-face ((t (:bold t :foreground "lime green")))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "deep sky blue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "deep sky blue")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "deep sky blue")))) - (gnus-summary-low-unread-face ((t (:italic t :foreground "lime green")))) - (gnus-summary-normal-ancient-face ((t (:foreground "deep sky blue")))) - (gnus-summary-normal-read-face ((t (:foreground "deep sky blue")))) - (gnus-summary-normal-ticked-face ((t (:foreground "deep sky blue")))) - (gnus-summary-normal-unread-face ((t (:foreground "lime green")))) - (gnus-summary-selected-face ((t (:underline t :foreground "gold")))) - (highlight ((t (:background "steel blue" :foreground "black")))) - (holiday-face ((t (:background "blue4" :foreground "IndianRed1")))) - (info-menu-5 ((t (:underline t :foreground "gold")))) - (info-node ((t (:italic t :bold t :foreground "gold")))) - (info-xref ((t (:bold t :foreground "gold")))) - (isearch ((t (:background "firebrick" :foreground "white")))) - (italic ((t (:italic t :foreground "yellow2")))) - (message-cited-text-face ((t (:foreground "gold")))) - (message-header-cc-face ((t (:bold t :foreground "green4")))) - (message-header-name-face ((t (:foreground "deep sky blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "gold")))) - (message-header-other-face ((t (:foreground "gold")))) - (message-header-subject-face ((t (:foreground "gold")))) - (message-header-to-face ((t (:bold t :foreground "gold")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-separator-face ((t (:foreground "lime green")))) - (modeline ((t (:foreground "white" :background "black")))) - (modeline-buffer-id ((t (:foreground "white" :background "black")))) - (modeline-mousable ((t (:foreground "white" :background "black")))) - (modeline-mousable-minor-mode ((t (:foreground "white" :background "black")))) - (overlay-empty-face ((t (nil)))) - (primary-selection ((t (:background "firebrick" :foreground "white")))) - (region ((t (:background "firebrick" :foreground "white")))) - (secondary-selection ((t (:background "yellow2" :foreground "black")))) - (semantic-dirty-token-face ((t (:background "gray10")))) - (show-paren-match-face ((t (:background "deep sky blue" :foreground "black")))) - (show-paren-mismatch-face ((t (:background "firebrick" :foreground "white")))) - (underline ((t (:underline t :background "blue4" :foreground "white"))))))) - -;; In order to produce this, follow these steps: -;; -;; 0. Make sure .Xresources and .Xdefaults don't have any Emacs related -;; entries. -;; -;; 1. cd into the Emacs lisp directory and run the following command: -;; ( for d in `find -type d`; \ -;; do grep --files-with-matches 'defface[ ]' $d/*.el; \ -;; done ) | sort | uniq -;; Put the result in a lisp block, using load-library calls. -;; -;; Repeat this for any directories on your load path which you want to -;; include in the standard. This might include W3, eshell, etc. -;; -;; Add some of the libraries that don't use defface: -;; -;; 2. Start emacs using the --no-init-file and --no-site-file command line -;; arguments. Evaluate the lisp block you prepared. -;; 3. Load color-theme and run color-theme-print. Save the output and use it -;; to define color-theme-standard. -;; -;; (progn -;; (load-library "add-log") -;; (load-library "calendar") -;; (load-library "comint") -;; (load-library "cus-edit") -;; (load-library "cus-face") -;; (load-library "custom") -;; (load-library "diff-mode") -;; (load-library "ediff-init") -;; (load-library "re-builder") -;; (load-library "viper-init") -;; (load-library "enriched") -;; (load-library "em-ls") -;; (load-library "em-prompt") -;; (load-library "esh-test") -;; (load-library "faces") -;; (load-library "font-lock") -;; (load-library "generic-x") -;; (load-library "gnus-art") -;; (load-library "gnus-cite") -;; (load-library "gnus") -;; (load-library "message") -;; (load-library "hilit-chg") -;; (load-library "hi-lock") -;; (load-library "info") -;; (load-library "isearch") -;; (load-library "log-view") -;; (load-library "paren") -;; (load-library "pcvs-info") -;; (load-library "antlr-mode") -;; (load-library "cperl-mode") -;; (load-library "ebrowse") -;; (load-library "idlwave") -;; (load-library "idlw-shell") -;; (load-library "make-mode") -;; (load-library "sh-script") -;; (load-library "vhdl-mode") -;; (load-library "smerge-mode") -;; (load-library "speedbar") -;; (load-library "strokes") -;; (load-library "artist") -;; (load-library "flyspell") -;; (load-library "texinfo") -;; (load-library "tex-mode") -;; (load-library "tooltip") -;; (load-library "vcursor") -;; (load-library "wid-edit") -;; (load-library "woman") -;; (load-library "term") -;; (load-library "man") -;; (load-file "/home/alex/elisp/color-theme.el") -;; (color-theme-print)) -;; -;; 4. Make the color theme usable on Xemacs (add more faces, resolve -;; :inherit attributes) -;; -(defun color-theme-emacs-21 () - "Color theme used by Emacs 21.1. -Added and adapted for XEmacs by Alex Schroeder. Adaptation mostly -consisted of resolving :inherit attributes and adding missing faces. -This theme includes faces from the following Emacs libraries: add-log -calendar comint cus-edit cus-face custom diff-mode ediff-init re-builder -viper-init enriched em-ls em-prompt esh-test faces font-lock generic-x -gnus-art gnus-cite gnus message hilit-chg hi-lock info isearch log-view -paren pcvs-info antlr-mode cperl-mode ebrowse idlwave idlw-shell -make-mode sh-script vhdl-mode smerge-mode speedbar strokes artist -flyspell texinfo tex-mode tooltip vcursor wid-edit woman term man" - (interactive) - (color-theme-install - '(color-theme-emacs-21 - ((background-color . "white") - (background-mode . light) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "black") - (mouse-color . "black")) - ((Man-overstrike-face . bold) - (Man-underline-face . underline) - (cperl-here-face . font-lock-string-face) - (cperl-invalid-face . underline) - (cperl-pod-face . font-lock-comment-face) - (cperl-pod-head-face . font-lock-variable-name-face) - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-cite-attribution-face . gnus-cite-attribution-face) - (gnus-mouse-face . highlight) - (gnus-signature-face . gnus-signature-face) - (gnus-summary-selected-face . gnus-summary-selected-face) - (help-highlight-face . underline) - (idlwave-class-arrow-face . bold) - (idlwave-shell-breakpoint-face . idlwave-shell-bp-face) - (idlwave-shell-expression-face . secondary-selection) - (idlwave-shell-stop-line-face . highlight) - (ispell-highlight-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight) - (viper-insert-state-cursor-color . "Green") - (viper-replace-overlay-cursor-color . "Red") - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728)))) - (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44)))) - (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2)))) - (Info-title-4-face ((t (:bold t :family "helv" :weight bold)))) - (antlr-font-lock-keyword-face ((t (:bold t :foreground "black" :weight bold)))) - (antlr-font-lock-literal-face ((t (:bold t :foreground "brown4" :weight bold)))) - (antlr-font-lock-ruledef-face ((t (:bold t :foreground "blue" :weight bold)))) - (antlr-font-lock-ruleref-face ((t (:foreground "blue4")))) - (antlr-font-lock-tokendef-face ((t (:bold t :foreground "blue" :weight bold)))) - (antlr-font-lock-tokenref-face ((t (:foreground "orange4")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (calendar-today-face ((t (:underline t)))) - (change-log-acknowledgement-face ((t (:foreground "Firebrick")))) - (change-log-conditionals-face ((t (:foreground "DarkGoldenrod")))) - (change-log-date-face ((t (:foreground "RosyBrown")))) - (change-log-email-face ((t (:foreground "DarkGoldenrod")))) - (change-log-file-face ((t (:foreground "Blue")))) - (change-log-function-face ((t (:foreground "DarkGoldenrod")))) - (change-log-list-face ((t (:foreground "Purple")))) - (change-log-name-face ((t (:foreground "CadetBlue")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "dark blue")))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue" :weight bold)))) - (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red" :slant italic :weight bold)))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (cursor ((t (:background "black")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "gray85")))) - (custom-comment-tag-face ((t (:foreground "blue4")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "red" :weight bold :height 1.2)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "blue" :weight bold :height 1.2)))) - (cvs-filename-face ((t (:foreground "blue4")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:bold t :foreground "blue4" :weight bold)))) - (cvs-marked-face ((t (:bold t :foreground "green3" :weight bold)))) - (cvs-msg-face ((t (:italic t :slant italic)))) - (cvs-need-action-face ((t (:foreground "orange")))) - (cvs-unknown-face ((t (:foreground "red")))) - (diary-face ((t (:foreground "red")))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (:foreground "grey50")))) - (diff-file-header-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-function-face ((t (:foreground "grey50")))) - (diff-header-face ((t (:background "grey85")))) - (diff-hunk-header-face ((t (:background "grey85")))) - (diff-index-face ((t (:bold t :weight bold :background "grey70")))) - (diff-nonexistent-face ((t (:bold t :weight bold :background "grey70")))) - (diff-removed-face ((t (nil)))) - (dired-face-boring ((t (:foreground "RosyBrown")))) - (dired-face-directory ((t (:foreground "Blue")))) - (dired-face-executable ((t (nil)))) - (dired-face-flagged ((t (:foreground "Red" :weight bold)))) - (dired-face-marked ((t (:foreground "Red" :weight bold)))) - (dired-face-permissions ((t (nil)))) - (dired-face-setuid ((t (nil)))) - (dired-face-socket ((t (nil)))) - (dired-face-symlink ((t (:foreground "Purple")))) - (ebrowse-default-face ((t (nil)))) - (ebrowse-file-name-face ((t (:italic t :slant italic)))) - (ebrowse-member-attribute-face ((t (:foreground "red")))) - (ebrowse-member-class-face ((t (:foreground "purple")))) - (ebrowse-progress-face ((t (:background "blue")))) - (ebrowse-root-class-face ((t (:bold t :foreground "blue" :weight bold)))) - (ebrowse-tree-mark-face ((t (:foreground "red")))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid" :weight bold)))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed" :weight bold)))) - (eshell-ls-directory-face ((t (:bold t :foreground "Blue" :weight bold)))) - (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen" :weight bold)))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red" :weight bold)))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta" :weight bold)))) - (eshell-ls-symlink-face ((t (:bold t :foreground "Dark Cyan" :weight bold)))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:bold t :foreground "Red" :weight bold)))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed" :weight bold)))) - (eshell-test-ok-face ((t (:bold t :foreground "Green" :weight bold)))) - (excerpt ((t (:italic t :slant italic)))) - (fixed ((t (:bold t :weight bold)))) - (fixed-pitch ((t (:family "courier")))) - (flyspell-duplicate-face ((t (:bold t :foreground "Gold3" :underline t :weight bold)))) - (flyspell-incorrect-face ((t (:bold t :foreground "OrangeRed" :underline t :weight bold)))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:foreground "Firebrick")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-doc-face ((t (:foreground "RosyBrown")))) - (font-lock-doc-string-face ((t (:foreground "RosyBrown")))) - (font-lock-function-name-face ((t (:foreground "Blue")))) - (font-lock-keyword-face ((t (:foreground "Purple")))) - (font-lock-preprocessor-face ((t (:foreground "CadetBlue")))) - (font-lock-reference-face ((t (:foreground "Orchid")))) - (font-lock-string-face ((t (:foreground "RosyBrown")))) - (font-lock-type-face ((t (:foreground "ForestGreen")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Red" :weight bold)))) - (fringe ((t (:background "grey95")))) - (gnus-cite-attribution-face ((t (:italic t :slant italic)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :weight bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t :slant italic)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4" :weight bold)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :weight bold)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t :weight bold)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t :weight bold)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen" :weight bold)))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4" :slant italic)))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue" :slant italic)))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-signature-face ((t (:italic t :slant italic)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue" :slant italic)))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen" :slant italic)))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick" :slant italic)))) - (gnus-summary-low-unread-face ((t (:italic t :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey90" :foreground "grey20" :box nil)))) - (hi-black-b ((t (:bold t :weight bold)))) - (hi-black-hb ((t (:bold t :family "helv" :weight bold :height 1.67)))) - (hi-blue ((t (:background "light blue")))) - (hi-blue-b ((t (:bold t :foreground "blue" :weight bold)))) - (hi-green ((t (:background "green")))) - (hi-green-b ((t (:bold t :foreground "green" :weight bold)))) - (hi-pink ((t (:background "pink")))) - (hi-red-b ((t (:bold t :foreground "red" :weight bold)))) - (hi-yellow ((t (:background "yellow")))) - (highlight ((t (:background "darkseagreen2")))) - (highlight-changes-delete-face ((t (:foreground "red" :underline t)))) - (highlight-changes-face ((t (:foreground "red")))) - (holiday-face ((t (:background "pink")))) - (idlwave-help-link-face ((t (:foreground "Blue")))) - (idlwave-shell-bp-face ((t (:background "Pink" :foreground "Black")))) - (info-header-node ((t (:italic t :bold t :weight bold :slant italic :foreground "brown")))) - (info-header-xref ((t (:bold t :weight bold :foreground "magenta4")))) - (info-menu-5 ((t (:foreground "red1")))) - (info-menu-header ((t (:bold t :family "helv" :weight bold)))) - (info-node ((t (:italic t :bold t :foreground "brown" :slant italic :weight bold)))) - (info-xref ((t (:bold t :foreground "magenta4" :weight bold)))) - (isearch ((t (:background "magenta4" :foreground "lightskyblue1")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise")))) - (italic ((t (:italic t :slant italic)))) - (log-view-file-face ((t (:bold t :background "grey70" :weight bold)))) - (log-view-message-face ((t (:background "grey85")))) - (makefile-space-face ((t (:background "hotpink")))) - (menu ((t (nil)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue" :weight bold)))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue" :weight bold)))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (modeline-buffer-id ((t (:bold t :background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (modeline-mousable ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (modeline-mousable-minor-mode ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (mouse ((t (:background "black")))) - (primary-selection ((t (:background "lightgoldenrod2")))) - (reb-match-0 ((t (:background "lightblue")))) - (reb-match-1 ((t (:background "aquamarine")))) - (reb-match-2 ((t (:background "springgreen")))) - (reb-match-3 ((t (:background "yellow")))) - (region ((t (:background "lightgoldenrod2")))) - (scroll-bar ((t (:background "grey75")))) - (secondary-selection ((t (:background "yellow")))) - (sh-heredoc-face ((t (:foreground "tan")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (show-tabs-space-face ((t (:foreground "yellow")))) - (show-tabs-tab-face ((t (:foreground "red")))) - (smerge-base-face ((t (:foreground "red")))) - (smerge-markers-face ((t (:background "grey85")))) - (smerge-mine-face ((t (:foreground "blue")))) - (smerge-other-face ((t (:foreground "darkgreen")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "brown")))) - (strokes-char-face ((t (:background "lightgray")))) - (term-black ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-blackbg ((t (:stipple nil :background "black" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-blue ((t (:stipple nil :background "white" :foreground "blue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-bluebg ((t (:stipple nil :background "blue" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-bold ((t (:bold t :stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight bold :width normal :family "adobe-courier")))) - (term-cyan ((t (:stipple nil :background "white" :foreground "cyan" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-cyanbg ((t (:stipple nil :background "cyan" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-bg ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-bg-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-fg ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-fg-inv ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-green ((t (:stipple nil :background "white" :foreground "green" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-greenbg ((t (:stipple nil :background "green" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-invisible ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-invisible-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-magenta ((t (:stipple nil :background "white" :foreground "magenta" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-magentabg ((t (:stipple nil :background "magenta" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-red ((t (:stipple nil :background "white" :foreground "red" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-redbg ((t (:stipple nil :background "red" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-underline ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline t :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-white ((t (:stipple nil :background "white" :foreground "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-whitebg ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-yellow ((t (:stipple nil :background "white" :foreground "yellow" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-yellowbg ((t (:stipple nil :background "yellow" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (tex-math-face ((t (:foreground "RosyBrown")))) - (texinfo-heading-face ((t (:foreground "Blue")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (vcursor ((t (:background "cyan" :foreground "blue" :underline t)))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red" :weight bold)))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange" :weight bold)))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:foreground "Blue" :underline t)))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:foreground "DarkGoldenrod" :underline t)))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:foreground "ForestGreen" :underline t)))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:foreground "Brown" :underline t)))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:foreground "Grey50" :underline t)))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (woman-addition-face ((t (:foreground "orange")))) - (woman-bold-face ((t (:bold t :foreground "blue" :weight bold)))) - (woman-italic-face ((t (:italic t :foreground "red" :underline t :slant italic)))) - (woman-unknown-face ((t (:foreground "brown")))) - (zmacs-region ((t (:background "lightgoldenrod2"))))))) - -(defun color-theme-jsc-light2 () - "Color theme by John S Cooper, created 2001-10-29. -This builds on `color-theme-jsc-light'." - (interactive) - (color-theme-jsc-light) - (let ((color-theme-is-cumulative t)) - (color-theme-install - '(color-theme-jsc-light2 - ((vc-annotate-very-old-color . "#0046FF") - (senator-eldoc-use-color . t)) - nil - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (change-log-file-face ((t (:foreground "Blue")))) - (change-log-name-face ((t (:foreground "Maroon")))) - (comint-highlight-prompt ((t (:foreground "dark blue")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "red" :weight bold :height 1.2)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "blue" :weight bold :height 1.2)))) - (font-lock-constant-face ((t (:foreground "Maroon")))) - (font-lock-function-name-face ((t (:foreground "Blue")))) - (font-lock-type-face ((t (:italic t :foreground "Navy" :slant italic)))) - (fringe ((t (:background "grey88")))) - (gnus-group-mail-1-empty-face ((t (:foreground "Blue2")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen" :weight bold)))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4" :slant italic)))) - (gnus-header-name-face ((t (:bold t :foreground "maroon" :weight bold)))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-signature-face ((t (:italic t :slant italic)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :weight bold)))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "Navy")))) - (gnus-summary-normal-unread-face ((t (:bold t :foreground "DarkGreen" :weight bold)))) - (header-line ((t (:background "grey90" :foreground "grey20" :box nil)))) - (highlight ((t (:background "darkseagreen2")))) - (ido-subdir-face ((t (:foreground "red")))) - (isearch ((t (:background "magenta4" :foreground "lightskyblue1")))) - (mode-line ((t (:background "grey88" :foreground "black" :box (:line-width -1 :style released-button))))) - (region ((t (:background "lightgoldenrod2")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "yellow")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (tooltip ((t (:background "lightyellow" :foreground "black")))))))) - -(defun color-theme-ld-dark () - "Dark Color theme by Linh Dang, created 2001-11-06." - (interactive) - (color-theme-install - '(color-theme-ld-dark - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "yellow") - (foreground-color . "white") - (mouse-color . "white")) - ((align-highlight-change-face . highlight) - (align-highlight-nochange-face . secondary-selection) - (apropos-keybinding-face . underline) - (apropos-label-face . italic) - (apropos-match-face . secondary-selection) - (apropos-property-face . bold-italic) - (apropos-symbol-face . bold) - (ebnf-except-border-color . "Black") - (ebnf-line-color . "Black") - (ebnf-non-terminal-border-color . "Black") - (ebnf-repeat-border-color . "Black") - (ebnf-special-border-color . "Black") - (ebnf-terminal-border-color . "Black") - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-carpal-button-face . bold) - (gnus-carpal-header-face . bold-italic) - (gnus-cite-attribution-face . gnus-cite-attribution-face) - (gnus-mouse-face . highlight) - (gnus-selected-tree-face . modeline) - (gnus-signature-face . gnus-signature-face) - (gnus-summary-selected-face . gnus-summary-selected-face) - (help-highlight-face . underline) - (list-matching-lines-face . bold) - (ps-line-number-color . "black") - (ps-zebra-color . 0.95) - (tags-tag-face . default) - (vc-annotate-very-old-color . "#0046FF") - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "black" :foreground "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-courier new")))) - (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728)))) - (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44)))) - (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2)))) - (Info-title-4-face ((t (:bold t :family "helv" :weight bold)))) - (bbdb-company ((t (:italic t :slant italic)))) - (bbdb-field-name ((t (:bold t :weight bold)))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (:underline t)))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (change-log-acknowledgement-face ((t (:italic t :slant oblique :foreground "AntiqueWhite3")))) - (change-log-conditionals-face ((t (:foreground "Aquamarine")))) - (change-log-date-face ((t (:italic t :slant oblique :foreground "BurlyWood")))) - (change-log-email-face ((t (:foreground "Aquamarine")))) - (change-log-file-face ((t (:bold t :family "Verdana" :weight bold :foreground "LightSkyBlue" :height 0.9)))) - (change-log-function-face ((t (:foreground "Aquamarine")))) - (change-log-list-face ((t (:foreground "LightSkyBlue")))) - (change-log-name-face ((t (:bold t :weight bold :foreground "Gold")))) - (clear-case-mode-string-face ((t (:bold t :family "Arial" :box (:line-width 2 :color "grey" :style released-button) :foreground "black" :background "grey" :weight bold :height 0.9)))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cursor ((t (:background "yellow")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "dim gray")))) - (custom-comment-tag-face ((t (:foreground "gray80")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.1)))) - (custom-group-tag-face ((t (:bold t :family "helv" :foreground "light blue" :weight bold :height 1.1)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "pink" :weight bold :height 1.1)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "lime green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "light blue" :weight bold :height 1.2)))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (:foreground "grey70")))) - (diff-file-header-face ((t (:bold t :background "grey60" :weight bold)))) - (diff-function-face ((t (:foreground "grey70")))) - (diff-header-face ((t (:background "grey45")))) - (diff-hunk-header-face ((t (:background "grey45")))) - (diff-index-face ((t (:bold t :weight bold :background "grey60")))) - (diff-nonexistent-face ((t (:bold t :weight bold :background "grey60")))) - (diff-removed-face ((t (nil)))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:foreground "SteelBlue")))) - (font-lock-comment-face ((t (:italic t :foreground "AntiqueWhite3" :slant oblique)))) - (font-lock-constant-face ((t (:bold t :foreground "Gold" :weight bold)))) - (font-lock-doc-face ((t (:italic t :slant oblique :foreground "BurlyWood")))) - (font-lock-doc-string-face ((t (:italic t :slant oblique :foreground "BurlyWood")))) - (font-lock-function-name-face ((t (:bold t :foreground "LightSkyBlue" :weight bold :height 0.9 :family "Verdana")))) - (font-lock-keyword-face ((t (:foreground "LightSkyBlue")))) - (font-lock-preprocessor-face ((t (:bold t :foreground "Gold" :weight bold)))) - (font-lock-reference-face ((t (:foreground "SteelBlue")))) - (font-lock-string-face ((t (:italic t :foreground "BurlyWood" :slant oblique)))) - (font-lock-type-face ((t (:bold t :foreground "PaleGreen" :weight bold :height 0.9 :family "Verdana")))) - (font-lock-variable-name-face ((t (:foreground "Aquamarine")))) - (font-lock-warning-face ((t (:bold t :foreground "chocolate" :weight bold)))) - (fringe ((t (:family "outline-courier new" :width normal :weight normal :slant normal :underline nil :overline nil :strike-through nil :box nil :inverse-video nil :stipple nil :background "grey4" :foreground "Wheat")))) - (gnus-cite-attribution-face ((t (:italic t :slant italic)))) - (gnus-cite-face-1 ((t (:foreground "light blue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "light cyan")))) - (gnus-cite-face-3 ((t (:foreground "light yellow")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :weight bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t :slant italic)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :weight bold)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t :weight bold)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t :weight bold)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise" :weight bold)))) - (gnus-header-content-face ((t (:italic t :foreground "forest green" :slant italic)))) - (gnus-header-from-face ((t (:foreground "spring green")))) - (gnus-header-name-face ((t (:foreground "SeaGreen")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "yellow" :slant italic)))) - (gnus-header-subject-face ((t (:foreground "SeaGreen3")))) - (gnus-signature-face ((t (:italic t :slant italic)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue" :slant italic)))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen" :slant italic)))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink" :slant italic)))) - (gnus-summary-low-unread-face ((t (:italic t :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (header-line ((t (:family "Arial" :background "grey20" :foreground "grey75" :box (:line-width 3 :color "grey20" :style released-button) :height 0.9)))) - (highlight ((t (:background "darkolivegreen")))) - (info-header-node ((t (:italic t :bold t :weight bold :slant italic :foreground "white")))) - (info-header-xref ((t (:bold t :weight bold :foreground "cyan")))) - (info-menu-5 ((t (:foreground "red1")))) - (info-menu-header ((t (:bold t :family "helv" :weight bold)))) - (info-node ((t (:italic t :bold t :foreground "white" :slant italic :weight bold)))) - (info-xref ((t (:bold t :foreground "cyan" :weight bold)))) - (isearch ((t (:background "palevioletred2")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (makefile-space-face ((t (:background "hotpink")))) - (menu ((t (nil)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "green4" :weight bold)))) - (message-header-name-face ((t (:foreground "DarkGreen")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "#b00000")))) - (message-header-subject-face ((t (:foreground "green3")))) - (message-header-to-face ((t (:bold t :foreground "green2" :weight bold)))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "blue3")))) - (modeline ((t (:background "grey" :foreground "black" :box (:line-width 2 :color "grey" :style released-button) :height 0.9 :family "Arial")))) - (modeline-mousable-minor-mode ((t (:background "grey" :foreground "black" :box (:line-width 2 :color "grey" :style released-button) :height 0.9 :family "Arial")))) - (modeline-mousable ((t (:background "grey" :foreground "black" :box (:line-width 2 :color "grey" :style released-button) :height 0.9 :family "Arial")))) - (modeline-buffer-id ((t (:background "grey" :foreground "black" :box (:line-width 2 :color "grey" :style released-button) :height 0.9 :family "Arial")))) - (mouse ((t (:background "white")))) - (primary-selection ((t (:background "DarkSlateGray")))) - (region ((t (:background "DarkSlateGray")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "SkyBlue4")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (trailing-whitespace ((t (:background "white")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray")))) - (zmacs-region ((t (:background "DarkSlateGray"))))))) - -(defun color-theme-deep-blue () - "Color theme by Tomas Cerha, created 2001-11-13." - (interactive) - (color-theme-install - '(color-theme-deep-blue - ((background-color . "#102e4e") - (background-mode . dark) - (border-color . "black") - (cursor-color . "green") - (foreground-color . "#eeeeee") - (mouse-color . "white")) - ((browse-kill-ring-separator-face . bold) - (display-time-mail-face . mode-line) - (help-highlight-face . underline) - (list-matching-lines-face . secondary-selection) - (vc-annotate-very-old-color . "#0046FF") - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "#102e4e" :foreground "#eeeeee" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "misc-fixed")))) - (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728)))) - (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44)))) - (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2)))) - (Info-title-4-face ((t (:bold t :family "helv" :weight bold)))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (calendar-today-face ((t (:background "blue")))) - (change-log-acknowledgement-face ((t (:italic t :slant italic :foreground "CadetBlue")))) - (change-log-conditionals-face ((t (:foreground "SeaGreen2")))) - (change-log-date-face ((t (:foreground "burlywood")))) - (change-log-email-face ((t (:foreground "SeaGreen2")))) - (change-log-file-face ((t (:bold t :weight bold :foreground "goldenrod")))) - (change-log-function-face ((t (:foreground "SeaGreen2")))) - (change-log-list-face ((t (:bold t :weight bold :foreground "DeepSkyBlue1")))) - (change-log-name-face ((t (:foreground "gold")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cursor ((t (:background "green" :foreground "black")))) - (cvs-filename-face ((t (:foreground "lightblue")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:bold t :foreground "lightyellow" :weight bold)))) - (cvs-marked-face ((t (:bold t :foreground "green" :weight bold)))) - (cvs-msg-face ((t (:italic t :slant italic)))) - (cvs-need-action-face ((t (:foreground "orange")))) - (cvs-unknown-face ((t (:foreground "red")))) - (diary-face ((t (:foreground "orange red")))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (:foreground "grey70")))) - (diff-file-header-face ((t (:bold t :background "grey60" :weight bold)))) - (diff-function-face ((t (:foreground "grey70")))) - (diff-header-face ((t (:background "grey45")))) - (diff-hunk-header-face ((t (:background "grey45")))) - (diff-index-face ((t (:bold t :weight bold :background "grey60")))) - (diff-nonexistent-face ((t (:bold t :weight bold :background "grey60")))) - (diff-removed-face ((t (nil)))) - (fixed-pitch ((t (:family "fixed")))) - (font-latex-bold-face ((t (:bold t :foreground "OliveDrab" :weight bold)))) - (font-latex-italic-face ((t (:italic t :foreground "OliveDrab" :slant italic)))) - (font-latex-math-face ((t (:foreground "burlywood")))) - (font-latex-sedate-face ((t (:foreground "LightGray")))) - (font-latex-string-face ((t (:foreground "LightSalmon")))) - (font-latex-warning-face ((t (:bold t :foreground "Pink" :weight bold)))) - (font-lock-builtin-face ((t (:foreground "LightCoral")))) - (font-lock-comment-face ((t (:italic t :foreground "CadetBlue" :slant italic)))) - (font-lock-constant-face ((t (:foreground "gold")))) - (font-lock-doc-face ((t (:foreground "BlanchedAlmond")))) - (font-lock-doc-string-face ((t (:foreground "BlanchedAlmond")))) - (font-lock-function-name-face ((t (:bold t :foreground "goldenrod" :weight bold)))) - (font-lock-keyword-face ((t (:bold t :foreground "DeepSkyBlue1" :weight bold)))) - (font-lock-preprocessor-face ((t (:foreground "gold")))) - (font-lock-reference-face ((t (:foreground "LightCoral")))) - (font-lock-string-face ((t (:foreground "burlywood")))) - (font-lock-type-face ((t (:foreground "CadetBlue1")))) - (font-lock-variable-name-face ((t (:foreground "SeaGreen2")))) - (font-lock-warning-face ((t (:foreground "yellow")))) - (fringe ((t (:background "#405060")))) - (header-line ((t (:box (:line-width 2 :style released-button) :background "grey20" :foreground "grey90" :box nil)))) - (highlight ((t (:background "darkgreen")))) - (holiday-face ((t (:foreground "green")))) - (info-header-node ((t (:foreground "DeepSkyBlue1")))) - (info-header-xref ((t (:bold t :weight bold :foreground "SeaGreen2")))) - (info-menu-5 ((t (:foreground "wheat")))) - (info-menu-header ((t (:bold t :family "helv" :weight bold)))) - (info-node ((t (:foreground "DeepSkyBlue1")))) - (info-xref ((t (:bold t :foreground "SeaGreen2" :weight bold)))) - (isearch ((t (:background "palevioletred2" :foreground "brown4")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (menu ((t (:background "gray" :foreground "black" :family "helvetica")))) - (modeline ((t (:background "gray" :foreground "black" :box (:line-width 2 :style released-button))))) - (modeline-buffer-id ((t (:background "gray" :foreground "black" :box (:line-width 2 :style released-button))))) - (modeline-mousable ((t (:background "gray" :foreground "black" :box (:line-width 2 :style released-button))))) - (modeline-mousable-minor-mode ((t (:background "gray" :foreground "black" :box (:line-width 2 :style released-button))))) - (mouse ((t (:background "white")))) - (region ((t (:background "DarkCyan")))) - (scroll-bar ((t (:background "gray" :foreground "#506070")))) - (secondary-selection ((t (:background "yellow" :foreground "gray10")))) - (show-paren-match-face ((t (:bold t :foreground "yellow" :weight bold)))) - (show-paren-mismatch-face ((t (:bold t :foreground "red" :weight bold)))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "#102e4e")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray"))))))) - -(defun color-theme-kingsajz () - "Color theme by Olgierd \"Kingsajz\" Ziolko, created 2001-12-04. -Another theme with wheat on DarkSlatGrey. Based on Subtle Hacker. -Used on Emacs 21.1 @ WinMe. Not tested on any other systems. - -Some faces uses Andale mono font (nice fixed-width font). -It is available at: http://www.microsoft.com/typography/downloads/andale32.exe - -Hail Eris! All hail Discordia!" - (interactive) - (color-theme-install - '(color-theme-kingsajz - ((background-color . "darkslategrey") - (background-mode . dark) - (border-color . "black") - (cursor-color . "LightGray") - (foreground-color . "wheat") - (mouse-color . "Grey")) - ((apropos-keybinding-face . underline) - (apropos-label-face face italic mouse-face highlight) - (apropos-match-face . secondary-selection) - (apropos-property-face . bold-italic) - (apropos-symbol-face . info-xref) - (display-time-mail-face . mode-line) - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-carpal-button-face . bold) - (gnus-carpal-header-face . bold-italic) - (gnus-cite-attribution-face . gnus-cite-attribution-face) - (gnus-mouse-face . highlight) - (gnus-selected-tree-face . modeline) - (gnus-signature-face . gnus-signature-face) - (gnus-summary-selected-face . gnus-summary-selected-face) - (gnus-treat-display-xface . head) - (help-highlight-face . underline) - (list-matching-lines-face . bold) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "darkslategrey" :foreground "wheat" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-andale mono")))) - (bbdb-field-name ((t (:foreground "green")))) - (bg:erc-color-face0 ((t (:background "White")))) - (bg:erc-color-face1 ((t (:background "black")))) - (bg:erc-color-face10 ((t (:background "lightblue1")))) - (bg:erc-color-face11 ((t (:background "cyan")))) - (bg:erc-color-face12 ((t (:background "blue")))) - (bg:erc-color-face13 ((t (:background "deeppink")))) - (bg:erc-color-face14 ((t (:background "gray50")))) - (bg:erc-color-face15 ((t (:background "gray90")))) - (bg:erc-color-face2 ((t (:background "blue4")))) - (bg:erc-color-face3 ((t (:background "green4")))) - (bg:erc-color-face4 ((t (:background "red")))) - (bg:erc-color-face5 ((t (:background "brown")))) - (bg:erc-color-face6 ((t (:background "purple")))) - (bg:erc-color-face7 ((t (:background "orange")))) - (bg:erc-color-face8 ((t (:background "yellow")))) - (bg:erc-color-face9 ((t (:background "green")))) - (blue ((t (:foreground "cyan")))) - (bold ((t (:bold t :foreground "OrangeRed" :weight bold :family "Arial")))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold :family "Arial")))) - (border ((t (:background "black")))) - (calendar-today-face ((t (:underline t)))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cperl-array-face ((t (:foreground "Yellow")))) - (cperl-hash-face ((t (:foreground "White")))) - (cperl-nonoverridable-face ((t (:foreground "SkyBlue")))) - (cursor ((t (:background "LightGray")))) - (custom-button-face ((t (:foreground "MediumSlateBlue" :underline t)))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "dim gray")))) - (custom-comment-tag-face ((t (:foreground "gray80")))) - (custom-documentation-face ((t (:foreground "Grey")))) - (custom-face-tag-face ((t (:bold t :family "Arial" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:foreground "MediumAquamarine")))) - (custom-group-tag-face-1 ((t (:bold t :family "Arial" :foreground "pink" :weight bold :height 1.2)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "Coral")))) - (custom-variable-button-face ((t (:underline t)))) - (custom-variable-tag-face ((t (:foreground "Aquamarine")))) - (date ((t (:foreground "green")))) - (diary-face ((t (:bold t :foreground "IndianRed" :weight bold)))) - (dired-face-directory ((t (:bold t :foreground "sky blue" :weight bold)))) - (dired-face-executable ((t (:foreground "green yellow")))) - (dired-face-flagged ((t (:foreground "tomato")))) - (dired-face-marked ((t (:foreground "light salmon")))) - (dired-face-permissions ((t (:foreground "aquamarine")))) - (erc-action-face ((t (:bold t :weight bold)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "pale green")))) - (erc-error-face ((t (:bold t :foreground "IndianRed" :weight bold)))) - (erc-highlight-face ((t (:bold t :foreground "pale green" :weight bold)))) - (erc-host-danger-face ((t (:foreground "red")))) - (erc-input-face ((t (:foreground "light blue")))) - (erc-inverse-face ((t (:background "steel blue")))) - (erc-notice-face ((t (:foreground "light salmon")))) - (erc-pal-face ((t (:foreground "pale green")))) - (erc-prompt-face ((t (:bold t :foreground "light blue" :weight bold)))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed" :weight bold)))) - (eshell-ls-backup-face ((t (:foreground "Grey")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "DimGray" :weight bold)))) - (eshell-ls-directory-face ((t (:bold t :foreground "MediumSlateBlue" :weight bold)))) - (eshell-ls-executable-face ((t (:bold t :foreground "Coral" :weight bold)))) - (eshell-ls-missing-face ((t (:bold t :foreground "black" :weight bold)))) - (eshell-ls-picture-face ((t (:foreground "Violet")))) - (eshell-ls-product-face ((t (:foreground "LightSalmon")))) - (eshell-ls-readonly-face ((t (:foreground "Aquamarine")))) - (eshell-ls-special-face ((t (:bold t :foreground "Gold" :weight bold)))) - (eshell-ls-symlink-face ((t (:bold t :foreground "White" :weight bold)))) - (eshell-ls-text-face ((t (:foreground "medium aquamarine")))) - (eshell-ls-todo-face ((t (:bold t :foreground "aquamarine" :weight bold)))) - (eshell-ls-unreadable-face ((t (:foreground "DimGray")))) - (eshell-prompt-face ((t (:foreground "powder blue")))) - (face-1 ((t (:stipple nil :foreground "royal blue" :family "andale mono")))) - (face-2 ((t (:stipple nil :foreground "DeepSkyBlue1" :overline nil :underline nil :slant normal :family "outline-andale mono")))) - (face-3 ((t (:stipple nil :foreground "NavajoWhite3")))) - (fg:erc-color-face0 ((t (:foreground "white")))) - (fg:erc-color-face1 ((t (:foreground "beige")))) - (fg:erc-color-face10 ((t (:foreground "pale goldenrod")))) - (fg:erc-color-face11 ((t (:foreground "light goldenrod yellow")))) - (fg:erc-color-face12 ((t (:foreground "light yellow")))) - (fg:erc-color-face13 ((t (:foreground "yellow")))) - (fg:erc-color-face14 ((t (:foreground "light goldenrod")))) - (fg:erc-color-face15 ((t (:foreground "lime green")))) - (fg:erc-color-face2 ((t (:foreground "lemon chiffon")))) - (fg:erc-color-face3 ((t (:foreground "light cyan")))) - (fg:erc-color-face4 ((t (:foreground "powder blue")))) - (fg:erc-color-face5 ((t (:foreground "sky blue")))) - (fg:erc-color-face6 ((t (:foreground "dark sea green")))) - (fg:erc-color-face7 ((t (:foreground "pale green")))) - (fg:erc-color-face8 ((t (:foreground "medium spring green")))) - (fg:erc-color-face9 ((t (:foreground "khaki")))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:bold t :foreground "PaleGreen" :weight bold)))) - (font-lock-comment-face ((t (:foreground "White")))) - (font-lock-constant-face ((t (:bold t :foreground "Aquamarine" :weight bold)))) - (font-lock-doc-face ((t (:italic t :slant italic :foreground "LightSalmon")))) - (font-lock-doc-string-face ((t (:foreground "LightSalmon")))) - (font-lock-function-name-face ((t (:bold t :foreground "MediumSlateBlue" :weight bold)))) - (font-lock-keyword-face ((t (:foreground "Salmon")))) - (font-lock-preprocessor-face ((t (:foreground "Salmon")))) - (font-lock-reference-face ((t (:foreground "pale green")))) - (font-lock-string-face ((t (:italic t :foreground "LightSalmon" :slant italic)))) - (font-lock-type-face ((t (:bold t :foreground "YellowGreen" :weight bold)))) - (font-lock-variable-name-face ((t (:italic t :bold t :foreground "Aquamarine" :slant italic :weight bold)))) - (font-lock-warning-face ((t (:bold t :foreground "IndianRed" :weight bold)))) - (fringe ((t (:background "darkslategrey")))) - (gnus-cite-attribution-face ((t (:family "arial")))) - (gnus-cite-face-1 ((t (:foreground "DarkGoldenrod3")))) - (gnus-cite-face-10 ((t (nil)))) - (gnus-cite-face-11 ((t (nil)))) - (gnus-cite-face-2 ((t (:foreground "IndianRed3")))) - (gnus-cite-face-3 ((t (:foreground "tomato")))) - (gnus-cite-face-4 ((t (:foreground "yellow green")))) - (gnus-cite-face-5 ((t (:foreground "SteelBlue3")))) - (gnus-cite-face-6 ((t (:foreground "Azure3")))) - (gnus-cite-face-7 ((t (:foreground "Azure4")))) - (gnus-cite-face-8 ((t (:foreground "SpringGreen4")))) - (gnus-cite-face-9 ((t (:foreground "SlateGray4")))) - (gnus-emphasis-bold ((t (:bold t :foreground "greenyellow" :weight bold :family "Arial")))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :foreground "OrangeRed1" :slant italic :weight bold :family "arial")))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "khaki")))) - (gnus-emphasis-italic ((t (:italic t :bold t :foreground "orange" :slant italic :weight bold :family "Arial")))) - (gnus-emphasis-underline ((t (:foreground "greenyellow" :underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :foreground "khaki" :underline t :weight bold :family "Arial")))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold :family "Arial")))) - (gnus-emphasis-underline-italic ((t (:italic t :foreground "orange" :underline t :slant italic :family "Arial")))) - (gnus-group-mail-1-empty-face ((t (:foreground "Salmon4")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "firebrick1" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "turquoise4")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "LightCyan4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "LightCyan1" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "SteelBlue4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "SteelBlue2" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "Salmon4")))) - (gnus-group-news-1-face ((t (:bold t :foreground "FireBrick1" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "darkorange3")))) - (gnus-group-news-2-face ((t (:bold t :foreground "dark orange" :weight bold)))) - (gnus-group-news-3-empty-face ((t (:foreground "turquoise4")))) - (gnus-group-news-3-face ((t (:bold t :foreground "Aquamarine" :weight bold)))) - (gnus-group-news-4-empty-face ((t (:foreground "SpringGreen4")))) - (gnus-group-news-4-face ((t (:bold t :foreground "SpringGreen2" :weight bold)))) - (gnus-group-news-5-empty-face ((t (:foreground "OliveDrab4")))) - (gnus-group-news-5-face ((t (:bold t :foreground "OliveDrab2" :weight bold)))) - (gnus-group-news-6-empty-face ((t (:foreground "DarkGoldenrod4")))) - (gnus-group-news-6-face ((t (:bold t :foreground "DarkGoldenrod3" :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "wheat4")))) - (gnus-group-news-low-face ((t (:bold t :foreground "tan4" :weight bold)))) - (gnus-header-content-face ((t (:foreground "LightSkyBlue3")))) - (gnus-header-from-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (gnus-header-name-face ((t (:bold t :foreground "DodgerBlue1" :weight bold)))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3" :slant italic :weight bold)))) - (gnus-header-subject-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (gnus-signature-face ((t (:italic t :foreground "salmon" :slant italic)))) - (gnus-splash-face ((t (:foreground "Firebrick1")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "MistyRose4" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "tomato3" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "coral" :weight bold)))) - (gnus-summary-high-unread-face ((t (:italic t :bold t :foreground "red1" :slant italic :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "DarkSeaGreen4" :slant italic)))) - (gnus-summary-low-read-face ((t (:foreground "SeaGreen4")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "Green4" :slant italic)))) - (gnus-summary-low-unread-face ((t (:italic t :foreground "green3" :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "khaki4")))) - (gnus-summary-normal-ticked-face ((t (:foreground "khaki3")))) - (gnus-summary-normal-unread-face ((t (:foreground "khaki")))) - (gnus-summary-selected-face ((t (:foreground "gold" :underline t)))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:foreground "red" :background "black")))) - (gui-element ((t (:bold t :background "#ffffff" :foreground "#000000" :weight bold)))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey20" :foreground "grey90" :box nil)))) - (highlight ((t (:background "PaleGreen" :foreground "DarkGreen")))) - (highline-face ((t (:background "SeaGreen")))) - (holiday-face ((t (:background "DimGray")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:bold t :foreground "DodgerBlue1" :underline t :weight bold)))) - (info-xref ((t (:bold t :foreground "DodgerBlue3" :weight bold)))) - (isearch ((t (:background "sea green" :foreground "black")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :foreground "chocolate3" :slant italic)))) - (menu ((t (nil)))) - (message-cited-text-face ((t (:foreground "White")))) - (message-header-cc-face ((t (:foreground "light cyan")))) - (message-header-name-face ((t (:foreground "DodgerBlue1")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "LightSkyBlue3")))) - (message-header-subject-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (message-header-to-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (message-header-xheader-face ((t (:foreground "DodgerBlue3")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:background "cornflower blue" :foreground "chocolate")))) - (modeline ((t (:background "dark olive green" :foreground "wheat" :box (:line-width -1 :style released-button))))) - (modeline-buffer-id ((t (:bold t :background "dark olive green" :foreground "beige" :weight bold :family "arial")))) - (modeline-mousable ((t (:bold t :background "dark olive green" :foreground "yellow green" :weight bold :family "arial")))) - (modeline-mousable-minor-mode ((t (:bold t :background "dark olive green" :foreground "wheat" :weight bold :family "arial")))) - (mouse ((t (:background "Grey")))) - (paren-blink-off ((t (:foreground "brown")))) - (region ((t (:background "dark cyan" :foreground "cyan")))) - (ruler-mode-column-number-face ((t (:box (:color "grey76" :line-width 1 :style released-button) :background "grey76" :stipple nil :inverse-video nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-andale mono" :foreground "black")))) - (ruler-mode-current-column-face ((t (:bold t :box (:color "grey76" :line-width 1 :style released-button) :background "grey76" :stipple nil :inverse-video nil :strike-through nil :overline nil :underline nil :slant normal :width normal :family "outline-andale mono" :foreground "yellow" :weight bold)))) - (ruler-mode-default-face ((t (:family "outline-andale mono" :width normal :weight normal :slant normal :underline nil :overline nil :strike-through nil :inverse-video nil :stipple nil :background "grey76" :foreground "grey64" :box (:color "grey76" :line-width 1 :style released-button))))) - (ruler-mode-fill-column-face ((t (:box (:color "grey76" :line-width 1 :style released-button) :background "grey76" :stipple nil :inverse-video nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-andale mono" :foreground "red")))) - (ruler-mode-margins-face ((t (:box (:color "grey76" :line-width 1 :style released-button) :foreground "grey64" :stipple nil :inverse-video nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-andale mono" :background "grey64")))) - (ruler-mode-tab-stop-face ((t (:box (:color "grey76" :line-width 1 :style released-button) :background "grey76" :stipple nil :inverse-video nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-andale mono" :foreground "steelblue")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "Aquamarine" :foreground "SlateBlue")))) - (show-paren-match-face ((t (:bold t :background "Aquamarine" :foreground "steel blue" :weight bold)))) - (show-paren-mismatch-face ((t (:background "Red" :foreground "White")))) - (swbuff-current-buffer-face ((t (:bold t :foreground "red" :weight bold)))) - (text-cursor ((t (:background "Red" :foreground "white")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "Arial")))) - (w3m-anchor-face ((t (:bold t :foreground "DodgerBlue1" :weight bold)))) - (w3m-arrived-anchor-face ((t (:bold t :foreground "DodgerBlue3" :weight bold)))) - (w3m-header-line-location-content-face ((t (:background "dark olive green" :foreground "wheat")))) - (w3m-header-line-location-title-face ((t (:background "dark olive green" :foreground "beige")))) - (widget-button-face ((t (:bold t :foreground "green" :weight bold :family "courier")))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:foreground "LightBlue")))) - (widget-inactive-face ((t (:foreground "DimGray")))) - (widget-single-line-field-face ((t (:foreground "LightBlue")))) - (woman-bold-face ((t (:bold t :weight bold :family "Arial")))) - (woman-italic-face ((t (:italic t :foreground "beige" :slant italic :family "Arial")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))) - (zmacs-region ((t (:background "dark cyan" :foreground "cyan"))))))) - -(defun color-theme-comidia () - "Color theme by Marcelo Dias de Toledo, created 2001-12-17. -Steel blue on black." - (interactive) - (color-theme-install - '(color-theme-comidia - ((background-color . "Black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "SteelBlue") - (foreground-color . "SteelBlue") - (mouse-color . "SteelBlue")) - ((display-time-mail-face . mode-line) - (gnus-mouse-face . highlight) - (gnus-summary-selected-face . gnus-summary-selected-face) - (help-highlight-face . underline) - (ispell-highlight-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "Black" :foreground "SteelBlue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width semi-condensed :family "misc-fixed")))) - (bg:erc-color-face0 ((t (:background "White")))) - (bg:erc-color-face1 ((t (:background "black")))) - (bg:erc-color-face10 ((t (:background "lightblue1")))) - (bg:erc-color-face11 ((t (:background "cyan")))) - (bg:erc-color-face12 ((t (:background "blue")))) - (bg:erc-color-face13 ((t (:background "deeppink")))) - (bg:erc-color-face14 ((t (:background "gray50")))) - (bg:erc-color-face15 ((t (:background "gray90")))) - (bg:erc-color-face2 ((t (:background "blue4")))) - (bg:erc-color-face3 ((t (:background "green4")))) - (bg:erc-color-face4 ((t (:background "red")))) - (bg:erc-color-face5 ((t (:background "brown")))) - (bg:erc-color-face6 ((t (:background "purple")))) - (bg:erc-color-face7 ((t (:background "orange")))) - (bg:erc-color-face8 ((t (:background "yellow")))) - (bg:erc-color-face9 ((t (:background "green")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cursor ((t (:background "SteelBlue")))) - (erc-action-face ((t (:bold t :weight bold)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-dangerous-host-face ((t (:foreground "red")))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "IndianRed")))) - (erc-error-face ((t (:background "Red" :foreground "White")))) - (erc-fool-face ((t (:foreground "dim gray")))) - (erc-input-face ((t (:foreground "brown")))) - (erc-inverse-face ((t (:background "Black" :foreground "White")))) - (erc-keyword-face ((t (:bold t :foreground "pale green" :weight bold)))) - (erc-notice-face ((t (:bold t :foreground "SlateBlue" :weight bold)))) - (erc-pal-face ((t (:bold t :foreground "Magenta" :weight bold)))) - (erc-prompt-face ((t (:bold t :background "lightBlue2" :foreground "Black" :weight bold)))) - (erc-timestamp-face ((t (:bold t :foreground "green" :weight bold)))) - (erc-underline-face ((t (:underline t)))) - (fg:erc-color-face0 ((t (:foreground "White")))) - (fg:erc-color-face1 ((t (:foreground "black")))) - (fg:erc-color-face10 ((t (:foreground "lightblue1")))) - (fg:erc-color-face11 ((t (:foreground "cyan")))) - (fg:erc-color-face12 ((t (:foreground "blue")))) - (fg:erc-color-face13 ((t (:foreground "deeppink")))) - (fg:erc-color-face14 ((t (:foreground "gray50")))) - (fg:erc-color-face15 ((t (:foreground "gray90")))) - (fg:erc-color-face2 ((t (:foreground "blue4")))) - (fg:erc-color-face3 ((t (:foreground "green4")))) - (fg:erc-color-face4 ((t (:foreground "red")))) - (fg:erc-color-face5 ((t (:foreground "brown")))) - (fg:erc-color-face6 ((t (:foreground "purple")))) - (fg:erc-color-face7 ((t (:foreground "orange")))) - (fg:erc-color-face8 ((t (:foreground "yellow")))) - (fg:erc-color-face9 ((t (:foreground "green")))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:foreground "chocolate1")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-doc-face ((t (:foreground "LightSalmon")))) - (font-lock-doc-string-face ((t (:foreground "LightSalmon")))) - (font-lock-function-name-face ((t (:foreground "LightSkyBlue")))) - (font-lock-keyword-face ((t (:foreground "Cyan")))) - (font-lock-preprocessor-face ((t (:foreground "Aquamarine")))) - (font-lock-reference-face ((t (:foreground "LightSteelBlue")))) - (font-lock-string-face ((t (:foreground "LightSalmon")))) - (font-lock-type-face ((t (:foreground "PaleGreen")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold)))) - (fringe ((t (:background "grey10")))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :weight bold)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t :weight bold)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t :weight bold)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise" :weight bold)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue" :slant italic)))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen" :slant italic)))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink" :slant italic)))) - (gnus-summary-low-unread-face ((t (:italic t :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (header-line ((t (:family "neep" :width condensed :box (:line-width 1 :style none) :background "grey20" :foreground "grey90" :box nil)))) - (highlight ((t (:background "darkolivegreen")))) - (isearch ((t (:background "palevioletred2" :foreground "brown4")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (menu ((t (nil)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "green4" :weight bold)))) - (message-header-name-face ((t (:foreground "DarkGreen")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "#b00000")))) - (message-header-subject-face ((t (:foreground "green3")))) - (message-header-to-face ((t (:bold t :foreground "green2" :weight bold)))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "blue3")))) - (modeline ((t (:background "Gray10" :foreground "SteelBlue" :box (:line-width 1 :style none) :width condensed :family "neep")))) - (modeline-buffer-id ((t (:background "Gray10" :foreground "SteelBlue" :box (:line-width 1 :style none) :width condensed :family "neep")))) - (modeline-mousable-minor-mode ((t (:background "Gray10" :foreground "SteelBlue" :box (:line-width 1 :style none) :width condensed :family "neep")))) - (modeline-mousable ((t (:background "Gray10" :foreground "SteelBlue" :box (:line-width 1 :style none) :width condensed :family "neep")))) - (mouse ((t (:background "SteelBlue")))) - (primary-selection ((t (:background "blue3")))) - (region ((t (:background "blue3")))) - (scroll-bar ((t (:background "grey75")))) - (secondary-selection ((t (:background "SkyBlue4")))) - (speedbar-button-face ((t (:foreground "green3")))) - (speedbar-directory-face ((t (:foreground "light blue")))) - (speedbar-file-face ((t (:foreground "cyan")))) - (speedbar-highlight-face ((t (:background "sea green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray")))) - (zmacs-region ((t (:background "blue3"))))))) - -(defun color-theme-katester () - "Color theme by walterh@rocketmail.com, created 2001-12-12. -A pastelly-mac like color-theme." - (interactive) - (color-theme-standard) - (let ((color-theme-is-cumulative t)) - (color-theme-install - '(color-theme-katester - ((background-color . "ivory") - (cursor-color . "slateblue") - (foreground-color . "black") - (mouse-color . "slateblue")) - (default ((t ((:background "ivory" :foreground "black"))))) - (bold ((t (:bold t)))) - (font-lock-string-face ((t (:foreground "maroon")))) - (font-lock-keyword-face ((t (:foreground "blue")))) - (font-lock-constant-face ((t (:foreground "darkblue")))) - (font-lock-type-face ((t (:foreground "black")))) - (font-lock-variable-name-face ((t (:foreground "black")))) - (font-lock-function-name-face ((t (:bold t :underline t)))) - (font-lock-comment-face ((t (:background "seashell")))) - (highlight ((t (:background "lavender")))) - (italic ((t (:italic t)))) - (modeline ((t (:background "moccasin" :foreground "black")))) - (region ((t (:background "lavender" )))) - (underline ((t (:underline t)))))))) - -(defun color-theme-arjen () - "Color theme by awiersma, created 2001-08-27." - (interactive) - (color-theme-install - '(color-theme-arjen - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "yellow") - (foreground-color . "White") - (mouse-color . "sienna1")) - ((buffers-tab-face . buffers-tab) - (cperl-here-face . font-lock-string-face) - (cperl-invalid-face quote underline) - (cperl-pod-face . font-lock-comment-face) - (cperl-pod-head-face . font-lock-variable-name-face) - (vc-mode-face . highlight)) - (default ((t (:background "black" :foreground "white")))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:bold t)))) - (border-glyph ((t (nil)))) - (buffers-tab ((t (:background "black" :foreground "white")))) - (calendar-today-face ((t (:underline t)))) - (cperl-array-face ((t (:foreground "darkseagreen")))) - (cperl-hash-face ((t (:foreground "darkseagreen")))) - (cperl-nonoverridable-face ((t (:foreground "SkyBlue")))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "light blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "pink")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "lime green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "light blue")))) - (diary-face ((t (:foreground "IndianRed")))) - (erc-action-face ((t (:bold t)))) - (erc-bold-face ((t (:bold t)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "sandybrown")))) - (erc-error-face ((t (:bold t :foreground "IndianRed")))) - (erc-input-face ((t (:foreground "Beige")))) - (erc-inverse-face ((t (:background "wheat" :foreground "darkslategrey")))) - (erc-notice-face ((t (:foreground "MediumAquamarine")))) - (erc-pal-face ((t (:foreground "pale green")))) - (erc-prompt-face ((t (:foreground "MediumAquamarine")))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed")))) - (eshell-ls-backup-face ((t (:foreground "Grey")))) - (eshell-ls-clutter-face ((t (:foreground "DimGray")))) - (eshell-ls-directory-face ((t (:bold t :foreground "MediumSlateBlue")))) - (eshell-ls-executable-face ((t (:foreground "Coral")))) - (eshell-ls-missing-face ((t (:foreground "black")))) - (eshell-ls-picture-face ((t (:foreground "Violet")))) - (eshell-ls-product-face ((t (:foreground "sandybrown")))) - (eshell-ls-readonly-face ((t (:foreground "Aquamarine")))) - (eshell-ls-special-face ((t (:foreground "Gold")))) - (eshell-ls-symlink-face ((t (:foreground "White")))) - (eshell-ls-unreadable-face ((t (:foreground "DimGray")))) - (eshell-prompt-face ((t (:foreground "MediumAquamarine")))) - (fl-comment-face ((t (:foreground "pink")))) - (fl-doc-string-face ((t (:foreground "purple")))) - (fl-function-name-face ((t (:foreground "red")))) - (fl-keyword-face ((t (:foreground "cadetblue")))) - (fl-string-face ((t (:foreground "green")))) - (fl-type-face ((t (:foreground "yellow")))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:foreground "IndianRed")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-doc-string-face ((t (:foreground "DarkOrange")))) - (font-lock-function-name-face ((t (:foreground "YellowGreen")))) - (font-lock-keyword-face ((t (:foreground "PaleYellow")))) - (font-lock-preprocessor-face ((t (:foreground "Aquamarine")))) - (font-lock-reference-face ((t (:foreground "SlateBlue")))) - (font-lock-string-face ((t (:foreground "Orange")))) - (font-lock-type-face ((t (:foreground "Green")))) - (font-lock-variable-name-face ((t (:foreground "darkseagreen")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink")))) - (qt-classes-face ((t (:foreground "Red")))) - (gnus-cite-attribution-face ((t (nil)))) - (gnus-cite-face-1 ((t (:bold nil :foreground "deep sky blue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:bold nil :foreground "cadetblue")))) - (gnus-cite-face-3 ((t (:bold nil :foreground "gold")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:bold nil :foreground "chocolate")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold nil)))) - (gnus-emphasis-bold-italic ((t (:bold nil)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (nil)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold nil)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :bold nil)))) - (gnus-emphasis-underline-italic ((t (:underline t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold nil :foreground "aquamarine1")))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold nil :foreground "aquamarine2")))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold nil :foreground "aquamarine3")))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold nil :foreground "aquamarine4")))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold nil :foreground "PaleTurquoise")))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold nil :foreground "turquoise")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold nil)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold nil)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold nil)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold nil)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold nil :foreground "DarkTurquoise")))) - (gnus-header-content-face ((t (:foreground "forest green")))) - (gnus-header-from-face ((t (:bold nil :foreground "spring green")))) - (gnus-header-name-face ((t (:foreground "deep sky blue")))) - (gnus-header-newsgroups-face ((t (:bold nil :foreground "purple")))) - (gnus-header-subject-face ((t (:bold nil :foreground "orange")))) - (gnus-signature-face ((t (:bold nil :foreground "khaki")))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold nil :foreground "SkyBlue")))) - (gnus-summary-high-read-face ((t (:bold nil :foreground "PaleGreen")))) - (gnus-summary-high-ticked-face ((t (:bold nil :foreground "pink")))) - (gnus-summary-high-unread-face ((t (:bold nil)))) - (gnus-summary-low-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-low-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-low-ticked-face ((t (:foreground "pink")))) - (gnus-summary-low-unread-face ((t (nil)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:background "#D4D0C8" :foreground "black")))) - (highlight ((t (:background "darkolivegreen")))) - (highline-face ((t (:background "SeaGreen")))) - (holiday-face ((t (:background "DimGray")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:underline t :bold t :foreground "DodgerBlue1")))) - (info-xref ((t (:underline t :foreground "DodgerBlue1")))) - (isearch ((t (:background "blue")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (nil)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68" :foreground "white")))) - (message-cited-text-face ((t (:bold t :foreground "green")))) - (message-header-cc-face ((t (:bold t :foreground "green4")))) - (message-header-name-face ((t (:bold t :foreground "orange")))) - (message-header-newsgroups-face ((t (:bold t :foreground "violet")))) - (message-header-other-face ((t (:bold t :foreground "chocolate")))) - (message-header-subject-face ((t (:bold t :foreground "yellow")))) - (message-header-to-face ((t (:bold t :foreground "cadetblue")))) - (message-header-xheader-face ((t (:bold t :foreground "light blue")))) - (message-mml-face ((t (:bold t :foreground "Green3")))) - (message-separator-face ((t (:foreground "blue3")))) - (modeline ((t (:background "DarkRed" :foreground "white" :box (:line-width 1 :style released-button))))) - (modeline-buffer-id ((t (:background "DarkRed" :foreground "white")))) - (modeline-mousable ((t (:background "DarkRed" :foreground "white")))) - (modeline-mousable-minor-mode ((t (:background "DarkRed" :foreground "white")))) - (p4-depot-added-face ((t (:foreground "blue")))) - (p4-depot-deleted-face ((t (:foreground "red")))) - (p4-depot-unmapped-face ((t (:foreground "grey30")))) - (p4-diff-change-face ((t (:foreground "dark green")))) - (p4-diff-del-face ((t (:foreground "red")))) - (p4-diff-file-face ((t (:background "gray90")))) - (p4-diff-head-face ((t (:background "gray95")))) - (p4-diff-ins-face ((t (:foreground "blue")))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "blue")))) - (red ((t (:foreground "red")))) - (region ((t (:background "blue")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "darkslateblue")))) - (show-paren-match-face ((t (:background "Aquamarine" :foreground "SlateBlue")))) - (show-paren-mismatch-face ((t (:background "Red" :foreground "White")))) - (text-cursor ((t (:background "yellow" :foreground "black")))) - (toolbar ((t (nil)))) - (underline ((nil (:underline nil)))) - (vertical-divider ((t (nil)))) - (widget ((t (nil)))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray")))) - (woman-bold-face ((t (:bold t)))) - (woman-italic-face ((t (:foreground "beige")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "snow" :foreground "blue"))))))) - -(defun color-theme-tty-dark () - "Color theme by Oivvio Polite, created 2002-02-01. Good for tty display." - (interactive) - (color-theme-install - '(color-theme-tty-dark - ((background-color . "black") - (background-mode . dark) - (border-color . "blue") - (cursor-color . "red") - (foreground-color . "white") - (mouse-color . "black")) - ((ispell-highlight-face . highlight) - (list-matching-lines-face . bold) - (tinyreplace-:face . highlight) - (view-highlight-face . highlight)) - (default ((t (nil)))) - (bold ((t (:underline t :background "black" :foreground "white")))) - (bold-italic ((t (:underline t :foreground "white")))) - (calendar-today-face ((t (:underline t)))) - (diary-face ((t (:foreground "red")))) - (font-lock-builtin-face ((t (:foreground "blue")))) - (font-lock-comment-face ((t (:foreground "cyan")))) - (font-lock-constant-face ((t (:foreground "magenta")))) - (font-lock-function-name-face ((t (:foreground "cyan")))) - (font-lock-keyword-face ((t (:foreground "red")))) - (font-lock-string-face ((t (:foreground "green")))) - (font-lock-type-face ((t (:foreground "yellow")))) - (font-lock-variable-name-face ((t (:foreground "blue")))) - (font-lock-warning-face ((t (:bold t :foreground "magenta")))) - (highlight ((t (:background "blue" :foreground "yellow")))) - (holiday-face ((t (:background "cyan")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (italic ((t (:underline t :background "red")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "green")))) - (message-header-name-face ((t (:foreground "green")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow")))) - (message-header-other-face ((t (:foreground "#b00000")))) - (message-header-subject-face ((t (:foreground "green")))) - (message-header-to-face ((t (:bold t :foreground "green")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "green")))) - (message-separator-face ((t (:foreground "blue")))) - - (modeline ((t (:background "white" :foreground "blue")))) - (modeline-buffer-id ((t (:background "white" :foreground "red")))) - (modeline-mousable ((t (:background "white" :foreground "magenta")))) - (modeline-mousable-minor-mode ((t (:background "white" :foreground "yellow")))) - (region ((t (:background "white" :foreground "black")))) - (zmacs-region ((t (:background "cyan" :foreground "black")))) - (secondary-selection ((t (:background "blue")))) - (show-paren-match-face ((t (:background "red")))) - (show-paren-mismatch-face ((t (:background "magenta" :foreground "white")))) - (underline ((t (:underline t))))))) - -(defun color-theme-aliceblue () - "Color theme by Girish Bharadwaj, created 2002-03-27. -Includes comint prompt, custom, font-lock, isearch, -jde, senator, speedbar, and widget." - (interactive) - (color-theme-install - '(color-theme-aliceblue - ((background-color . "AliceBlue") - (background-mode . light) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "DarkSlateGray4") - (mouse-color . "black")) - ((help-highlight-face . underline) - (list-matching-lines-face . bold) - (semantic-which-function-use-color . t) - (senator-eldoc-use-color . t) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "AliceBlue" :foreground "DarkSlateGray4" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-courier new")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "dark blue")))) - (cursor ((t (:background "black")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "gray85")))) - (custom-comment-tag-face ((t (:foreground "blue4")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "red" :weight bold :height 1.2)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "blue" :weight bold :height 1.2)))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:italic t :foreground "Firebrick" :slant oblique)))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-function-name-face ((t (:bold t :foreground "Blue" :weight extra-bold :family "outline-verdana")))) - (font-lock-keyword-face ((t (:bold t :foreground "Purple" :weight semi-bold :family "outline-verdana")))) - (font-lock-preprocessor-face ((t (:foreground "CadetBlue")))) - (font-lock-reference-face ((t (:foreground "Orchid")))) - (font-lock-string-face ((t (:foreground "RosyBrown")))) - (font-lock-type-face ((t (:italic t :foreground "ForestGreen" :slant italic)))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod" :width condensed)))) - (font-lock-warning-face ((t (:bold t :foreground "Red" :weight bold)))) - (fringe ((t (:background "DarkSlateBlue")))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey90" :foreground "grey20" :box nil)))) - (highlight ((t (:background "darkseagreen2")))) - (isearch ((t (:background "magenta4" :foreground "lightskyblue1")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise")))) - (italic ((t (:italic t :slant italic)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black")))) - (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black")))) - (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black")))) - (jde-java-font-lock-api-face ((t (:foreground "dark goldenrod")))) - (jde-java-font-lock-bold-face ((t (:bold t :weight bold)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "CadetBlue")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "green4")))) - (jde-java-font-lock-italic-face ((t (:italic t :slant italic)))) - (jde-java-font-lock-link-face ((t (:foreground "blue" :underline t :slant normal)))) - (jde-java-font-lock-modifier-face ((t (:foreground "Orchid")))) - (jde-java-font-lock-number-face ((t (:foreground "RosyBrown")))) - (jde-java-font-lock-operator-face ((t (:foreground "medium blue")))) - (jde-java-font-lock-package-face ((t (:foreground "blue3")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (menu ((t (nil)))) - (modeline ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (modeline-buffer-id ((t (:background "grey75" :foreground "black")))) - (modeline-mousable ((t (:background "grey75" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "grey75" :foreground "black")))) - (mouse ((t (:background "black")))) - (primary-selection ((t (:background "lightgoldenrod2")))) - (region ((t (:background "lightgoldenrod2")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "yellow")))) - (semantic-dirty-token-face ((t (:background "lightyellow")))) - (semantic-unmatched-syntax-face ((t (:underline "red")))) - (senator-intangible-face ((t (:foreground "gray25")))) - (senator-momentary-highlight-face ((t (:background "gray70")))) - (senator-read-only-face ((t (:background "#CCBBBB")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "brown")))) - (template-message-face ((t (:bold t :weight bold)))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (zmacs-region ((t (:background "lightgoldenrod2"))))))) - -(defun color-theme-black-on-gray () - "Color theme by sbhojwani, created 2002-04-03. -Includes ecb, font-lock, paren, semantic, and widget faces. -Some of the font-lock faces are disabled, ie. they look just -like the default face. This is for people that don't like -the look of \"angry fruit salad\" when editing." - (interactive) - (color-theme-install - '(color-theme-black-on-gray - ((background-color . "white") - (background-mode . light) - (border-color . "blue") - (foreground-color . "black")) - ((buffers-tab-face . buffers-tab) - (ecb-directories-general-face . ecb-default-general-face) - (ecb-directory-face . ecb-default-highlight-face) - (ecb-history-face . ecb-default-highlight-face) - (ecb-history-general-face . ecb-default-general-face) - (ecb-method-face . ecb-default-highlight-face) - (ecb-methods-general-face . ecb-default-general-face) - (ecb-source-face . ecb-default-highlight-face) - (ecb-source-in-directories-buffer-face . ecb-source-in-directories-buffer-face) - (ecb-sources-general-face . ecb-default-general-face) - (ecb-token-header-face . ecb-token-header-face)) - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t :size "10pt")))) - (bold-italic ((t (:italic t :bold t :size "10pt")))) - (border-glyph ((t (:size "11pt")))) - (buffers-tab ((t (:background "gray75")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (ecb-bucket-token-face ((t (:bold t :size "10pt")))) - (ecb-default-general-face ((t (nil)))) - (ecb-default-highlight-face ((t (:background "cornflower blue" :foreground "yellow")))) - (ecb-directories-general-face ((t (nil)))) - (ecb-directory-face ((t (:background "cornflower blue" :foreground "yellow")))) - (ecb-history-face ((t (:background "cornflower blue" :foreground "yellow")))) - (ecb-history-general-face ((t (nil)))) - (ecb-method-face ((t (:background "cornflower blue" :foreground "yellow")))) - (ecb-methods-general-face ((t (nil)))) - (ecb-source-face ((t (:background "cornflower blue" :foreground "yellow")))) - (ecb-source-in-directories-buffer-face ((t (:foreground "medium blue")))) - (ecb-sources-general-face ((t (nil)))) - (ecb-token-header-face ((t (:background "SeaGreen1")))) - (ecb-type-token-class-face ((t (:bold t :size "10pt")))) - (ecb-type-token-enum-face ((t (:bold t :size "10pt")))) - (ecb-type-token-group-face ((t (:bold t :size "10pt" :foreground "dimgray")))) - (ecb-type-token-interface-face ((t (:bold t :size "10pt")))) - (ecb-type-token-struct-face ((t (:bold t :size "10pt")))) - (ecb-type-token-typedef-face ((t (:bold t :size "10pt")))) - (font-lock-builtin-face ((t (:foreground "red3")))) - (font-lock-constant-face ((t (:foreground "blue3")))) - (font-lock-comment-face ((t (:foreground "blue")))) - (font-lock-doc-face ((t (:foreground "green4")))) - (font-lock-doc-string-face ((t (:foreground "green4")))) - (font-lock-function-name-face ((t (nil)))) - (font-lock-keyword-face ((t (nil)))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (nil)))) - (font-lock-type-face ((t (nil)))) - (font-lock-variable-name-face ((t (nil)))) - (font-lock-warning-face ((t (nil)))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75")))) - (gui-element ((t (:size "8pt" :background "gray75")))) - (highlight ((t (:background "darkseagreen2")))) - (isearch ((t (:background "paleturquoise")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (:size "10pt")))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68")))) - (modeline ((t (:background "gray75")))) - (modeline-buffer-id ((t (:background "gray75" :foreground "blue4")))) - (modeline-mousable ((t (:background "gray75" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "gray75" :foreground "green4")))) - (paren-blink-off ((t (:foreground "gray")))) - (paren-match ((t (:background "darkseagreen2")))) - (paren-mismatch ((t (nil)))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "gray65")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (semantic-dirty-token-face ((t (nil)))) - (semantic-unmatched-syntax-face ((t (nil)))) - (text-cursor ((t (:background "red" :foreground "gray")))) - (toolbar ((t (:background "gray75")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (:background "gray75")))) - (widget ((t (:size "8pt" :background "gray75")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (nil)))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "gray65"))))))) - -(defun color-theme-dark-blue2 () - "Color theme by Chris McMahan, created 2002-04-12. -Includes antlr, bbdb, change-log, comint, cperl, custom cvs, diff, -dired, display-time, ebrowse, ecb, ediff, erc, eshell, fl, font-lock, -gnus, hi, highlight, html-helper, hyper-apropos, info, isearch, jde, -message, mmm, paren, semantic, senator, sgml, smerge, speedbar, -strokes, term, vhdl, viper, vm, widget, xref, xsl, xxml. Yes, it is -a large theme." - (interactive) - (color-theme-install - '(color-theme-dark-blue2 - ((background-color . "#233b5a") - (background-mode . dark) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "black") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (cursor-color . "Yellow") - (foreground-color . "#fff8dc") - (mouse-color . "Grey") - (top-toolbar-shadow-color . "#fffffbeeffff") - (viper-saved-cursor-color-in-replace-mode . "Red3")) - ((blank-space-face . blank-space-face) - (blank-tab-face . blank-tab-face) - (cperl-invalid-face . underline) - (ecb-directories-general-face . ecb-directories-general-face) - (ecb-directory-face . ecb-directory-face) - (ecb-history-face . ecb-history-face) - (ecb-history-general-face . ecb-history-general-face) - (ecb-method-face . ecb-method-face) - (ecb-methods-general-face . ecb-methods-general-face) - (ecb-source-face . ecb-source-face) - (ecb-source-in-directories-buffer-face . ecb-sources-face) - (ecb-sources-general-face . ecb-sources-general-face) - (ecb-token-header-face . ecb-token-header-face) - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-cite-attribution-face . gnus-cite-attribution-face) - (gnus-signature-face . gnus-signature-face) - (gnus-summary-selected-face . gnus-summary-selected-face) - (help-highlight-face . underline) - (highline-face . highline-face) - (highline-vertical-face . highline-vertical-face) - (list-matching-lines-face . bold) - (ps-zebra-color . 0.95) - (senator-eldoc-use-color . t) - (sgml-set-face . t) - (tags-tag-face . default) - (view-highlight-face . highlight) - (vm-highlight-url-face . bold-italic) - (vm-highlighted-header-face . bold) - (vm-mime-button-face . gui-button-face) - (vm-summary-highlight-face . bold) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "#233b5a" :foreground "#fff8dc" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-lucida console")))) - (Info-title-1-face ((t (:bold t :weight bold :height 1.728 :family "helv")))) - (Info-title-2-face ((t (:bold t :weight bold :height 1.44 :family "helv")))) - (Info-title-3-face ((t (:bold t :weight bold :height 1.2 :family "helv")))) - (Info-title-4-face ((t (:bold t :weight bold :family "helv")))) - (antlr-font-lock-keyword-face ((t (:bold t :foreground "Gray85" :weight bold)))) - (antlr-font-lock-literal-face ((t (:bold t :foreground "Gray85" :weight bold)))) - (antlr-font-lock-ruledef-face ((t (:bold t :foreground "Gray85" :weight bold)))) - (antlr-font-lock-ruleref-face ((t (:foreground "Gray85")))) - (antlr-font-lock-tokendef-face ((t (:bold t :foreground "Gray85" :weight bold)))) - (antlr-font-lock-tokenref-face ((t (:foreground "Gray85")))) - (bbdb-company ((t (:italic t :slant italic)))) - (bbdb-field-name ((t (:bold t :weight bold)))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (:underline t)))) - (bg:erc-color-face0 ((t (:background "White")))) - (bg:erc-color-face1 ((t (:background "black")))) - (bg:erc-color-face10 ((t (:background "lightblue1")))) - (bg:erc-color-face11 ((t (:background "cyan")))) - (bg:erc-color-face12 ((t (:background "blue")))) - (bg:erc-color-face13 ((t (:background "deeppink")))) - (bg:erc-color-face14 ((t (:background "gray50")))) - (bg:erc-color-face15 ((t (:background "gray90")))) - (bg:erc-color-face2 ((t (:background "blue4")))) - (bg:erc-color-face3 ((t (:background "green4")))) - (bg:erc-color-face4 ((t (:background "red")))) - (bg:erc-color-face5 ((t (:background "brown")))) - (bg:erc-color-face6 ((t (:background "purple")))) - (bg:erc-color-face7 ((t (:background "orange")))) - (bg:erc-color-face8 ((t (:background "yellow")))) - (bg:erc-color-face9 ((t (:background "green")))) - (blank-space-face ((t (:background "LightGray")))) - (blank-tab-face ((t (:background "Wheat")))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t :foreground "cyan" :weight bold)))) - (bold-italic ((t (:italic t :bold t :foreground "cyan2" :slant italic :weight bold)))) - (border ((t (:background "black")))) - (border-glyph ((t (nil)))) - (buffers-tab ((t (:background "gray30" :foreground "LightSkyBlue")))) - (calendar-today-face ((t (:underline t)))) - (change-log-acknowledgement-face ((t (:foreground "firebrick")))) - (change-log-conditionals-face ((t (:background "sienna" :foreground "khaki")))) - (change-log-date-face ((t (:foreground "gold")))) - (change-log-email-face ((t (:foreground "khaki" :underline t)))) - (change-log-file-face ((t (:bold t :foreground "lemon chiffon" :weight bold)))) - (change-log-function-face ((t (:background "sienna" :foreground "khaki")))) - (change-log-list-face ((t (:foreground "wheat")))) - (change-log-name-face ((t (:bold t :foreground "light goldenrod" :weight bold)))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (comint-input-face ((t (:foreground "deepskyblue")))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue" :weight bold)))) - (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red" :slant italic :weight bold)))) - (cperl-invalid-face ((t (:foreground "white")))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (cursor ((t (:background "Yellow")))) - (custom-button-face ((t (:bold t :weight bold)))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "gray30")))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:foreground "white")))) - (custom-comment-tag-face ((t (:foreground "white")))) - (custom-documentation-face ((t (:foreground "light blue")))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:bold t :foreground "gray85" :underline t :weight bold)))) - (custom-group-tag-face-1 ((t (:foreground "gray85" :underline t)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "gray30" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "gray85")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :foreground "gray85" :underline t :weight bold)))) - (cvs-filename-face ((t (:foreground "white")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:foreground "green")))) - (cvs-marked-face ((t (:bold t :foreground "green3" :weight bold)))) - (cvs-msg-face ((t (:foreground "gray85")))) - (cvs-need-action-face ((t (:foreground "yellow")))) - (cvs-unknown-face ((t (:foreground "grey")))) - (cyan ((t (:foreground "cyan")))) - (diary-face ((t (:bold t :foreground "gray85" :weight bold)))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (:foreground "grey50")))) - (diff-file-header-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-function-face ((t (:foreground "grey50")))) - (diff-header-face ((t (:foreground "lemon chiffon")))) - (diff-hunk-header-face ((t (:background "grey85")))) - (diff-index-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-nonexistent-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-removed-face ((t (nil)))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t :weight bold)))) - (dired-face-executable ((t (:foreground "gray85")))) - (dired-face-flagged ((t (:background "LightSlateGray")))) - (dired-face-header ((t (:background "grey75" :foreground "gray30")))) - (dired-face-marked ((t (:background "PaleVioletRed")))) - (dired-face-permissions ((t (:background "grey75" :foreground "gray30")))) - (dired-face-setuid ((t (:foreground "gray85")))) - (dired-face-socket ((t (:foreground "gray85")))) - (dired-face-symlink ((t (:foreground "cyan")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "gray85")))) - (ebrowse-default-face ((t (nil)))) - (ebrowse-file-name-face ((t (:italic t :slant italic)))) - (ebrowse-member-attribute-face ((t (:foreground "red")))) - (ebrowse-member-class-face ((t (:foreground "Gray85")))) - (ebrowse-progress-face ((t (:background "blue")))) - (ebrowse-root-class-face ((t (:bold t :foreground "Gray85" :weight bold)))) - (ebrowse-tree-mark-face ((t (:foreground "Gray85")))) - (ecb-bucket-token-face ((t (:bold t :weight bold)))) - (ecb-default-general-face ((t (:height 1.0)))) - (ecb-default-highlight-face ((t (:background "magenta" :height 1.0)))) - (ecb-directories-general-face ((t (:height 0.9)))) - (ecb-directory-face ((t (:background "Cyan4")))) - (ecb-history-face ((t (:background "Cyan4")))) - (ecb-history-general-face ((t (:height 0.9)))) - (ecb-method-face ((t (:background "Cyan4" :slant normal :weight normal)))) - (ecb-methods-general-face ((t (:slant normal)))) - (ecb-source-face ((t (:background "Cyan4")))) - (ecb-source-in-directories-buffer-face ((t (:foreground "LightBlue1")))) - (ecb-sources-face ((t (:foreground "LightBlue1")))) - (ecb-sources-general-face ((t (:height 0.9)))) - (ecb-token-header-face ((t (:background "Steelblue4")))) - (ecb-type-token-class-face ((t (:bold t :weight bold)))) - (ecb-type-token-enum-face ((t (:bold t :weight bold)))) - (ecb-type-token-group-face ((t (:bold t :foreground "dim gray" :weight bold)))) - (ecb-type-token-interface-face ((t (:bold t :weight bold)))) - (ecb-type-token-struct-face ((t (:bold t :weight bold)))) - (ecb-type-token-typedef-face ((t (:bold t :weight bold)))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Gray30")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Gray30")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Gray30")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Gray30")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Gray30")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Gray30")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Gray30")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Gray30")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (erc-action-face ((t (:bold t :weight bold)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-dangerous-host-face ((t (:foreground "red")))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "pale green")))) - (erc-error-face ((t (:bold t :foreground "gray85" :weight bold)))) - (erc-fool-face ((t (:foreground "Gray85")))) - (erc-highlight-face ((t (:bold t :foreground "pale green" :weight bold)))) - (erc-input-face ((t (:foreground "light blue")))) - (erc-inverse-face ((t (:background "Black" :foreground "White")))) - (erc-keyword-face ((t (:bold t :foreground "pale green" :weight bold)))) - (erc-notice-face ((t (:foreground "light salmon")))) - (erc-pal-face ((t (:foreground "pale green")))) - (erc-prompt-face ((t (:bold t :foreground "light blue" :weight bold)))) - (erc-timestamp-face ((t (:bold t :foreground "green" :weight bold)))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :weight bold)))) - (eshell-ls-backup-face ((t (:foreground "gray85")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "gray85" :weight bold)))) - (eshell-ls-directory-face ((t (:bold t :foreground "Cyan" :weight bold)))) - (eshell-ls-executable-face ((t (:bold t :weight bold)))) - (eshell-ls-missing-face ((t (:bold t :weight bold)))) - (eshell-ls-picture-face ((t (:foreground "gray85")))) - (eshell-ls-product-face ((t (:foreground "gray85")))) - (eshell-ls-readonly-face ((t (:foreground "gray70")))) - (eshell-ls-special-face ((t (:bold t :weight bold)))) - (eshell-ls-symlink-face ((t (:bold t :weight bold)))) - (eshell-ls-text-face ((t (:foreground "gray85")))) - (eshell-ls-todo-face ((t (:bold t :weight bold)))) - (eshell-ls-unreadable-face ((t (:foreground "gray85")))) - (eshell-prompt-face ((t (:bold t :foreground "Yellow" :weight bold)))) - (eshell-test-failed-face ((t (:bold t :weight bold)))) - (eshell-test-ok-face ((t (:bold t :weight bold)))) - (excerpt ((t (:italic t :slant italic)))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "gray85" :weight bold)))) - (fg:black ((t (:foreground "black")))) - (fg:erc-color-face0 ((t (:foreground "White")))) - (fg:erc-color-face1 ((t (:foreground "black")))) - (fg:erc-color-face10 ((t (:foreground "lightblue1")))) - (fg:erc-color-face11 ((t (:foreground "cyan")))) - (fg:erc-color-face12 ((t (:foreground "blue")))) - (fg:erc-color-face13 ((t (:foreground "deeppink")))) - (fg:erc-color-face14 ((t (:foreground "gray50")))) - (fg:erc-color-face15 ((t (:foreground "gray90")))) - (fg:erc-color-face2 ((t (:foreground "blue4")))) - (fg:erc-color-face3 ((t (:foreground "green4")))) - (fg:erc-color-face4 ((t (:foreground "red")))) - (fg:erc-color-face5 ((t (:foreground "brown")))) - (fg:erc-color-face6 ((t (:foreground "purple")))) - (fg:erc-color-face7 ((t (:foreground "orange")))) - (fg:erc-color-face8 ((t (:foreground "yellow")))) - (fg:erc-color-face9 ((t (:foreground "green")))) - (fixed ((t (:bold t :weight bold)))) - (fixed-pitch ((t (:family "outline-lucida console")))) - (fl-comment-face ((t (:foreground "gray85")))) - (fl-function-name-face ((t (:foreground "green")))) - (fl-keyword-face ((t (:foreground "LightGreen")))) - (fl-string-face ((t (:foreground "light coral")))) - (fl-type-face ((t (:foreground "cyan")))) - (flyspell-duplicate-face ((t (:bold t :foreground "Gold3" :underline t :weight bold)))) - (flyspell-incorrect-face ((t (:bold t :foreground "OrangeRed" :underline t :weight bold)))) - (font-latex-bold-face ((t (nil)))) - (font-latex-italic-face ((t (nil)))) - (font-latex-math-face ((t (nil)))) - (font-latex-sedate-face ((t (:foreground "Gray85")))) - (font-latex-string-face ((t (:foreground "orange")))) - (font-latex-warning-face ((t (:foreground "gold")))) - (font-lock-builtin-face ((t (:bold t :foreground "LightSteelBlue" :weight bold)))) - (font-lock-comment-face ((t (:italic t :foreground "medium aquamarine" :slant italic)))) - (font-lock-constant-face ((t (:bold t :foreground "Aquamarine" :weight bold)))) - (font-lock-doc-face ((t (:bold t :weight bold)))) - (font-lock-doc-string-face ((t (:bold t :foreground "aquamarine" :weight bold)))) - (font-lock-exit-face ((t (:foreground "green")))) - (font-lock-function-name-face ((t (:italic t :bold t :foreground "LightSkyBlue" :slant italic :weight bold)))) - (font-lock-keyword-face ((t (:bold t :foreground "Cyan" :weight bold)))) - (font-lock-preprocessor-face ((t (:foreground "Gray85")))) - (font-lock-reference-face ((t (:foreground "cyan")))) - (font-lock-string-face ((t (:italic t :foreground "aquamarine" :slant italic)))) - (font-lock-type-face ((t (:bold t :foreground "PaleGreen" :weight bold)))) - (font-lock-variable-name-face ((t (:italic t :bold t :foreground "LightGoldenrod" :slant italic :weight bold)))) - (font-lock-warning-face ((t (:bold t :foreground "Salmon" :weight bold)))) - (fringe ((t (:background "#3c5473")))) - (gnus-cite-attribution-face ((t (:italic t :bold t :foreground "beige" :underline t :slant italic :weight bold)))) - (gnus-cite-face-1 ((t (:foreground "gold")))) - (gnus-cite-face-10 ((t (:foreground "coral")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "wheat")))) - (gnus-cite-face-3 ((t (:foreground "light pink")))) - (gnus-cite-face-4 ((t (:foreground "khaki")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :foreground "light gray" :weight bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :foreground "cyan" :slant italic :weight bold)))) - (gnus-emphasis-highlight-words ((t (:background "gray30" :foreground "gold")))) - (gnus-emphasis-italic ((t (:italic t :foreground "cyan" :slant italic)))) - (gnus-emphasis-underline ((t (:foreground "white" :underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :foreground "white" :underline t :weight bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :foreground "white" :underline t :slant italic :weight bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :foreground "white" :underline t :slant italic)))) - (gnus-filterhist-face-1 ((t (nil)))) - (gnus-group-mail-1-empty-face ((t (:foreground "Magenta")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "Magenta" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "Cyan")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "Cyan" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "Wheat")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "Gray85" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (gnus-group-news-3-empty-face ((t (:foreground "wheat")))) - (gnus-group-news-3-face ((t (:bold t :foreground "Wheat" :weight bold)))) - (gnus-group-news-4-empty-face ((t (:foreground "Aquamarine")))) - (gnus-group-news-4-face ((t (:bold t :weight bold)))) - (gnus-group-news-5-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-5-face ((t (:bold t :weight bold)))) - (gnus-group-news-6-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-6-face ((t (:bold t :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-low-face ((t (:bold t :foreground "MediumAquamarine" :weight bold)))) - (gnus-header-content-face ((t (:italic t :foreground "Wheat" :slant italic)))) - (gnus-header-from-face ((t (:bold t :foreground "light yellow" :weight bold)))) - (gnus-header-name-face ((t (:bold t :foreground "Wheat" :weight bold)))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "gold" :slant italic :weight bold)))) - (gnus-header-subject-face ((t (:bold t :foreground "Gold" :weight bold)))) - (gnus-picons-face ((t (:background "white" :foreground "gray30")))) - (gnus-picons-xbm-face ((t (:background "white" :foreground "gray30")))) - (gnus-signature-face ((t (:italic t :foreground "white" :slant italic)))) - (gnus-splash ((t (:foreground "Brown")))) - (gnus-splash-face ((t (:foreground "orange")))) - (gnus-summary-cancelled-face ((t (:background "gray30" :foreground "orange")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "gray85" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "coral" :weight bold)))) - (gnus-summary-high-unread-face ((t (:italic t :bold t :foreground "gold" :slant italic :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue" :slant italic)))) - (gnus-summary-low-read-face ((t (:italic t :foreground "gray85" :slant italic)))) - (gnus-summary-low-ticked-face ((t (:italic t :bold t :foreground "coral" :slant italic :weight bold)))) - (gnus-summary-low-unread-face ((t (:italic t :foreground "white" :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "gray70")))) - (gnus-summary-normal-ticked-face ((t (:bold t :foreground "pink" :weight bold)))) - (gnus-summary-normal-unread-face ((t (:bold t :foreground "gray85" :weight bold)))) - (gnus-summary-selected-face ((t (:foreground "white" :underline t)))) - (gnus-x-face ((t (:background "white" :foreground "gray30")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "gray30")))) - (gui-element ((t (:background "Gray80")))) - (header-line ((t (:background "grey20" :foreground "grey90")))) - (hi-black-b ((t (:bold t :weight bold)))) - (hi-black-hb ((t (:bold t :weight bold :height 1.67 :family "helv")))) - (hi-blue ((t (:background "light blue")))) - (hi-blue-b ((t (:bold t :foreground "blue" :weight bold)))) - (hi-green ((t (:background "green")))) - (hi-green-b ((t (:bold t :foreground "green" :weight bold)))) - (hi-pink ((t (:background "pink")))) - (hi-red-b ((t (:bold t :foreground "red" :weight bold)))) - (hi-yellow ((t (:background "yellow")))) - (highlight ((t (:background "SkyBlue3")))) - (highlight-changes-delete-face ((t (:foreground "gray85" :underline t)))) - (highlight-changes-face ((t (:foreground "gray85")))) - (highline-face ((t (:background "#3c5473")))) - (highline-vertical-face ((t (:background "lightcyan")))) - (holiday-face ((t (:background "pink" :foreground "gray30")))) - (html-helper-bold-face ((t (:bold t :weight bold)))) - (html-helper-bold-italic-face ((t (nil)))) - (html-helper-builtin-face ((t (:foreground "gray85" :underline t)))) - (html-helper-italic-face ((t (:bold t :foreground "yellow" :weight bold)))) - (html-helper-underline-face ((t (:underline t)))) - (html-tag-face ((t (:bold t :weight bold)))) - (hyper-apropos-documentation ((t (:foreground "white")))) - (hyper-apropos-heading ((t (:bold t :weight bold)))) - (hyper-apropos-hyperlink ((t (:foreground "sky blue")))) - (hyper-apropos-major-heading ((t (:bold t :weight bold)))) - (hyper-apropos-section-heading ((t (:bold t :weight bold)))) - (hyper-apropos-warning ((t (:bold t :foreground "gray85" :weight bold)))) - (ibuffer-marked-face ((t (:foreground "gray85")))) - (idlwave-help-link-face ((t (:foreground "Blue")))) - (idlwave-shell-bp-face ((t (:background "Pink" :foreground "Black")))) - (info-header-node ((t (:italic t :bold t :foreground "brown" :slant italic :weight bold)))) - (info-header-xref ((t (:bold t :foreground "magenta4" :weight bold)))) - (info-menu-5 ((t (:underline t)))) - (info-menu-6 ((t (nil)))) - (info-menu-header ((t (:bold t :weight bold :family "helv")))) - (info-node ((t (:italic t :bold t :slant italic :weight bold)))) - (info-xref ((t (:bold t :weight bold)))) - (isearch ((t (:background "LightSeaGreen")))) - (isearch-lazy-highlight-face ((t (:background "cyan4")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (:italic t :bold t :slant italic :weight bold)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-bug-breakpoint-marker ((t (:background "yellow" :foreground "red")))) - (jde-java-font-lock-api-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-bold-face ((t (:bold t :weight bold)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-italic-face ((t (:italic t :slant italic)))) - (jde-java-font-lock-link-face ((t (:foreground "cyan3" :underline t)))) - (jde-java-font-lock-modifier-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-number-face ((t (:foreground "RosyBrown")))) - (jde-java-font-lock-operator-face ((t (:foreground "cyan3")))) - (jde-java-font-lock-package-face ((t (:foreground "LightBlue")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (lazy-highlight-face ((t (:bold t :foreground "yellow" :weight bold)))) - (left-margin ((t (nil)))) - (linemenu-face ((t (:background "gray30")))) - (list-mode-item-selected ((t (:background "gray68")))) - (log-view-file-face ((t (:bold t :background "grey70" :weight bold)))) - (log-view-message-face ((t (:background "grey85")))) - (magenta ((t (:foreground "gray85")))) - (makefile-space-face ((t (:background "hotpink" :foreground "white")))) - (man-bold ((t (:bold t :weight bold)))) - (man-heading ((t (:bold t :weight bold)))) - (man-italic ((t (:foreground "yellow")))) - (man-xref ((t (:underline t)))) - (menu ((t (:background "wheat" :foreground "gray30")))) - (message-cited-text ((t (:foreground "orange")))) - (message-cited-text-face ((t (:foreground "medium aquamarine")))) - (message-header-cc-face ((t (:bold t :foreground "gray85" :weight bold)))) - (message-header-contents ((t (:foreground "white")))) - (message-header-name-face ((t (:foreground "gray85")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "gray85")))) - (message-header-subject-face ((t (:bold t :foreground "green3" :weight bold)))) - (message-header-to-face ((t (:bold t :foreground "green2" :weight bold)))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-headers ((t (:bold t :foreground "orange" :weight bold)))) - (message-highlighted-header-contents ((t (:bold t :weight bold)))) - (message-mml-face ((t (:bold t :foreground "gray85" :weight bold)))) - (message-separator-face ((t (:foreground "gray85")))) - (message-url ((t (:bold t :foreground "pink" :weight bold)))) - (mmm-default-submode-face ((t (:background "#c0c0c5")))) - (mmm-face ((t (:background "black" :foreground "green")))) - (modeline ((t (:background "#3c5473" :foreground "lightgray" :box (:line-width -1 :style released-button :family "helv"))))) - (modeline-buffer-id ((t (:background "white" :foreground "DeepSkyBlue3" :slant normal :weight normal :width normal :family "outline-verdana")))) - (modeline-mousable ((t (:background "white" :foreground "DeepSkyBlue3")))) - (modeline-mousable-minor-mode ((t (:background "white" :foreground "DeepSkyBlue3")))) - (mouse ((t (:background "Grey")))) - (my-summary-highlight-face ((t (:background "PaleTurquoise4" :foreground "White")))) - (my-url-face ((t (:foreground "LightBlue")))) - (nil ((t (nil)))) - (paren-blink-off ((t (:foreground "gray80")))) - (paren-face-match ((t (:background "turquoise")))) - (paren-face-mismatch ((t (:background "purple" :foreground "white")))) - (paren-face-no-match ((t (:background "yellow" :foreground "gray30")))) - (paren-match ((t (:background "darkseagreen2")))) - (paren-mismatch ((t (:background "RosyBrown" :foreground "gray30")))) - (paren-mismatch-face ((t (:bold t :background "white" :foreground "red" :weight bold)))) - (paren-no-match-face ((t (:bold t :background "white" :foreground "red" :weight bold)))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray40")))) - (reb-match-0 ((t (:background "lightblue")))) - (reb-match-1 ((t (:background "aquamarine")))) - (reb-match-2 ((t (:background "springgreen")))) - (reb-match-3 ((t (:background "yellow")))) - (red ((t (:foreground "red")))) - (region ((t (:background "Cyan4")))) - (right-margin ((t (nil)))) - (scroll-bar ((t (:background "grey75")))) - (secondary-selection ((t (:background "gray60")))) - (semantic-dirty-token-face ((t (:background "gray10")))) - (semantic-intangible-face ((t (:foreground "gray25")))) - (semantic-read-only-face ((t (:background "gray25")))) - (semantic-unmatched-syntax-face ((t (:underline "red")))) - (senator-intangible-face ((t (:foreground "gray75")))) - (senator-momentary-highlight-face ((t (:background "gray70")))) - (senator-read-only-face ((t (:background "#664444")))) - (sgml-comment-face ((t (:foreground "dark turquoise")))) - (sgml-doctype-face ((t (:foreground "turquoise")))) - (sgml-end-tag-face ((t (:foreground "aquamarine")))) - (sgml-entity-face ((t (:foreground "gray85")))) - (sgml-ignored-face ((t (:background "gray60" :foreground "gray40")))) - (sgml-ms-end-face ((t (:foreground "green")))) - (sgml-ms-start-face ((t (:foreground "yellow")))) - (sgml-pi-face ((t (:foreground "lime green")))) - (sgml-sgml-face ((t (:foreground "brown")))) - (sgml-short-ref-face ((t (:foreground "deep sky blue")))) - (sgml-start-tag-face ((t (:foreground "aquamarine")))) - (sh-heredoc-face ((t (:foreground "tan")))) - (shell-option-face ((t (:foreground "gray85")))) - (shell-output-2-face ((t (:foreground "gray85")))) - (shell-output-3-face ((t (:foreground "gray85")))) - (shell-output-face ((t (:bold t :weight bold)))) - (shell-prompt-face ((t (:foreground "yellow")))) - (show-paren-match-face ((t (:bold t :background "turquoise" :weight bold)))) - (show-paren-mismatch-face ((t (:bold t :background "RosyBrown" :foreground "white" :weight bold)))) - (show-tabs-space-face ((t (:foreground "yellow")))) - (show-tabs-tab-face ((t (:foreground "red")))) - (smerge-base-face ((t (:foreground "red")))) - (smerge-markers-face ((t (:background "grey85")))) - (smerge-mine-face ((t (:foreground "Gray85")))) - (smerge-other-face ((t (:foreground "darkgreen")))) - (speedbar-button-face ((t (:bold t :weight bold)))) - (speedbar-directory-face ((t (:bold t :weight bold)))) - (speedbar-file-face ((t (:bold t :weight bold)))) - (speedbar-highlight-face ((t (:background "sea green")))) - (speedbar-selected-face ((t (:underline t)))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (strokes-char-face ((t (:background "lightgray")))) - (swbuff-current-buffer-face ((t (:bold t :foreground "gray85" :weight bold)))) - (template-message-face ((t (:bold t :weight bold)))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (:background "black")))) - (term-blue ((t (:foreground "blue")))) - (term-bluebg ((t (:background "blue")))) - (term-bold ((t (:bold t :weight bold)))) - (term-cyan ((t (:foreground "cyan")))) - (term-cyanbg ((t (:background "cyan")))) - (term-default ((t (:background "gray80" :foreground "gray30" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-lucida console")))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-green ((t (:foreground "green")))) - (term-greenbg ((t (:background "green")))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (:foreground "magenta")))) - (term-magentabg ((t (:background "magenta")))) - (term-red ((t (:foreground "red")))) - (term-redbg ((t (:background "red")))) - (term-underline ((t (:underline t)))) - (term-white ((t (:foreground "white")))) - (term-whitebg ((t (:background "white")))) - (term-yellow ((t (:foreground "yellow")))) - (term-yellowbg ((t (:background "yellow")))) - (tex-math-face ((t (:foreground "RosyBrown")))) - (texinfo-heading-face ((t (:foreground "Blue")))) - (text-cursor ((t (:background "Red3" :foreground "gray80")))) - (tool-bar ((t (:background "grey75" :foreground "black")))) - (toolbar ((t (:background "Gray80")))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (vc-annotate-face-0046FF ((t (:background "black" :foreground "wheat")))) - (vcursor ((t (:background "cyan" :foreground "blue" :underline t)))) - (vertical-divider ((t (:background "Gray80")))) - (vhdl-font-lock-attribute-face ((t (:foreground "gray85")))) - (vhdl-font-lock-directive-face ((t (:foreground "gray85")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "gray85")))) - (vhdl-font-lock-function-face ((t (:foreground "gray85")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "gray85" :weight bold)))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "gray85" :weight bold)))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "gray85")))) - (vhdl-speedbar-architecture-selected-face ((t (:foreground "gray85" :underline t)))) - (vhdl-speedbar-configuration-face ((t (:foreground "gray85")))) - (vhdl-speedbar-configuration-selected-face ((t (:foreground "gray85" :underline t)))) - (vhdl-speedbar-entity-face ((t (:foreground "gray85")))) - (vhdl-speedbar-entity-selected-face ((t (:foreground "gray85" :underline t)))) - (vhdl-speedbar-instantiation-face ((t (:foreground "gray85")))) - (vhdl-speedbar-instantiation-selected-face ((t (:foreground "gray85" :underline t)))) - (vhdl-speedbar-package-face ((t (:foreground "gray85")))) - (vhdl-speedbar-package-selected-face ((t (:foreground "gray85" :underline t)))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (vm-header-content-face ((t (:italic t :foreground "wheat" :slant italic)))) - (vm-header-from-face ((t (:italic t :foreground "wheat" :slant italic)))) - (vm-header-name-face ((t (:foreground "cyan")))) - (vm-header-subject-face ((t (:foreground "cyan")))) - (vm-header-to-face ((t (:italic t :foreground "cyan" :slant italic)))) - (vm-message-cited-face ((t (:foreground "Gray80")))) - (vm-monochrome-image ((t (:background "white" :foreground "gray30")))) - (vm-summary-face-1 ((t (:foreground "MediumAquamarine")))) - (vm-summary-face-2 ((t (:foreground "MediumAquamarine")))) - (vm-summary-face-3 ((t (:foreground "MediumAquamarine")))) - (vm-summary-face-4 ((t (:foreground "MediumAquamarine")))) - (vm-summary-highlight-face ((t (:foreground "White")))) - (vm-xface ((t (:background "white" :foreground "gray30")))) - (vmpc-pre-sig-face ((t (:foreground "gray85")))) - (vmpc-sig-face ((t (:foreground "gray85")))) - (vvb-face ((t (:background "pink" :foreground "gray30")))) - (w3m-anchor-face ((t (:bold t :foreground "gray85" :weight bold)))) - (w3m-arrived-anchor-face ((t (:bold t :foreground "gray85" :weight bold)))) - (w3m-header-line-location-content-face ((t (:background "dark olive green" :foreground "wheat")))) - (w3m-header-line-location-title-face ((t (:background "dark olive green" :foreground "beige")))) - (white ((t (:foreground "white")))) - (widget ((t (nil)))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "gray85")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85" :foreground "gray30")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "dim gray" :foreground "white")))) - (woman-addition-face ((t (:foreground "orange")))) - (woman-bold-face ((t (:bold t :weight bold)))) - (woman-italic-face ((t (:foreground "beige")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))) - (x-face ((t (:background "white" :foreground "gray30")))) - (xrdb-option-name-face ((t (:foreground "gray85")))) - (xref-keyword-face ((t (:foreground "gray85")))) - (xref-list-default-face ((t (nil)))) - (xref-list-pilot-face ((t (:foreground "gray85")))) - (xref-list-symbol-face ((t (:foreground "navy")))) - (xsl-fo-alternate-face ((t (:foreground "Yellow")))) - (xsl-fo-main-face ((t (:foreground "PaleGreen")))) - (xsl-other-element-face ((t (:foreground "Coral")))) - (xsl-xslt-alternate-face ((t (:foreground "LightGray")))) - (xsl-xslt-main-face ((t (:foreground "Wheat")))) - (xxml-emph-1-face ((t (:background "lightyellow")))) - (xxml-emph-2-face ((t (:background "lightyellow")))) - (xxml-header-1-face ((t (:background "seashell1" :foreground "MediumAquamarine")))) - (xxml-header-2-face ((t (:background "seashell1" :foreground "SkyBlue")))) - (xxml-header-3-face ((t (:background "seashell1")))) - (xxml-header-4-face ((t (:background "seashell1")))) - (xxml-interaction-face ((t (:background "lightcyan")))) - (xxml-rug-face ((t (:background "cyan")))) - (xxml-sparkle-face ((t (:background "yellow")))) - (xxml-unbreakable-space-face ((t (:foreground "grey" :underline t)))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "Cyan4"))))))) - -(defun color-theme-blue-mood () - "Color theme by Nelson Loyola, created 2002-04-15. -Includes cperl, custom, font-lock, p4, speedbar, widget." - (interactive) - (color-theme-install - '(color-theme-blue-mood - ((background-color . "DodgerBlue4") - (background-mode . dark) - (background-toolbar-color . "#bfbfbfbfbfbf") - (border-color . "Blue") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#6c6c68686868") - (cursor-color . "DarkGoldenrod1") - (foreground-color . "white smoke") - (mouse-color . "black") - (top-toolbar-shadow-color . "#e5e5e0e0e1e1")) - ((vc-annotate-very-old-color . "#0046FF")) - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (nil)))) - (border-glyph ((t (nil)))) - (cmode-bracket-face ((t (:bold t)))) - (cperl-array-face ((t (:bold t :foreground "wheat")))) - (cperl-hash-face ((t (:bold t :foreground "chartreuse")))) - (custom-button-face ((t (nil)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:bold t :foreground "cyan")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue")))) - (font-lock-builtin-face ((t (:bold t :foreground "wheat")))) - (font-lock-comment-face ((t (:bold t :foreground "gray72")))) - (font-lock-constant-face ((t (:bold t :foreground "cyan3")))) - (font-lock-doc-string-face ((t (:foreground "#00C000")))) - (font-lock-function-name-face ((t (:bold t :foreground "chartreuse")))) - (font-lock-keyword-face ((t (:bold t :foreground "gold1")))) - (font-lock-other-emphasized-face ((t (:bold t :foreground "gold1")))) - (font-lock-other-type-face ((t (:bold t :foreground "gold1")))) - (font-lock-preprocessor-face ((t (:foreground "plum")))) - (font-lock-reference-face ((t (:bold t :foreground "orangered")))) - (font-lock-string-face ((t (:foreground "tomato")))) - (font-lock-type-face ((t (:bold t :foreground "gold1")))) - (font-lock-variable-name-face ((t (:foreground "light yellow")))) - (font-lock-warning-face ((t (:foreground "tomato")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:size "nil" :background "#e7e3d6" :foreground" #000000")))) - (highlight ((t (:background "red" :foreground "yellow")))) - (isearch ((t (:bold t :background "pale turquoise" :foreground "blue")))) - (italic ((t (nil)))) - (lazy-highlight-face ((t (:bold t :foreground "dark magenta")))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:bold t :background "gray68" :foreground "yellow")))) - (modeline ((t (:background "goldenrod" :foreground "darkblue")))) - (modeline-buffer-id ((t (:background "goldenrod" :foreground "darkblue")))) - (modeline-mousable ((t (:background "goldenrod" :foreground "darkblue")))) - (modeline-mousable-minor-mode ((t (:background "goldenrod" :foreground "darkblue")))) - (my-tab-face ((t (:background "SlateBlue1")))) - (p4-depot-added-face ((t (:foreground "steelblue1")))) - (p4-depot-deleted-face ((t (:foreground "red")))) - (p4-depot-unmapped-face ((t (:foreground "grey90")))) - (p4-diff-change-face ((t (:foreground "dark green")))) - (p4-diff-del-face ((t (:bold t :foreground "salmon")))) - (p4-diff-file-face ((t (:background "blue")))) - (p4-diff-head-face ((t (:background "blue")))) - (p4-diff-ins-face ((t (:foreground "steelblue1")))) - (paren-blink-off ((t (:foreground "DodgerBlue4")))) - (paren-match ((t (:background "red" :foreground "yellow")))) - (paren-mismatch ((t (:background "DeepPink")))) - (pointer ((t (:background "white")))) - (primary-selection ((t (:bold t :background "medium sea green")))) - (red ((t (:foreground "red")))) - (region ((t (:background "red" :foreground "yellow")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "gray91" :foreground "sienna3")))) - (show-paren-match-face ((t (:background "cyan3" :foreground "blue")))) - (show-paren-mismatch-face ((t (:background "red" :foreground "blue")))) - (show-trailing-whitespace ((t (:background "red" :foreground "blue")))) - (speedbar-button-face ((t (:foreground "white")))) - (speedbar-directory-face ((t (:foreground "gray")))) - (speedbar-file-face ((t (:foreground "gold1")))) - (speedbar-highlight-face ((t (:background "lightslateblue" :foreground "gold1")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "chartreuse")))) - (text-cursor ((t (:background "DarkGoldenrod1" :foreground "DodgerBlue4")))) - (toolbar ((t (:background "#e7e3d6" :foreground "#000000")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (:background "#e7e3d6" :foreground "#000000")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "white" :foreground "midnightblue"))))))) - -(defun color-theme-euphoria () - "Color theme by oGLOWo, created 2000-04-19. -Green on black theme including font-lock, speedbar, and widget." - (interactive) - (color-theme-install - '(color-theme-euphoria - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "yellow") - (foreground-color . "#00ff00") - (mouse-color . "yellow")) - ((help-highlight-face . underline) - (list-matching-lines-face . bold) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "black" :foreground "#00ff00" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "misc-fixed")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cursor ((t (:background "yellow")))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:foreground "magenta")))) - (font-lock-comment-face ((t (:foreground "deeppink")))) - (font-lock-constant-face ((t (:foreground "blue")))) - (font-lock-doc-face ((t (:foreground "cyan")))) - (font-lock-doc-string-face ((t (:foreground "cyan")))) - (font-lock-function-name-face ((t (:foreground "purple")))) - (font-lock-keyword-face ((t (:foreground "red")))) - (font-lock-preprocessor-face ((t (:foreground "blue1")))) - (font-lock-reference-face ((t (nil)))) - (font-lock-string-face ((t (:foreground "cyan")))) - (font-lock-type-face ((t (:foreground "yellow")))) - (font-lock-variable-name-face ((t (:foreground "violet")))) - (font-lock-warning-face ((t (:bold t :foreground "red" :weight bold)))) - (fringe ((t (:background "gray16" :foreground "#00ff00")))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey20" :foreground "grey90" :box nil)))) - (highlight ((t (:background "darkolivegreen")))) - (horizontal-divider ((t (:background "gray16" :foreground "#00ff00")))) - (isearch ((t (:background "palevioletred2" :foreground "brown4")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (menu ((t (:background "gray16" :foreground "green")))) - (modeline ((t (:background "gray16" :foreground "#00ff00" :box (:line-width -1 :style released-button))))) - (modeline-buffer-id ((t (:background "gray16" :foreground "#00ff00")))) - (modeline-mousable ((t (:background "gray16" :foreground "#00ff00")))) - (modeline-mousable-minor-mode ((t (:background "gray16" :foreground "#00ff00")))) - (mouse ((t (:background "yellow")))) - (primary-selection ((t (:background "#00ff00" :foreground "black")))) - (region ((t (:background "steelblue" :foreground "white")))) - (scroll-bar ((t (:background "gray16" :foreground "#00ff00")))) - (secondary-selection ((t (:background "#00ff00" :foreground "black")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:foreground "#00ff00")))) - (speedbar-directory-face ((t (:foreground "#00ff00")))) - (speedbar-file-face ((t (:foreground "cyan")))) - (speedbar-highlight-face ((t (:background "#00ff00" :foreground "purple")))) - (speedbar-selected-face ((t (:foreground "deeppink" :underline t)))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (tool-bar ((t (:background "gray16" :foreground "green" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "gray16" :foreground "#00ff00")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (vertical-divider ((t (:background "gray16" :foreground "#00ff00")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray")))) - (zmacs-region ((t (:background "steelblue" :foreground "white"))))))) - -(defun color-theme-resolve () - "Color theme by Damien Elmes, created 2002-04-24. -A white smoke on blue color theme." - (interactive) - (color-theme-install - '(color-theme-resolve - ((background-color . "#00457f") - (background-mode . dark) - (border-color . "black") - (cursor-color . "DarkGoldenrod1") - (foreground-color . "white smoke") - (mouse-color . "white")) - ((display-time-mail-face . mode-line) - (help-highlight-face . underline) - (list-matching-lines-face . bold) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "#00457f" :foreground "white smoke" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "b&h-lucidatypewriter")))) - (bold ((t (:bold t :foreground "snow2" :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (calendar-today-face ((t (:underline t)))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cperl-array-face ((t (:bold t :foreground "wheat" :weight bold)))) - (cperl-hash-face ((t (:bold t :foreground "chartreuse" :weight bold)))) - (cursor ((t (:background "DarkGoldenrod1")))) - (diary-face ((t (:foreground "yellow")))) - (erc-input-face ((t (:foreground "lightblue2")))) - (erc-notice-face ((t (:foreground "lightyellow3")))) - (fixed-pitch ((t (:family "courier")))) - (font-latex-bold-face ((t (:bold t :foreground "DarkOliveGreen" :weight bold)))) - (font-latex-italic-face ((t (:italic t :foreground "DarkOliveGreen" :slant italic)))) - (font-latex-math-face ((t (:foreground "burlywood")))) - (font-latex-sedate-face ((t (:foreground "LightGray")))) - (font-latex-string-face ((t (:foreground "RosyBrown")))) - (font-latex-warning-face ((t (:bold t :foreground "Red" :weight bold)))) - (font-lock-builtin-face ((t (:foreground "wheat")))) - (font-lock-comment-face ((t (:foreground "light steel blue")))) - (font-lock-constant-face ((t (:foreground "seashell3")))) - (font-lock-doc-face ((t (:foreground "plum")))) - (font-lock-doc-string-face ((t (:foreground "#008000")))) - (font-lock-function-name-face ((t (:foreground "thistle1")))) - (font-lock-keyword-face ((t (:foreground "wheat")))) - (font-lock-other-emphasized-face ((t (:bold t :foreground "gold1" :weight bold)))) - (font-lock-other-type-face ((t (:bold t :foreground "gold1" :weight bold)))) - (font-lock-preprocessor-face ((t (:foreground "#800080")))) - (font-lock-reference-face ((t (:foreground "wheat")))) - (font-lock-string-face ((t (:foreground "plum")))) - (font-lock-type-face ((t (:foreground "lawn green")))) - (font-lock-variable-name-face ((t (:foreground "light yellow")))) - (font-lock-warning-face ((t (:foreground "plum")))) - (fringe ((t (:background "#000000")))) - (gnus-cite-attribution-face ((t (:italic t :slant italic)))) - (gnus-cite-face-1 ((t (:foreground "light blue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "light cyan")))) - (gnus-cite-face-3 ((t (:foreground "light yellow")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :weight bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t :slant italic)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :weight bold)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t :weight bold)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t :weight bold)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise" :weight bold)))) - (gnus-header-content-face ((t (:italic t :foreground "snow2" :slant italic)))) - (gnus-header-from-face ((t (:foreground "spring green")))) - (gnus-header-name-face ((t (:bold t :foreground "snow2" :weight bold)))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "yellow" :slant italic)))) - (gnus-header-subject-face ((t (:bold t :foreground "peach puff" :weight bold)))) - (gnus-signature-face ((t (:italic t :slant italic)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue" :slant italic)))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen" :slant italic)))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink" :slant italic)))) - (gnus-summary-low-unread-face ((t (:italic t :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (header-line ((t (:background "grey20" :foreground "grey90")))) - (highlight ((t (:background "gray91" :foreground "firebrick")))) - (highline-face ((t (:background "paleturquoise" :foreground "black")))) - (holiday-face ((t (:background "chocolate4")))) - (isearch ((t (:background "palevioletred2" :foreground "brown4")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (menu ((t (nil)))) - (message-cited-text-face ((t (:foreground "seashell3")))) - (message-header-cc-face ((t (:bold t :foreground "snow2" :weight bold)))) - (message-header-name-face ((t (:bold t :foreground "snow1" :weight bold)))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "snow2")))) - (message-header-subject-face ((t (:bold t :foreground "snow2" :weight bold)))) - (message-header-to-face ((t (:bold t :foreground "snow2" :weight bold)))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "misty rose")))) - (modeline ((t (:foreground "white" :background "#001040" :box (:line-width -1 :style released-button))))) - (modeline-buffer-id ((t (:foreground "white" :background "#001040")))) - (modeline-mousable ((t (:foreground "white" :background "#001040")))) - (modeline-mousable-minor-mode ((t (:foreground "white" :background "#001040")))) - (mouse ((t (:background "white")))) - (my-tab-face ((t (:background "SlateBlue1")))) - (p4-diff-del-face ((t (:bold t :foreground "salmon" :weight bold)))) - (primary-selection ((t (:background "gray91" :foreground "DodgerBlue4")))) - (region ((t (:background "gray91" :foreground "DodgerBlue4")))) - (scroll-bar ((t (:background "grey75")))) - (secondary-selection ((t (:background "gray91" :foreground "sienna3")))) - (show-paren-match-face ((t (:background "cyan3" :foreground "blue")))) - (show-paren-mismatch-face ((t (:background "red" :foreground "blue")))) - (tool-bar ((t (:background "grey75" :foreground "black")))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "steel blue")))) - (widget-inactive-face ((t (:foreground "grey")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (zmacs-region ((t (:background "gray91" :foreground "DodgerBlue4"))))))) - -(defun color-theme-xp () - "Color theme by Girish Bharadwaj, created 2002-04-25. -Includes custom, erc, font-lock, jde, semantic, speedbar, widget." - (interactive) - (color-theme-install - '(color-theme-xp - ((background-color . "lightyellow2") - (background-mode . light) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "gray20") - (mouse-color . "black")) - ((help-highlight-face . underline) - (list-matching-lines-face . bold) - (semantic-which-function-use-color . t) - (senator-eldoc-use-color . t) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "lightyellow2" :foreground "gray20" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-courier new")))) - (bg:erc-color-face0 ((t (:background "White")))) - (bg:erc-color-face1 ((t (:background "black")))) - (bg:erc-color-face10 ((t (:background "lightblue1")))) - (bg:erc-color-face11 ((t (:background "cyan")))) - (bg:erc-color-face12 ((t (:background "blue")))) - (bg:erc-color-face13 ((t (:background "deeppink")))) - (bg:erc-color-face14 ((t (:background "gray50")))) - (bg:erc-color-face15 ((t (:background "gray90")))) - (bg:erc-color-face2 ((t (:background "blue4")))) - (bg:erc-color-face3 ((t (:background "green4")))) - (bg:erc-color-face4 ((t (:background "red")))) - (bg:erc-color-face5 ((t (:background "brown")))) - (bg:erc-color-face6 ((t (:background "purple")))) - (bg:erc-color-face7 ((t (:background "orange")))) - (bg:erc-color-face8 ((t (:background "yellow")))) - (bg:erc-color-face9 ((t (:background "green")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (button ((t (:underline t)))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "dark blue")))) - (cursor ((t (:background "black")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "gray85")))) - (custom-comment-tag-face ((t (:foreground "blue4")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "red" :weight bold :height 1.2)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "blue" :weight bold :height 1.2)))) - (erc-action-face ((t (:bold t :weight bold)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "IndianRed")))) - (erc-error-face ((t (:background "Red" :foreground "White")))) - (erc-input-face ((t (:foreground "brown")))) - (erc-inverse-face ((t (:background "Black" :foreground "White")))) - (erc-notice-face ((t (:bold t :foreground "SlateBlue" :weight bold)))) - (erc-prompt-face ((t (:bold t :background "lightBlue2" :foreground "Black" :weight bold)))) - (erc-timestamp-face ((t (:bold t :foreground "green" :weight bold)))) - (erc-underline-face ((t (:underline t)))) - (fg:erc-color-face0 ((t (:foreground "White")))) - (fg:erc-color-face1 ((t (:foreground "black")))) - (fg:erc-color-face10 ((t (:foreground "lightblue1")))) - (fg:erc-color-face11 ((t (:foreground "cyan")))) - (fg:erc-color-face12 ((t (:foreground "blue")))) - (fg:erc-color-face13 ((t (:foreground "deeppink")))) - (fg:erc-color-face14 ((t (:foreground "gray50")))) - (fg:erc-color-face15 ((t (:foreground "gray90")))) - (fg:erc-color-face2 ((t (:foreground "blue4")))) - (fg:erc-color-face3 ((t (:foreground "green4")))) - (fg:erc-color-face4 ((t (:foreground "red")))) - (fg:erc-color-face5 ((t (:foreground "brown")))) - (fg:erc-color-face6 ((t (:foreground "purple")))) - (fg:erc-color-face7 ((t (:foreground "orange")))) - (fg:erc-color-face8 ((t (:foreground "yellow")))) - (fg:erc-color-face9 ((t (:foreground "green")))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:foreground "magenta3" :underline t :height 0.9)))) - (font-lock-comment-face ((t (:italic t :foreground "gray60" :slant oblique :height 0.9)))) - (font-lock-constant-face ((t (:bold t :foreground "medium purple" :weight bold :height 0.9)))) - (font-lock-function-name-face ((t (:bold t :foreground "black" :weight bold)))) - (font-lock-keyword-face ((t (:bold t :foreground "blue" :weight bold)))) - (font-lock-string-face ((t (:foreground "red" :height 0.9)))) - (font-lock-type-face ((t (:foreground "Royalblue")))) - (font-lock-variable-name-face ((t (:bold t :foreground "maroon" :weight bold :height 0.9)))) - (font-lock-warning-face ((t (:bold t :foreground "Red" :weight bold)))) - (fringe ((t (:background "dodgerblue")))) - (header-line ((t (:underline "red" :overline "red" :background "grey90" :foreground "grey20" :box nil)))) - (highlight ((t (:background "darkseagreen2")))) - (isearch ((t (:background "magenta2" :foreground "lightskyblue1")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise")))) - (italic ((t (:italic t :slant italic)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black")))) - (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black")))) - (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black")))) - (jde-java-font-lock-api-face ((t (:foreground "dark goldenrod")))) - (jde-java-font-lock-bold-face ((t (:bold t :weight bold)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "CadetBlue")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "green4")))) - (jde-java-font-lock-italic-face ((t (:italic t :slant italic)))) - (jde-java-font-lock-link-face ((t (:foreground "cadetblue" :underline t :slant normal)))) - (jde-java-font-lock-modifier-face ((t (:foreground "Orchid")))) - (jde-java-font-lock-number-face ((t (:foreground "RosyBrown")))) - (jde-java-font-lock-operator-face ((t (:foreground "medium blue")))) - (jde-java-font-lock-package-face ((t (:foreground "blue3")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (menu ((t (nil)))) - (minibuffer-prompt ((t (:foreground "dark blue")))) - (modeline ((t (:background "dodgerblue" :foreground "black" :overline "red" :underline "red")))) - (modeline-buffer-id ((t (:background "dodgerblue" :foreground "black")))) - (modeline-mousable ((t (:background "dodgerblue" :foreground "black")))) - (modeline-mousable-minor-mode ((t (:background "dodgerblue" :foreground "black")))) - (mode-line-inactive ((t (:italic t :underline "red" :overline "red" :background "white" :foreground "cadetblue" :box (:line-width -1 :color "grey75") :slant oblique :weight light)))) - (mouse ((t (:background "black")))) - (primary-selection ((t (:background "lightgoldenrod2")))) - (region ((t (:background "lightgoldenrod2")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "yellow")))) - (semantic-dirty-token-face ((t (:background "lightyellow")))) - (semantic-unmatched-syntax-face ((t (:underline "red")))) - (senator-intangible-face ((t (:foreground "gray25")))) - (senator-momentary-highlight-face ((t (:background "gray70")))) - (senator-read-only-face ((t (:background "#CCBBBB")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "brown")))) - (template-message-face ((t (:bold t :weight bold)))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (zmacs-region ((t (:background "lightgoldenrod2"))))))) - -(defun color-theme-gray30 () - "Color theme by Girish Bharadwaj, created 2002-04-22." - (interactive) - (color-theme-install - '(color-theme-gray30 - ((background-color . "grey30") - (background-mode . dark) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "gainsboro") - (mouse-color . "black")) - ((help-highlight-face . underline) - (list-matching-lines-face . bold) - (semantic-which-function-use-color . t) - (senator-eldoc-use-color . t) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "grey30" :foreground "gainsboro" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-courier new")))) - (bg:erc-color-face0 ((t (:background "White")))) - (bg:erc-color-face1 ((t (:background "black")))) - (bg:erc-color-face10 ((t (:background "lightblue1")))) - (bg:erc-color-face11 ((t (:background "cyan")))) - (bg:erc-color-face12 ((t (:background "blue")))) - (bg:erc-color-face13 ((t (:background "deeppink")))) - (bg:erc-color-face14 ((t (:background "gray50")))) - (bg:erc-color-face15 ((t (:background "gray90")))) - (bg:erc-color-face2 ((t (:background "blue4")))) - (bg:erc-color-face3 ((t (:background "green4")))) - (bg:erc-color-face4 ((t (:background "red")))) - (bg:erc-color-face5 ((t (:background "brown")))) - (bg:erc-color-face6 ((t (:background "purple")))) - (bg:erc-color-face7 ((t (:background "orange")))) - (bg:erc-color-face8 ((t (:background "yellow")))) - (bg:erc-color-face9 ((t (:background "green")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (button ((t (:underline t)))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cursor ((t (:background "black")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "dim gray")))) - (custom-comment-tag-face ((t (:foreground "gray80")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:bold t :foreground "light blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "pink" :weight bold :height 1.2)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "lime green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "light blue" :weight bold :height 1.2)))) - (erc-action-face ((t (:bold t :weight bold)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "IndianRed")))) - (erc-error-face ((t (:background "Red" :foreground "White")))) - (erc-input-face ((t (:foreground "brown")))) - (erc-inverse-face ((t (:background "Black" :foreground "White")))) - (erc-notice-face ((t (:bold t :foreground "SlateBlue" :weight bold)))) - (erc-prompt-face ((t (:bold t :background "lightBlue2" :foreground "Black" :weight bold)))) - (erc-timestamp-face ((t (:bold t :foreground "green" :weight bold)))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid" :weight bold)))) - (eshell-ls-backup-face ((t (:foreground "LightSalmon")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed" :weight bold)))) - (eshell-ls-directory-face ((t (:bold t :foreground "SkyBlue" :weight bold)))) - (eshell-ls-executable-face ((t (:bold t :foreground "Green" :weight bold)))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red" :weight bold)))) - (eshell-ls-product-face ((t (:foreground "LightSalmon")))) - (eshell-ls-readonly-face ((t (:foreground "Pink")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta" :weight bold)))) - (eshell-ls-symlink-face ((t (:bold t :foreground "Cyan" :weight bold)))) - (eshell-ls-unreadable-face ((t (:foreground "DarkGrey")))) - (fg:erc-color-face0 ((t (:foreground "White")))) - (fg:erc-color-face1 ((t (:foreground "black")))) - (fg:erc-color-face10 ((t (:foreground "lightblue1")))) - (fg:erc-color-face11 ((t (:foreground "cyan")))) - (fg:erc-color-face12 ((t (:foreground "blue")))) - (fg:erc-color-face13 ((t (:foreground "deeppink")))) - (fg:erc-color-face14 ((t (:foreground "gray50")))) - (fg:erc-color-face15 ((t (:foreground "gray90")))) - (fg:erc-color-face2 ((t (:foreground "blue4")))) - (fg:erc-color-face3 ((t (:foreground "green4")))) - (fg:erc-color-face4 ((t (:foreground "red")))) - (fg:erc-color-face5 ((t (:foreground "brown")))) - (fg:erc-color-face6 ((t (:foreground "purple")))) - (fg:erc-color-face7 ((t (:foreground "orange")))) - (fg:erc-color-face8 ((t (:foreground "yellow")))) - (fg:erc-color-face9 ((t (:foreground "green")))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:foreground "LightSkyBlue" :underline t)))) - (font-lock-comment-face ((t (:italic t :foreground "lightgreen" :slant oblique)))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-function-name-face ((t (:bold t :foreground "DodgerBlue" :weight bold :height 1.05)))) - (font-lock-keyword-face ((t (:foreground "LightPink" :height 1.05)))) - (font-lock-string-face ((t (:foreground "LightSalmon")))) - (font-lock-type-face ((t (:foreground "yellow" :height 1.05)))) - (font-lock-variable-name-face ((t (:foreground "gold")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold)))) - (fringe ((t (:background "grey10")))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey20" :foreground "grey90" :box nil)))) - (highlight ((t (:background "darkolivegreen")))) - (isearch ((t (:background "palevioletred2" :foreground "brown4")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black")))) - (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black")))) - (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black")))) - (jde-java-font-lock-api-face ((t (:foreground "light goldenrod")))) - (jde-java-font-lock-bold-face ((t (:bold t :weight bold)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "Aquamarine")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "light coral")))) - (jde-java-font-lock-italic-face ((t (:italic t :slant italic)))) - (jde-java-font-lock-link-face ((t (:foreground "cadetblue" :underline t :slant normal)))) - (jde-java-font-lock-modifier-face ((t (:foreground "LightSteelBlue")))) - (jde-java-font-lock-number-face ((t (:foreground "LightSalmon")))) - (jde-java-font-lock-operator-face ((t (:foreground "medium blue")))) - (jde-java-font-lock-package-face ((t (:foreground "steelblue1")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (menu ((t (nil)))) - (minibuffer-prompt ((t (:foreground "cyan")))) - (mode-line ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (mode-line-inactive ((t (:background "grey30" :foreground "grey80" :box (:line-width -1 :color "grey40" :style nil) :weight light)))) - (mouse ((t (:background "black")))) - (primary-selection ((t (:background "blue3")))) - (region ((t (:background "blue3")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "SkyBlue4")))) - (semantic-dirty-token-face ((t (:background "lightyellow")))) - (semantic-unmatched-syntax-face ((t (:underline "red")))) - (senator-intangible-face ((t (:foreground "gray75")))) - (senator-momentary-highlight-face ((t (:background "gray30")))) - (senator-read-only-face ((t (:background "#664444")))) - (show-paren-match-face ((t (:background "steelblue3")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green3")))) - (speedbar-directory-face ((t (:foreground "light blue")))) - (speedbar-file-face ((t (:foreground "cyan")))) - (speedbar-highlight-face ((t (:background "sea green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (template-message-face ((t (:bold t :weight bold)))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray")))) - (zmacs-region ((t (:background "blue3"))))))) - -(defun color-theme-dark-green () - "Color theme by ces93, created 2002-03-30." - (interactive) - (color-theme-install - '(color-theme-dark-green - ((background-mode . light) - (background-toolbar-color . "#e79ddf7ddf7d") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#8e3886178617") - (top-toolbar-shadow-color . "#ffffffffffff")) - nil - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (nil)))) - (fringe ((t (nil)))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:background "#ffffff" :foreground "#000000")))) - (highlight ((t (:background "gray" :foreground "darkred")))) - (isearch ((t (:background "LightSlateGray" :foreground "red")))) - (italic ((t (:italic t)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68")))) - (mode-line ((t (:background "LightSlateGray" :foreground "black")))) - (modeline ((t (:background "LightSlateGray" :foreground "black")))) - (modeline-buffer-id ((t (:background "LightSlateGray" :foreground "blue4")))) - (modeline-mousable ((t (:background "LightSlateGray" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "LightSlateGray" :foreground "green4")))) - (pointer ((t (:background "#ffffff" :foreground "#000000")))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "gray65")))) - (right-margin ((t (nil)))) - (rpm-spec-dir-face ((t (:foreground "green")))) - (rpm-spec-doc-face ((t (:foreground "magenta")))) - (rpm-spec-ghost-face ((t (:foreground "red")))) - (rpm-spec-macro-face ((t (:foreground "purple")))) - (rpm-spec-package-face ((t (:foreground "red")))) - (rpm-spec-tag-face ((t (:foreground "blue")))) - (secondary-selection ((t (:background "paleturquoise")))) - (text-cursor ((t (:background "Red3" :foreground "DarkSlateGray")))) - (tool-bar ((t (nil)))) - (toolbar ((t (:background "#ffffff" :foreground "#000000")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (:background "#ffffff" :foreground "#000000")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "darkorange" :foreground "black"))))))) - -(defun color-theme-whateveryouwant () - "Color theme by Fabien Penso, created 2002-05-02." - (interactive) - (color-theme-install - '(color-theme-whateveryouwant - ((background-color . "white") - (background-mode . light) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "black") - (mouse-color . "black")) - ((cperl-here-face . font-lock-string-face) - (cperl-invalid-face . underline) - (cperl-pod-face . font-lock-comment-face) - (cperl-pod-head-face . font-lock-variable-name-face) - (display-time-mail-face . mode-line) - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-carpal-button-face . bold) - (gnus-carpal-header-face . bold-italic) - (gnus-cite-attribution-face . gnus-cite-attribution-face) - (gnus-mouse-face . highlight) - (gnus-selected-tree-face . modeline) - (gnus-signature-face . gnus-signature-face) - (gnus-summary-selected-face . gnus-summary-selected-face) - (gnus-treat-display-xface . head) - (help-highlight-face . underline) - (ispell-highlight-face . flyspell-incorrect-face) - (list-matching-lines-face . bold) - (sgml-set-face . t) - (view-highlight-face . highlight) - (widget-mouse-face . highlight) - (x-face-mouse-face . highlight)) - (default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 116 :width normal :family "monotype-courier new")))) - (Info-title-1-face ((t (:bold t :weight bold :height 1.728 :family "helv")))) - (Info-title-2-face ((t (:bold t :weight bold :height 1.44 :family "helv")))) - (Info-title-3-face ((t (:bold t :weight bold :height 1.2 :family "helv")))) - (Info-title-4-face ((t (:bold t :weight bold :family "helv")))) - (antlr-font-lock-keyword-face ((t (:bold t :foreground "black" :weight bold)))) - (antlr-font-lock-literal-face ((t (:bold t :foreground "brown4" :weight bold)))) - (antlr-font-lock-ruledef-face ((t (:bold t :foreground "blue" :weight bold)))) - (antlr-font-lock-ruleref-face ((t (:foreground "blue4")))) - (antlr-font-lock-tokendef-face ((t (:bold t :foreground "blue" :weight bold)))) - (antlr-font-lock-tokenref-face ((t (:foreground "orange4")))) - (bbdb-company ((t (:italic t :slant italic)))) - (bbdb-field-name ((t (:bold t :foreground "gray40" :weight bold)))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (:underline t)))) - (bold ((t (:bold t :foreground "gray40" :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (calendar-today-face ((t (:underline t)))) - (change-log-acknowledgement-face ((t (:foreground "Firebrick")))) - (change-log-conditionals-face ((t (:foreground "DarkGoldenrod")))) - (change-log-date-face ((t (:foreground "RosyBrown")))) - (change-log-email-face ((t (:foreground "DarkGoldenrod")))) - (change-log-file-face ((t (:foreground "Blue")))) - (change-log-function-face ((t (:foreground "DarkGoldenrod")))) - (change-log-list-face ((t (:foreground "Purple")))) - (change-log-name-face ((t (:foreground "CadetBlue")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "dark blue")))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue" :weight bold)))) - (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red" :slant italic :weight bold)))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (cursor ((t (:background "black")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "gray85")))) - (custom-comment-tag-face ((t (:foreground "blue4")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :weight bold :height 1.2 :family "helv")))) - (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :foreground "red" :weight bold :height 1.2 :family "helv")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2 :family "helv")))) - (cvs-filename-face ((t (:foreground "blue4")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:bold t :foreground "blue4" :weight bold)))) - (cvs-marked-face ((t (:bold t :foreground "green3" :weight bold)))) - (cvs-msg-face ((t (:italic t :slant italic)))) - (cvs-need-action-face ((t (:foreground "orange")))) - (cvs-unknown-face ((t (:foreground "red")))) - (diary-face ((t (:foreground "red")))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (:foreground "grey50")))) - (diff-file-header-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-function-face ((t (:foreground "grey50")))) - (diff-header-face ((t (:background "grey85")))) - (diff-hunk-header-face ((t (:background "grey85")))) - (diff-index-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-nonexistent-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-removed-face ((t (nil)))) - (dired-face-boring ((t (:foreground "RosyBrown")))) - (dired-face-directory ((t (:foreground "Blue")))) - (dired-face-executable ((t (nil)))) - (dired-face-flagged ((t (:bold t :foreground "Red" :weight bold)))) - (dired-face-marked ((t (:bold t :foreground "Red" :weight bold)))) - (dired-face-permissions ((t (nil)))) - (dired-face-setuid ((t (nil)))) - (dired-face-socket ((t (nil)))) - (dired-face-symlink ((t (:foreground "Purple")))) - (ebrowse-default-face ((t (nil)))) - (ebrowse-file-name-face ((t (:italic t :slant italic)))) - (ebrowse-member-attribute-face ((t (:foreground "red")))) - (ebrowse-member-class-face ((t (:foreground "purple")))) - (ebrowse-progress-face ((t (:background "blue")))) - (ebrowse-root-class-face ((t (:bold t :foreground "blue" :weight bold)))) - (ebrowse-tree-mark-face ((t (:foreground "red")))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (erc-action-face ((t (:bold t :weight bold)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "LightSalmon")))) - (erc-error-face ((t (:bold t :foreground "IndianRed" :weight bold)))) - (erc-input-face ((t (:foreground "Beige")))) - (erc-inverse-face ((t (:background "wheat" :foreground "darkslategrey")))) - (erc-notice-face ((t (:foreground "MediumAquamarine")))) - (erc-pal-face ((t (:foreground "pale green")))) - (erc-prompt-face ((t (:foreground "MediumAquamarine")))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid" :weight bold)))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed" :weight bold)))) - (eshell-ls-directory-face ((t (:bold t :foreground "Blue" :weight bold)))) - (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen" :weight bold)))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red" :weight bold)))) - (eshell-ls-picture-face ((t (:foreground "Violet")))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta" :weight bold)))) - (eshell-ls-symlink-face ((t (:bold t :foreground "Dark Cyan" :weight bold)))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:bold t :foreground "#aa0000" :weight bold :width condensed :family "neep-alt")))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed" :weight bold)))) - (eshell-test-ok-face ((t (:bold t :foreground "Green" :weight bold)))) - (excerpt ((t (:italic t :slant italic)))) - (fixed ((t (:bold t :weight bold)))) - (fixed-pitch ((t (:family "courier")))) - (flyspell-duplicate-face ((t (:bold t :foreground "Gold3" :underline t :weight bold)))) - (flyspell-incorrect-face ((t (:bold t :foreground "OrangeRed" :underline t :weight bold)))) - (font-latex-bold-face ((t (:bold t :foreground "DarkOliveGreen" :weight bold)))) - (font-latex-italic-face ((t (:italic t :foreground "DarkOliveGreen" :slant italic)))) - (font-latex-math-face ((t (:foreground "SaddleBrown")))) - (font-latex-sedate-face ((t (:foreground "DimGray")))) - (font-latex-string-face ((t (:foreground "RosyBrown")))) - (font-latex-warning-face ((t (:bold t :foreground "Red" :weight bold)))) - (font-lock-builtin-face ((t (:foreground "dodgerblue3")))) - (font-lock-comment-face ((t (:foreground "#cc0000" :width semi-condensed :family "helvetica")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-doc-face ((t (:foreground "RosyBrown")))) - (font-lock-doc-string-face ((t (:foreground "RosyBrown")))) - (font-lock-function-name-face ((t (:bold t :foreground "navy" :weight bold :height 100)))) - (font-lock-keyword-face ((t (:bold t :foreground "red4" :weight bold)))) - (font-lock-preprocessor-face ((t (:foreground "CadetBlue")))) - (font-lock-reference-face ((t (:foreground "Orchid")))) - (font-lock-string-face ((t (:foreground "navy")))) - (font-lock-type-face ((t (:bold t :foreground "black" :weight bold)))) - (font-lock-variable-name-face ((t (:foreground "black")))) - (font-lock-warning-face ((t (:foreground "orange2")))) - (fringe ((t (:background "white")))) - (gnus-cite-attribution-face ((t (:italic t :slant italic)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :weight bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t :slant italic)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "red" :weight normal :height 120 :family "courier")))) - (gnus-group-news-1-face ((t (:foreground "red" :weight normal :height 120 :family "courier")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4" :weight bold)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :weight bold)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t :weight bold)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t :weight bold)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen" :weight bold)))) - (gnus-header-content-face ((t (:foreground "goldenrod" :slant normal :family "helvetica")))) - (gnus-header-from-face ((t (:bold t :foreground "grey75" :weight bold :height 140 :family "helvetica")))) - (gnus-header-name-face ((t (:foreground "grey75" :height 120 :family "helvetica")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue" :slant italic)))) - (gnus-header-subject-face ((t (:bold t :foreground "firebrick" :weight bold :height 160 :family "helvetica")))) - (gnus-picon-face ((t (:background "white" :foreground "black")))) - (gnus-picon-xbm-face ((t (:background "white" :foreground "black")))) - (gnus-signature-face ((t (:italic t :slant italic)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue" :slant italic)))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen" :slant italic)))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick" :slant italic)))) - (gnus-summary-low-unread-face ((t (:italic t :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "grey65" :height 110 :width condensed :family "neep")))) - (gnus-summary-normal-read-face ((t (:foreground "grey75" :height 110 :width condensed :family "neep")))) - (gnus-summary-normal-ticked-face ((t (:bold t :foreground "firebrick" :weight bold :height 110 :width condensed :family "neep")))) - (gnus-summary-normal-unread-face ((t (:foreground "firebrick" :height 110 :width condensed :family "neep")))) - (gnus-summary-selected-face ((t (:background "gold" :foreground "black" :box (:line-width 1 :color "yellow" :style released-button) :height 140 :width condensed :family "neep")))) - (header-line ((t (:background "grey90" :foreground "grey20" :box nil)))) - (hi-black-b ((t (:bold t :weight bold)))) - (hi-black-hb ((t (:bold t :weight bold :height 1.67 :family "helv")))) - (hi-blue ((t (:background "light blue")))) - (hi-blue-b ((t (:bold t :foreground "blue" :weight bold)))) - (hi-green ((t (:background "green")))) - (hi-green-b ((t (:bold t :foreground "green" :weight bold)))) - (hi-pink ((t (:background "pink")))) - (hi-red-b ((t (:bold t :foreground "red" :weight bold)))) - (hi-yellow ((t (:background "yellow")))) - (highlight ((t (:background "black" :foreground "white")))) - (highlight-changes-delete-face ((t (:foreground "red" :underline t)))) - (highlight-changes-face ((t (:foreground "red")))) - (highline-face ((t (:background "gray80")))) - (holiday-face ((t (:background "pink")))) - (idlwave-help-link-face ((t (:foreground "Blue")))) - (idlwave-shell-bp-face ((t (:background "Pink" :foreground "Black")))) - (info-header-node ((t (:italic t :bold t :foreground "brown" :slant italic :weight bold)))) - (info-header-xref ((t (:bold t :foreground "magenta4" :weight bold)))) - (info-menu-5 ((t (:foreground "red1")))) - (info-menu-header ((t (:bold t :weight bold :family "helv")))) - (info-node ((t (:italic t :bold t :foreground "brown" :slant italic :weight bold)))) - (info-xref ((t (:bold t :foreground "magenta4" :weight bold)))) - (isearch ((t (:background "magenta4" :foreground "lightskyblue1")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise")))) - (italic ((t (:italic t :slant italic)))) - (log-view-file-face ((t (:bold t :background "grey70" :weight bold)))) - (log-view-message-face ((t (:background "grey85")))) - (makefile-space-face ((t (:background "hotpink")))) - (menu ((t (nil)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "grey45" :weight normal :family "helvetica")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue" :weight bold)))) - (message-header-to-face ((t (:bold t :foreground "grey60" :weight bold :height 120 :family "helvetica")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (mode-line ((t (:background "grey90" :foreground "black" :box (:line-width 1 :style none) :width condensed :family "neep")))) - (modeline-buffer-id ((t (:bold t :background "grey75" :foreground "black" :box (:line-width -1 :style released-button) :weight bold)))) - (modeline-mousable ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (modeline-mousable-minor-mode ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (mouse ((t (:background "black")))) - (mpg123-face-cur ((t (:background "#004080" :foreground "yellow")))) - (mpg123-face-slider ((t (:background "yellow" :foreground "black")))) - (primary-selection ((t (:background "lightgoldenrod2")))) - (reb-match-0 ((t (:background "lightblue")))) - (reb-match-1 ((t (:background "aquamarine")))) - (reb-match-2 ((t (:background "springgreen")))) - (reb-match-3 ((t (:background "yellow")))) - (region ((t (:background "#aa0000" :foreground "white")))) - (scroll-bar ((t (:background "grey75")))) - (secondary-selection ((t (:background "yellow")))) - (sgml-comment-face ((t (:italic t :foreground "SeaGreen" :slant italic)))) - (sgml-doctype-face ((t (:bold t :foreground "FireBrick" :weight bold)))) - (sgml-end-tag-face ((t (:stipple nil :background "white" :foreground "SlateBlue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 116 :width normal :family "monotype-courier new")))) - (sgml-entity-face ((t (:stipple nil :background "SlateBlue" :foreground "Red" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 116 :width normal :family "monotype-courier new")))) - (sgml-ignored-face ((t (nil)))) - (sgml-ms-end-face ((t (nil)))) - (sgml-ms-start-face ((t (nil)))) - (sgml-pi-face ((t (:bold t :foreground "gray40" :weight bold)))) - (sgml-sgml-face ((t (:bold t :foreground "gray40" :weight bold)))) - (sgml-short-ref-face ((t (nil)))) - (sgml-shortref-face ((t (:bold t :foreground "gray40" :weight bold)))) - (sgml-start-tag-face ((t (:stipple nil :background "white" :foreground "SlateBlue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 116 :width normal :family "monotype-courier new")))) - (sh-heredoc-face ((t (:foreground "tan")))) - (show-paren-match-face ((t (:background "gray80" :foreground "black")))) - (show-paren-mismatch-face ((t (:background "red" :foreground "yellow")))) - (show-tabs-space-face ((t (:foreground "yellow")))) - (show-tabs-tab-face ((t (:foreground "red")))) - (smerge-base-face ((t (:foreground "red")))) - (smerge-markers-face ((t (:background "grey85")))) - (smerge-mine-face ((t (:foreground "blue")))) - (smerge-other-face ((t (:foreground "darkgreen")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "brown")))) - (strokes-char-face ((t (:background "lightgray")))) - (term-black ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-blackbg ((t (:stipple nil :background "black" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-blue ((t (:stipple nil :background "white" :foreground "blue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-bluebg ((t (:stipple nil :background "blue" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-bold ((t (:bold t :stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight bold :width normal :family "adobe-courier")))) - (term-cyan ((t (:stipple nil :background "white" :foreground "cyan" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-cyanbg ((t (:stipple nil :background "cyan" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-bg ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-bg-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-fg ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-fg-inv ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-green ((t (:stipple nil :background "white" :foreground "green" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-greenbg ((t (:stipple nil :background "green" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-invisible ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-invisible-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-magenta ((t (:stipple nil :background "white" :foreground "magenta" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-magentabg ((t (:stipple nil :background "magenta" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-red ((t (:stipple nil :background "white" :foreground "red" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-redbg ((t (:stipple nil :background "red" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-underline ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline t :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-white ((t (:stipple nil :background "white" :foreground "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-whitebg ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-yellow ((t (:stipple nil :background "white" :foreground "yellow" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-yellowbg ((t (:stipple nil :background "yellow" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (tex-math-face ((t (:foreground "RosyBrown")))) - (texinfo-heading-face ((t (:foreground "Blue")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:foreground "navy" :underline t)))) - (variable-pitch ((t (:family "helv")))) - (vcursor ((t (:background "cyan" :foreground "blue" :underline t)))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red" :weight bold)))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange" :weight bold)))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:foreground "Blue" :underline t)))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:foreground "DarkGoldenrod" :underline t)))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:foreground "ForestGreen" :underline t)))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:foreground "Brown" :underline t)))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:foreground "Grey50" :underline t)))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (woman-addition-face ((t (:foreground "orange")))) - (woman-bold-face ((t (:bold t :foreground "blue" :weight bold)))) - (woman-italic-face ((t (:italic t :foreground "red" :underline t :slant italic)))) - (woman-unknown-face ((t (:foreground "brown")))) - (zmacs-region ((t (:background "lightgoldenrod2"))))))) - -(defun color-theme-bharadwaj-slate () - "Color theme by Girish Bharadwaj, created 2002-05-06." - (interactive) - (color-theme-install - '(color-theme-bharadwaj-slate - ((background-color . "DarkSlateGray") - (background-mode . dark) - (border-color . "black") - (cursor-color . "khaki") - (foreground-color . "palegreen") - (mouse-color . "black")) - ((display-time-mail-face . mode-line) - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-mouse-face . highlight) - (help-highlight-face . underline) - (ibuffer-deletion-face . font-lock-type-face) - (ibuffer-filter-group-name-face . bold) - (ibuffer-marked-face . font-lock-warning-face) - (ibuffer-title-face . font-lock-type-face) - (list-matching-lines-buffer-name-face . underline) - (list-matching-lines-face . bold) - (semantic-which-function-use-color . t) - (senator-eldoc-use-color . t) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "DarkSlateGray" :foreground "palegreen" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-lucida sans typewriter")))) - (bg:erc-color-face0 ((t (:background "White")))) - (bg:erc-color-face1 ((t (:background "black")))) - (bg:erc-color-face10 ((t (:background "lightblue1")))) - (bg:erc-color-face11 ((t (:background "cyan")))) - (bg:erc-color-face12 ((t (:background "blue")))) - (bg:erc-color-face13 ((t (:background "deeppink")))) - (bg:erc-color-face14 ((t (:background "gray50")))) - (bg:erc-color-face15 ((t (:background "gray90")))) - (bg:erc-color-face2 ((t (:background "blue4")))) - (bg:erc-color-face3 ((t (:background "green4")))) - (bg:erc-color-face4 ((t (:background "red")))) - (bg:erc-color-face5 ((t (:background "brown")))) - (bg:erc-color-face6 ((t (:background "purple")))) - (bg:erc-color-face7 ((t (:background "orange")))) - (bg:erc-color-face8 ((t (:background "yellow")))) - (bg:erc-color-face9 ((t (:background "green")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (button ((t (:underline t)))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cursor ((t (:background "khaki")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "dim gray")))) - (custom-comment-tag-face ((t (:foreground "gray80")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:bold t :foreground "light blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "pink" :weight bold :height 1.2)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "lime green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "light blue" :weight bold :height 1.2)))) - (erc-action-face ((t (:bold t :box (:line-width 2 :color "grey75") :weight bold)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "IndianRed")))) - (erc-error-face ((t (:background "Red" :foreground "White")))) - (erc-input-face ((t (:foreground "lightblue")))) - (erc-inverse-face ((t (:background "Black" :foreground "White")))) - (erc-notice-face ((t (:bold t :foreground "dodgerblue" :weight bold)))) - (erc-prompt-face ((t (:bold t :background "black" :foreground "white" :weight bold)))) - (erc-timestamp-face ((t (:bold t :foreground "green" :weight bold)))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid" :weight bold)))) - (eshell-ls-backup-face ((t (:foreground "LightSalmon")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed" :weight bold)))) - (eshell-ls-directory-face ((t (:bold t :foreground "SkyBlue" :weight bold)))) - (eshell-ls-executable-face ((t (:bold t :foreground "Green" :weight bold)))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red" :weight bold)))) - (eshell-ls-product-face ((t (:foreground "LightSalmon")))) - (eshell-ls-readonly-face ((t (:foreground "Pink")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta" :weight bold)))) - (eshell-ls-symlink-face ((t (:bold t :foreground "Cyan" :weight bold)))) - (eshell-ls-unreadable-face ((t (:foreground "DarkGrey")))) - (eshell-prompt-face ((t (:bold t :foreground "Pink" :weight bold)))) - (fg:erc-color-face0 ((t (:foreground "White")))) - (fg:erc-color-face1 ((t (:foreground "black")))) - (fg:erc-color-face10 ((t (:foreground "lightblue1")))) - (fg:erc-color-face11 ((t (:foreground "cyan")))) - (fg:erc-color-face12 ((t (:foreground "blue")))) - (fg:erc-color-face13 ((t (:foreground "deeppink")))) - (fg:erc-color-face14 ((t (:foreground "gray50")))) - (fg:erc-color-face15 ((t (:foreground "gray90")))) - (fg:erc-color-face2 ((t (:foreground "blue4")))) - (fg:erc-color-face3 ((t (:foreground "green4")))) - (fg:erc-color-face4 ((t (:foreground "red")))) - (fg:erc-color-face5 ((t (:foreground "brown")))) - (fg:erc-color-face6 ((t (:foreground "purple")))) - (fg:erc-color-face7 ((t (:foreground "orange")))) - (fg:erc-color-face8 ((t (:foreground "yellow")))) - (fg:erc-color-face9 ((t (:foreground "green")))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:bold t :foreground "pink" :weight bold :height 1.1)))) - (font-lock-comment-face ((t (:foreground "violet" :height 1.0)))) - (font-lock-constant-face ((t (:bold t :foreground "tomato" :weight bold :height 1.0)))) - (font-lock-function-name-face ((t (:bold t :foreground "DodgerBlue" :weight bold)))) - (font-lock-keyword-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (font-lock-preprocessor-face ((t (:bold t :foreground "tomato" :weight bold :height 1.0)))) - (font-lock-reference-face ((t (:bold t :foreground "pink" :weight bold :height 1.1)))) - (font-lock-string-face ((t (:foreground "red" :height 1.0)))) - (font-lock-type-face ((t (:foreground "lightblue3")))) - (font-lock-variable-name-face ((t (:bold t :foreground "gray" :weight bold :height 1.0)))) - (font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold)))) - (fringe ((t (:background "DarkSlateGray")))) - (gnus-cite-attribution-face ((t (:italic t :slant italic)))) - (gnus-cite-face-1 ((t (:foreground "light blue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "light cyan")))) - (gnus-cite-face-3 ((t (:foreground "light yellow")))) - (gnus-cite-face-4 ((t (:foreground "light pink")))) - (gnus-cite-face-5 ((t (:foreground "pale green")))) - (gnus-cite-face-6 ((t (:foreground "beige")))) - (gnus-cite-face-7 ((t (:foreground "orange")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :weight bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t :slant italic)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) - (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise")))) - (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) - (gnus-group-news-2-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :weight bold)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t :weight bold)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t :weight bold)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise" :weight bold)))) - (gnus-header-content-face ((t (:italic t :foreground "forest green" :slant italic)))) - (gnus-header-from-face ((t (:foreground "spring green")))) - (gnus-header-name-face ((t (:foreground "SeaGreen")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "yellow" :slant italic)))) - (gnus-header-subject-face ((t (:foreground "SeaGreen3")))) - (gnus-signature-face ((t (:italic t :slant italic)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue" :slant italic)))) - (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen" :slant italic)))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink" :slant italic)))) - (gnus-summary-low-unread-face ((t (:italic t :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "PaleGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "pink")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (header-line ((t (:underline "blueviolet" :overline "blueviolet" :box (:line-width -1 :style released-button) :background "grey20" :foreground "grey90" :box nil)))) - (highlight ((t (:background "darkolivegreen")))) - (html-helper-bold-face ((t (:bold t :foreground "wheat" :weight bold)))) - (html-helper-italic-face ((t (:italic t :foreground "spring green" :slant italic)))) - (html-helper-underline-face ((t (:foreground "cornsilk" :underline t)))) - (html-tag-face ((t (:bold t :foreground "deep sky blue" :weight bold)))) - (info-menu-6 ((t (nil)))) - (isearch ((t (:background "palevioletred2" :foreground "brown4")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black")))) - (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black")))) - (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black")))) - (jde-java-font-lock-api-face ((t (:foreground "light goldenrod")))) - (jde-java-font-lock-bold-face ((t (:bold t :weight bold)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "Aquamarine")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "light coral")))) - (jde-java-font-lock-italic-face ((t (:italic t :slant italic)))) - (jde-java-font-lock-link-face ((t (:foreground "blue" :underline t :slant normal)))) - (jde-java-font-lock-modifier-face ((t (:foreground "LightSteelBlue")))) - (jde-java-font-lock-number-face ((t (:foreground "LightSalmon")))) - (jde-java-font-lock-operator-face ((t (:foreground "medium blue")))) - (jde-java-font-lock-package-face ((t (:foreground "steelblue1")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (menu ((t (nil)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "green4" :weight bold)))) - (message-header-name-face ((t (:foreground "DarkGreen")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "#b00000")))) - (message-header-subject-face ((t (:foreground "green3")))) - (message-header-to-face ((t (:bold t :foreground "green2" :weight bold)))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "blue3")))) - (minibuffer-prompt ((t (:foreground "cyan")))) - (mode-line ((t (:background "Darkslategray" :foreground "white" :box (:line-width -1 :style released-button) :overline "blueviolet" :underline "blueviolet")))) - (mode-line-inactive ((t (:italic t :underline "blueviolet" :overline "blueviolet" :background "white" :foreground "cadetblue" :box (:line-width -1 :color "grey75") :slant oblique :weight light)))) - (modeline ((t (:background "Darkslategray" :foreground "white" :box (:line-width -1 :style released-button) :overline "blueviolet" :underline "blueviolet")))) - (modeline-buffer-id ((t (:background "Darkslategray" :foreground "white" :box (:line-width -1 :style released-button) :overline "blueviolet" :underline "blueviolet")))) - (modeline-mousable ((t (:background "Darkslategray" :foreground "white" :box (:line-width -1 :style released-button) :overline "blueviolet" :underline "blueviolet")))) - (modeline-mousable-minor-mode ((t (:background "Darkslategray" :foreground "white" :box (:line-width -1 :style released-button) :overline "blueviolet" :underline "blueviolet")))) - (mouse ((t (:background "black")))) - (primary-selection ((t (:background "dimgray")))) - (region ((t (:background "dimgray")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "SkyBlue4")))) - (semantic-dirty-token-face ((t (:background "lightyellow")))) - (semantic-unmatched-syntax-face ((t (:underline "red")))) - (senator-intangible-face ((t (:foreground "gray75")))) - (senator-momentary-highlight-face ((t (:background "gray30")))) - (senator-read-only-face ((t (:background "#664444")))) - (show-paren-match-face ((t (:bold t :foreground "lightblue" :weight bold :height 1.1)))) - (show-paren-mismatch-face ((t (:bold t :foreground "red" :weight bold :height 1.1)))) - (show-tabs-space-face ((t (:foreground "yellow")))) - (show-tabs-tab-face ((t (:foreground "red")))) - (speedbar-button-face ((t (:foreground "green3")))) - (speedbar-directory-face ((t (:foreground "light blue")))) - (speedbar-file-face ((t (:foreground "cyan")))) - (speedbar-highlight-face ((t (:background "sea green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (template-message-face ((t (:bold t :weight bold)))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (:background "black")))) - (term-blue ((t (:foreground "blue")))) - (term-bluebg ((t (:background "blue")))) - (term-bold ((t (:bold t :weight bold)))) - (term-cyan ((t (:foreground "cyan")))) - (term-cyanbg ((t (:background "cyan")))) - (term-default ((t (:stipple nil :background "DarkSlateGray" :foreground "palegreen" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-lucida sans typewriter")))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-green ((t (:foreground "green")))) - (term-greenbg ((t (:background "green")))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (:foreground "magenta")))) - (term-magentabg ((t (:background "magenta")))) - (term-red ((t (:foreground "red")))) - (term-redbg ((t (:background "red")))) - (term-underline ((t (:underline t)))) - (term-white ((t (:foreground "white")))) - (term-whitebg ((t (:background "white")))) - (term-yellow ((t (:foreground "yellow")))) - (term-yellowbg ((t (:background "yellow")))) - (tool-bar ((t (:background "DarkSlateGray" :foreground "White" :box (:line-width 1 :color "blue"))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray")))) - (zmacs-region ((t (:background "dimgray"))))))) - -(defun color-theme-lethe () - "Color theme by Ivica Loncar, created 2002-08-02. -Some additional X resources as suggested by the author: - -Emacs*menubar.Foreground: Yellow -Emacs*menubar.Background: #1a2b3c -Emacs*menubar.topShadowColor: gray -Emacs*menubar.bottomShadowColor: dimgray - -Some fonts I really like (note: this fonts are not highly -available): - -Emacs.default.attributeFont: -letl-*-medium-r-*-*-*-*-*-*-*-*-iso8859-2 -Emacs*menubar*Font: -etl-fixed-medium-r-normal--14-*-*-*-*-*-iso8859-1 - -Mouse fix: - -Emacs*dialog*XmPushButton.translations:#override\n\ - : Arm()\n\ - ,: Activate()\ - Disarm()\n\ - (2+): MultiArm()\n\ - (2+): MultiActivate()\n\ - : Activate()\ - Disarm()\n\ - osfSelect: ArmAndActivate()\n\ - osfActivate: ArmAndActivate()\n\ - osfHelp: Help()\n\ - ~Shift ~Meta ~Alt Return: ArmAndActivate()\n\ - : Enter()\n\ - : Leave()\n - -Bonus: do not use 3D modeline." - (interactive) - (color-theme-install - '(color-theme-lethe - ((background-color . "black") - (background-mode . dark) - (background-toolbar-color . "#000000000000") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "red") - (cursor-color . "red") - (foreground-color . "peachpuff") - (mouse-color . "red") - (top-toolbar-shadow-color . "#f5f5f5f5f5f5")) - ((buffers-tab-face . buffers-tab) - (cscope-use-face . t) - (gnus-mouse-face . highlight)) - (default ((t (nil)))) - (bg:erc-color-face0 ((t (:background "White")))) - (bg:erc-color-face1 ((t (nil)))) - (bg:erc-color-face10 ((t (:background "lightblue1")))) - (bg:erc-color-face11 ((t (:background "cyan")))) - (bg:erc-color-face12 ((t (:background "blue")))) - (bg:erc-color-face13 ((t (:background "deeppink")))) - (bg:erc-color-face14 ((t (:background "gray50")))) - (bg:erc-color-face15 ((t (:background "gray90")))) - (bg:erc-color-face2 ((t (:background "blue4")))) - (bg:erc-color-face3 ((t (:background "green4")))) - (bg:erc-color-face4 ((t (:background "red")))) - (bg:erc-color-face5 ((t (:background "brown")))) - (bg:erc-color-face6 ((t (:background "purple")))) - (bg:erc-color-face7 ((t (:background "orange")))) - (bg:erc-color-face8 ((t (:background "yellow")))) - (bg:erc-color-face9 ((t (:background "green")))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border ((t (nil)))) - (border-glyph ((t (nil)))) - (buffers-tab ((t (:bold t :foreground "red")))) - (button ((t (:underline t)))) - (calendar-today-face ((t (:underline t)))) - (comint-highlight-input ((t (:bold t)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue")))) - (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red")))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (cscope-file-face ((t (:foreground "blue")))) - (cscope-function-face ((t (:foreground "magenta")))) - (cscope-line-face ((t (:foreground "green")))) - (cscope-line-number-face ((t (:foreground "red")))) - (cscope-mouse-face ((t (:background "blue" :foreground "white")))) - (cursor ((t (nil)))) - (custom-button-face ((t (nil)))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black")))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "dim gray")))) - (custom-comment-tag-face ((t (:foreground "gray80")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t)))) - (custom-variable-tag-face ((t (:underline t :foreground "blue")))) - (cyan ((t (:foreground "cyan")))) - (diary-face ((t (:foreground "red")))) - (dired-face-boring ((t (:foreground "Gray65")))) - (dired-face-directory ((t (:bold t)))) - (dired-face-executable ((t (:foreground "SeaGreen")))) - (dired-face-flagged ((t (:background "LightSlateGray")))) - (dired-face-marked ((t (:background "PaleVioletRed")))) - (dired-face-permissions ((t (:background "grey75" :foreground "black")))) - (dired-face-setuid ((t (:foreground "Red")))) - (dired-face-socket ((t (:foreground "magenta")))) - (dired-face-symlink ((t (:foreground "cyan")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (erc-action-face ((t (:bold t)))) - (erc-bold-face ((t (:bold t)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "IndianRed")))) - (erc-error-face ((t (:background "Red" :foreground "White")))) - (erc-input-face ((t (:foreground "brown")))) - (erc-inverse-face ((t (:background "Black" :foreground "White")))) - (erc-notice-face ((t (:bold t :foreground "SlateBlue")))) - (erc-prompt-face ((t (:bold t :background "lightBlue2" :foreground "Black")))) - (erc-timestamp-face ((t (:bold t :foreground "green")))) - (erc-underline-face ((t (:underline t)))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid")))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-ls-directory-face ((t (:bold t :foreground "Blue")))) - (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen")))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red")))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta")))) - (eshell-ls-symlink-face ((t (:bold t :foreground "DarkCyan")))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:bold t :foreground "Red")))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed")))) - (eshell-test-ok-face ((t (:bold t :foreground "Green")))) - (excerpt ((t (:italic t)))) - (fg:erc-color-face0 ((t (:foreground "White")))) - (fg:erc-color-face1 ((t (:foreground "black")))) - (fg:erc-color-face10 ((t (:foreground "lightblue1")))) - (fg:erc-color-face11 ((t (:foreground "cyan")))) - (fg:erc-color-face12 ((t (:foreground "blue")))) - (fg:erc-color-face13 ((t (:foreground "deeppink")))) - (fg:erc-color-face14 ((t (:foreground "gray50")))) - (fg:erc-color-face15 ((t (:foreground "gray90")))) - (fg:erc-color-face2 ((t (:foreground "blue4")))) - (fg:erc-color-face3 ((t (:foreground "green4")))) - (fg:erc-color-face4 ((t (:foreground "red")))) - (fg:erc-color-face5 ((t (:foreground "brown")))) - (fg:erc-color-face6 ((t (:foreground "purple")))) - (fg:erc-color-face7 ((t (:foreground "orange")))) - (fg:erc-color-face8 ((t (:foreground "yellow")))) - (fg:erc-color-face9 ((t (:foreground "green")))) - (fixed ((t (:bold t)))) - (fixed-pitch ((t (:size "16")))) - (flyspell-duplicate-face ((t (:underline t :bold t :foreground "Gold3")))) - (flyspell-incorrect-face ((t (:underline t :bold t :foreground "OrangeRed")))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:bold t :foreground "cyan")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-doc-face ((t (:bold t :foreground "red")))) - (font-lock-doc-string-face ((t (:bold t :foreground "red")))) - (font-lock-function-name-face ((t (:bold t :foreground "white")))) - (font-lock-keyword-face ((t (:bold t :foreground "yellow")))) - (font-lock-preprocessor-face ((t (:bold t :foreground "blue")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:bold t :foreground "magenta")))) - (font-lock-type-face ((t (:bold t :foreground "lightgreen")))) - (font-lock-variable-name-face ((t (:bold t :foreground "white")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (fringe ((t (:background "grey95")))) - (gdb-arrow-face ((t (:bold t :background "yellow" :foreground "red")))) - (gnus-cite-attribution-face ((t (:italic t)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-highlight-words ((t (:foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4")))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-picons-face ((t (:background "white" :foreground "black")))) - (gnus-picons-xbm-face ((t (:background "white" :foreground "black")))) - (gnus-signature-face ((t (:italic t)))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-summary-cancelled-face ((t (:foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-x-face ((t (:background "white" :foreground "black")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:size "12" :background "Gray80" :foreground "black")))) - (header-line ((t (:background "grey20" :foreground "grey90")))) - (highlight ((t (:bold t :background "yellow" :foreground "red")))) - (highlight-changes-delete-face ((t (:underline t :foreground "red")))) - (highlight-changes-face ((t (:foreground "red")))) - (highline-face ((t (:background "paleturquoise")))) - (holiday-face ((t (:background "pink")))) - (hyper-apropos-documentation ((t (:foreground "#aaaaaa")))) - (hyper-apropos-heading ((t (:bold t :foreground "#999999")))) - (hyper-apropos-hyperlink ((t (:foreground "Violet")))) - (hyper-apropos-major-heading ((t (:bold t :foreground "#ff0000")))) - (hyper-apropos-section-heading ((t (:italic t :bold t :foreground "#33aa55")))) - (hyper-apropos-warning ((t (:bold t :foreground "red")))) - (info-menu-5 ((t (:underline t)))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (isearch ((t (:background "paleturquoise")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (:italic t)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black")))) - (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black")))) - (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black")))) - (jde-java-font-lock-api-face ((t (:foreground "light goldenrod")))) - (jde-java-font-lock-bold-face ((t (:bold t)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "Aquamarine")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "light coral")))) - (jde-java-font-lock-italic-face ((t (:italic t)))) - (jde-java-font-lock-link-face ((t (:underline t :foreground "cadetblue")))) - (jde-java-font-lock-modifier-face ((t (:foreground "LightSteelBlue")))) - (jde-java-font-lock-number-face ((t (:foreground "LightSalmon")))) - (jde-java-font-lock-operator-face ((t (:foreground "medium blue")))) - (jde-java-font-lock-package-face ((t (:foreground "steelblue1")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68")))) - (magenta ((t (:foreground "magenta")))) - (makefile-space-face ((t (:background "hotpink")))) - (menu ((t (nil)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:bold t :foreground "cyan")))) - (message-separator-face ((t (:foreground "brown")))) - (minibuffer-prompt ((t (:foreground "cyan")))) - (mode-line ((t (:background "grey75" :foreground "black")))) - (mode-line-inactive ((t (:background "grey30" :foreground "grey80")))) - (modeline ((t (:bold t :background "red" :foreground "yellow")))) - (modeline-buffer-id ((t (:bold t :background "red" :foreground "yellow")))) - (modeline-mousable ((t (:background "red" :foreground "yellow")))) - (modeline-mousable-minor-mode ((t (:background "red" :foreground "green4")))) - (mouse ((t (nil)))) - (paren-blink-off ((t (:foreground "black")))) - (paren-match ((t (:bold t :background "yellow" :foreground "red")))) - (paren-mismatch ((t (:background "DeepPink")))) - (pointer ((t (nil)))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "gray75")))) - (right-margin ((t (nil)))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (semantic-dirty-token-face ((t (:background "lightyellow")))) - (semantic-unmatched-syntax-face ((t (nil)))) - (senator-intangible-face ((t (:foreground "gray75")))) - (senator-momentary-highlight-face ((t (:background "gray30")))) - (senator-read-only-face ((t (:background "#664444")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:underline t :foreground "red")))) - (speedbar-tag-face ((t (:foreground "brown")))) - (template-message-face ((t (:bold t)))) - (term-black ((t (:foreground "black")))) - (term-blackbg ((t (nil)))) - (term-blue ((t (:foreground "blue")))) - (term-blue-bold-face ((t (:bold t :foreground "blue")))) - (term-blue-face ((t (:foreground "blue")))) - (term-blue-inv-face ((t (:background "blue")))) - (term-blue-ul-face ((t (:underline t :foreground "blue")))) - (term-bluebg ((t (:background "blue")))) - (term-bold ((t (:bold t)))) - (term-cyan ((t (:foreground "cyan")))) - (term-cyan-bold-face ((t (:bold t :foreground "cyan")))) - (term-cyan-face ((t (:foreground "cyan")))) - (term-cyan-inv-face ((t (:background "cyan")))) - (term-cyan-ul-face ((t (:underline t :foreground "cyan")))) - (term-cyanbg ((t (:background "cyan")))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-bold-face ((t (:bold t)))) - (term-default-face ((t (nil)))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-default-inv-face ((t (:background "peachpuff" :foreground "black")))) - (term-default-ul-face ((t (:underline t)))) - (term-green ((t (:foreground "green")))) - (term-green-bold-face ((t (:bold t :foreground "green")))) - (term-green-face ((t (:foreground "green")))) - (term-green-inv-face ((t (:background "green")))) - (term-green-ul-face ((t (:underline t :foreground "green")))) - (term-greenbg ((t (:background "green")))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (:foreground "magenta")))) - (term-magenta-bold-face ((t (:bold t :foreground "magenta")))) - (term-magenta-face ((t (:foreground "magenta")))) - (term-magenta-inv-face ((t (:background "magenta")))) - (term-magenta-ul-face ((t (:underline t :foreground "magenta")))) - (term-magentabg ((t (:background "magenta")))) - (term-red ((t (:foreground "red")))) - (term-red-bold-face ((t (:bold t :foreground "red")))) - (term-red-face ((t (:foreground "red")))) - (term-red-inv-face ((t (:background "red")))) - (term-red-ul-face ((t (:underline t :foreground "red")))) - (term-redbg ((t (:background "red")))) - (term-underline ((t (:underline t)))) - (term-white ((t (:foreground "white")))) - (term-white-bold-face ((t (:bold t :foreground "white")))) - (term-white-face ((t (:foreground "white")))) - (term-white-inv-face ((t (nil)))) - (term-white-ul-face ((t (:underline t :foreground "white")))) - (term-whitebg ((t (:background "white")))) - (term-yellow ((t (:foreground "yellow")))) - (term-yellow-bold-face ((t (:bold t :foreground "yellow")))) - (term-yellow-face ((t (:foreground "yellow")))) - (term-yellow-inv-face ((t (:background "yellow")))) - (term-yellow-ul-face ((t (:underline t :foreground "yellow")))) - (term-yellowbg ((t (:background "yellow")))) - (text-cursor ((t (:background "red" :foreground "black")))) - (tool-bar ((t (:background "grey75" :foreground "black")))) - (toolbar ((t (:background "Gray80" :foreground "black")))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (nil)))) - (vcursor ((t (:underline t :background "cyan" :foreground "blue")))) - (vertical-divider ((t (:background "Gray80" :foreground "black")))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red")))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange")))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue")))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod")))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen")))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown")))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Grey50")))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (white ((t (:foreground "white")))) - (widget ((t (:size "12" :background "Gray80" :foreground "black")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (nil)))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (x-face ((t (:bold t :background "wheat" :foreground "black")))) - (xrdb-option-name-face ((t (:bold t :foreground "yellow")))) - (xrdb-option-value-face ((t (:bold t :foreground "magenta")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "white" :foreground "black"))))))) - -(defun color-theme-shaman () - "Color theme by shaman, created 2002-11-11." - (interactive) - (color-theme-install - '(color-theme-shaman - ((background-color . "#456345") - (background-mode . dark) - (background-toolbar-color . "#cf3ccf3ccf3c") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#79e77df779e7") - (foreground-color . "White") - (top-toolbar-shadow-color . "#f7defbeef7de")) - ((buffers-tab-face . buffers-tab)) - (default ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t :size "12")))) - (bold-italic ((t (:italic t :bold t :size "12")))) - (border-glyph ((t (nil)))) - (buffers-tab ((t (:background "Gray80" :foreground "black")))) - (font-lock-builtin-face ((t (:foreground "cadetblue2")))) - (font-lock-comment-face ((t (:foreground "gray80")))) - (font-lock-constant-face ((t (:foreground "steelblue1")))) - (font-lock-doc-face ((t (:foreground "light coral")))) - (font-lock-doc-string-face ((t (:foreground "light coral")))) - (font-lock-function-name-face ((t (:foreground "aquamarine")))) - (font-lock-keyword-face ((t (:foreground "cyan")))) - (font-lock-preprocessor-face ((t (:foreground "steelblue1")))) - (font-lock-reference-face ((t (:foreground "cadetblue2")))) - (font-lock-string-face ((t (:foreground "tan")))) - (font-lock-type-face ((t (:foreground "wheat")))) - (font-lock-variable-name-face ((t (:foreground "cyan3")))) - (font-lock-warning-face ((t (:bold t :size "12" :foreground "Pink")))) - (fringe ((t (nil)))) - (gnus-x-face ((t (:background "white" :foreground "black")))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75" :foreground "black")))) - (gui-element ((t (:size "12" :background "Gray80" :foreground "black")))) - (highlight ((t (:background "darkseagreen2")))) - (isearch ((t (:background "paleturquoise")))) - (isearch-secondary ((t (:foreground "red3")))) - (italic ((t (:italic t :size "12")))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68")))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:bold t :foreground "green4")))) - (message-header-name-face ((t (:foreground "DarkGreen")))) - (message-header-newsgroups-face ((t (:bold t :foreground "yellow")))) - (message-header-other-face ((t (:foreground "#b00000")))) - (message-header-subject-face ((t (:foreground "green3")))) - (message-header-to-face ((t (:bold t :foreground "green2")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "blue3")))) - (mode-line ((t (:background "Gray80" :foreground "black")))) - (modeline ((t (:background "Gray80" :foreground "black")))) - (modeline-buffer-id ((t (:background "Gray80" :foreground "blue4")))) - (modeline-mousable ((t (:background "Gray80" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "Gray80" :foreground "green4")))) - (pointer ((t (:foreground "White")))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "gray65")))) - (right-margin ((t (nil)))) - (rpm-spec-dir-face ((t (:foreground "green")))) - (rpm-spec-doc-face ((t (:foreground "magenta")))) - (rpm-spec-ghost-face ((t (:foreground "red")))) - (rpm-spec-macro-face ((t (:foreground "yellow")))) - (rpm-spec-package-face ((t (:foreground "red")))) - (rpm-spec-tag-face ((t (:foreground "blue")))) - (rpm-spec-var-face ((t (:foreground "maroon")))) - (secondary-selection ((t (:background "paleturquoise")))) - (text-cursor ((t (:background "Pink" :foreground "Black")))) - (tool-bar ((t (nil)))) - (toolbar ((t (:background "Gray80" :foreground "black")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (:background "Gray80" :foreground "black")))) - (widget ((t (:size "12" :background "Gray80" :foreground "black")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "gray65"))))))) - -(defun color-theme-emacs-nw () - "Follow emacs21's color-theme, with -nw getting 100% compatibility. - -Alex's `color-theme-emacs-21' follows emacs21's theme, but in the -current scheme of things, that means that when it works on X, it won't -work in -nw perfectly. The modeline and menuline will have same -colors as the rest of emacs, which can be particularly disturbing when -there are multiple windows. - -OTOH, `color-theme-emacs-nw' follows emacs21's theme but the goal is -100% -nw compatibility, and in X; we shall try for decent color -scheme, and as much compability default emacs21's X as possble. -Bugs to deego@gnufans.org. - -TODO: Try to make this theme relative to color-theme-emacs-21 rather -than absolute, viz: call that first and then tweak minor stuff." - (interactive) - (color-theme-install - '(color-theme-emacs-nw - ((background-color . "white") - (background-mode . light) - (border-color . "black") - (cursor-color . "black") - (foreground-color . "black") - (mouse-color . "black")) - ((Man-overstrike-face . bold) - (Man-underline-face . underline) - (cperl-here-face . font-lock-string-face) - (cperl-invalid-face . underline) - (cperl-pod-face . font-lock-comment-face) - (cperl-pod-head-face . font-lock-variable-name-face) - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-cite-attribution-face . gnus-cite-attribution-face) - (gnus-mouse-face . highlight) - (gnus-signature-face . gnus-signature-face) - (gnus-summary-selected-face . gnus-summary-selected-face) - (help-highlight-face . underline) - (idlwave-class-arrow-face . bold) - (idlwave-shell-breakpoint-face . idlwave-shell-bp-face) - (idlwave-shell-expression-face . secondary-selection) - (idlwave-shell-stop-line-face . highlight) - (ispell-highlight-face . highlight) - (list-matching-lines-face . bold) - (view-highlight-face . highlight) - (viper-insert-state-cursor-color . "Green") - (viper-replace-overlay-cursor-color . "Red") - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728)))) - (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44)))) - (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2)))) - (Info-title-4-face ((t (:bold t :family "helv" :weight bold)))) - (antlr-font-lock-keyword-face ((t (:bold t :foreground "black" :weight bold)))) - (antlr-font-lock-literal-face ((t (:bold t :foreground "brown4" :weight bold)))) - (antlr-font-lock-ruledef-face ((t (:bold t :foreground "blue" :weight bold)))) - (antlr-font-lock-ruleref-face ((t (:foreground "blue4")))) - (antlr-font-lock-tokendef-face ((t (:bold t :foreground "blue" :weight bold)))) - (antlr-font-lock-tokenref-face ((t (:foreground "orange4")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (calendar-today-face ((t (:underline t)))) - (change-log-acknowledgement-face ((t (:foreground "Firebrick")))) - (change-log-conditionals-face ((t (:foreground "DarkGoldenrod")))) - (change-log-date-face ((t (:foreground "RosyBrown")))) - (change-log-email-face ((t (:foreground "DarkGoldenrod")))) - (change-log-file-face ((t (:foreground "Blue")))) - (change-log-function-face ((t (:foreground "DarkGoldenrod")))) - (change-log-list-face ((t (:foreground "Purple")))) - (change-log-name-face ((t (:foreground "CadetBlue")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "dark blue")))) - (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue" :weight bold)))) - (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red" :slant italic :weight bold)))) - (cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - (cursor ((t (:background "black")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "gray85")))) - (custom-comment-tag-face ((t (:foreground "blue4")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "red" :weight bold :height 1.2)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "blue" :weight bold :height 1.2)))) - (cvs-filename-face ((t (:foreground "blue4")))) - (cvs-handled-face ((t (:foreground "pink")))) - (cvs-header-face ((t (:bold t :foreground "blue4" :weight bold)))) - (cvs-marked-face ((t (:bold t :foreground "green3" :weight bold)))) - (cvs-msg-face ((t (:italic t :slant italic)))) - (cvs-need-action-face ((t (:foreground "orange")))) - (cvs-unknown-face ((t (:foreground "red")))) - (diary-face ((t (:foreground "red")))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (:foreground "grey50")))) - (diff-file-header-face ((t (:bold t :background "grey70" :weight bold)))) - (diff-function-face ((t (:foreground "grey50")))) - (diff-header-face ((t (:background "grey85")))) - (diff-hunk-header-face ((t (:background "grey85")))) - (diff-index-face ((t (:bold t :weight bold :background "grey70")))) - (diff-nonexistent-face ((t (:bold t :weight bold :background "grey70")))) - (diff-removed-face ((t (nil)))) - (dired-face-boring ((t (:foreground "RosyBrown")))) - (dired-face-directory ((t (:foreground "Blue")))) - (dired-face-executable ((t (nil)))) - (dired-face-flagged ((t (:foreground "Red" :weight bold)))) - (dired-face-marked ((t (:foreground "Red" :weight bold)))) - (dired-face-permissions ((t (nil)))) - (dired-face-setuid ((t (nil)))) - (dired-face-socket ((t (nil)))) - (dired-face-symlink ((t (:foreground "Purple")))) - (ebrowse-default-face ((t (nil)))) - (ebrowse-file-name-face ((t (:italic t :slant italic)))) - (ebrowse-member-attribute-face ((t (:foreground "red")))) - (ebrowse-member-class-face ((t (:foreground "purple")))) - (ebrowse-progress-face ((t (:background "blue")))) - (ebrowse-root-class-face ((t (:bold t :foreground "blue" :weight bold)))) - (ebrowse-tree-mark-face ((t (:foreground "red")))) - (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick")))) - (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black")))) - (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid")))) - (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy")))) - (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black")))) - (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White")))) - (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black")))) - (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy")))) - (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black")))) - (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black")))) - (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black")))) - (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White")))) - (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black")))) - (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))) - (eshell-ls-archive-face ((t (:bold t :foreground "Orchid" :weight bold)))) - (eshell-ls-backup-face ((t (:foreground "OrangeRed")))) - (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed" :weight bold)))) - (eshell-ls-directory-face ((t (:bold t :foreground "Blue" :weight bold)))) - (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen" :weight bold)))) - (eshell-ls-missing-face ((t (:bold t :foreground "Red" :weight bold)))) - (eshell-ls-product-face ((t (:foreground "OrangeRed")))) - (eshell-ls-readonly-face ((t (:foreground "Brown")))) - (eshell-ls-special-face ((t (:bold t :foreground "Magenta" :weight bold)))) - (eshell-ls-symlink-face ((t (:bold t :foreground "Dark Cyan" :weight bold)))) - (eshell-ls-unreadable-face ((t (:foreground "Grey30")))) - (eshell-prompt-face ((t (:bold t :foreground "Red" :weight bold)))) - (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed" :weight bold)))) - (eshell-test-ok-face ((t (:bold t :foreground "Green" :weight bold)))) - (excerpt ((t (:italic t :slant italic)))) - (fixed ((t (:bold t :weight bold)))) - (fixed-pitch ((t (:family "courier")))) - (flyspell-duplicate-face ((t (:bold t :foreground "Gold3" :underline t :weight bold)))) - (flyspell-incorrect-face ((t (:bold t :foreground "OrangeRed" :underline t :weight bold)))) - (font-lock-builtin-face ((t (:foreground "Orchid")))) - (font-lock-comment-face ((t (:foreground "Firebrick")))) - (font-lock-constant-face ((t (:foreground "CadetBlue")))) - (font-lock-doc-face ((t (:foreground "RosyBrown")))) - (font-lock-doc-string-face ((t (:foreground "RosyBrown")))) - (font-lock-function-name-face ((t (:foreground "Blue")))) - (font-lock-keyword-face ((t (:foreground "Purple")))) - (font-lock-preprocessor-face ((t (:foreground "CadetBlue")))) - (font-lock-reference-face ((t (:foreground "Orchid")))) - (font-lock-string-face ((t (:foreground "RosyBrown")))) - (font-lock-type-face ((t (:foreground "ForestGreen")))) - (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Red" :weight bold)))) - (fringe ((t (:background "grey95")))) - (gnus-cite-attribution-face ((t (:italic t :slant italic)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t :weight bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t :slant italic)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4" :weight bold)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :weight bold)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t :weight bold)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t :weight bold)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen" :weight bold)))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4" :slant italic)))) - (gnus-header-from-face ((t (:foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue" :slant italic)))) - (gnus-header-subject-face ((t (:foreground "red4")))) - (gnus-signature-face ((t (:italic t :slant italic)))) - (gnus-splash-face ((t (:foreground "Brown")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue" :slant italic)))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen" :slant italic)))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick" :slant italic)))) - (gnus-summary-low-unread-face ((t (:italic t :slant italic)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "firebrick")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey90" :foreground "grey20" :box nil)))) - (hi-black-b ((t (:bold t :weight bold)))) - (hi-black-hb ((t (:bold t :family "helv" :weight bold :height 1.67)))) - (hi-blue ((t (:background "light blue")))) - (hi-blue-b ((t (:bold t :foreground "blue" :weight bold)))) - (hi-green ((t (:background "green")))) - (hi-green-b ((t (:bold t :foreground "green" :weight bold)))) - (hi-pink ((t (:background "pink")))) - (hi-red-b ((t (:bold t :foreground "red" :weight bold)))) - (hi-yellow ((t (:background "yellow")))) - (highlight ((t (:background "darkseagreen2")))) - (highlight-changes-delete-face ((t (:foreground "red" :underline t)))) - (highlight-changes-face ((t (:foreground "red")))) - (holiday-face ((t (:background "pink")))) - (idlwave-help-link-face ((t (:foreground "Blue")))) - (idlwave-shell-bp-face ((t (:background "Pink" :foreground "Black")))) - (info-header-node ((t (:italic t :bold t :weight bold :slant italic :foreground "brown")))) - (info-header-xref ((t (:bold t :weight bold :foreground "magenta4")))) - (info-menu-5 ((t (:foreground "red1")))) - (info-menu-header ((t (:bold t :family "helv" :weight bold)))) - (info-node ((t (:italic t :bold t :foreground "brown" :slant italic :weight bold)))) - (info-xref ((t (:bold t :foreground "magenta4" :weight bold)))) - (isearch ((t (:background "magenta4" :foreground "lightskyblue1")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise")))) - (italic ((t (:italic t :slant italic)))) - (log-view-file-face ((t (:bold t :background "grey70" :weight bold)))) - (log-view-message-face ((t (:background "grey85")))) - (makefile-space-face ((t (:background "hotpink")))) - (menu ((t (:background "grey50" :foreground "white" :box (:line-width -1 :style released-button))))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue" :weight bold)))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue" :weight bold)))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (mode-line ((t (:background "grey50" :foreground "white" :box (:line-width -1 :style released-button))))) - (modeline ((t (:background "grey50" :foreground "white" :box (:line-width -1 :style released-button))))) - (modeline-buffer-id ((t (:bold t :background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (modeline-mousable ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (modeline-mousable-minor-mode ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (mouse ((t (:background "black")))) - (primary-selection ((t (:background "lightgoldenrod2")))) - (reb-match-0 ((t (:background "lightblue")))) - (reb-match-1 ((t (:background "aquamarine")))) - (reb-match-2 ((t (:background "springgreen")))) - (reb-match-3 ((t (:background "yellow")))) - (region ((t (:background "lightgoldenrod2")))) - (scroll-bar ((t (:background "grey75")))) - (secondary-selection ((t (:background "yellow")))) - (sh-heredoc-face ((t (:foreground "tan")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (show-tabs-space-face ((t (:foreground "yellow")))) - (show-tabs-tab-face ((t (:foreground "red")))) - (smerge-base-face ((t (:foreground "red")))) - (smerge-markers-face ((t (:background "grey85")))) - (smerge-mine-face ((t (:foreground "blue")))) - (smerge-other-face ((t (:foreground "darkgreen")))) - (speedbar-button-face ((t (:foreground "green4")))) - (speedbar-directory-face ((t (:foreground "blue4")))) - (speedbar-file-face ((t (:foreground "cyan4")))) - (speedbar-highlight-face ((t (:background "green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-tag-face ((t (:foreground "brown")))) - (strokes-char-face ((t (:background "lightgray")))) - (term-black ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-blackbg ((t (:stipple nil :background "black" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-blue ((t (:stipple nil :background "white" :foreground "blue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-bluebg ((t (:stipple nil :background "blue" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-bold ((t (:bold t :stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight bold :width normal :family "adobe-courier")))) - (term-cyan ((t (:stipple nil :background "white" :foreground "cyan" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-cyanbg ((t (:stipple nil :background "cyan" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-bg ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-bg-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-fg ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-default-fg-inv ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-green ((t (:stipple nil :background "white" :foreground "green" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-greenbg ((t (:stipple nil :background "green" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-invisible ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-invisible-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-magenta ((t (:stipple nil :background "white" :foreground "magenta" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-magentabg ((t (:stipple nil :background "magenta" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-red ((t (:stipple nil :background "white" :foreground "red" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-redbg ((t (:stipple nil :background "red" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-underline ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline t :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-white ((t (:stipple nil :background "white" :foreground "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-whitebg ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-yellow ((t (:stipple nil :background "white" :foreground "yellow" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (term-yellowbg ((t (:stipple nil :background "yellow" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier")))) - (tex-math-face ((t (:foreground "RosyBrown")))) - (texinfo-heading-face ((t (:foreground "Blue")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (vcursor ((t (:background "cyan" :foreground "blue" :underline t)))) - (vhdl-font-lock-attribute-face ((t (:foreground "Orchid")))) - (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue")))) - (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4")))) - (vhdl-font-lock-function-face ((t (:foreground "Orchid4")))) - (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red" :weight bold)))) - (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange" :weight bold)))) - (vhdl-font-lock-translate-off-face ((t (:background "LightGray")))) - (vhdl-speedbar-architecture-face ((t (:foreground "Blue")))) - (vhdl-speedbar-architecture-selected-face ((t (:foreground "Blue" :underline t)))) - (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod")))) - (vhdl-speedbar-configuration-selected-face ((t (:foreground "DarkGoldenrod" :underline t)))) - (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen")))) - (vhdl-speedbar-entity-selected-face ((t (:foreground "ForestGreen" :underline t)))) - (vhdl-speedbar-instantiation-face ((t (:foreground "Brown")))) - (vhdl-speedbar-instantiation-selected-face ((t (:foreground "Brown" :underline t)))) - (vhdl-speedbar-package-face ((t (:foreground "Grey50")))) - (vhdl-speedbar-package-selected-face ((t (:foreground "Grey50" :underline t)))) - (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black")))) - (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen")))) - (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black")))) - (viper-search-face ((t (:background "khaki" :foreground "Black")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85")))) - (woman-addition-face ((t (:foreground "orange")))) - (woman-bold-face ((t (:bold t :foreground "blue" :weight bold)))) - (woman-italic-face ((t (:italic t :foreground "red" :underline t :slant italic)))) - (woman-unknown-face ((t (:foreground "brown")))) - (zmacs-region ((t (:background "lightgoldenrod2"))))))) - -(defun color-theme-late-night () - "Color theme by Alex Schroeder, created 2003-08-07. -This theme is for use late at night, with only little light in the room. -The goal was to make something as dark and subtle as the text console in -its default 80x25 state -- dark grey on black." - (interactive) - (let ((color-theme-is-cumulative t)) - (color-theme-dark-erc) - (color-theme-dark-gnus) - ;; (color-theme-dark-diff) - ;; (color-theme-dark-eshell) - (color-theme-dark-info) - (color-theme-dark-font-lock) - (color-theme-install - '(color-theme-late-night - ((background-color . "#000") - (background-mode . dark) - (background-toolbar-color . "#000") - (border-color . "#000") - (bottom-toolbar-shadow-color . "#000") - (cursor-color . "#888") - (foreground-color . "#666") - (top-toolbar-shadow-color . "#111")) - (default ((t (nil)))) - (bold ((t (:bold t)))) - (button ((t (:bold t)))) - (custom-button-face ((t (:bold t :foreground "#999")))) - (fringe ((t (:background "#111" :foreground "#444")))) - (header-line ((t (:background "#333" :foreground "#000")))) - (highlight ((t (:background "dark slate blue" :foreground "light blue")))) - (holiday-face ((t (:background "#000" :foreground "#777")))) - (isearch ((t (:foreground "pink" :background "red")))) - (isearch-lazy-highlight-face ((t (:foreground "red")))) - (italic ((t (:bold t)))) - (menu ((t (:background "#111" :foreground "#444")))) - (minibuffer-prompt ((t (:foreground "555")))) - (modeline ((t (:background "#111" :foreground "#444")))) - (mode-line-inactive ((t (:background "#000" :foreground "#444")))) - (modeline-buffer-id ((t (:background "#000" :foreground "#555")))) - (modeline-mousable ((t (:background "#000" :foreground "#555")))) - (modeline-mousable-minor-mode ((t (:background "#000" :foreground "#555")))) - (region ((t (:background "dark cyan" :foreground "cyan")))) - (secondary-selection ((t (:background "Aquamarine" :foreground "SlateBlue")))) - (show-paren-match-face ((t (:foreground "white" :background "light slate blue")))) - (show-paren-mismatch-face ((t (:foreground "white" :background "red")))) - (tool-bar ((t (:background "#111" :foreground "#777")))) - (tooltip ((t (:background "#333" :foreground "#777")))) - (underline ((t (:bold t)))) - (variable-pitch ((t (nil)))) - (widget-button-face ((t (:bold t :foreground "#888")))) - (widget-field-face ((t (:bold t :foreground "#999")))))))) - -(defun color-theme-clarity () - "White on black color theme by Richard Wellum, created 2003-01-16." - (interactive) - (color-theme-install - '(color-theme-clarity - ((background-color . "black") - (background-mode . dark) - (border-color . "white") - (cursor-color . "yellow") - (foreground-color . "white") - (mouse-color . "white")) - ((CUA-mode-global-mark-cursor-color . "cyan") - (CUA-mode-normal-cursor-color . "yellow") - (CUA-mode-overwrite-cursor-color . "red") - (CUA-mode-read-only-cursor-color . "green") - (help-highlight-face . underline) - (ibuffer-dired-buffer-face . font-lock-function-name-face) - (ibuffer-help-buffer-face . font-lock-comment-face) - (ibuffer-hidden-buffer-face . font-lock-warning-face) - (ibuffer-occur-match-face . font-lock-warning-face) - (ibuffer-read-only-buffer-face . font-lock-type-face) - (ibuffer-special-buffer-face . font-lock-keyword-face) - (ibuffer-title-face . font-lock-type-face) - (list-matching-lines-face . bold) - (ps-line-number-color . "black") - (ps-zebra-color . 0.95) - (tags-tag-face . default) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (nil)))) - (CUA-global-mark-face ((t (:background "cyan" :foreground "black")))) - (CUA-rectangle-face ((t (:background "maroon" :foreground "white")))) - (CUA-rectangle-noselect-face ((t (:background "dimgray" :foreground "white")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "white")))) - (clearcase-dired-checkedout-face ((t (:foreground "red")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cursor ((t (:background "yellow")))) - (fixed-pitch ((t (:family "courier")))) - (flash-paren-face-off ((t (nil)))) - (flash-paren-face-on ((t (nil)))) - (flash-paren-face-region ((t (nil)))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:foreground "OrangeRed")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-doc-face ((t (:foreground "LightSalmon")))) - (font-lock-function-name-face ((t (:foreground "LightSkyBlue")))) - (font-lock-keyword-face ((t (:foreground "Cyan")))) - (font-lock-string-face ((t (:foreground "LightSalmon")))) - (font-lock-type-face ((t (:foreground "PaleGreen")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold)))) - (fringe ((t (:background "grey10")))) - (header-line ((t (:box (:line-width -1 :style released-button) :foreground "grey20" :background "grey90" :box nil)))) - (highlight ((t (:background "darkolivegreen")))) - (ibuffer-deletion-face ((t (:foreground "red")))) - (ibuffer-marked-face ((t (:foreground "green")))) - (isearch ((t (:background "palevioletred2" :foreground "brown4")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (menu ((t (nil)))) - (mode-line ((t (:foreground "yellow" :background "darkslateblue" :box (:line-width -1 :style released-button))))) - (mouse ((t (:background "white")))) - (region ((t (:background "blue")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "darkslateblue")))) - (show-block-face1 ((t (:background "gray10")))) - (show-block-face2 ((t (:background "gray15")))) - (show-block-face3 ((t (:background "gray20")))) - (show-block-face4 ((t (:background "gray25")))) - (show-block-face5 ((t (:background "gray30")))) - (show-block-face6 ((t (:background "gray35")))) - (show-block-face7 ((t (:background "gray40")))) - (show-block-face8 ((t (:background "gray45")))) - (show-block-face9 ((t (:background "gray50")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray"))))))) - -(defun color-theme-andreas () - "Color theme by Andreas Busch, created 2003-02-06." - (interactive) - (color-theme-install - '(color-theme-andreas - ((background-mode . light) - (background-color . "white") - (background-toolbar-color . "#cccccccccccc") - (border-color . "#000000000000") - (bottom-toolbar-shadow-color . "#7a7a7a7a7a7a") - (foreground-color . "black") - (top-toolbar-shadow-color . "#f5f5f5f5f5f5")) - ((gnus-mouse-face . highlight) - (ispell-highlight-face . highlight)) - (default ((t (nil)))) - (OrangeRed ((t (nil)))) - (blue ((t (:foreground "blue")))) - (bold ((t (:bold t)))) - (bold-italic ((t (:italic t :bold t)))) - (border-glyph ((t (nil)))) - (calendar-today-face ((t (:underline t)))) - (color-mode-face-@ ((t (:foreground "orange")))) - (color-mode-face-a ((t (:foreground "blue")))) - (color-mode-face-b ((t (:foreground "red")))) - (color-mode-face-c ((t (:foreground "green3")))) - (color-mode-face-d ((t (:background "red" :foreground "white")))) - (color-mode-face-e ((t (:background "orange" :foreground "blue")))) - (color-mode-face-f ((t (:background "blue" :foreground "yellow")))) - (color-mode-face-g ((t (:background "lightblue" :foreground "brown")))) - (color-mode-face-h ((t (:background "brown" :foreground "white")))) - (custom-button-face ((t (:bold t)))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:underline t :foreground "blue")))) - (custom-group-tag-face-1 ((t (:underline t :foreground "red")))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "dark green")))) - (custom-variable-button-face ((t (:underline t :bold t :background "gray90")))) - (custom-variable-tag-face ((t (:underline t :background "gray95" :foreground "blue")))) - (diary-face ((t (:foreground "red")))) - (display-time-mail-balloon-enhance-face ((t (:background "orange")))) - (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue")))) - (display-time-time-balloon-face ((t (:foreground "red")))) - (emacs-wiki-bad-link-face ((t (:bold t :foreground "red")))) - (emacs-wiki-link-face ((t (:bold t :foreground "green")))) - (font-lock-comment-face ((t (:foreground "orange1")))) - (font-lock-doc-string-face ((t (:foreground "green4")))) - (font-lock-function-name-face ((t (:foreground "blue3")))) - (font-lock-keyword-face ((t (:foreground "red1")))) - (font-lock-preprocessor-face ((t (:foreground "blue3")))) - (font-lock-reference-face ((t (:foreground "red3")))) - (font-lock-string-face ((t (:foreground "green4")))) - (font-lock-type-face ((t (:foreground "#6920ac")))) - (font-lock-variable-name-face ((t (:foreground "blue3")))) - (font-lock-warning-face ((t (:bold t :foreground "Red")))) - (gnu-cite-face-3 ((t (nil)))) - (gnu-cite-face-4 ((t (nil)))) - (gnus-cite-attribution-face ((t (:underline t)))) - (gnus-cite-face-1 ((t (:foreground "MidnightBlue")))) - (gnus-cite-face-10 ((t (:foreground "medium purple")))) - (gnus-cite-face-11 ((t (:foreground "turquoise")))) - (gnus-cite-face-2 ((t (:foreground "firebrick")))) - (gnus-cite-face-3 ((t (:foreground "dark green")))) - (gnus-cite-face-4 ((t (:foreground "OrangeRed")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "dark violet")))) - (gnus-cite-face-7 ((t (:foreground "SteelBlue4")))) - (gnus-cite-face-8 ((t (:foreground "magenta")))) - (gnus-cite-face-9 ((t (:foreground "violet")))) - (gnus-emphasis-bold ((t (:bold t)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t)))) - (gnus-emphasis-italic ((t (:italic t)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:underline t :bold t)))) - (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t)))) - (gnus-emphasis-underline-italic ((t (:underline t :italic t)))) - (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3")))) - (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3")))) - (gnus-group-mail-3-empty-face ((t (:foreground "magenta4")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4")))) - (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4")))) - (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen")))) - (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen")))) - (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4")))) - (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4")))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t)))) - (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen")))) - (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-header-content-face ((t (:italic t :foreground "indianred4")))) - (gnus-header-from-face ((t (:bold t :foreground "red3")))) - (gnus-header-name-face ((t (:foreground "maroon")))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "MidnightBlue")))) - (gnus-header-subject-face ((t (:bold t :foreground "red4")))) - (gnus-splash-face ((t (:foreground "red")))) - (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue")))) - (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen")))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "DarkRed")))) - (gnus-summary-high-unread-face ((t (:bold t)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue")))) - (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen")))) - (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick")))) - (gnus-summary-low-unread-face ((t (:italic t)))) - (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue")))) - (gnus-summary-normal-read-face ((t (:foreground "DarkGreen")))) - (gnus-summary-normal-ticked-face ((t (:foreground "Red")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (gnus-x-face ((t (nil)))) - (green ((t (:foreground "green")))) - (gui-button-face ((t (:background "grey75")))) - (gui-element ((t (:background "Gray80")))) - (highlight ((t (nil)))) - (holiday-face ((t (:background "pink")))) - (hyper-apropos-documentation ((t (:foreground "darkred")))) - (hyper-apropos-heading ((t (:bold t)))) - (hyper-apropos-hyperlink ((t (:foreground "blue4")))) - (hyper-apropos-major-heading ((t (:bold t)))) - (hyper-apropos-section-heading ((t (:italic t :bold t)))) - (hyper-apropos-warning ((t (:bold t :foreground "red")))) - (info-node ((t (:italic t :bold t)))) - (info-xref ((t (:bold t)))) - (isearch ((t (:background "yellow" :foreground "red")))) - (italic ((t (:italic t)))) - (kai-gnus-cite-face-1 ((t (:foreground "LightCyan4")))) - (kai-gnus-cite-face-2 ((t (:foreground "LightSkyBlue2")))) - (kai-gnus-cite-face-3 ((t (:foreground "DodgerBlue3")))) - (kai-gnus-group-mail-face ((t (:foreground "darkslategrey")))) - (kai-gnus-group-nonempty-mail-face ((t (:foreground "DarkRed")))) - (kai-gnus-group-starred-face ((t (:foreground "grey50")))) - (left-margin ((t (nil)))) - (list-mode-item-selected ((t (:background "gray68")))) - (message-cited-text ((t (:italic t)))) - (message-cited-text-face ((t (:foreground "red")))) - (message-header-cc-face ((t (:foreground "MidnightBlue")))) - (message-header-contents ((t (:italic t)))) - (message-header-name-face ((t (:foreground "cornflower blue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4")))) - (message-header-other-face ((t (:foreground "steel blue")))) - (message-header-subject-face ((t (:bold t :foreground "navy blue")))) - (message-header-to-face ((t (:bold t :foreground "MidnightBlue")))) - (message-header-xheader-face ((t (:foreground "blue")))) - (message-headers ((t (:bold t)))) - (message-highlighted-header-contents ((t (:italic t :bold t)))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "brown")))) - (modeline ((t (:background "Gray75" :foreground "Black")))) - (modeline-buffer-id ((t (:background "Gray75" :foreground "blue4")))) - (modeline-mousable ((t (:background "Gray75" :foreground "firebrick")))) - (modeline-mousable-minor-mode ((t (:background "Gray75" :foreground "green4")))) - (paren-blink-off ((t (:foreground "gray80")))) - (paren-match ((t (:background "red" :foreground "white")))) - (paren-mismatch ((t (:background "DeepPink")))) - (pointer ((t (:foreground "blue")))) - (primary-selection ((t (:background "gray65")))) - (red ((t (:foreground "red")))) - (region ((t (:background "gray75")))) - (right-margin ((t (nil)))) - (secondary-selection ((t (:background "paleturquoise")))) - (text-cursor ((t (:background "red" :foreground "LightYellow1")))) - (toolbar ((t (:background "Gray80")))) - (underline ((t (:underline t)))) - (vertical-divider ((t (:background "Gray80")))) - (widget-button-face ((t (:bold t)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (x-face ((t (:background "white")))) - (yellow ((t (:foreground "yellow")))) - (zmacs-region ((t (:background "gray65" :foreground "yellow"))))))) - -(defun color-theme-charcoal-black () - "Color theme by Lars Chr. Hausmann, created 2003-03-24." - (interactive) - (color-theme-install - '(color-theme-charcoal-black - ((background-color . "Grey15") - (background-mode . dark) - (border-color . "Grey") - (cursor-color . "Grey") - (foreground-color . "Grey") - (mouse-color . "Grey")) - ((display-time-mail-face . mode-line) - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-mouse-face . highlight) - (gnus-server-agent-face . gnus-server-agent-face) - (gnus-server-closed-face . gnus-server-closed-face) - (gnus-server-denied-face . gnus-server-denied-face) - (gnus-server-offline-face . gnus-server-offline-face) - (gnus-server-opened-face . gnus-server-opened-face) - (gnus-signature-face . gnus-signature-face) - (gnus-summary-selected-face . gnus-summary-selected-face) - (help-highlight-face . underline) - (list-matching-lines-face . bold) - (mime-button-face . bold) - (mime-button-mouse-face . highlight) - (sgml-set-face . t) - (tags-tag-face . default) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "Grey15" :foreground "Grey" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 87 :width semi-condensed :family "misc-fixed")))) - (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728)))) - (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44)))) - (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2)))) - (Info-title-4-face ((t (:bold t :family "helv" :weight bold)))) - (bg:erc-color-face0 ((t (nil)))) - (bg:erc-color-face1 ((t (nil)))) - (bg:erc-color-face10 ((t (nil)))) - (bg:erc-color-face11 ((t (nil)))) - (bg:erc-color-face12 ((t (nil)))) - (bg:erc-color-face13 ((t (nil)))) - (bg:erc-color-face14 ((t (nil)))) - (bg:erc-color-face15 ((t (nil)))) - (bg:erc-color-face2 ((t (nil)))) - (bg:erc-color-face3 ((t (nil)))) - (bg:erc-color-face4 ((t (nil)))) - (bg:erc-color-face5 ((t (nil)))) - (bg:erc-color-face6 ((t (nil)))) - (bg:erc-color-face7 ((t (nil)))) - (bg:erc-color-face8 ((t (nil)))) - (bg:erc-color-face9 ((t (nil)))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:bold t :foreground "beige" :weight bold)))) - (border ((t (:background "Grey")))) - (calendar-today-face ((t (:underline t)))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cperl-array-face ((t (:bold t :foreground "light salmon" :weight bold)))) - (cperl-hash-face ((t (:italic t :bold t :foreground "beige" :slant italic :weight bold)))) - (cperl-nonoverridable-face ((t (:foreground "aquamarine")))) - (cursor ((t (:background "Grey")))) - (custom-button-face ((t (:foreground "gainsboro")))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "dim gray")))) - (custom-comment-tag-face ((t (:foreground "gray80")))) - (custom-documentation-face ((t (:foreground "light blue")))) - (custom-face-tag-face ((t (:underline t)))) - (custom-group-tag-face ((t (:bold t :foreground "pale turquoise" :weight bold)))) - (custom-group-tag-face-1 ((t (:foreground "pale turquoise" :underline t)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "light salmon")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (diary-face ((t (:foreground "red")))) - (dired-face-directory ((t (:bold t :foreground "sky blue" :weight bold)))) - (dired-face-executable ((t (:foreground "green yellow")))) - (dired-face-flagged ((t (:foreground "tomato")))) - (dired-face-marked ((t (:foreground "light salmon")))) - (dired-face-permissions ((t (:foreground "aquamarine")))) - (erc-action-face ((t (nil)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "pale green")))) - (erc-error-face ((t (:bold t :foreground "IndianRed" :weight bold)))) - (erc-highlight-face ((t (:bold t :foreground "pale green" :weight bold)))) - (erc-input-face ((t (:foreground "light blue")))) - (erc-inverse-face ((t (:background "steel blue")))) - (erc-notice-face ((t (:foreground "light salmon")))) - (erc-pal-face ((t (:foreground "pale green")))) - (erc-prompt-face ((t (:bold t :foreground "light blue" :weight bold)))) - (eshell-ls-archive-face ((t (:bold t :foreground "medium purple" :weight bold)))) - (eshell-ls-backup-face ((t (:foreground "dim gray")))) - (eshell-ls-clutter-face ((t (:foreground "dim gray")))) - (eshell-ls-directory-face ((t (:bold t :foreground "medium slate blue" :weight bold)))) - (eshell-ls-executable-face ((t (:bold t :foreground "aquamarine" :weight bold)))) - (eshell-ls-missing-face ((t (:foreground "black")))) - (eshell-ls-picture-face ((t (:foreground "violet")))) - (eshell-ls-product-face ((t (:foreground "light steel blue")))) - (eshell-ls-readonly-face ((t (:foreground "aquamarine")))) - (eshell-ls-special-face ((t (:foreground "gold")))) - (eshell-ls-symlink-face ((t (:foreground "white")))) - (eshell-ls-unreadable-face ((t (:foreground "dim gray")))) - (eshell-prompt-face ((t (:bold t :foreground "light sky blue" :weight bold)))) - (excerpt ((t (:italic t :slant italic)))) - (fg:erc-color-face0 ((t (:foreground "white")))) - (fg:erc-color-face1 ((t (:foreground "beige")))) - (fg:erc-color-face10 ((t (:foreground "pale goldenrod")))) - (fg:erc-color-face11 ((t (:foreground "light goldenrod yellow")))) - (fg:erc-color-face12 ((t (:foreground "light yellow")))) - (fg:erc-color-face13 ((t (:foreground "yellow")))) - (fg:erc-color-face14 ((t (:foreground "light goldenrod")))) - (fg:erc-color-face15 ((t (:foreground "lime green")))) - (fg:erc-color-face2 ((t (:foreground "lemon chiffon")))) - (fg:erc-color-face3 ((t (:foreground "light cyan")))) - (fg:erc-color-face4 ((t (:foreground "powder blue")))) - (fg:erc-color-face5 ((t (:foreground "sky blue")))) - (fg:erc-color-face6 ((t (:foreground "dark sea green")))) - (fg:erc-color-face7 ((t (:foreground "pale green")))) - (fg:erc-color-face8 ((t (:foreground "medium spring green")))) - (fg:erc-color-face9 ((t (:foreground "khaki")))) - (fixed ((t (:bold t :weight bold)))) - (fixed-pitch ((t (:family "courier")))) - (flyspell-duplicate-face ((t (:bold t :foreground "Gold3" :underline t :weight bold)))) - (flyspell-incorrect-face ((t (:bold t :foreground "OrangeRed" :underline t :weight bold)))) - (font-lock-builtin-face ((t (:foreground "aquamarine")))) - (font-lock-comment-face ((t (:foreground "light blue")))) - (font-lock-constant-face ((t (:foreground "pale green")))) - (font-lock-doc-face ((t (:foreground "light sky blue")))) - (font-lock-doc-string-face ((t (:foreground "sky blue")))) - (font-lock-function-name-face ((t (:bold t :foreground "aquamarine" :weight bold)))) - (font-lock-keyword-face ((t (:bold t :foreground "pale turquoise" :weight bold)))) - (font-lock-reference-face ((t (:foreground "pale green")))) - (font-lock-string-face ((t (:foreground "light sky blue")))) - (font-lock-type-face ((t (:bold t :foreground "sky blue" :weight bold)))) - (font-lock-variable-name-face ((t (:bold t :foreground "turquoise" :weight bold)))) - (font-lock-warning-face ((t (:bold t :foreground "Red" :weight bold)))) - (fringe ((t (:background "Grey15")))) - (gnus-cite-face-1 ((t (:foreground "LightSalmon")))) - (gnus-cite-face-2 ((t (:foreground "Khaki")))) - (gnus-cite-face-3 ((t (:foreground "Coral")))) - (gnus-cite-face-4 ((t (:foreground "yellow green")))) - (gnus-cite-face-5 ((t (:foreground "dark khaki")))) - (gnus-cite-face-6 ((t (:foreground "bisque")))) - (gnus-cite-face-7 ((t (:foreground "peru")))) - (gnus-cite-face-8 ((t (:foreground "light coral")))) - (gnus-cite-face-9 ((t (:foreground "plum")))) - (gnus-emphasis-bold ((t (:bold t :weight bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - (gnus-emphasis-italic ((t (:italic t :slant italic)))) - (gnus-emphasis-strikethru ((t (nil)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) - (gnus-group-mail-1-empty-face ((t (:foreground "White")))) - (gnus-group-mail-1-face ((t (:bold t :foreground "White" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (:foreground "light cyan")))) - (gnus-group-mail-2-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (:foreground "LightBlue")))) - (gnus-group-mail-3-face ((t (:bold t :foreground "LightBlue" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (:foreground "Aquamarine")))) - (gnus-group-mail-low-face ((t (:bold t :foreground "Aquamarine" :weight bold)))) - (gnus-group-news-1-empty-face ((t (:foreground "White")))) - (gnus-group-news-1-face ((t (:bold t :foreground "White" :weight bold)))) - (gnus-group-news-2-empty-face ((t (:foreground "light cyan")))) - (gnus-group-news-2-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (gnus-group-news-3-empty-face ((t (:foreground "LightBlue")))) - (gnus-group-news-3-face ((t (:bold t :foreground "LightBlue" :weight bold)))) - (gnus-group-news-4-empty-face ((t (:foreground "Aquamarine")))) - (gnus-group-news-4-face ((t (:bold t :foreground "Aquamarine" :weight bold)))) - (gnus-group-news-5-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-5-face ((t (:bold t :foreground "MediumAquamarine" :weight bold)))) - (gnus-group-news-6-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-6-face ((t (:bold t :foreground "MediumAquamarine" :weight bold)))) - (gnus-group-news-low-empty-face ((t (:foreground "MediumAquamarine")))) - (gnus-group-news-low-face ((t (:bold t :foreground "MediumAquamarine" :weight bold)))) - (gnus-header-content-face ((t (:foreground "LightSkyBlue3")))) - (gnus-header-from-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (gnus-header-name-face ((t (:bold t :foreground "LightBlue" :weight bold)))) - (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "MediumAquamarine" :slant italic :weight bold)))) - (gnus-header-subject-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (gnus-server-agent-face ((t (:bold t :foreground "PaleTurquoise" :weight bold)))) - (gnus-server-closed-face ((t (:italic t :foreground "Light Steel Blue" :slant italic)))) - (gnus-server-denied-face ((t (:bold t :foreground "Pink" :weight bold)))) - (gnus-server-offline-face ((t (:bold t :foreground "Yellow" :weight bold)))) - (gnus-server-opened-face ((t (:bold t :foreground "Green1" :weight bold)))) - (gnus-signature-face ((t (:foreground "Grey")))) - (gnus-splash-face ((t (:foreground "ForestGreen")))) - (gnus-summary-cancelled-face ((t (:background "Black" :foreground "Yellow")))) - (gnus-summary-high-ancient-face ((t (:bold t :foreground "MediumAquamarine" :weight bold)))) - (gnus-summary-high-read-face ((t (:bold t :foreground "Aquamarine" :weight bold)))) - (gnus-summary-high-ticked-face ((t (:bold t :foreground "LightSalmon" :weight bold)))) - (gnus-summary-high-unread-face ((t (:italic t :bold t :foreground "beige" :slant italic :weight bold)))) - (gnus-summary-low-ancient-face ((t (:italic t :foreground "DimGray" :slant italic)))) - (gnus-summary-low-read-face ((t (:foreground "slate gray")))) - (gnus-summary-low-ticked-face ((t (:foreground "Pink")))) - (gnus-summary-low-unread-face ((t (:foreground "LightGray")))) - (gnus-summary-normal-ancient-face ((t (:foreground "MediumAquamarine")))) - (gnus-summary-normal-read-face ((t (:foreground "Aquamarine")))) - (gnus-summary-normal-ticked-face ((t (:foreground "LightSalmon")))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:underline t)))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey20" :foreground "grey90" :box nil)))) - (highlight ((t (:background "dark slate blue" :foreground "light blue")))) - (highline-face ((t (:background "DeepSkyBlue4")))) - (holiday-face ((t (:background "pink")))) - (info-header-node ((t (:bold t :weight bold)))) - (info-header-xref ((t (:bold t :weight bold :foreground "sky blue")))) - (info-menu-5 ((t (:underline t)))) - (info-menu-header ((t (:bold t :family "helv" :weight bold)))) - (info-node ((t (:bold t :weight bold)))) - (info-xref ((t (:bold t :foreground "sky blue" :weight bold)))) - (isearch ((t (:background "slate blue")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:foreground "sky blue")))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-bug-breakpoint-marker ((t (:background "yellow" :foreground "red")))) - (jde-java-font-lock-api-face ((t (:foreground "light goldenrod")))) - (jde-java-font-lock-bold-face ((t (:bold t :weight bold)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "Aquamarine")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "light coral")))) - (jde-java-font-lock-italic-face ((t (:italic t :slant italic)))) - (jde-java-font-lock-link-face ((t (:foreground "blue" :underline t :slant normal)))) - (jde-java-font-lock-modifier-face ((t (:foreground "LightSteelBlue")))) - (jde-java-font-lock-number-face ((t (:foreground "LightSalmon")))) - (jde-java-font-lock-package-face ((t (:foreground "steelblue1")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (makefile-space-face ((t (:background "hotpink")))) - (menu ((t (:background "MidnightBlue" :foreground "Grey")))) - (message-cited-text-face ((t (:foreground "LightSalmon")))) - (message-header-cc-face ((t (:foreground "light cyan")))) - (message-header-name-face ((t (:foreground "LightBlue")))) - (message-header-newsgroups-face ((t (:italic t :bold t :foreground "MediumAquamarine" :slant italic :weight bold)))) - (message-header-other-face ((t (:foreground "MediumAquamarine")))) - (message-header-subject-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (message-header-to-face ((t (:bold t :foreground "light cyan" :weight bold)))) - (message-header-xheader-face ((t (:foreground "MediumAquamarine")))) - (message-mml-face ((t (:foreground "ForestGreen")))) - (message-separator-face ((t (:foreground "chocolate")))) - (mode-line ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button))))) - (mouse ((t (:background "Grey")))) - (region ((t (:background "DarkSlateBlue")))) - (scroll-bar ((t (:background "grey75")))) - (secondary-selection ((t (:background "steel blue")))) - (semantic-dirty-token-face ((t (:background "gray10")))) - (semantic-unmatched-syntax-face ((t (:underline "red")))) - (show-paren-match-face ((t (:background "light slate blue" :foreground "white")))) - (show-paren-mismatch-face ((t (:background "red" :foreground "white")))) - (speedbar-button-face ((t (:foreground "seashell2")))) - (speedbar-directory-face ((t (:foreground "seashell3")))) - (speedbar-file-face ((t (:foreground "seashell4")))) - (speedbar-highlight-face ((t (:background "dark slate blue" :foreground "wheat")))) - (speedbar-selected-face ((t (:foreground "seashell1" :underline t)))) - (speedbar-separator-face ((t (:background "blue" :foreground "white" :overline "gray")))) - (speedbar-tag-face ((t (:foreground "antique white")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button))))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "light blue")))) - (widget-field-face ((t (:background "RoyalBlue4" :foreground "wheat")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "slate blue" :foreground "wheat")))) - (woman-bold-face ((t (:bold t :foreground "sky blue" :weight bold)))) - (woman-italic-face ((t (:foreground "deep sky blue")))) - (woman-unknown-face ((t (:foreground "LightSalmon")))) - (zmacs-region ((t (:background "DarkSlateBlue"))))))) - -(defun color-theme-vim-colors () - "Color theme by Michael Soulier, created 2003-03-26." - (interactive) - (color-theme-install - '(color-theme-vim-colors - ((background-color . "#ffffff") - (background-mode . light) - (border-color . "black") - (cursor-color . "#000000") - (foreground-color . "#000000") - (mouse-color . "#000000")) - ((Man-overstrike-face . bold) - (Man-underline-face . underline) - (apropos-keybinding-face . underline) - (apropos-label-face . italic) - (apropos-match-face . secondary-selection) - (apropos-property-face . bold-italic) - (apropos-symbol-face . bold) - (cperl-here-face . font-lock-string-face) - (cperl-invalid-face quote underline) - (cperl-pod-face . font-lock-comment-face) - (cperl-pod-head-face . font-lock-variable-name-face) - (help-highlight-face . underline) - (ispell-highlight-face . highlight) - (list-matching-lines-face . bold) - (rpm-spec-dir-face . rpm-spec-dir-face) - (rpm-spec-doc-face . rpm-spec-doc-face) - (rpm-spec-ghost-face . rpm-spec-ghost-face) - (rpm-spec-macro-face . rpm-spec-macro-face) - (rpm-spec-package-face . rpm-spec-package-face) - (rpm-spec-tag-face . rpm-spec-tag-face) - (tags-tag-face . default) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:background "#ffffff" :foreground "#000000")))) - (Info-title-1-face ((t (nil)))) - (Info-title-2-face ((t (nil)))) - (Info-title-3-face ((t (nil)))) - (Info-title-4-face ((t (:bold (bold extra-bold ultra-bold))))) - (bold ((t (:bold (bold extra-bold ultra-bold))))) - (bold-italic ((t (:italic (italic oblique) :bold (bold extra-bold ultra-bold))))) - (border ((t (:background "black")))) - (comint-highlight-input ((t (:bold (bold extra-bold ultra-bold))))) - (comint-highlight-prompt ((t (:foreground "dark blue")))) - (cperl-array-face ((t (:foreground "brown")))) - (cperl-hash-face ((t (:foreground "red")))) - (cperl-nonoverridable-face ((t (:foreground "#008b8b")))) - (cursor ((t (:background "#000000")))) - (fixed-pitch ((t (nil)))) - (font-lock-builtin-face ((t (:foreground "purple")))) - (font-lock-comment-face ((t (:foreground "blue")))) - (font-lock-constant-face ((t (:foreground "green4")))) - (font-lock-doc-face ((t (:background "#f2f2f2")))) - (font-lock-function-name-face ((t (:foreground "#008b8b")))) - (font-lock-keyword-face ((t (:bold (bold extra-bold ultra-bold) :foreground "#a52a2a")))) - (font-lock-string-face ((t (:background "#f2f2f2" :foreground "#ff00ff")))) - (font-lock-type-face ((t (:foreground "ForestGreen")))) - (font-lock-variable-name-face ((t (:foreground "#008b8b")))) - (font-lock-warning-face ((t (:bold (bold extra-bold ultra-bold) :foreground "Red")))) - (fringe ((t (:background "#e5e5e5")))) - (header-line ((t (:background "grey90" :foreground "grey20")))) - (highlight ((t (:background "darkseagreen2")))) - (info-header-node ((t (nil)))) - (info-header-xref ((t (nil)))) - (info-menu-5 ((t (:foreground "red1")))) - (info-menu-header ((t (:bold (bold extra-bold ultra-bold))))) - (info-node ((t (:italic (italic oblique) :bold (bold extra-bold ultra-bold) :foreground "brown")))) - (info-xref ((t (:bold (bold extra-bold ultra-bold) :foreground "magenta4")))) - (isearch ((t (:background "magenta4" :foreground "lightskyblue1")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise")))) - (italic ((t (:italic (italic oblique))))) - (menu ((t (nil)))) - (mode-line ((t (:background "grey75" :foreground "black")))) - (mouse ((t (:background "#000000")))) - (region ((t (:background "lightgoldenrod2")))) - (rpm-spec-dir-face ((t (:foreground "green")))) - (rpm-spec-doc-face ((t (:foreground "magenta")))) - (rpm-spec-ghost-face ((t (:foreground "red")))) - (rpm-spec-macro-face ((t (:foreground "purple")))) - (rpm-spec-package-face ((t (:foreground "red")))) - (rpm-spec-tag-face ((t (:foreground "blue")))) - (scroll-bar ((t (:background "grey75" :foreground "#000000")))) - (secondary-selection ((t (:background "yellow")))) - (sh-heredoc-face ((t (:foreground "tan")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (tool-bar ((t (:background "grey75" :foreground "black")))) - (tooltip ((t (:background "lightyellow" :foreground "black")))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (nil)))) - (widget-button-face ((t (:bold (bold extra-bold ultra-bold))))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85"))))))) - -(defun color-theme-calm-forest () - "Color theme by Artur Hefczyc, created 2003-04-18." - (interactive) - (color-theme-install - '(color-theme-calm-forest - ((background-color . "gray12") - (background-mode . dark) - (border-color . "black") - (cursor-color . "orange") - (foreground-color . "green") - (mouse-color . "yellow")) - ((help-highlight-face . underline) - (list-matching-lines-face . bold) - (senator-eldoc-use-color . t) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "gray12" :foreground "green" :inverse-video nil :box nil -:strike-through nil :overline nil :underline nil :slant normal :weight normal :height 98 :width -normal :family "outline-courier new")))) - (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728)))) - (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44)))) - (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2)))) - (Info-title-4-face ((t (:bold t :family "helv" :weight bold)))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (comint-highlight-input ((t (:bold t :weight bold)))) - (comint-highlight-prompt ((t (:foreground "cyan")))) - (cparen-around-andor-face ((t (:bold t :foreground "maroon" :weight bold)))) - (cparen-around-begin-face ((t (:foreground "maroon")))) - (cparen-around-conditional-face ((t (:bold t :foreground "RoyalBlue" :weight bold)))) - (cparen-around-define-face ((t (:bold t :foreground "Blue" :weight bold)))) - (cparen-around-lambda-face ((t (:foreground "LightSeaGreen")))) - (cparen-around-letdo-face ((t (:bold t :foreground "LightSeaGreen" :weight bold)))) - (cparen-around-quote-face ((t (:foreground "SaddleBrown")))) - (cparen-around-set!-face ((t (:foreground "OrangeRed")))) - (cparen-around-syntax-rules-face ((t (:foreground "Magenta")))) - (cparen-around-vector-face ((t (:foreground "chocolate")))) - (cparen-binding-face ((t (:foreground "ForestGreen")))) - (cparen-binding-list-face ((t (:bold t :foreground "ForestGreen" :weight bold)))) - (cparen-conditional-clause-face ((t (:foreground "RoyalBlue")))) - (cparen-normal-paren-face ((t (:foreground "grey50")))) - (cursor ((t (:background "orange")))) - (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style -released-button))))) - (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width -2 :style pressed-button))))) - (custom-changed-face ((t (:background "blue" :foreground "white")))) - (custom-comment-face ((t (:background "dim gray")))) - (custom-comment-tag-face ((t (:foreground "gray80")))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2)))) - (custom-group-tag-face ((t (:bold t :foreground "light blue" :weight bold :height 1.2)))) - (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "pink" :weight bold :height -1.2)))) - (custom-invalid-face ((t (:background "red" :foreground "yellow")))) - (custom-modified-face ((t (:background "blue" :foreground "white")))) - (custom-rogue-face ((t (:background "black" :foreground "pink")))) - (custom-saved-face ((t (:underline t)))) - (custom-set-face ((t (:background "white" :foreground "blue")))) - (custom-state-face ((t (:foreground "lime green")))) - (custom-variable-button-face ((t (:bold t :underline t :weight bold)))) - (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "light blue" :weight bold -:height 1.2)))) - (eieio-custom-slot-tag-face ((t (:foreground "light blue")))) - (extra-whitespace-face ((t (:background "pale green")))) - (fixed-pitch ((t (:family "courier")))) - (font-latex-bold-face ((t (:bold t :foreground "OliveDrab" :weight bold)))) - (font-latex-italic-face ((t (:italic t :foreground "OliveDrab" :slant italic)))) - (font-latex-math-face ((t (:foreground "burlywood")))) - (font-latex-sedate-face ((t (:foreground "LightGray")))) - (font-latex-string-face ((t (:foreground "RosyBrown")))) - (font-latex-warning-face ((t (:bold t :foreground "Red" :weight bold)))) - (font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) - (font-lock-comment-face ((t (:foreground "chocolate1")))) - (font-lock-constant-face ((t (:foreground "Aquamarine")))) - (font-lock-doc-face ((t (:foreground "LightSalmon")))) - (font-lock-function-name-face ((t (:foreground "LightSkyBlue")))) - (font-lock-keyword-face ((t (:foreground "Cyan")))) - (font-lock-string-face ((t (:foreground "LightSalmon")))) - (font-lock-type-face ((t (:foreground "PaleGreen")))) - (font-lock-variable-name-face ((t (:foreground "LightGoldenrod")))) - (font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold)))) - (fringe ((t (:background "grey10")))) - (header-line ((t (:box (:line-width -1 :style released-button) :background "grey20" :foreground -"grey90" :box nil)))) - (highlight ((t (:background "darkolivegreen")))) - (info-header-node ((t (:italic t :bold t :weight bold :slant italic :foreground "white")))) - (info-header-xref ((t (:bold t :weight bold :foreground "cyan")))) - (info-menu-5 ((t (:foreground "red1")))) - (info-menu-header ((t (:bold t :family "helv" :weight bold)))) - (info-node ((t (:italic t :bold t :foreground "white" :slant italic :weight bold)))) - (info-xref ((t (:bold t :foreground "cyan" :weight bold)))) - (isearch ((t (:background "palevioletred2" :foreground "brown4")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) - (italic ((t (:italic t :slant italic)))) - (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan")))) - (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black")))) - (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black")))) - (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black")))) - (jde-java-font-lock-api-face ((t (:foreground "light goldenrod")))) - (jde-java-font-lock-bold-face ((t (:bold t :weight bold)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (:foreground "Aquamarine")))) - (jde-java-font-lock-doc-tag-face ((t (:foreground "light coral")))) - (jde-java-font-lock-italic-face ((t (:italic t :slant italic)))) - (jde-java-font-lock-link-face ((t (:foreground "blue" :underline t :slant normal)))) - (jde-java-font-lock-modifier-face ((t (:foreground "LightSteelBlue")))) - (jde-java-font-lock-number-face ((t (:foreground "LightSalmon")))) - (jde-java-font-lock-operator-face ((t (:foreground "medium blue")))) - (jde-java-font-lock-package-face ((t (:foreground "steelblue1")))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (:underline t)))) - (menu ((t (nil)))) - (mode-line ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style -released-button))))) - (mouse ((t (:background "yellow")))) - (region ((t (:background "blue3")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "SkyBlue4")))) - (semantic-dirty-token-face ((t (:background "gray10")))) - (semantic-unmatched-syntax-face ((t (:underline "red")))) - (senator-intangible-face ((t (:foreground "gray75")))) - (senator-momentary-highlight-face ((t (:background "gray30")))) - (senator-read-only-face ((t (:background "#664444")))) - (show-paren-match-face ((t (:background "turquoise")))) - (show-paren-mismatch-face ((t (:background "purple" :foreground "white")))) - (speedbar-button-face ((t (:foreground "green3")))) - (speedbar-directory-face ((t (:foreground "light blue")))) - (speedbar-file-face ((t (:foreground "cyan")))) - (speedbar-highlight-face ((t (:background "sea green")))) - (speedbar-selected-face ((t (:foreground "red" :underline t)))) - (speedbar-separator-face ((t (:background "blue" :foreground "white" :overline "gray")))) - (speedbar-tag-face ((t (:foreground "yellow")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style -released-button))))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "lime green")))) - (widget-field-face ((t (:background "dim gray")))) - (widget-inactive-face ((t (:foreground "light gray")))) - (widget-single-line-field-face ((t (:background "dim gray"))))))) - -(defun color-theme-lawrence () - "Color theme by lawrence mitchell . -Mainly shades of green. -Contains faces for erc, gnus, most of jde." - (interactive) - (color-theme-install - '(color-theme-lawrence - ((background-color . "black") - (background-mode . dark) - (border-color . "black") - (cursor-color . "green") - (foreground-color . "#00CC00") - (mouse-color . "black")) - ((erc-button-face . bold) - (erc-button-mouse-face . highlight) - (gnus-article-button-face . bold) - (gnus-article-mouse-face . highlight) - (gnus-cite-attribution-face . gnus-cite-attribution-face) - (gnus-mouse-face . highlight) - (gnus-server-agent-face . gnus-server-agent-face) - (gnus-server-closed-face . gnus-server-closed-face) - (gnus-server-denied-face . gnus-server-denied-face) - (gnus-server-offline-face . gnus-server-offline-face) - (gnus-server-opened-face . gnus-server-opened-face) - (gnus-signature-face . gnus-signature-face) - (gnus-summary-selected-face . gnus-summary-selected-face) - (gnus-treat-display-face . head) - (gnus-treat-display-xface . head) - (list-matching-lines-buffer-name-face . underline) - (list-matching-lines-face . bold) - (paren-match-face . paren-face-match) - (paren-mismatch-face . paren-face-mismatch) - (paren-no-match-face . paren-face-no-match) - (sgml-set-face . t) - (tags-tag-face . default) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (nil)))) - (Buffer-menu-buffer-face ((t (:bold t :weight bold)))) - (bg:erc-color-face0 ((t (:background "White")))) - (bg:erc-color-face1 ((t (:background "black")))) - (bg:erc-color-face10 ((t (:background "lightblue1")))) - (bg:erc-color-face11 ((t (:background "cyan")))) - (bg:erc-color-face12 ((t (:background "blue")))) - (bg:erc-color-face13 ((t (:background "deeppink")))) - (bg:erc-color-face14 ((t (:background "gray50")))) - (bg:erc-color-face15 ((t (:background "gray90")))) - (bg:erc-color-face2 ((t (:background "blue4")))) - (bg:erc-color-face3 ((t (:background "green4")))) - (bg:erc-color-face4 ((t (:background "red")))) - (bg:erc-color-face5 ((t (:background "brown")))) - (bg:erc-color-face6 ((t (:background "purple")))) - (bg:erc-color-face7 ((t (:background "orange")))) - (bg:erc-color-face8 ((t (:background "yellow")))) - (bg:erc-color-face9 ((t (:background "green")))) - (bold ((t (:bold t :foreground "#00CC00" :background "black")))) - (bold-italic ((t (:italic t :bold t :slant oblique :weight semi-bold)))) - (border ((t (:background "black")))) - (button ((t (:underline t)))) - (comint-highlight-input ((t (nil)))) - (comint-highlight-prompt ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (cursor ((t (:background "green")))) - (custom-button-face ((t (:bold t :foreground "#00CC00" :background "black")))) - (custom-button-pressed-face ((t (nil)))) - (custom-changed-face ((t (:italic t :foreground "#00CC00" :background "black" :slant oblique)))) - (custom-comment-face ((t (nil)))) - (custom-comment-tag-face ((t (nil)))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (nil)))) - (custom-group-tag-face ((t (nil)))) - (custom-group-tag-face-1 ((t (nil)))) - (custom-invalid-face ((t (:foreground "#00CC00" :background "black" :strike-through t)))) - (custom-modified-face ((t (nil)))) - (custom-rogue-face ((t (nil)))) - (custom-saved-face ((t (nil)))) - (custom-set-face ((t (nil)))) - (custom-state-face ((t (nil)))) - (custom-variable-button-face ((t (nil)))) - (custom-variable-tag-face ((t (nil)))) - (erc-action-face ((t (:bold t :weight semi-bold)))) - (erc-bold-face ((t (:bold t :weight bold)))) - (erc-current-nick-face ((t (:bold t :foreground "LightSeaGreen" :weight semi-bold)))) - (erc-dangerous-host-face ((t (:foreground "red")))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (:foreground "IndianRed")))) - (erc-error-face ((t (:bold t :weight semi-bold :background "darkblue" :foreground "#00CC00")))) - (erc-fool-face ((t (:foreground "dim gray")))) - (erc-input-face ((t (:foreground "springgreen")))) - (erc-inverse-face ((t (:bold t :background "Darkgreen" :foreground "Black" :weight semi-bold)))) - (erc-keyword-face ((t (:bold t :foreground "pale green" :weight bold)))) - (erc-nick-default-face ((t (:bold t :weight semi-bold)))) - (erc-nick-msg-face ((t (:bold t :foreground "springgreen" :weight semi-bold)))) - (erc-notice-face ((t (:foreground "seagreen" :weight normal)))) - (erc-pal-face ((t (:bold t :foreground "Magenta" :weight bold)))) - (erc-prompt-face ((t (:bold t :background "lightBlue2" :foreground "Black" :weight semi-bold)))) - (erc-timestamp-face ((t (:foreground "seagreen" :weight normal)))) - (erc-underline-face ((t (:underline t)))) - (fg:erc-color-face0 ((t (:foreground "White")))) - (fg:erc-color-face1 ((t (:foreground "black")))) - (fg:erc-color-face10 ((t (:foreground "lightblue1")))) - (fg:erc-color-face11 ((t (:foreground "cyan")))) - (fg:erc-color-face12 ((t (:foreground "blue")))) - (fg:erc-color-face13 ((t (:foreground "deeppink")))) - (fg:erc-color-face14 ((t (:foreground "gray50")))) - (fg:erc-color-face15 ((t (:foreground "gray90")))) - (fg:erc-color-face2 ((t (:foreground "blue4")))) - (fg:erc-color-face3 ((t (:foreground "green4")))) - (fg:erc-color-face4 ((t (:foreground "red")))) - (fg:erc-color-face5 ((t (:foreground "brown")))) - (fg:erc-color-face6 ((t (:foreground "purple")))) - (fg:erc-color-face7 ((t (:foreground "orange")))) - (fg:erc-color-face8 ((t (:foreground "yellow")))) - (fg:erc-color-face9 ((t (:foreground "green")))) - (fixed-pitch ((t (nil)))) - (font-latex-string-face ((t (:bold t :weight semi-bold :foreground "seagreen" :background "black")))) - (font-latex-warning-face ((t (:bold t :weight semi-bold :background "darkblue" :foreground "#00CC00")))) - (font-lock-builtin-face ((t (:foreground "seagreen1")))) - (font-lock-comment-face ((t (:background "black" :foreground "medium spring green")))) - (font-lock-constant-face ((t (nil)))) - (font-lock-doc-face ((t (:bold t :background "black" :foreground "seagreen" :weight semi-bold)))) - (font-lock-function-name-face ((t (:bold t :foreground "#00CC00" :background "black")))) - (font-lock-keyword-face ((t (:bold t :background "black" :foreground "green" :underline t :weight semi-bold)))) - (font-lock-preprocessor-face ((t (:foreground "#00ccdd")))) - (font-lock-string-face ((t (:bold t :background "black" :foreground "seagreen" :weight semi-bold)))) - (font-lock-type-face ((t (nil)))) - (font-lock-variable-name-face ((t (nil)))) - (font-lock-warning-face ((t (:bold t :foreground "#00CC00" :background "darkblue" :weight semi-bold)))) - (fringe ((t (:foreground "#00CC00" :background "#151515")))) - (gnus-cite-attribution-face ((t (:italic t :foreground "#00CC00" :background "black" :slant italic)))) - (gnus-cite-face-1 ((t (:background "black" :foreground "springgreen")))) - (gnus-cite-face-10 ((t (nil)))) - (gnus-cite-face-11 ((t (nil)))) - (gnus-cite-face-2 ((t (:background "black" :foreground "lightseagreen")))) - (gnus-cite-face-3 ((t (:background "black" :foreground "darkseagreen")))) - (gnus-cite-face-4 ((t (:background "black" :foreground "forestgreen")))) - (gnus-cite-face-5 ((t (:background "black" :foreground "springgreen")))) - (gnus-cite-face-6 ((t (:background "black" :foreground "springgreen")))) - (gnus-cite-face-7 ((t (:background "black" :foreground "springgreen")))) - (gnus-cite-face-8 ((t (:background "black" :foreground "springgreen")))) - (gnus-cite-face-9 ((t (:background "black" :foreground "springgreen")))) - (gnus-emphasis-bold ((t (:bold t :weight semi-bold)))) - (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight semi-bold)))) - (gnus-emphasis-highlight-words ((t (:bold t :foreground "#00CC00" :background "black" :underline t :weight bold)))) - (gnus-emphasis-italic ((t (:italic t :slant italic)))) - (gnus-emphasis-strikethru ((t (nil)))) - (gnus-emphasis-underline ((t (:underline t)))) - (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight semi-bold)))) - (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight semi-bold)))) - (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) - (gnus-group-mail-1-empty-face ((t (nil)))) - (gnus-group-mail-1-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-mail-2-empty-face ((t (nil)))) - (gnus-group-mail-2-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-mail-3-empty-face ((t (nil)))) - (gnus-group-mail-3-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-mail-low-empty-face ((t (nil)))) - (gnus-group-mail-low-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-news-1-empty-face ((t (nil)))) - (gnus-group-news-1-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-news-2-empty-face ((t (nil)))) - (gnus-group-news-2-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-group-news-low-empty-face ((t (nil)))) - (gnus-group-news-low-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-header-content-face ((t (:background "black" :foreground "springgreen")))) - (gnus-header-from-face ((t (nil)))) - (gnus-header-name-face ((t (nil)))) - (gnus-header-newsgroups-face ((t (nil)))) - (gnus-header-subject-face ((t (nil)))) - (gnus-server-agent-face ((t (:bold t :foreground "PaleTurquoise" :weight bold)))) - (gnus-server-closed-face ((t (:italic t :foreground "Light Steel Blue" :slant italic)))) - (gnus-server-denied-face ((t (:bold t :foreground "Pink" :weight semi-bold)))) - (gnus-server-offline-face ((t (:bold t :foreground "Yellow" :weight bold)))) - (gnus-server-opened-face ((t (:bold t :foreground "Green1" :weight semi-bold)))) - (gnus-signature-face ((t (:background "black" :foreground "springgreen" :slant normal)))) - (gnus-splash-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-summary-cancelled-face ((t (:foreground "#00CC00" :background "black" :strike-through t)))) - (gnus-summary-high-ancient-face ((t (nil)))) - (gnus-summary-high-read-face ((t (nil)))) - (gnus-summary-high-ticked-face ((t (:background "black" :foreground "seagreen")))) - (gnus-summary-high-undownloaded-face ((t (:bold t :foreground "LightGray" :weight bold)))) - (gnus-summary-high-unread-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-summary-low-ancient-face ((t (nil)))) - (gnus-summary-low-read-face ((t (nil)))) - (gnus-summary-low-ticked-face ((t (nil)))) - (gnus-summary-low-undownloaded-face ((t (:italic t :foreground "LightGray" :slant italic :weight normal)))) - (gnus-summary-low-unread-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold)))) - (gnus-summary-normal-ancient-face ((t (nil)))) - (gnus-summary-normal-read-face ((t (nil)))) - (gnus-summary-normal-ticked-face ((t (:bold t :foreground "#00CC00" :background "black")))) - (gnus-summary-normal-undownloaded-face ((t (:foreground "LightGray" :weight normal)))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (:background "#101010")))) - (gnus-x-face ((t (:background "white" :foreground "black")))) - (header-line ((t (nil)))) - (highlight ((t (:foreground "#00CC00" :background "darkgreen")))) - (ido-first-match-face ((t (:bold t :weight bold)))) - (ido-indicator-face ((t (:background "red" :foreground "yellow" :width condensed)))) - (ido-only-match-face ((t (:foreground "ForestGreen")))) - (ido-subdir-face ((t (:foreground "red")))) - (isearch ((t (:background "seagreen" :foreground "black")))) - (isearch-lazy-highlight-face ((t (:background "darkseagreen" :foreground "black")))) - (italic ((t (:italic t :foreground "#00CC00" :background "black" :slant oblique)))) - (menu ((t (:bold t :background "black" :foreground "green" :box (:line-width -1 :color "#606060") :weight semi-bold)))) - (message-cited-text-face ((t (:italic t :foreground "#00CC00" :background "black" :slant oblique)))) - (message-header-cc-face ((t (nil)))) - (message-header-name-face ((t (nil)))) - (message-header-newsgroups-face ((t (:bold t :foreground "#00CC00" :background "black")))) - (message-header-other-face ((t (:bold t :foreground "#00CC00" :background "black")))) - (message-header-subject-face ((t (:bold t :foreground "#00CC00" :background "black")))) - (message-header-to-face ((t (:bold t :foreground "#00CC00" :background "black")))) - (message-header-xheader-face ((t (nil)))) - (message-mml-face ((t (:italic t :foreground "#00CC00" :background "black" :slant oblique)))) - (message-separator-face ((t (nil)))) - (minibuffer-prompt ((t (:background "black" :foreground "seagreen")))) - (mode-line ((t (:bold t :background "#404040" :foreground "green" :box (:line-width -1 :color "#606060") :weight semi-bold)))) - (mode-line-inactive ((t (:bold t :weight semi-bold :box (:line-width -1 :color "#606060") :foreground "green" :background "#101010")))) - (mouse ((t (:background "black")))) - (paren-face ((t (:background "black" :foreground "darkgreen")))) - (paren-face-match ((t (:background "black" :foreground "springgreen")))) - (paren-face-mismatch ((t (:foreground "#00CC00" :background "black" :strike-through t)))) - (paren-face-no-match ((t (:background "black" :foreground "red")))) - (region ((t (:background "seagreen" :foreground "black")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "darkseagreen" :foreground "black")))) - (semantic-dirty-token-face ((t (:background "gray10")))) - (semantic-unmatched-syntax-face ((t (:underline "red")))) - (sgml-end-tag-face ((t (:foreground "seagreen")))) - (sgml-start-tag-face ((t (:foreground "seagreen")))) - (tabbar-button-face ((t (:background "black" :foreground "#00cc00" :box (:line-width 2 :color "black" :style released-button))))) - (tabbar-default-face ((t (:background "black" :foreground "#00cc00")))) - (tabbar-selected-face ((t (:background "black" :foreground "springgreen" :box (:line-width 2 :color "black" :style released-button))))) - (tabbar-separator-face ((t (:foreground "#00cc00" :background "black")))) - (tabbar-unselected-face ((t (:background "black" :foreground "seagreen" :box (:line-width 2 :color "black" :style pressed-button))))) - (tool-bar ((t (:box (:line-width 1 :style released-button))))) - (tooltip ((t (nil)))) - (trailing-whitespace ((t (:background "lightseagreen" :foreground "black")))) - (underline ((t (:foreground "#00CC00" :background "black" :underline t)))) - (variable-pitch ((t (:underline nil :foreground "#00CC00" :background "black")))) - (widget-button-face ((t (:bold t :foreground "#00CC00" :background "black")))) - (widget-button-pressed-face ((t (nil)))) - (widget-documentation-face ((t (nil)))) - (widget-field-face ((t (:italic t :foreground "#00CC00" :background "black" :slant oblique)))) - (widget-inactive-face ((t (nil)))) - (widget-single-line-field-face ((t (nil))))))) - -(defun color-theme-matrix () - "Color theme by walterh@rocketmail.com, created 2003-10-16." - (interactive) - (color-theme-install - '(color-theme-matrix - ((background-color . "black") - (background-mode . dark) - (background-toolbar-color . "bisque") - (border-color . "orange") - (bottom-toolbar-shadow-color . "#909099999999") - (cursor-color . "#7eff00") - (foreground-color . "#7eff00") - (mouse-color . "#7eff00") - (top-toolbar-shadow-color . "#ffffffffffff")) - ((help-highlight-face . underline) - (list-matching-lines-face . bold) - (rmail-highlight-face . font-lock-function-name-face) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "black" :foreground -"#7eff00" :inverse-video nil :box nil :strike-through nil :overline nil -:underline nil :slant normal :weight normal :height 90 :width normal -:family "outline-courier new")))) - (Buffer-menu-buffer-face ((t (nil)))) - (CUA-global-mark-face ((t (nil)))) - (CUA-rectangle-face ((t (nil)))) - (CUA-rectangle-noselect-face ((t (nil)))) - (Info-title-1-face ((t (nil)))) - (Info-title-2-face ((t (nil)))) - (Info-title-3-face ((t (nil)))) - (Info-title-4-face ((t (nil)))) - (antlr-font-lock-keyword-face ((t (nil)))) - (antlr-font-lock-literal-face ((t (nil)))) - (antlr-font-lock-ruledef-face ((t (nil)))) - (antlr-font-lock-ruleref-face ((t (nil)))) - (antlr-font-lock-tokendef-face ((t (nil)))) - (antlr-font-lock-tokenref-face ((t (nil)))) - (bbdb-company ((t (nil)))) - (bbdb-field-name ((t (nil)))) - (bbdb-field-value ((t (nil)))) - (bbdb-name ((t (nil)))) - (bg:erc-color-face0 ((t (nil)))) - (bg:erc-color-face1 ((t (nil)))) - (bg:erc-color-face10 ((t (nil)))) - (bg:erc-color-face11 ((t (nil)))) - (bg:erc-color-face12 ((t (nil)))) - (bg:erc-color-face13 ((t (nil)))) - (bg:erc-color-face14 ((t (nil)))) - (bg:erc-color-face15 ((t (nil)))) - (bg:erc-color-face2 ((t (nil)))) - (bg:erc-color-face3 ((t (nil)))) - (bg:erc-color-face4 ((t (nil)))) - (bg:erc-color-face5 ((t (nil)))) - (bg:erc-color-face6 ((t (nil)))) - (bg:erc-color-face7 ((t (nil)))) - (bg:erc-color-face8 ((t (nil)))) - (bg:erc-color-face9 ((t (nil)))) - (blank-space-face ((t (nil)))) - (blank-tab-face ((t (nil)))) - (blue ((t (nil)))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:bold t :weight bold)))) - (border ((t (:background "orange")))) - (border-glyph ((t (nil)))) - (buffers-tab ((t (nil)))) - (button ((t (nil)))) - (calendar-today-face ((t (nil)))) - (change-log-acknowledgement-face ((t (nil)))) - (change-log-conditionals-face ((t (nil)))) - (change-log-date-face ((t (nil)))) - (change-log-email-face ((t (nil)))) - (change-log-file-face ((t (nil)))) - (change-log-function-face ((t (nil)))) - (change-log-list-face ((t (nil)))) - (change-log-name-face ((t (nil)))) - (clearcase-dired-checkedout-face ((t (nil)))) - (comint-highlight-input ((t (nil)))) - (comint-highlight-prompt ((t (nil)))) - (cparen-around-andor-face ((t (nil)))) - (cparen-around-begin-face ((t (nil)))) - (cparen-around-conditional-face ((t (nil)))) - (cparen-around-define-face ((t (nil)))) - (cparen-around-lambda-face ((t (nil)))) - (cparen-around-letdo-face ((t (nil)))) - (cparen-around-quote-face ((t (nil)))) - (cparen-around-set!-face ((t (nil)))) - (cparen-around-syntax-rules-face ((t (nil)))) - (cparen-around-vector-face ((t (nil)))) - (cparen-binding-face ((t (nil)))) - (cparen-binding-list-face ((t (nil)))) - (cparen-conditional-clause-face ((t (nil)))) - (cparen-normal-paren-face ((t (nil)))) - (cperl-array-face ((t (nil)))) - (cperl-hash-face ((t (nil)))) - (cperl-invalid-face ((t (nil)))) - (cperl-nonoverridable-face ((t (nil)))) - (cursor ((t (:background "#7eff00" :foreground "black")))) - (custom-button-face ((t (nil)))) - (custom-button-pressed-face ((t (nil)))) - (custom-changed-face ((t (nil)))) - (custom-comment-face ((t (nil)))) - (custom-comment-tag-face ((t (nil)))) - (custom-documentation-face ((t (nil)))) - (custom-face-tag-face ((t (nil)))) - (custom-group-tag-face ((t (nil)))) - (custom-group-tag-face-1 ((t (nil)))) - (custom-invalid-face ((t (nil)))) - (custom-modified-face ((t (nil)))) - (custom-rogue-face ((t (nil)))) - (custom-saved-face ((t (nil)))) - (custom-set-face ((t (nil)))) - (custom-state-face ((t (nil)))) - (custom-variable-button-face ((t (nil)))) - (custom-variable-tag-face ((t (nil)))) - (cvs-filename-face ((t (nil)))) - (cvs-handled-face ((t (nil)))) - (cvs-header-face ((t (nil)))) - (cvs-marked-face ((t (nil)))) - (cvs-msg-face ((t (nil)))) - (cvs-need-action-face ((t (nil)))) - (cvs-unknown-face ((t (nil)))) - (cyan ((t (nil)))) - (diary-face ((t (nil)))) - (diff-added-face ((t (nil)))) - (diff-changed-face ((t (nil)))) - (diff-context-face ((t (nil)))) - (diff-file-header-face ((t (nil)))) - (diff-function-face ((t (nil)))) - (diff-header-face ((t (nil)))) - (diff-hunk-header-face ((t (nil)))) - (diff-index-face ((t (nil)))) - (diff-nonexistent-face ((t (nil)))) - (diff-removed-face ((t (nil)))) - (dired-face-boring ((t (nil)))) - (dired-face-directory ((t (nil)))) - (dired-face-executable ((t (nil)))) - (dired-face-flagged ((t (nil)))) - (dired-face-header ((t (nil)))) - (dired-face-marked ((t (nil)))) - (dired-face-permissions ((t (nil)))) - (dired-face-setuid ((t (nil)))) - (dired-face-socket ((t (nil)))) - (dired-face-symlink ((t (nil)))) - (display-time-mail-balloon-enhance-face ((t (nil)))) - (display-time-mail-balloon-gnus-group-face ((t (nil)))) - (display-time-time-balloon-face ((t (nil)))) - (ebrowse-default-face ((t (nil)))) - (ebrowse-file-name-face ((t (nil)))) - (ebrowse-member-attribute-face ((t (nil)))) - (ebrowse-member-class-face ((t (nil)))) - (ebrowse-progress-face ((t (nil)))) - (ebrowse-root-class-face ((t (nil)))) - (ebrowse-tree-mark-face ((t (nil)))) - (ecb-sources-face ((t (nil)))) - (edb-inter-field-face ((t (nil)))) - (edb-normal-summary-face ((t (nil)))) - (ediff-current-diff-face-A ((t (nil)))) - (ediff-current-diff-face-Ancestor ((t (nil)))) - (ediff-current-diff-face-B ((t (nil)))) - (ediff-current-diff-face-C ((t (nil)))) - (ediff-even-diff-face-A ((t (nil)))) - (ediff-even-diff-face-Ancestor ((t (nil)))) - (ediff-even-diff-face-B ((t (nil)))) - (ediff-even-diff-face-C ((t (nil)))) - (ediff-fine-diff-face-A ((t (nil)))) - (ediff-fine-diff-face-Ancestor ((t (nil)))) - (ediff-fine-diff-face-B ((t (nil)))) - (ediff-fine-diff-face-C ((t (nil)))) - (ediff-odd-diff-face-A ((t (nil)))) - (ediff-odd-diff-face-Ancestor ((t (nil)))) - (ediff-odd-diff-face-B ((t (nil)))) - (ediff-odd-diff-face-C ((t (nil)))) - (eieio-custom-slot-tag-face ((t (nil)))) - (emacs-wiki-bad-link-face ((t (nil)))) - (emacs-wiki-link-face ((t (nil)))) - (erc-action-face ((t (nil)))) - (erc-bold-face ((t (nil)))) - (erc-current-nick-face ((t (nil)))) - (erc-dangerous-host-face ((t (nil)))) - (erc-default-face ((t (nil)))) - (erc-direct-msg-face ((t (nil)))) - (erc-error-face ((t (nil)))) - (erc-fool-face ((t (nil)))) - (erc-highlight-face ((t (nil)))) - (erc-input-face ((t (nil)))) - (erc-inverse-face ((t (nil)))) - (erc-keyword-face ((t (nil)))) - (erc-nick-default-face ((t (nil)))) - (erc-nick-msg-face ((t (nil)))) - (erc-notice-face ((t (nil)))) - (erc-pal-face ((t (nil)))) - (erc-prompt-face ((t (nil)))) - (erc-timestamp-face ((t (nil)))) - (erc-underline-face ((t (nil)))) - (eshell-ls-archive-face ((t (nil)))) - (eshell-ls-backup-face ((t (nil)))) - (eshell-ls-clutter-face ((t (nil)))) - (eshell-ls-directory-face ((t (nil)))) - (eshell-ls-executable-face ((t (nil)))) - (eshell-ls-missing-face ((t (nil)))) - (eshell-ls-picture-face ((t (nil)))) - (eshell-ls-product-face ((t (nil)))) - (eshell-ls-readonly-face ((t (nil)))) - (eshell-ls-special-face ((t (nil)))) - (eshell-ls-symlink-face ((t (nil)))) - (eshell-ls-text-face ((t (nil)))) - (eshell-ls-todo-face ((t (nil)))) - (eshell-ls-unreadable-face ((t (nil)))) - (eshell-prompt-face ((t (nil)))) - (eshell-test-failed-face ((t (nil)))) - (eshell-test-ok-face ((t (nil)))) - (excerpt ((t (nil)))) - (extra-whitespace-face ((t (nil)))) - (ff-paths-non-existant-file-face ((t (nil)))) - (fg:black ((t (nil)))) - (fg:erc-color-face0 ((t (nil)))) - (fg:erc-color-face1 ((t (nil)))) - (fg:erc-color-face10 ((t (nil)))) - (fg:erc-color-face11 ((t (nil)))) - (fg:erc-color-face12 ((t (nil)))) - (fg:erc-color-face13 ((t (nil)))) - (fg:erc-color-face14 ((t (nil)))) - (fg:erc-color-face15 ((t (nil)))) - (fg:erc-color-face2 ((t (nil)))) - (fg:erc-color-face3 ((t (nil)))) - (fg:erc-color-face4 ((t (nil)))) - (fg:erc-color-face5 ((t (nil)))) - (fg:erc-color-face6 ((t (nil)))) - (fg:erc-color-face7 ((t (nil)))) - (fg:erc-color-face8 ((t (nil)))) - (fg:erc-color-face9 ((t (nil)))) - (fixed ((t (nil)))) - (fixed-pitch ((t (nil)))) - (fl-comment-face ((t (nil)))) - (fl-function-name-face ((t (nil)))) - (fl-keyword-face ((t (nil)))) - (fl-string-face ((t (nil)))) - (fl-type-face ((t (nil)))) - (flash-paren-face-off ((t (nil)))) - (flash-paren-face-on ((t (nil)))) - (flash-paren-face-region ((t (nil)))) - (flyspell-duplicate-face ((t (nil)))) - (flyspell-incorrect-face ((t (nil)))) - (font-latex-bold-face ((t (nil)))) - (font-latex-italic-face ((t (nil)))) - (font-latex-math-face ((t (nil)))) - (font-latex-sedate-face ((t (nil)))) - (font-latex-string-face ((t (nil)))) - (font-latex-warning-face ((t (nil)))) - (font-lock-builtin-face ((t (:foreground "pink2")))) - (font-lock-comment-face ((t (:italic t :background "black" :slant -italic)))) - (font-lock-constant-face ((t (:foreground "magenta")))) - (font-lock-doc-face ((t (nil)))) - (font-lock-doc-string-face ((t (nil)))) - (font-lock-exit-face ((t (nil)))) - (font-lock-function-name-face ((t (:bold t :underline t :weight -bold)))) - (font-lock-keyword-face ((t (:foreground "yellow1")))) - (font-lock-other-emphasized-face ((t (nil)))) - (font-lock-other-type-face ((t (nil)))) - (font-lock-preprocessor-face ((t (nil)))) - (font-lock-reference-face ((t (nil)))) - (font-lock-special-comment-face ((t (nil)))) - (font-lock-special-keyword-face ((t (nil)))) - (font-lock-string-face ((t (:foreground "yellow2")))) - (font-lock-type-face ((t (:foreground "LightYellow1")))) - (font-lock-variable-name-face ((t (:foreground "light green")))) - (font-lock-warning-face ((t (nil)))) - (fringe ((t (nil)))) - (gnus-cite-attribution-face ((t (nil)))) - (gnus-cite-face-1 ((t (nil)))) - (gnus-cite-face-10 ((t (nil)))) - (gnus-cite-face-11 ((t (nil)))) - (gnus-cite-face-2 ((t (nil)))) - (gnus-cite-face-3 ((t (nil)))) - (gnus-cite-face-4 ((t (nil)))) - (gnus-cite-face-5 ((t (nil)))) - (gnus-cite-face-6 ((t (nil)))) - (gnus-cite-face-7 ((t (nil)))) - (gnus-cite-face-8 ((t (nil)))) - (gnus-cite-face-9 ((t (nil)))) - (gnus-emphasis-bold ((t (nil)))) - (gnus-emphasis-bold-italic ((t (nil)))) - (gnus-emphasis-highlight-words ((t (nil)))) - (gnus-emphasis-italic ((t (nil)))) - (gnus-emphasis-strikethru ((t (nil)))) - (gnus-emphasis-underline ((t (nil)))) - (gnus-emphasis-underline-bold ((t (nil)))) - (gnus-emphasis-underline-bold-italic ((t (nil)))) - (gnus-emphasis-underline-italic ((t (nil)))) - (gnus-filterhist-face-1 ((t (nil)))) - (gnus-group-mail-1-empty-face ((t (nil)))) - (gnus-group-mail-1-face ((t (nil)))) - (gnus-group-mail-2-empty-face ((t (nil)))) - (gnus-group-mail-2-face ((t (nil)))) - (gnus-group-mail-3-empty-face ((t (nil)))) - (gnus-group-mail-3-face ((t (nil)))) - (gnus-group-mail-low-empty-face ((t (nil)))) - (gnus-group-mail-low-face ((t (nil)))) - (gnus-group-news-1-empty-face ((t (nil)))) - (gnus-group-news-1-face ((t (nil)))) - (gnus-group-news-2-empty-face ((t (nil)))) - (gnus-group-news-2-face ((t (nil)))) - (gnus-group-news-3-empty-face ((t (nil)))) - (gnus-group-news-3-face ((t (nil)))) - (gnus-group-news-4-empty-face ((t (nil)))) - (gnus-group-news-4-face ((t (nil)))) - (gnus-group-news-5-empty-face ((t (nil)))) - (gnus-group-news-5-face ((t (nil)))) - (gnus-group-news-6-empty-face ((t (nil)))) - (gnus-group-news-6-face ((t (nil)))) - (gnus-group-news-low-empty-face ((t (nil)))) - (gnus-group-news-low-face ((t (nil)))) - (gnus-header-content-face ((t (nil)))) - (gnus-header-from-face ((t (nil)))) - (gnus-header-name-face ((t (nil)))) - (gnus-header-newsgroups-face ((t (nil)))) - (gnus-header-subject-face ((t (nil)))) - (gnus-picon-face ((t (nil)))) - (gnus-picon-xbm-face ((t (nil)))) - (gnus-picons-face ((t (nil)))) - (gnus-picons-xbm-face ((t (nil)))) - (gnus-server-agent-face ((t (nil)))) - (gnus-server-closed-face ((t (nil)))) - (gnus-server-denied-face ((t (nil)))) - (gnus-server-offline-face ((t (nil)))) - (gnus-server-opened-face ((t (nil)))) - (gnus-signature-face ((t (nil)))) - (gnus-splash ((t (nil)))) - (gnus-splash-face ((t (nil)))) - (gnus-summary-cancelled-face ((t (nil)))) - (gnus-summary-high-ancient-face ((t (nil)))) - (gnus-summary-high-read-face ((t (nil)))) - (gnus-summary-high-ticked-face ((t (nil)))) - (gnus-summary-high-undownloaded-face ((t (nil)))) - (gnus-summary-high-unread-face ((t (nil)))) - (gnus-summary-low-ancient-face ((t (nil)))) - (gnus-summary-low-read-face ((t (nil)))) - (gnus-summary-low-ticked-face ((t (nil)))) - (gnus-summary-low-undownloaded-face ((t (nil)))) - (gnus-summary-low-unread-face ((t (nil)))) - (gnus-summary-normal-ancient-face ((t (nil)))) - (gnus-summary-normal-read-face ((t (nil)))) - (gnus-summary-normal-ticked-face ((t (nil)))) - (gnus-summary-normal-undownloaded-face ((t (nil)))) - (gnus-summary-normal-unread-face ((t (nil)))) - (gnus-summary-selected-face ((t (nil)))) - (gnus-x-face ((t (nil)))) - (green ((t (nil)))) - (gui-button-face ((t (nil)))) - (gui-element ((t (nil)))) - (header-line ((t (nil)))) - (hi-black-b ((t (nil)))) - (hi-black-hb ((t (nil)))) - (hi-blue ((t (nil)))) - (hi-blue-b ((t (nil)))) - (hi-green ((t (nil)))) - (hi-green-b ((t (nil)))) - (hi-pink ((t (nil)))) - (hi-red-b ((t (nil)))) - (hi-yellow ((t (nil)))) - (highlight ((t (:background "#7eff00" :foreground "black")))) - (highlight-changes-delete-face ((t (nil)))) - (highlight-changes-face ((t (nil)))) - (highline-face ((t (nil)))) - (holiday-face ((t (nil)))) - (html-helper-bold-face ((t (nil)))) - (html-helper-bold-italic-face ((t (nil)))) - (html-helper-builtin-face ((t (nil)))) - (html-helper-italic-face ((t (nil)))) - (html-helper-underline-face ((t (nil)))) - (html-tag-face ((t (nil)))) - (hyper-apropos-documentation ((t (nil)))) - (hyper-apropos-heading ((t (nil)))) - (hyper-apropos-hyperlink ((t (nil)))) - (hyper-apropos-major-heading ((t (nil)))) - (hyper-apropos-section-heading ((t (nil)))) - (hyper-apropos-warning ((t (nil)))) - (ibuffer-deletion-face ((t (nil)))) - (ibuffer-marked-face ((t (nil)))) - (idlwave-help-link-face ((t (nil)))) - (idlwave-shell-bp-face ((t (nil)))) - (ido-first-match-face ((t (nil)))) - (ido-indicator-face ((t (nil)))) - (ido-only-match-face ((t (nil)))) - (ido-subdir-face ((t (nil)))) - (info-header-node ((t (nil)))) - (info-header-xref ((t (nil)))) - (info-menu-5 ((t (nil)))) - (info-menu-6 ((t (nil)))) - (info-menu-header ((t (nil)))) - (info-node ((t (nil)))) - (info-xref ((t (nil)))) - (isearch ((t (nil)))) - (isearch-lazy-highlight-face ((t (nil)))) - (isearch-secondary ((t (nil)))) - (italic ((t (:underline t)))) - (jde-bug-breakpoint-cursor ((t (nil)))) - (jde-bug-breakpoint-marker ((t (nil)))) - (jde-db-active-breakpoint-face ((t (nil)))) - (jde-db-requested-breakpoint-face ((t (nil)))) - (jde-db-spec-breakpoint-face ((t (nil)))) - (jde-java-font-lock-api-face ((t (nil)))) - (jde-java-font-lock-bold-face ((t (nil)))) - (jde-java-font-lock-code-face ((t (nil)))) - (jde-java-font-lock-constant-face ((t (nil)))) - (jde-java-font-lock-doc-tag-face ((t (nil)))) - (jde-java-font-lock-italic-face ((t (nil)))) - (jde-java-font-lock-link-face ((t (nil)))) - (jde-java-font-lock-modifier-face ((t (nil)))) - (jde-java-font-lock-number-face ((t (nil)))) - (jde-java-font-lock-operator-face ((t (nil)))) - (jde-java-font-lock-package-face ((t (nil)))) - (jde-java-font-lock-pre-face ((t (nil)))) - (jde-java-font-lock-underline-face ((t (nil)))) - (lazy-highlight-face ((t (nil)))) - (left-margin ((t (nil)))) - (linemenu-face ((t (nil)))) - (list-mode-item-selected ((t (nil)))) - (log-view-file-face ((t (nil)))) - (log-view-message-face ((t (nil)))) - (magenta ((t (nil)))) - (makefile-space-face ((t (nil)))) - (man-bold ((t (nil)))) - (man-heading ((t (nil)))) - (man-italic ((t (nil)))) - (man-xref ((t (nil)))) - (menu ((t (nil)))) - (message-cited-text ((t (nil)))) - (message-cited-text-face ((t (nil)))) - (message-header-cc-face ((t (nil)))) - (message-header-contents ((t (nil)))) - (message-header-name-face ((t (nil)))) - (message-header-newsgroups-face ((t (nil)))) - (message-header-other-face ((t (nil)))) - (message-header-subject-face ((t (nil)))) - (message-header-to-face ((t (nil)))) - (message-header-xheader-face ((t (nil)))) - (message-headers ((t (nil)))) - (message-highlighted-header-contents ((t (nil)))) - (message-mml-face ((t (nil)))) - (message-separator-face ((t (nil)))) - (message-url ((t (nil)))) - (minibuffer-prompt ((t (nil)))) - (mmm-face ((t (nil)))) - (mode-line ((t (:bold t :background "gray" :foreground "black" -:weight bold)))) - (mode-line-inactive ((t (nil)))) - (modeline-buffer-id ((t (:background "orange" :foreground -"black")))) - (modeline-mousable ((t (:background "orange" :foreground -"black")))) - (modeline-mousable-minor-mode ((t (:background "orange" -:foreground "black")))) - (mouse ((t (nil)))) - (mpg123-face-cur ((t (nil)))) - (mpg123-face-slider ((t (nil)))) - (my-tab-face ((t (nil)))) - (nil ((t (nil)))) - (overlay-empty-face ((t (nil)))) - (p4-diff-del-face ((t (nil)))) - (paren-blink-off ((t (nil)))) - (paren-face ((t (nil)))) - (paren-face-match ((t (nil)))) - (paren-face-mismatch ((t (nil)))) - (paren-face-no-match ((t (nil)))) - (paren-match ((t (nil)))) - (paren-mismatch ((t (nil)))) - (paren-mismatch-face ((t (nil)))) - (paren-no-match-face ((t (nil)))) - (pointer ((t (nil)))) - (primary-selection ((t (nil)))) - (reb-match-0 ((t (nil)))) - (reb-match-1 ((t (nil)))) - (reb-match-2 ((t (nil)))) - (reb-match-3 ((t (nil)))) - (red ((t (nil)))) - (region ((t (:background "#7eff00" :foreground "black")))) - (right-margin ((t (nil)))) - (rpm-spec-dir-face ((t (nil)))) - (rpm-spec-doc-face ((t (nil)))) - (rpm-spec-ghost-face ((t (nil)))) - (rpm-spec-macro-face ((t (nil)))) - (rpm-spec-package-face ((t (nil)))) - (rpm-spec-tag-face ((t (nil)))) - (rpm-spec-var-face ((t (nil)))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "orange" :foreground -"black")))) - (semantic-dirty-token-face ((t (nil)))) - (semantic-intangible-face ((t (nil)))) - (semantic-read-only-face ((t (nil)))) - (semantic-unmatched-syntax-face ((t (nil)))) - (senator-intangible-face ((t (nil)))) - (senator-momentary-highlight-face ((t (nil)))) - (senator-read-only-face ((t (nil)))) - (sgml-comment-face ((t (nil)))) - (sgml-doctype-face ((t (nil)))) - (sgml-end-tag-face ((t (nil)))) - (sgml-entity-face ((t (nil)))) - (sgml-ignored-face ((t (nil)))) - (sgml-ms-end-face ((t (nil)))) - (sgml-ms-start-face ((t (nil)))) - (sgml-pi-face ((t (nil)))) - (sgml-sgml-face ((t (nil)))) - (sgml-short-ref-face ((t (nil)))) - (sgml-shortref-face ((t (nil)))) - (sgml-start-tag-face ((t (nil)))) - (sh-heredoc-face ((t (nil)))) - (shell-option-face ((t (nil)))) - (shell-output-2-face ((t (nil)))) - (shell-output-3-face ((t (nil)))) - (shell-output-face ((t (nil)))) - (shell-prompt-face ((t (nil)))) - (show-block-face1 ((t (nil)))) - (show-block-face2 ((t (nil)))) - (show-block-face3 ((t (nil)))) - (show-block-face4 ((t (nil)))) - (show-block-face5 ((t (nil)))) - (show-block-face6 ((t (nil)))) - (show-block-face7 ((t (nil)))) - (show-block-face8 ((t (nil)))) - (show-block-face9 ((t (nil)))) - (show-paren-match-face ((t (:background "orange" :foreground -"black")))) - (show-paren-mismatch-face ((t (:underline t)))) - (show-tabs-space-face ((t (nil)))) - (show-tabs-tab-face ((t (nil)))) - (smerge-base-face ((t (nil)))) - (smerge-markers-face ((t (nil)))) - (smerge-mine-face ((t (nil)))) - (smerge-other-face ((t (nil)))) - (speedbar-button-face ((t (nil)))) - (speedbar-directory-face ((t (nil)))) - (speedbar-file-face ((t (nil)))) - (speedbar-highlight-face ((t (nil)))) - (speedbar-selected-face ((t (nil)))) - (speedbar-separator-face ((t (nil)))) - (speedbar-tag-face ((t (nil)))) - (strokes-char-face ((t (nil)))) - (swbuff-current-buffer-face ((t (nil)))) - (tabbar-button-face ((t (nil)))) - (tabbar-default-face ((t (nil)))) - (tabbar-selected-face ((t (nil)))) - (tabbar-separator-face ((t (nil)))) - (tabbar-unselected-face ((t (nil)))) - (template-message-face ((t (nil)))) - (term-black ((t (nil)))) - (term-blackbg ((t (nil)))) - (term-blue ((t (nil)))) - (term-blue-bold-face ((t (nil)))) - (term-blue-face ((t (nil)))) - (term-blue-inv-face ((t (nil)))) - (term-blue-ul-face ((t (nil)))) - (term-bluebg ((t (nil)))) - (term-bold ((t (nil)))) - (term-cyan ((t (nil)))) - (term-cyan-bold-face ((t (nil)))) - (term-cyan-face ((t (nil)))) - (term-cyan-inv-face ((t (nil)))) - (term-cyan-ul-face ((t (nil)))) - (term-cyanbg ((t (nil)))) - (term-default ((t (nil)))) - (term-default-bg ((t (nil)))) - (term-default-bg-inv ((t (nil)))) - (term-default-bold-face ((t (nil)))) - (term-default-face ((t (nil)))) - (term-default-fg ((t (nil)))) - (term-default-fg-inv ((t (nil)))) - (term-default-inv-face ((t (nil)))) - (term-default-ul-face ((t (nil)))) - (term-green ((t (nil)))) - (term-green-bold-face ((t (nil)))) - (term-green-face ((t (nil)))) - (term-green-inv-face ((t (nil)))) - (term-green-ul-face ((t (nil)))) - (term-greenbg ((t (nil)))) - (term-invisible ((t (nil)))) - (term-invisible-inv ((t (nil)))) - (term-magenta ((t (nil)))) - (term-magenta-bold-face ((t (nil)))) - (term-magenta-face ((t (nil)))) - (term-magenta-inv-face ((t (nil)))) - (term-magenta-ul-face ((t (nil)))) - (term-magentabg ((t (nil)))) - (term-red ((t (nil)))) - (term-red-bold-face ((t (nil)))) - (term-red-face ((t (nil)))) - (term-red-inv-face ((t (nil)))) - (term-red-ul-face ((t (nil)))) - (term-redbg ((t (nil)))) - (term-underline ((t (nil)))) - (term-white ((t (nil)))) - (term-white-bold-face ((t (nil)))) - (term-white-face ((t (nil)))) - (term-white-inv-face ((t (nil)))) - (term-white-ul-face ((t (nil)))) - (term-whitebg ((t (nil)))) - (term-yellow ((t (nil)))) - (term-yellow-bold-face ((t (nil)))) - (term-yellow-face ((t (nil)))) - (term-yellow-inv-face ((t (nil)))) - (term-yellow-ul-face ((t (nil)))) - (term-yellowbg ((t (nil)))) - (tex-math-face ((t (nil)))) - (texinfo-heading-face ((t (nil)))) - (text-cursor ((t (nil)))) - (tool-bar ((t (nil)))) - (tooltip ((t (nil)))) - (trailing-whitespace ((t (nil)))) - (underline ((t (:underline t)))) - (variable-pitch ((t (nil)))) - (vc-annotate-face-0046FF ((t (nil)))) - (vcursor ((t (nil)))) - (vertical-divider ((t (nil)))) - (vhdl-font-lock-attribute-face ((t (nil)))) - (vhdl-font-lock-directive-face ((t (nil)))) - (vhdl-font-lock-enumvalue-face ((t (nil)))) - (vhdl-font-lock-function-face ((t (nil)))) - (vhdl-font-lock-generic-/constant-face ((t (nil)))) - (vhdl-font-lock-prompt-face ((t (nil)))) - (vhdl-font-lock-reserved-words-face ((t (nil)))) - (vhdl-font-lock-translate-off-face ((t (nil)))) - (vhdl-font-lock-type-face ((t (nil)))) - (vhdl-font-lock-variable-face ((t (nil)))) - (vhdl-speedbar-architecture-face ((t (nil)))) - (vhdl-speedbar-architecture-selected-face ((t (nil)))) - (vhdl-speedbar-configuration-face ((t (nil)))) - (vhdl-speedbar-configuration-selected-face ((t (nil)))) - (vhdl-speedbar-entity-face ((t (nil)))) - (vhdl-speedbar-entity-selected-face ((t (nil)))) - (vhdl-speedbar-instantiation-face ((t (nil)))) - (vhdl-speedbar-instantiation-selected-face ((t (nil)))) - (vhdl-speedbar-package-face ((t (nil)))) - (vhdl-speedbar-package-selected-face ((t (nil)))) - (vhdl-speedbar-subprogram-face ((t (nil)))) - (viper-minibuffer-emacs-face ((t (nil)))) - (viper-minibuffer-insert-face ((t (nil)))) - (viper-minibuffer-vi-face ((t (nil)))) - (viper-replace-overlay-face ((t (nil)))) - (viper-search-face ((t (nil)))) - (vm-xface ((t (nil)))) - (vmpc-pre-sig-face ((t (nil)))) - (vmpc-sig-face ((t (nil)))) - (w3m-anchor-face ((t (nil)))) - (w3m-arrived-anchor-face ((t (nil)))) - (w3m-header-line-location-content-face ((t (nil)))) - (w3m-header-line-location-title-face ((t (nil)))) - (white ((t (nil)))) - (widget ((t (nil)))) - (widget-button-face ((t (nil)))) - (widget-button-pressed-face ((t (nil)))) - (widget-documentation-face ((t (nil)))) - (widget-field-face ((t (nil)))) - (widget-inactive-face ((t (nil)))) - (widget-single-line-field-face ((t (nil)))) - (woman-addition-face ((t (nil)))) - (woman-bold-face ((t (nil)))) - (woman-italic-face ((t (nil)))) - (woman-unknown-face ((t (nil)))) - (x-face ((t (nil)))) - (xrdb-option-name-face ((t (nil)))) - (xref-keyword-face ((t (nil)))) - (xref-list-default-face ((t (nil)))) - (xref-list-pilot-face ((t (nil)))) - (xref-list-symbol-face ((t (nil)))) - (yellow ((t (nil)))) - (zmacs-region ((t (nil))))))) - -(defun color-theme-feng-shui () - "Color theme by walterh@rocketmail.com (www.xanadb.com), created - 2003-10-16. Evolved from color-theme-katester" - (interactive) - (color-theme-install - '(color-theme-feng-shui - ((background-color . "ivory") - (background-mode . light) - (border-color . "black") - (cursor-color . "slateblue") - (foreground-color . "black") - (mouse-color . "slateblue")) - ((help-highlight-face . underline) - (list-matching-lines-face . bold) - (view-highlight-face . highlight) - (widget-mouse-face . highlight)) - (default ((t (:stipple nil :background "ivory" :foreground "black" -:inverse-video nil :box nil :strike-through nil :overline nil -:underline nil :slant normal :weight normal :height 90 :width normal -:family "outline-courier new")))) - (bold ((t (:bold t :weight bold)))) - (bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) - (border ((t (:background "black")))) - (cursor ((t (:background "slateblue" :foreground "black")))) - (fixed-pitch ((t (:family "courier")))) - (font-lock-builtin-face ((t (:foreground "black")))) - (font-lock-comment-face ((t (:italic t :background "seashell" -:slant italic)))) - (font-lock-constant-face ((t (:foreground "darkblue")))) - (font-lock-doc-face ((t (:background "lemonChiffon")))) - (font-lock-function-name-face ((t (:bold t :underline t :weight -bold)))) - (font-lock-keyword-face ((t (:foreground "blue")))) - (font-lock-string-face ((t (:background "lemonChiffon")))) - (font-lock-type-face ((t (:foreground "black")))) - (font-lock-variable-name-face ((t (:foreground "black")))) - (font-lock-warning-face ((t (:bold t :foreground "Red" :weight -bold)))) - (fringe ((t (:background "grey95")))) - (header-line ((t (:bold t :weight bold :underline t :background -"grey90" :foreground "grey20" :box nil)))) - (highlight ((t (:background "mistyRose" :foreground "black")))) - (isearch ((t (:background "magenta4" :foreground -"lightskyblue1")))) - (isearch-lazy-highlight-face ((t (:background "paleturquoise")))) - (italic ((t (:italic t :slant italic)))) - (menu ((t (nil)))) - (mode-line ((t (:bold t :background "mistyRose" :foreground "navy" -:underline t :weight bold)))) - (mouse ((t (:background "slateblue")))) - (region ((t (:background "lavender" :foreground "black")))) - (scroll-bar ((t (nil)))) - (secondary-selection ((t (:background "yellow")))) - (tool-bar ((t (:background "grey75" :foreground "black" :box -(:line-width 1 :style released-button))))) - (trailing-whitespace ((t (:background "red")))) - (underline ((t (:underline t)))) - (variable-pitch ((t (:family "helv")))) - (widget-button-face ((t (:bold t :weight bold)))) - (widget-button-pressed-face ((t (:foreground "red")))) - (widget-documentation-face ((t (:foreground "dark green")))) - (widget-field-face ((t (:background "gray85")))) - (widget-inactive-face ((t (:foreground "dim gray")))) - (widget-single-line-field-face ((t (:background "gray85"))))))) - -(provide 'color-theme) - -;;; color-theme.el ends here diff --git a/elpa/color-theme-tango-0.0.2/color-theme-tango-autoloads.el b/elpa/color-theme-tango-0.0.2/color-theme-tango-autoloads.el deleted file mode 100644 index bcf115b5..00000000 --- a/elpa/color-theme-tango-0.0.2/color-theme-tango-autoloads.el +++ /dev/null @@ -1,18 +0,0 @@ -;;; color-theme-tango-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads nil nil ("color-theme-tango-pkg.el" "color-theme-tango.el") -;;;;;; (21316 30300 288324)) - -;;;*** - -(provide 'color-theme-tango-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; color-theme-tango-autoloads.el ends here diff --git a/elpa/color-theme-tango-0.0.2/color-theme-tango-pkg.el b/elpa/color-theme-tango-0.0.2/color-theme-tango-pkg.el deleted file mode 100644 index c6b94bb1..00000000 --- a/elpa/color-theme-tango-0.0.2/color-theme-tango-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "color-theme-tango" "0.0.2" "Tango palette color theme for GNU Emacs." (quote ((color-theme "6.6.1")))) diff --git a/elpa/color-theme-tango-0.0.2/color-theme-tango.el b/elpa/color-theme-tango-0.0.2/color-theme-tango.el deleted file mode 100644 index 96a2cf90..00000000 --- a/elpa/color-theme-tango-0.0.2/color-theme-tango.el +++ /dev/null @@ -1,85 +0,0 @@ -;;; color-theme-tango.el --- Tango palette color theme for GNU Emacs. - -;; Taken from http://www.emacswiki.org/emacs/color-theme-tango.el - -;; Copyright (C) 2010 danranx@gmail.com - -;; Author: danranx@gmail.com -;; Keywords: tango color theme -;; URL: http://github.com/gorakhargosh/color-themes-collection -;; Version: 0.0.2 -;; Package-Requires: ((color-theme "6.6.1")) - -;; This file is NOT a part of GNU Emacs. - -;;; License: - -;; This is free software; you can redistribute it and/or modify it under -;; the terms of the GNU General Public License as published by the Free -;; Software Foundation; either version 2, or (at your option) any later -;; version. -;; -;; This is distributed in the hope that it will be useful, but WITHOUT -;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -;; for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, -;; MA 02111-1307, USA. - -;;; Code: - - -(require 'color-theme) - -(defun color-theme-tango () - "A color theme based on Tango Palette." - (interactive) - (color-theme-install - '(color-theme-tango - ((background-color . "#2e3436") - (background-mode . dark) - (border-color . "#888a85") - (cursor-color . "#fce94f") - (foreground-color . "#eeeeec") - (mouse-color . "#8ae234")) - ((help-highlight-face . underline) - (ibuffer-dired-buffer-face . font-lock-function-name-face) - (ibuffer-help-buffer-face . font-lock-comment-face) - (ibuffer-hidden-buffer-face . font-lock-warning-face) - (ibuffer-occur-match-face . font-lock-warning-face) - (ibuffer-read-only-buffer-face . font-lock-type-face) - (ibuffer-special-buffer-face . font-lock-keyword-face) - (ibuffer-title-face . font-lock-type-face)) - (border ((t (:background "#888a85")))) - (fringe ((t (:background "grey10")))) - (mode-line ((t (:foreground "#eeeeec" :background "#555753")))) - (region ((t (:background "#555753")))) - (font-lock-builtin-face ((t (:foreground "#729fcf")))) - (font-lock-comment-face ((t (:foreground "#888a85")))) - (font-lock-constant-face ((t (:foreground "#8ae234")))) - (font-lock-doc-face ((t (:foreground "#888a85")))) - (font-lock-keyword-face ((t (:foreground "#729fcf" :bold t)))) - (font-lock-string-face ((t (:foreground "#ad7fa8" :italic t)))) - (font-lock-type-face ((t (:foreground "#8ae234" :bold t)))) - (font-lock-variable-name-face ((t (:foreground "#eeeeec")))) - (font-lock-warning-face ((t (:bold t :foreground "#f57900")))) - (font-lock-function-name-face ((t (:foreground "#edd400" :bold t :italic t)))) - (comint-highlight-input ((t (:italic t :bold t)))) - (comint-highlight-prompt ((t (:foreground "#8ae234")))) - (isearch ((t (:background "#f57900" :foreground "#2e3436")))) - (isearch-lazy-highlight-face ((t (:foreground "#2e3436" :background "#e9b96e")))) - (show-paren-match-face ((t (:foreground "#2e3436" :background "#73d216")))) - (show-paren-mismatch-face ((t (:background "#ad7fa8" :foreground "#2e3436")))) - (minibuffer-prompt ((t (:foreground "#729fcf" :bold t)))) - (info-xref ((t (:foreground "#729fcf")))) - (info-xref-visited ((t (:foreground "#ad7fa8")))) - ))) - -(color-theme-tango) - -(provide 'color-theme-tango) - -;;; color-theme-tango.el ends here diff --git a/elpa/ctags-20110911.304/ctags-autoloads.el b/elpa/ctags-20110911.304/ctags-autoloads.el index 5339aa79..f2fa20bd 100644 --- a/elpa/ctags-20110911.304/ctags-autoloads.el +++ b/elpa/ctags-20110911.304/ctags-autoloads.el @@ -3,8 +3,8 @@ ;;; Code: -;;;### (autoloads nil nil ("ctags-pkg.el" "ctags.el") (21317 48750 -;;;;;; 589620)) +;;;### (autoloads nil nil ("ctags-pkg.el" "ctags.el") (21323 36296 +;;;;;; 915014 0)) ;;;*** diff --git a/elpa/ctags-readme.txt b/elpa/ctags-readme.txt deleted file mode 100644 index 8ecc8b01..00000000 --- a/elpa/ctags-readme.txt +++ /dev/null @@ -1,26 +0,0 @@ -Configuration example: - -(setq tags-revert-without-query t) -(global-set-key (kbd "") 'ctags-create-or-update-tags-table) - -Then just press to update or create your TAGS file. That function look -for a file TAGS in the current and its parent directories, if a TAG file is -not found it ask you where create a new one. - -Optionally you can use the function `ctags-search', a little wrapper for -`tags-search' that provides a default input like in `find-tag', to search -through all files listed in tags table. - -Also, if you prefer, you can override the key binding M-. for `find-tag' to -use `ctags-search': - -(global-set-key (kbd "M-.") 'ctags-search) - -Installation: - -Add this to your Emacs configuration: - -(add-to-list 'load-path "/folder/containing/file") -(require 'ctags) - -Alternatively, you can install it using the Marmalade ELPA repository. diff --git a/elpa/ctags-update-20131125.743/ctags-update-autoloads.el b/elpa/ctags-update-20131125.743/ctags-update-autoloads.el index 97e35a6b..ed4726c1 100644 --- a/elpa/ctags-update-20131125.743/ctags-update-autoloads.el +++ b/elpa/ctags-update-20131125.743/ctags-update-autoloads.el @@ -4,7 +4,8 @@ ;;;### (autoloads (turn-on-ctags-auto-update-mode ctags-auto-update-mode -;;;;;; ctags-update) "ctags-update" "ctags-update.el" (21317 48806)) +;;;;;; ctags-update) "ctags-update" "ctags-update.el" (21323 36299 +;;;;;; 0 0)) ;;; Generated autoloads from ctags-update.el (autoload 'ctags-update "ctags-update" "\ @@ -28,7 +29,8 @@ turn on `ctags-auto-update-mode'. ;;;*** -;;;### (autoloads nil nil ("ctags-update-pkg.el") (21317 48806 455939)) +;;;### (autoloads nil nil ("ctags-update-pkg.el") (21323 36299 510842 +;;;;;; 0)) ;;;*** diff --git a/elpa/ctags-update-readme.txt b/elpa/ctags-update-readme.txt deleted file mode 100644 index 824ea0ac..00000000 --- a/elpa/ctags-update-readme.txt +++ /dev/null @@ -1,35 +0,0 @@ -Just put ctags-update.el to your load-path. -The load-path is usually ~/elisp/. -It's set in your ~/.emacs like this: -(add-to-list 'load-path (expand-file-name "~/elisp")) - -And the following to your ~/.emacs startup file. - -(autoload 'turn-on-ctags-auto-update-mode "ctags-update" "turn on `ctags-auto-update-mode'." t) -(add-hook 'c-mode-common-hook 'turn-on-ctags-auto-update-mode) -... -(add-hook 'emacs-lisp-mode-hook 'turn-on-ctags-auto-update-mode) - -then when you save a file ,`ctags-auto-update-mode' will recursively searches each -parent directory for a file named 'TAGS'. if found ,it will use -`exuberant-ctags' update TAGS, -it would not be updated if last time calling `ctags-update' is not 5 minute age(default). -if no 'TAGS' found ,it will check `tags-table-list' and `tags-file-name' -if current buffer shares the same parent directory with `tags-file-name' or one element of -`tags-table-list' , it will auto create 'TAGS' file -eq: - (setq tags-file-name "/tmp/TAGS") - or - (setq tags-table-list '("/tmp/TAGS")) - -if you want to update (create) TAGS manually -you can - (autoload 'ctags-update "ctags-update" "update TAGS using ctags" t) - (global-set-key "\C-cE" 'ctags-update) -with prefix `C-u' ,then you can generate a new TAGS file in your selected directory, -with prefix `C-uC-u' same to prefix `C-u',but save it to kill-ring instead of execute it." - - -on windows ,you can custom `ctags-update-command' like this: -(when (equal system-type 'windows-nt) - (setq ctags-update-command (expand-file-name "~/.emacs.d/bin/ctags.exe"))) diff --git a/elpa/elisp-slime-nav-0.3/elisp-slime-nav-autoloads.el b/elpa/elisp-slime-nav-0.3/elisp-slime-nav-autoloads.el deleted file mode 100644 index 622d29a4..00000000 --- a/elpa/elisp-slime-nav-0.3/elisp-slime-nav-autoloads.el +++ /dev/null @@ -1,38 +0,0 @@ -;;; elisp-slime-nav-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads (elisp-slime-nav-find-elisp-thing-at-point elisp-slime-nav-mode) -;;;;;; "elisp-slime-nav" "elisp-slime-nav.el" (20815 22617 0 0)) -;;; Generated autoloads from elisp-slime-nav.el - -(autoload 'elisp-slime-nav-mode "elisp-slime-nav" "\ -Enable Slime-style navigation of elisp symbols using M-. and M-, - -\(fn &optional ARG)" t nil) - -(autoload 'elisp-slime-nav-find-elisp-thing-at-point "elisp-slime-nav" "\ -Jump to the elisp thing at point, be it a function,variable, library or face. - -With a prefix arg, prompt for the symbol to jump to. - -Argument SYM-NAME thing to find. - -\(fn SYM-NAME)" t nil) - -;;;*** - -;;;### (autoloads nil nil ("elisp-slime-nav-pkg.el") (20815 22617 -;;;;;; 967506 0)) - -;;;*** - -(provide 'elisp-slime-nav-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; elisp-slime-nav-autoloads.el ends here diff --git a/elpa/elisp-slime-nav-0.3/elisp-slime-nav-pkg.el b/elpa/elisp-slime-nav-0.3/elisp-slime-nav-pkg.el deleted file mode 100644 index 3525a625..00000000 --- a/elpa/elisp-slime-nav-0.3/elisp-slime-nav-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "elisp-slime-nav" "0.3" "Make M-. and M-, work in elisp like they do in slime" (quote nil)) diff --git a/elpa/elisp-slime-nav-0.3/elisp-slime-nav.el b/elpa/elisp-slime-nav-0.3/elisp-slime-nav.el deleted file mode 100644 index 2ebfd4e0..00000000 --- a/elpa/elisp-slime-nav-0.3/elisp-slime-nav.el +++ /dev/null @@ -1,82 +0,0 @@ - -;;; elisp-slime-nav.el --- Make M-. and M-, work in elisp like they do in slime -;; -;; Author: Steve Purcell -;; Keywords: navigation slime elisp emacs-lisp -;; URL: https://github.com/purcell/elisp-slime-nav -;; Version: 0.3 -;; -;;; Commentary -;; -;; This package provides Slime's convenient "M-." and "M-," navigation -;; in `emacs-lisp-mode'. -;; -;; Additionally, C-u M-. will prompt for the symbol to which to jump. -;; -;; Usage: -;; -;; (require 'elisp-slime-nav) -;; (add-hook 'emacs-lisp-mode-hook (lambda () (elisp-slime-nav-mode t))) -;; -;; Known issues: -;; -;; When navigating into Emacs' C source, "M-," will not be bound to -;; the same command, but "M-*" will typically do the trick. -;; -;;; Code -(defvar elisp-slime-nav-mode-map (make-keymap)) - -;;;###autoload -(define-minor-mode elisp-slime-nav-mode - "Enable Slime-style navigation of elisp symbols using M-. and M-," - nil " SliNav" elisp-slime-nav-mode-map) - -(eval-when-compile (require 'cl)) -(require 'etags) - - -(defun elisp-slime-nav--all-navigable-symbol-names () - "Return a list of strings for the symbols to which navigation is possible." - (loop for x being the symbols - if (or (fboundp x) (boundp x) (symbol-plist x) (facep x)) - collect (symbol-name x))) - -;;;###autoload -(defun elisp-slime-nav-find-elisp-thing-at-point (sym-name) - "Jump to the elisp thing at point, be it a function,variable, library or face. - -With a prefix arg, prompt for the symbol to jump to. - -Argument SYM-NAME thing to find." - (interactive - (list - (let* ((sym-at-point (symbol-at-point)) - (at-point (and sym-at-point (symbol-name sym-at-point)))) - (if current-prefix-arg - (completing-read "Symbol: " - (elisp-slime-nav--all-navigable-symbol-names) - nil t at-point) - at-point)))) - (when sym-name - (let ((sym (intern sym-name))) - (message "search for %s" (pp-to-string sym)) - (ring-insert find-tag-marker-ring (point-marker)) - (cond - ((fboundp sym) (find-function sym)) - ((boundp sym) (find-variable sym)) - ((or (featurep sym) (locate-library sym-name)) - (find-library sym-name)) - ((facep sym) - (find-face-definition sym)) - (:else - (progn - (pop-tag-mark) - (error "Don't know how to find '%s'" sym))))))) - - -(define-key elisp-slime-nav-mode-map (kbd "M-.") 'elisp-slime-nav-find-elisp-thing-at-point) -(define-key elisp-slime-nav-mode-map (kbd "M-,") 'pop-tag-mark) - - -(provide 'elisp-slime-nav) -;;; elisp-slime-nav.el ends here diff --git a/elpa/evil-1.0.1/COPYING b/elpa/evil-1.0.1/COPYING deleted file mode 100644 index 94a9ed02..00000000 --- a/elpa/evil-1.0.1/COPYING +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/elpa/evil-1.0.1/evil-autoloads.el b/elpa/evil-1.0.1/evil-autoloads.el deleted file mode 100644 index a7a21dd6..00000000 --- a/elpa/evil-1.0.1/evil-autoloads.el +++ /dev/null @@ -1,26 +0,0 @@ -;;; evil-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads nil "evil-core" "evil-core.el" (20836 47458)) -;;; Generated autoloads from evil-core.el - (autoload 'evil-mode "evil" "Toggle evil in all buffers" t) - -;;;*** - -;;;### (autoloads nil nil ("evil-commands.el" "evil-common.el" "evil-digraphs.el" -;;;;;; "evil-ex.el" "evil-integration.el" "evil-macros.el" "evil-maps.el" -;;;;;; "evil-pkg.el" "evil-repeat.el" "evil-search.el" "evil-states.el" -;;;;;; "evil-types.el" "evil-vars.el" "evil.el") (20836 47458 860825)) - -;;;*** - -(provide 'evil-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; evil-autoloads.el ends here diff --git a/elpa/evil-1.0.1/evil-commands.el b/elpa/evil-1.0.1/evil-commands.el deleted file mode 100644 index 80b3c531..00000000 --- a/elpa/evil-1.0.1/evil-commands.el +++ /dev/null @@ -1,3611 +0,0 @@ -;;; evil-commands.el --- Evil commands and operators -;; Author: Vegard Ă˜ye -;; Maintainer: Vegard Ă˜ye - -;; Version: 1.0.1 - -;; -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; This file is part of Evil. -;; -;; Evil is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; Evil is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Evil. If not, see . - -(require 'evil-common) -(require 'evil-digraphs) -(require 'evil-search) -(require 'evil-ex) -(require 'evil-types) - -;;; Motions - -;; Movement commands, or motions, are defined with the macro -;; `evil-define-motion'. A motion is a command with an optional -;; argument COUNT (interactively accessed by the code ""). -;; It may specify the :type command property (e.g., :type line), -;; which determines how it is handled by an operator command. -;; Furthermore, the command must have the command properties -;; :keep-visual t and :repeat motion; these are automatically -;; set by the `evil-define-motion' macro. - -;;; Code: - -(evil-define-motion evil-forward-char (count &optional crosslines noerror) - "Move cursor to the right by COUNT characters. -Movement is restricted to the current line unless CROSSLINES is non-nil. -If NOERROR is non-nil, don't signal an error upon reaching the end -of the line or the buffer; just return nil." - :type exclusive - (interactive "" (list evil-cross-lines - (evil-kbd-macro-suppress-motion-error))) - (cond - (noerror - (condition-case nil - (evil-forward-char count crosslines nil) - (error nil))) - ((not crosslines) - ;; for efficiency, narrow the buffer to the projected - ;; movement before determining the current line - (evil-with-restriction - (point) - (save-excursion - (evil-forward-char (1+ (or count 1)) t t) - (point)) - (evil-narrow-to-line - (evil-forward-char count t noerror)))) - (t - (evil-motion-loop (nil (or count 1)) - (forward-char) - ;; don't put the cursor on a newline - (when (and evil-move-cursor-back - (not (evil-visual-state-p)) - (not (evil-operator-state-p)) - (eolp) (not (eobp)) (not (bolp))) - (forward-char)))))) - -(evil-define-motion evil-backward-char (count &optional crosslines noerror) - "Move cursor to the left by COUNT characters. -Movement is restricted to the current line unless CROSSLINES is non-nil. -If NOERROR is non-nil, don't signal an error upon reaching the beginning -of the line or the buffer; just return nil." - :type exclusive - (interactive "" (list evil-cross-lines - (evil-kbd-macro-suppress-motion-error))) - (cond - (noerror - (condition-case nil - (evil-backward-char count crosslines nil) - (error nil))) - ((not crosslines) - ;; restrict movement to the current line - (evil-with-restriction - (save-excursion - (evil-backward-char (1+ (or count 1)) t t) - (point)) - (1+ (point)) - (evil-narrow-to-line - (evil-backward-char count t noerror)))) - (t - (evil-motion-loop (nil (or count 1)) - (backward-char) - ;; don't put the cursor on a newline - (unless (or (evil-visual-state-p) (evil-operator-state-p)) - (evil-adjust-cursor)))))) - -(evil-define-motion evil-next-line (count) - "Move the cursor COUNT lines down." - :type line - (let (line-move-visual) - (evil-line-move (or count 1)))) - -(evil-define-motion evil-previous-line (count) - "Move the cursor COUNT lines up." - :type line - (let (line-move-visual) - (evil-line-move (- (or count 1))))) - -(evil-define-motion evil-next-visual-line (count) - "Move the cursor COUNT screen lines down." - :type exclusive - (let ((line-move-visual t)) - (evil-line-move (or count 1)))) - -(evil-define-motion evil-previous-visual-line (count) - "Move the cursor COUNT screen lines up." - :type exclusive - (let ((line-move-visual t)) - (evil-line-move (- (or count 1))))) - -;; used for repeated commands like "dd" -(evil-define-motion evil-line (count) - "Move COUNT - 1 lines down." - :type line - (let (line-move-visual) - ;; Catch bob and eob errors. These are caused when not moving - ;; point starting in the first or last line, respectively. In this - ;; case the current line should be selected. - (condition-case err - (evil-line-move (1- (or count 1))) - ((beginning-of-buffer end-of-buffer))))) - -(evil-define-motion evil-beginning-of-line () - "Move the cursor to the beginning of the current line." - :type exclusive - (move-beginning-of-line nil)) - -(evil-define-motion evil-end-of-line (count) - "Move the cursor to the end of the current line. -If COUNT is given, move COUNT - 1 lines downward first." - :type inclusive - (move-end-of-line count) - (when evil-track-eol - (setq temporary-goal-column most-positive-fixnum - this-command 'next-line)) - (unless (evil-visual-state-p) - (evil-adjust-cursor) - (when (eolp) - ;; prevent "c$" and "d$" from deleting blank lines - (setq evil-this-type 'exclusive)))) - -(evil-define-motion evil-beginning-of-visual-line () - "Move the cursor to the first character of the current screen line." - :type exclusive - (if (fboundp 'beginning-of-visual-line) - (beginning-of-visual-line) - (beginning-of-line))) - -(evil-define-motion evil-end-of-visual-line (count) - "Move the cursor to the last character of the current screen line. -If COUNT is given, move COUNT - 1 screen lines downward first." - :type inclusive - (if (fboundp 'end-of-visual-line) - (end-of-visual-line count) - (end-of-line count))) - -(evil-define-motion evil-beginning-of-line-or-digit-argument () - "Move the cursor to the beginning of the current line. -This function passes its command to `digit-argument' (usually a 0) -if it is not the first event." - :type exclusive - (cond - (current-prefix-arg - (setq this-command #'digit-argument) - (call-interactively #'digit-argument)) - (t - (setq this-command #'evil-beginning-of-line) - (call-interactively #'evil-beginning-of-line)))) - -(evil-define-motion evil-first-non-blank () - "Move the cursor to the first non-blank character of the current line." - :type exclusive - (evil-narrow-to-line (back-to-indentation))) - -(evil-define-motion evil-last-non-blank (count) - "Move the cursor to the last non-blank character of the current line. -If COUNT is given, move COUNT - 1 lines downward first." - :type inclusive - (goto-char - (save-excursion - (evil-move-beginning-of-line count) - (if (re-search-forward "[ \t]*$") - (max (line-beginning-position) - (1- (match-beginning 0))) - (line-beginning-position))))) - -(evil-define-motion evil-first-non-blank-of-visual-line () - "Move the cursor to the first non blank character -of the current screen line." - :type exclusive - (evil-beginning-of-visual-line) - (skip-chars-forward " \t\r")) - -(evil-define-motion evil-next-line-first-non-blank (count) - "Move the cursor COUNT lines down on the first non-blank character." - :type line - (evil-next-line (or count 1)) - (evil-first-non-blank)) - -(evil-define-motion evil-next-line-1-first-non-blank (count) - "Move the cursor COUNT-1 lines down on the first non-blank character." - :type line - (evil-next-line (1- (or count 1))) - (evil-first-non-blank)) - -(evil-define-motion evil-previous-line-first-non-blank (count) - "Move the cursor COUNT lines up on the first non-blank character." - :type line - (evil-previous-line (or count 1)) - (evil-first-non-blank)) - -(evil-define-motion evil-goto-line (count) - "Go to the first non-blank character of line COUNT. -By default the last line." - :jump t - :type line - (if (null count) - (goto-char (point-max)) - (goto-char (point-min)) - (forward-line (1- count))) - (evil-first-non-blank)) - -(evil-define-motion evil-goto-first-line (count) - "Go to the first non-blank character of line COUNT. -By default the first line." - :jump t - :type line - (evil-goto-line (or count 1))) - -(evil-define-motion evil-move-empty-lines (count) - "Move to the next or previous empty line, repeated COUNT times." - :type exclusive - (evil-motion-loop (var (or count 1)) - (cond - ((< var 0) - (goto-char - (or (save-excursion - (unless (bobp) - (backward-char) - (re-search-backward "^$" nil t))) - (point)))) - (t - (let ((orig (point))) - (when (re-search-forward "^$" nil t) - (if (eobp) - (goto-char orig) - (forward-char)))))))) - -(evil-define-union-move evil-move-word (count) - "Move by words." - (evil-move-chars "^ \t\r\n[:word:]" count) - (let ((word-separating-categories evil-cjk-word-separating-categories) - (word-combining-categories evil-cjk-word-combining-categories)) - (evil-forward-word count)) - (evil-move-empty-lines count)) - -(evil-define-union-move evil-move-WORD (count) - "Move by WORDs." - (evil-move-chars evil-bigword count) - (evil-move-empty-lines count)) - -(evil-define-motion evil-forward-word-begin (count &optional bigword) - "Move the cursor to the beginning of the COUNT-th next word. -If BIGWORD is non-nil, move by WORDS." - :type exclusive - (let ((move (if bigword #'evil-move-WORD #'evil-move-word)) - (orig (point))) - (prog1 (if (and evil-want-change-word-to-end - (not (looking-at "[[:space:]]")) - (eq evil-this-operator #'evil-change)) - (evil-move-end count move) - (evil-move-beginning count move)) - ;; if we reached the beginning of a word on a new line in - ;; Operator-Pending state, go back to the end of the previous - ;; line - (when (and (evil-operator-state-p) - (> (line-beginning-position) orig) - (looking-back "^[[:space:]]*" (line-beginning-position))) - ;; move cursor back as long as the line contains only - ;; whitespaces and is non-empty - (evil-move-end-of-line 0) - ;; skip non-empty lines containing only spaces - (while (and (looking-back "^[[:space:]]+$" (line-beginning-position)) - (not (<= (line-beginning-position) orig))) - (evil-move-end-of-line 0)) - ;; but if the previous line is empty, delete this line - (when (bolp) (forward-char)))))) - -(evil-define-motion evil-forward-word-end (count &optional bigword) - "Move the cursor to the end of the COUNT-th next word. -If BIGWORD is non-nil, move by WORDS." - :type inclusive - (let ((move (if bigword #'evil-move-WORD #'evil-move-word))) - ;; if changing a one-letter word, don't move point to the - ;; next word (which would change two words) - (if (and (evil-operator-state-p) - (looking-at "[[:word:]]")) - (prog1 (evil-move-end count move) - (unless (bobp) (backward-char))) - (evil-move-end count move nil t)))) - -(evil-define-motion evil-backward-word-begin (count &optional bigword) - "Move the cursor to the beginning of the COUNT-th previous word. -If BIGWORD is non-nil, move by WORDS." - :type exclusive - (let ((move (if bigword #'evil-move-WORD #'evil-move-word))) - (evil-move-beginning (- (or count 1)) move))) - -(evil-define-motion evil-backward-word-end (count &optional bigword) - "Move the cursor to the end of the COUNT-th previous word. -If BIGWORD is non-nil, move by WORDS." - :type inclusive - (let ((move (if bigword #'evil-move-WORD #'evil-move-word))) - (evil-move-end (- (or count 1)) move nil t))) - -(evil-define-motion evil-forward-WORD-begin (count) - "Move the cursor to the beginning of the COUNT-th next WORD." - :type exclusive - (evil-forward-word-begin count t)) - -(evil-define-motion evil-forward-WORD-end (count) - "Move the cursor to the end of the COUNT-th next WORD." - :type inclusive - (evil-forward-word-end count t)) - -(evil-define-motion evil-backward-WORD-begin (count) - "Move the cursor to the beginning of the COUNT-th previous WORD." - :type exclusive - (evil-backward-word-begin count t)) - -(evil-define-motion evil-backward-WORD-end (count) - "Move the cursor to the end of the COUNT-th previous WORD." - :type inclusive - (evil-backward-word-end count t)) - -;; section movement -(evil-define-motion evil-forward-section-begin (count) - "Move the cursor to the beginning of the COUNT-th next section." - :jump t - :type exclusive - (beginning-of-defun (- (or count 1)))) - -(evil-define-motion evil-forward-section-end (count) - "Move the cursor to the end of the COUNT-th next section." - :jump t - :type inclusive - (end-of-defun (or count 1))) - -(evil-define-motion evil-backward-section-begin (count) - "Move the cursor to the beginning of the COUNT-th previous section." - :jump t - :type exclusive - (beginning-of-defun (or count 1))) - -(evil-define-motion evil-backward-section-end (count) - "Move the cursor to the end of the COUNT-th previous section." - :jump t - :type inclusive - (end-of-defun (- (or count 1)))) - -(evil-define-motion evil-forward-sentence (count) - "Move to the next COUNT-th beginning of a sentence or end of a paragraph." - :jump t - :type exclusive - (let ((count (or count 1)) - beg-sentence end-paragraph) - (when (evil-eobp) - (signal 'end-of-buffer nil)) - (evil-motion-loop (nil count) - (unless (eobp) - (setq beg-sentence - (save-excursion - (and (zerop (evil-move-beginning 1 #'evil-move-sentence)) - (point))) - end-paragraph - (save-excursion - (forward-paragraph) - (point))) - (evil-goto-min beg-sentence end-paragraph))))) - -(evil-define-motion evil-backward-sentence (count) - "Move to the previous COUNT-th beginning of a sentence or paragraph." - :jump t - :type exclusive - (let ((count (or count 1)) - beg-sentence beg-paragraph) - (when (bobp) - (signal 'beginning-of-buffer nil)) - (evil-motion-loop (nil count) - (unless (bobp) - (setq beg-sentence - (save-excursion - (and (zerop (evil-move-beginning -1 #'evil-move-sentence)) - (point))) - beg-paragraph - (save-excursion - (backward-paragraph) - (point))) - (evil-goto-max beg-sentence beg-paragraph))))) - -(evil-define-motion evil-forward-paragraph (count) - "Move to the end of the COUNT-th next paragraph." - :jump t - :type exclusive - (evil-move-end count #'forward-paragraph #'backward-paragraph)) - -(evil-define-motion evil-backward-paragraph (count) - "Move to the beginning of the COUNT-th previous paragraph." - :jump t - :type exclusive - (evil-move-beginning (- (or count 1)) - #'forward-paragraph #'backward-paragraph)) - -(evil-define-motion evil-jump-item (count) - "Find the next item in this line after or under the cursor -and jump to the corresponding one." - :jump t - :type inclusive - (cond - ;; COUNT% jumps to a line COUNT percentage down the file - (count - (goto-char - (evil-normalize-position - (let ((size (- (point-max) (point-min)))) - (+ (point-min) - (if (> size 80000) - (* count (/ size 100)) - (/ (* count size) 100)))))) - (back-to-indentation) - (setq evil-this-type 'line)) - ((and (evil-looking-at-start-comment t) - (let ((pnt (point))) - (forward-comment 1) - (or (not (bolp)) - (prog1 nil (goto-char pnt))))) - (backward-char)) - ((and (not (eolp)) (evil-looking-at-end-comment t)) - (forward-comment -1)) - ((and - (memq major-mode '(c-mode c++-mode)) - (require 'hideif nil t) - (with-no-warnings - (let* ((hif-else-regexp (concat hif-cpp-prefix "\\(?:else\\|elif[ \t]+\\)")) - (hif-ifx-else-endif-regexp - (concat hif-ifx-regexp "\\|" hif-else-regexp "\\|" hif-endif-regexp))) - (cond - ((save-excursion (beginning-of-line) (or (hif-looking-at-ifX) (hif-looking-at-else))) - (hif-find-next-relevant) - (while (hif-looking-at-ifX) - (hif-ifdef-to-endif) - (hif-find-next-relevant)) - t) - ((save-excursion (beginning-of-line) (hif-looking-at-endif)) - (hif-endif-to-ifdef) - t)))))) - (t - (let* ((open (point-max)) - (close (point-max)) - (open-pair (condition-case nil - (save-excursion - (setq open (1- (scan-lists (point) 1 -1))) - (when (< open (line-end-position)) - (goto-char open) - (forward-list) - (1- (point)))) - (error nil))) - (close-pair (condition-case nil - (save-excursion - (setq close (1- (scan-lists (point) 1 1))) - (when (< close (line-end-position)) - (goto-char (1+ close)) - (backward-list) - (point))) - (error nil)))) - (cond - ((not (or open-pair close-pair)) - ;; nothing found, check if we are inside a string - (let ((pnt (point)) - (state (syntax-ppss (point)))) - (if (not (evil-in-string-p)) - ;; no, then we really failed - (error "No matching item found on the current line") - ;; yes, go to the end of the string and try again - (let ((endstr (evil-string-end (point) (line-end-position)))) - (when (or (evil-in-string-p endstr) ; not at end of string - (condition-case nil - (progn - (goto-char endstr) - (evil-jump-item) - nil) - (error t))) - ;; failed again, go back to original point - (goto-char pnt) - (error "No matching item found on the current line")))))) - ((< open close) (goto-char open-pair)) - (t (goto-char close-pair))))))) - -(evil-define-motion evil-previous-open-paren (count) - "Go to [count] previous unmatched '('." - :type exclusive - (let ((range (save-excursion - (backward-char) - (evil-paren-range count nil nil nil ?\( ?\))))) - (when range - (goto-char (evil-range-beginning range))))) - -(evil-define-motion evil-next-close-paren (count) - "Go to [count] next unmatched ')'." - :type exclusive - (let ((range (save-excursion - (forward-char) - (evil-paren-range count nil nil nil ?\( ?\))))) - (when range - (goto-char (1- (evil-range-end range)))))) - -(evil-define-motion evil-previous-open-brace (count) - "Go to [count] previous unmatched '{'." - :type exclusive - (let ((range (save-excursion - (backward-char) - (evil-paren-range count nil nil nil ?\{ ?\})))) - (when range - (goto-char (evil-range-beginning range))))) - -(evil-define-motion evil-next-close-brace (count) - "Go to [count] next unmatched '}'." - :type exclusive - (let ((range (save-excursion - (forward-char) - (evil-paren-range count nil nil nil ?\{ ?\})))) - (when range - (goto-char (1- (evil-range-end range)))))) - -(evil-define-motion evil-find-char (count char) - "Move to the next COUNT'th occurrence of CHAR." - :jump t - :type inclusive - (interactive "") - (setq count (or count 1)) - (let ((fwd (> count 0))) - (setq evil-last-find (list #'evil-find-char char fwd)) - (when fwd (forward-char)) - (let ((case-fold-search nil)) - (unless (prog1 - (search-forward (char-to-string char) - (unless evil-cross-lines - (if fwd - (line-end-position) - (line-beginning-position))) - t count) - (when fwd (backward-char))) - (error "Can't find %c" char))))) - -(evil-define-motion evil-find-char-backward (count char) - "Move to the previous COUNT'th occurrence of CHAR." - :jump t - :type exclusive - (interactive "") - (evil-find-char (- (or count 1)) char)) - -(evil-define-motion evil-find-char-to (count char) - "Move before the next COUNT'th occurrence of CHAR." - :jump t - :type inclusive - (interactive "") - (unwind-protect - (progn - (evil-find-char count char) - (if (> (or count 1) 0) - (backward-char) - (forward-char))) - (setcar evil-last-find #'evil-find-char-to))) - -(evil-define-motion evil-find-char-to-backward (count char) - "Move before the previous COUNT'th occurrence of CHAR." - :jump t - :type exclusive - (interactive "") - (evil-find-char-to (- (or count 1)) char)) - -(evil-define-motion evil-repeat-find-char (count) - "Repeat the last find COUNT times." - :jump t - :type inclusive - (setq count (or count 1)) - (if evil-last-find - (let ((cmd (car evil-last-find)) - (char (nth 1 evil-last-find)) - (fwd (nth 2 evil-last-find)) - evil-last-find) - (funcall cmd (if fwd count (- count)) char) - (unless (nth 2 evil-last-find) - (setq evil-this-type 'exclusive))) - (error "No previous search"))) - -(evil-define-motion evil-repeat-find-char-reverse (count) - "Repeat the last find COUNT times in the opposite direction." - :jump t - :type inclusive - (evil-repeat-find-char (- (or count 1)))) - -;; ceci n'est pas une pipe -(evil-define-motion evil-goto-column (count) - "Go to column COUNT on the current line. -Columns are counted from zero." - :type exclusive - (move-to-column (or count 0))) - -(evil-define-command evil-goto-mark (char &optional noerror) - "Go to the marker specified by CHAR." - :keep-visual t - :repeat nil - :type exclusive - (interactive (list (read-char))) - (let ((marker (evil-get-marker char))) - (cond - ((markerp marker) - (switch-to-buffer (marker-buffer marker)) - (goto-char (marker-position marker))) - ((numberp marker) - (goto-char marker)) - ((consp marker) - (when (or (find-buffer-visiting (car marker)) - (and (y-or-n-p (format "Visit file %s again? " - (car marker))) - (find-file (car marker)))) - (goto-char (cdr marker)))) - ((not noerror) - (error "Marker `%c' is not set%s" char - (if (evil-global-marker-p char) "" - " in this buffer")))))) - -(evil-define-command evil-goto-mark-line (char &optional noerror) - "Go to the line of the marker specified by CHAR." - :keep-visual t - :repeat nil - :type line - (interactive (list (read-char))) - (evil-goto-mark char noerror) - (evil-first-non-blank)) - -(evil-define-motion evil-jump-backward (count) - "Go to older position in jump list. -To go the other way, press \ -\\\\[evil-jump-forward]." - (let ((current-pos (make-marker)) - (count (or count 1)) i) - (unless evil-jump-list - (move-marker current-pos (point)) - (add-to-list 'evil-jump-list current-pos)) - (evil-motion-loop (nil count) - (setq current-pos (make-marker)) - ;; skip past duplicate entries in the mark ring - (setq i (length mark-ring)) - (while (progn (move-marker current-pos (point)) - (set-mark-command 0) - (setq i (1- i)) - (and (= (point) current-pos) (> i 0)))) - ;; Already there? - (move-marker current-pos (point)) - (unless (= current-pos (car-safe evil-jump-list)) - (add-to-list 'evil-jump-list current-pos))))) - -(evil-define-motion evil-jump-forward (count) - "Go to newer position in jump list. -To go the other way, press \ -\\\\[evil-jump-backward]." - (let ((count (or count 1)) - current-pos next-pos) - (evil-motion-loop (nil count) - (setq current-pos (car-safe evil-jump-list) - next-pos (car (cdr-safe evil-jump-list))) - (when next-pos - (push-mark current-pos t nil) - (unless (eq (marker-buffer next-pos) (current-buffer)) - (switch-to-buffer (marker-buffer next-pos))) - (goto-char next-pos) - (pop evil-jump-list))))) - -(evil-define-motion evil-jump-to-tag (arg) - "Jump to tag under point. -If called with a prefix argument, provide a prompt -for specifying the tag." - :jump t - (interactive "P") - (if arg (call-interactively #'find-tag) - (let ((tag (thing-at-point 'symbol))) - (find-tag tag)))) - -(evil-define-motion evil-lookup () - "Look up the keyword at point. -Calls `evil-lookup-func'." - (funcall evil-lookup-func)) - -(evil-define-motion evil-ret (count) - "Move the cursor COUNT lines down. -If point is on a widget or a button, click on it. -In Insert state, insert a newline." - :type line - (let* ((field (get-char-property (point) 'field)) - (button (get-char-property (point) 'button)) - (doc (get-char-property (point) 'widget-doc)) - (widget (or field button doc))) - (cond - ((and widget - (fboundp 'widget-type) - (fboundp 'widget-button-press) - (or (and (symbolp widget) - (get widget 'widget-type)) - (and (consp widget) - (get (widget-type widget) 'widget-type)))) - (when (evil-operator-state-p) - (setq evil-inhibit-operator t)) - (when (fboundp 'widget-button-press) - (widget-button-press (point)))) - ((and (fboundp 'button-at) - (fboundp 'push-button) - (button-at (point))) - (when (evil-operator-state-p) - (setq evil-inhibit-operator t)) - (push-button)) - ((or (evil-emacs-state-p) - (and (evil-insert-state-p) - (not buffer-read-only))) - (if (not evil-auto-indent) - (newline count) - (delete-horizontal-space t) - (newline count) - (indent-according-to-mode))) - (t - (evil-next-line-first-non-blank count))))) - -(evil-define-motion evil-window-top (count) - "Move the cursor to line COUNT from the top of the window -on the first non-blank character." - :jump t - :type line - (move-to-window-line (or count 0)) - (back-to-indentation)) - -(evil-define-motion evil-window-middle () - "Move the cursor to the middle line in the window -on the first non-blank character." - :jump t - :type line - (move-to-window-line - (/ (1+ (save-excursion (move-to-window-line -1))) 2)) - (back-to-indentation)) - -(evil-define-motion evil-window-bottom (count) - "Move the cursor to line COUNT from the bottom of the window -on the first non-blank character." - :jump t - :type line - (move-to-window-line (- (or count 1))) - (back-to-indentation)) - -;; scrolling -(evil-define-command evil-scroll-line-up (count) - "Scrolls the window COUNT lines upwards." - :repeat nil - :keep-visual t - (interactive "p") - (scroll-down count)) - -(evil-define-command evil-scroll-line-down (count) - "Scrolls the window COUNT lines downwards." - :repeat nil - :keep-visual t - (interactive "p") - (scroll-up count)) - -(evil-define-command evil-scroll-up (count) - "Scrolls the window and the cursor COUNT lines upwards. -The default is half the screen." - :repeat nil - :keep-visual t - (interactive "P") - (evil-save-column - (let ((p (point)) - (c (or count (/ (evil-num-visible-lines) 2)))) - (save-excursion - (scroll-down (min (evil-max-scroll-up) c))) - (forward-line (- c)) - (when (= (line-number-at-pos p) - (line-number-at-pos (point))) - (signal 'beginning-of-buffer nil))))) - -(evil-define-command evil-scroll-down (count) - "Scrolls the window and the cursor COUNT lines downwards. -The default is half the screen." - :repeat nil - :keep-visual t - (interactive "P") - (evil-save-column - (let ((p (point)) - (c (or count (/ (evil-num-visible-lines) 2)))) - (save-excursion - (scroll-up (min (evil-max-scroll-down) c))) - (forward-line c) - (when (= (line-number-at-pos p) - (line-number-at-pos (point))) - (signal 'end-of-buffer nil))))) - -(evil-define-command evil-scroll-page-up (count) - "Scrolls the window COUNT pages upwards." - :repeat nil - :keep-visual t - (interactive "p") - (evil-save-column - (dotimes (i count) - (scroll-down nil)))) - -(evil-define-command evil-scroll-page-down (count) - "Scrolls the window COUNT pages upwards." - :repeat nil - :keep-visual t - (interactive "p") - (evil-save-column - (dotimes (i count) - (scroll-up nil)))) - -(evil-define-command evil-scroll-line-to-top (count) - "Scrolls line number COUNT (or the cursor line) to the top of the window." - :repeat nil - :keep-visual t - (interactive "P") - (evil-save-column - (let ((line (or count (line-number-at-pos (point))))) - (goto-char (point-min)) - (forward-line (1- line))) - (recenter 0))) - -(evil-define-command evil-scroll-line-to-center (count) - "Scrolls line number COUNT (or the cursor line) to the center of the window." - :repeat nil - :keep-visual t - (interactive "P") - (evil-save-column - (when count - (goto-char (point-min)) - (forward-line (1- count))) - (recenter nil))) - -(evil-define-command evil-scroll-line-to-bottom (count) - "Scrolls line number COUNT (or the cursor line) to the bottom of the window." - :repeat nil - :keep-visual t - (interactive "P") - (evil-save-column - (let ((line (or count (line-number-at-pos (point))))) - (goto-char (point-min)) - (forward-line (1- line))) - (recenter -1))) - -(evil-define-command evil-scroll-bottom-line-to-top (count) - "Scrolls the line right below the window, -or line COUNT to the top of the window." - :repeat nil - :keep-visual t - (interactive "P") - (if count - (progn - (goto-char (point-min)) - (forward-line (1- count))) - (goto-char (window-end)) - (evil-move-cursor-back)) - (recenter 0) - (evil-first-non-blank)) - -(evil-define-command evil-scroll-top-line-to-bottom (count) - "Scrolls the line right below the window, -or line COUNT to the top of the window." - :repeat nil - :keep-visual t - (interactive "P") - (if count - (progn - (goto-char (point-min)) - (forward-line (1- count))) - (goto-char (window-start))) - (recenter -1) - (evil-first-non-blank)) - -;;; Text objects - -;; Text objects are defined with `evil-define-text-object'. In Visual -;; state, they modify the current selection; in Operator-Pending -;; state, they return a pair of buffer positions. Outer text objects -;; are bound in the keymap `evil-outer-text-objects-map', and inner -;; text objects are bound in `evil-inner-text-objects-map'. -;; -;; Common text objects like words, WORDS, paragraphs and sentences are -;; defined via a corresponding move-function. This function must have -;; the following properties: -;; -;; 1. Take exactly one argument, the count. -;; 2. When the count is positive, move point forward to the first -;; character after the end of the next count-th object. -;; 3. When the count is negative, move point backward to the first -;; character of the count-th previous object. -;; 4. If point is placed on the first character of an object, the -;; backward motion does NOT count that object. -;; 5. If point is placed on the last character of an object, the -;; forward motion DOES count that object. -;; 6. The return value is "count left", i.e., in forward direction -;; count is decreased by one for each successful move and in -;; backward direction count is increased by one for each -;; successful move, returning the final value of count. -;; Therefore, if the complete move is successful, the return -;; value is 0. -;; -;; A useful macro in this regard is `evil-motion-loop', which quits -;; when point does not move further and returns the count difference. -;; It also provides a "unit value" of 1 or -1 for use in each -;; iteration. For example, a hypothetical "foo-bar" move could be -;; written as such: -;; -;; (defun foo-bar (count) -;; (evil-motion-loop (var count) -;; (forward-foo var) ; `var' is 1 or -1 depending on COUNT -;; (forward-bar var))) -;; -;; If "forward-foo" and "-bar" didn't accept negative arguments, -;; we could choose their backward equivalents by inspecting `var': -;; -;; (defun foo-bar (count) -;; (evil-motion-loop (var count) -;; (cond -;; ((< var 0) -;; (backward-foo 1) -;; (backward-bar 1)) -;; (t -;; (forward-foo 1) -;; (forward-bar 1))))) -;; -;; After a forward motion, point has to be placed on the first -;; character after some object, unless no motion was possible at all. -;; Similarly, after a backward motion, point has to be placed on the -;; first character of some object. This implies that point should -;; NEVER be moved to eob or bob, unless an object ends or begins at -;; eob or bob. (Usually, Emacs motions always move as far as possible. -;; But we want to use the motion-function to identify certain objects -;; in the buffer, and thus exact movement to object boundaries is -;; required.) - -(evil-define-text-object evil-a-word (count &optional beg end type) - "Select a word." - (evil-an-object-range count beg end type #'evil-move-word)) - -(evil-define-text-object evil-inner-word (count &optional beg end type) - "Select inner word." - (evil-inner-object-range count beg end type #'evil-move-word)) - -(evil-define-text-object evil-a-WORD (count &optional beg end type) - "Select a WORD." - (evil-an-object-range count beg end type #'evil-move-WORD)) - -(evil-define-text-object evil-inner-WORD (count &optional beg end type) - "Select inner WORD." - (evil-inner-object-range count beg end type #'evil-move-WORD)) - -(evil-define-text-object evil-a-sentence (count &optional beg end type) - "Select a sentence." - (evil-an-object-range count beg end type #'evil-move-sentence nil nil t)) - -(evil-define-text-object evil-inner-sentence (count &optional beg end type) - "Select inner sentence." - (evil-inner-object-range count beg end type #'evil-move-sentence)) - -(evil-define-text-object evil-a-paragraph (count &optional beg end type) - "Select a paragraph." - :type line - (evil-an-object-range count beg end type #'evil-move-paragraph nil nil t)) - -(evil-define-text-object evil-inner-paragraph (count &optional beg end type) - "Select inner paragraph." - :type line - (evil-inner-object-range count beg end type #'evil-move-paragraph)) - -(evil-define-text-object evil-a-paren (count &optional beg end type) - "Select a parenthesis." - :extend-selection nil - (evil-paren-range count beg end type ?\( ?\))) - -(evil-define-text-object evil-inner-paren (count &optional beg end type) - "Select inner parenthesis." - :extend-selection nil - (evil-paren-range count beg end type ?\( ?\) t)) - -(evil-define-text-object evil-a-bracket (count &optional beg end type) - "Select a square bracket." - :extend-selection nil - (evil-paren-range count beg end type ?\[ ?\])) - -(evil-define-text-object evil-inner-bracket (count &optional beg end type) - "Select inner square bracket." - :extend-selection nil - (evil-paren-range count beg end type ?\[ ?\] t)) - -(evil-define-text-object evil-a-curly (count &optional beg end type) - "Select a curly bracket (\"brace\")." - :extend-selection nil - (evil-paren-range count beg end type ?{ ?})) - -(evil-define-text-object evil-inner-curly (count &optional beg end type) - "Select inner curly bracket (\"brace\")." - :extend-selection nil - (evil-paren-range count beg end type ?{ ?} t)) - -(evil-define-text-object evil-an-angle (count &optional beg end type) - "Select an angle bracket." - :extend-selection nil - (evil-paren-range count beg end type ?< ?>)) - -(evil-define-text-object evil-inner-angle (count &optional beg end type) - "Select inner angle bracket." - :extend-selection nil - (evil-paren-range count beg end type ?< ?> t)) - -(evil-define-text-object evil-a-single-quote (count &optional beg end type) - "Select a single-quoted expression." - :extend-selection t - (evil-quote-range count beg end type ?' ?')) - -(evil-define-text-object evil-inner-single-quote (count &optional beg end type) - "Select inner single-quoted expression." - :extend-selection nil - (evil-quote-range count beg end type ?' ?' t)) - -(evil-define-text-object evil-a-double-quote (count &optional beg end type) - "Select a double-quoted expression." - :extend-selection t - (evil-quote-range count beg end type ?\" ?\")) - -(evil-define-text-object evil-inner-double-quote (count &optional beg end type) - "Select inner double-quoted expression." - :extend-selection nil - (evil-quote-range count beg end type ?\" ?\" t)) - -(evil-define-text-object evil-a-back-quote (count &optional beg end type) - "Select a back-quoted expression." - :extend-selection t - (evil-quote-range count beg end type ?\` ?\`)) - -(evil-define-text-object evil-inner-back-quote (count &optional beg end type) - "Select inner back-quoted expression." - :extend-selection nil - (evil-quote-range count beg end type ?\` ?\` t)) - -(evil-define-text-object evil-a-tag (count &optional beg end type) - "Select a tag block." - :extend-selection nil - (evil-xml-range count beg end type)) - -(evil-define-text-object evil-inner-tag (count &optional beg end type) - "Select inner tag block." - :extend-selection nil - (evil-xml-range count beg end type t)) - -(evil-define-text-object evil-a-symbol (count &optional beg end type) - "Select a symbol." - (require 'thingatpt) - (evil-an-object-range count beg end type #'forward-symbol)) - -(evil-define-text-object evil-inner-symbol (count &optional beg end type) - "Select inner symbol." - (require 'thingatpt) - (evil-inner-object-range count beg end type #'forward-symbol)) - -;;; Operator commands - -(evil-define-operator evil-yank (beg end type register yank-handler) - "Saves the characters in motion into the kill-ring." - :move-point nil - :repeat nil - (interactive "") - (cond - ((and (fboundp 'cua--global-mark-active) - (fboundp 'cua-copy-region-to-global-mark) - (cua--global-mark-active)) - (cua-copy-region-to-global-mark beg end)) - ((eq type 'block) - (evil-yank-rectangle beg end register yank-handler)) - ((eq type 'line) - (evil-yank-lines beg end register yank-handler)) - (t - (evil-yank-characters beg end register yank-handler)))) - -(evil-define-operator evil-yank-line (beg end type register) - "Saves whole lines into the kill-ring." - :motion evil-line - :move-point nil - (interactive "") - (evil-yank beg end type register)) - -(evil-define-operator evil-delete (beg end type register yank-handler) - "Delete text from BEG to END with TYPE. -Save in REGISTER or in the kill-ring with YANK-HANDLER." - (interactive "") - (unless register - (let ((text (filter-buffer-substring beg end))) - (unless (string-match-p "\n" text) - ;; set the small delete register - (evil-set-register ?- text)))) - (evil-yank beg end type register yank-handler) - (cond - ((eq type 'block) - (evil-apply-on-block #'delete-region beg end nil)) - ((and (eq type 'line) - (= end (point-max)) - (or (= beg end) - (/= (char-before end) ?\n)) - (/= beg (point-min)) - (= (char-before beg) ?\n)) - (delete-region (1- beg) end)) - (t - (delete-region beg end))) - ;; place cursor on beginning of line - (when (and (evil-called-interactively-p) - (eq type 'line)) - (evil-first-non-blank))) - -(evil-define-operator evil-delete-line (beg end type register yank-handler) - "Delete to end of line." - :motion nil - :keep-visual t - (interactive "") - ;; act linewise in Visual state - (let* ((beg (or beg (point))) - (end (or end beg))) - (when (evil-visual-state-p) - (unless (memq type '(line block)) - (let ((range (evil-expand beg end 'line))) - (setq beg (evil-range-beginning range) - end (evil-range-end range) - type (evil-type range)))) - (evil-exit-visual-state)) - (cond - ((eq type 'block) - ;; equivalent to $d, i.e., we use the block-to-eol selection and - ;; call `evil-delete'. In this case we fake the call to - ;; `evil-end-of-line' by setting `temporary-goal-column' and - ;; `last-command' appropriately as `evil-end-of-line' would do. - (let ((temporary-goal-column most-positive-fixnum) - (last-command 'next-line)) - (evil-delete beg end 'block register yank-handler))) - ((eq type 'line) - (evil-delete beg end type register yank-handler)) - (t - (evil-delete beg (line-end-position) type register yank-handler))))) - -(evil-define-operator evil-delete-whole-line - (beg end type register yank-handler) - "Delete whole line." - :motion evil-line - (interactive "") - (evil-delete beg end type register yank-handler)) - -(evil-define-operator evil-delete-char (beg end type register) - "Delete next character." - :motion evil-forward-char - (interactive "") - (evil-delete beg end type register)) - -(evil-define-operator evil-delete-backward-char (beg end type register) - "Delete previous character." - :motion evil-backward-char - (interactive "") - (evil-delete beg end type register)) - -(evil-define-command evil-delete-backward-word () - "Delete previous word." - (if (and (bolp) (not (bobp))) - (delete-char -1) - (evil-delete (save-excursion - (evil-backward-word-begin) - (point)) - (point) - 'exclusive - nil))) - -(evil-define-operator evil-change - (beg end type register yank-handler delete-func) - "Change text from BEG to END with TYPE. -Save in REGISTER or the kill-ring with YANK-HANDLER. -DELETE-FUNC is a function for deleting text, default `evil-delete'. -If TYPE is `line', insertion starts on an empty line. -If TYPE is `block', the inserted text in inserted at each line -of the block." - (interactive "") - (let ((delete-func (or delete-func #'evil-delete)) - (nlines (1+ (- (line-number-at-pos end) - (line-number-at-pos beg)))) - (opoint (save-excursion - (goto-char beg) - (line-beginning-position)))) - (funcall delete-func beg end type register yank-handler) - (cond - ((eq type 'line) - (if ( = opoint (point)) - (evil-open-above 1) - (evil-open-below 1))) - ((eq type 'block) - (evil-insert 1 nlines)) - (t - (evil-insert 1))))) - -(evil-define-operator evil-change-line (beg end type register yank-handler) - "Change to end of line." - :motion evil-end-of-line - (interactive "") - (evil-change beg end type register yank-handler #'evil-delete-line)) - -(evil-define-operator evil-change-whole-line - (beg end type register yank-handler) - "Change whole line." - :motion evil-line - (interactive "") - (evil-change beg end type register yank-handler #'evil-delete-whole-line)) - -(evil-define-operator evil-substitute (beg end type register) - "Change a character." - :motion evil-forward-char - (interactive "") - (evil-change beg end type register)) - -(evil-define-operator evil-upcase (beg end type) - "Convert text to upper case." - (if (eq type 'block) - (evil-apply-on-block #'evil-upcase beg end nil) - (upcase-region beg end))) - -(evil-define-operator evil-downcase (beg end type) - "Convert text to lower case." - (if (eq type 'block) - (evil-apply-on-block #'evil-downcase beg end nil) - (downcase-region beg end))) - -(evil-define-operator evil-invert-case (beg end type) - "Invert case of text." - (let (char) - (if (eq type 'block) - (evil-apply-on-block #'evil-invert-case beg end nil) - (save-excursion - (goto-char beg) - (while (< beg end) - (setq char (following-char)) - (delete-char 1 nil) - (if (eq (upcase char) char) - (insert-char (downcase char) 1) - (insert-char (upcase char) 1)) - (setq beg (1+ beg))))))) - -(evil-define-operator evil-invert-char (beg end type) - "Invert case of character." - :motion evil-forward-char - (if (eq type 'block) - (evil-apply-on-block #'evil-invert-case beg end nil) - (evil-invert-case beg end) - (when evil-this-motion - (goto-char end)))) - -(evil-define-operator evil-rot13 (beg end type) - "ROT13 encrypt text." - (if (eq type 'block) - (evil-apply-on-block #'evil-rot13 beg end nil) - (rot13-region beg end))) - -(evil-define-operator evil-join (beg end) - "Join the selected lines." - :motion evil-line - (let ((count (count-lines beg end))) - (when (> count 1) - (setq count (1- count))) - (dotimes (var count) - (join-line 1)))) - -(evil-define-operator evil-join-whitespace (beg end) - "Join the selected lines without changing whitespace. -\\Like \\[evil-join], \ -but doesn't insert or remove any spaces." - :motion evil-line - (let ((count (count-lines beg end))) - (when (> count 1) - (setq count (1- count))) - (dotimes (var count) - (evil-move-end-of-line 1) - (unless (eobp) - (delete-char 1))))) - -(evil-define-operator evil-fill (beg end) - "Fill text." - :move-point nil - :type line - (save-excursion - (condition-case nil - (fill-region beg end) - (error nil)))) - -(evil-define-operator evil-fill-and-move (beg end) - "Fill text and move point to the end of the filled region." - :move-point nil - :type line - (let ((marker (make-marker))) - (move-marker marker (1- end)) - (condition-case nil - (progn - (fill-region beg end) - (goto-char marker) - (evil-first-non-blank)) - (error nil)))) - -(evil-define-operator evil-indent (beg end) - "Indent text." - :move-point nil - :type line - (if (and (= beg (line-beginning-position)) - (= end (line-beginning-position 2))) - ;; since some Emacs modes can only indent one line at a time, - ;; implement "==" as a call to `indent-according-to-mode' - (indent-according-to-mode) - (goto-char beg) - (indent-region beg end)) - (back-to-indentation)) - -(evil-define-operator evil-indent-line (beg end) - "Indent the line." - :motion evil-line - (evil-indent beg end)) - -(evil-define-operator evil-shift-left (beg end &optional count) - "Shift text from BEG to END to the left. -The text is shifted to the nearest multiple of `evil-shift-width' -\(the rounding can be disabled by setting `evil-shift-round'). -See also `evil-shift-right'." - :type line - (interactive "") - (let ((beg (set-marker (make-marker) beg)) - (end (set-marker (make-marker) end))) - (dotimes (i (or count 1)) - (if (not evil-shift-round) - (indent-rigidly beg end (- evil-shift-width)) - (let* ((indent - (save-excursion - (goto-char beg) - (evil-move-beginning-of-line) - ;; ignore blank lines - (while (and (< (point) end) (looking-at "[ \t]*$")) - (forward-line)) - (if (> (point) end) 0 - (current-indentation)))) - (offset (1+ (mod (1- indent) evil-shift-width)))) - (indent-rigidly beg end (- offset))))) - (set-marker beg nil) - (set-marker end nil))) - -(evil-define-operator evil-shift-right (beg end &optional count) - "Shift text from BEG to END to the right. -The text is shifted to the nearest multiple of `evil-shift-width' -\(the rounding can be disabled by setting `evil-shift-round'). -See also `evil-shift-left'." - :type line - (interactive "") - (let ((beg (set-marker (make-marker) beg)) - (end (set-marker (make-marker) end))) - (dotimes (i (or count 1)) - (if (not evil-shift-round) - (indent-rigidly beg end evil-shift-width) - (let* ((indent - (save-excursion - (goto-char beg) - (evil-move-beginning-of-line nil) - (while (and (< (point) end) (looking-at "[ \t]*$")) - (forward-line)) - (if (> (point) end) 0 - (current-indentation)))) - (offset (- evil-shift-width (mod indent evil-shift-width)))) - (indent-rigidly beg end offset)))) - (set-marker beg nil) - (set-marker end nil))) - -(evil-define-operator evil-align-left (beg end type &optional width) - "Right-align lines in the region at WIDTH columns. -The default for width is the value of `fill-column'." - :motion evil-line - :type line - (interactive "") - (evil-justify-lines beg end 'left (if width - (string-to-number width) - 0))) - -(evil-define-operator evil-align-right (beg end type &optional width) - "Right-align lines in the region at WIDTH columns. -The default for width is the value of `fill-column'." - :motion evil-line - :type line - (interactive "") - (evil-justify-lines beg end 'right (if width - (string-to-number width) - fill-column))) - -(evil-define-operator evil-align-center (beg end type &optional width) - "Centers lines in the region between WIDTH columns. -The default for width is the value of `fill-column'." - :motion evil-line - :type line - (interactive "") - (evil-justify-lines beg end 'center (if width - (string-to-number width) - fill-column))) - -(evil-define-operator evil-replace (beg end type char) - "Replace text from BEG to END with CHAR." - :motion evil-forward-char - (interactive "" - (evil-save-cursor - (evil-refresh-cursor 'replace) - (list (evil-read-key)))) - (when char - (if (eq type 'block) - (save-excursion - (evil-apply-on-rectangle - #'(lambda (begcol endcol char) - (let ((maxcol (evil-column (line-end-position)))) - (when (< begcol maxcol) - (setq endcol (min endcol maxcol)) - (let ((beg (evil-move-to-column begcol nil t)) - (end (evil-move-to-column endcol nil t))) - (delete-region beg end) - (insert (make-string (- endcol begcol) char)))))) - beg end char)) - (goto-char beg) - (cond - ((eq char ?\n) - (delete-region beg end) - (newline) - (when evil-auto-indent - (indent-according-to-mode))) - (t - (while (< (point) end) - (if (eq (char-after) ?\n) - (forward-char) - (delete-char 1) - (insert-char char 1))) - (goto-char (max beg (1- end)))))))) - -(evil-define-command evil-paste-before - (count &optional register yank-handler) - "Pastes the latest yanked text before the cursor position. -The return value is the yanked text." - :suppress-operator t - (interactive "P") - (if (evil-visual-state-p) - (evil-visual-paste count register) - (evil-with-undo - (let* ((text (if register - (evil-get-register register) - (current-kill 0))) - (yank-handler (or yank-handler - (when (stringp text) - (car-safe (get-text-property - 0 'yank-handler text))))) - (opoint (point))) - (when text - (if (functionp yank-handler) - (let ((evil-paste-count count) - ;; for non-interactive use - (this-command #'evil-paste-before)) - (push-mark opoint t) - (insert-for-yank text)) - ;; no yank-handler, default - (set-text-properties 0 (length text) nil text) - (push-mark opoint t) - (dotimes (i (or count 1)) - (insert-for-yank text)) - (setq evil-last-paste - (list #'evil-paste-before - count - opoint - opoint ; beg - (point))) ; end - (evil-set-marker ?\[ opoint) - (evil-set-marker ?\] (1- (point))) - (when (> (length text) 0) - (backward-char)))) - ;; no paste-pop after pasting from a register - (when register - (setq evil-last-paste nil)) - (and (> (length text) 0) text))))) - -(evil-define-command evil-paste-after - (count &optional register yank-handler) - "Pastes the latest yanked text behind point. -The return value is the yanked text." - :suppress-operator t - (interactive "P") - (if (evil-visual-state-p) - (evil-visual-paste count register) - (evil-with-undo - (let* ((text (if register - (evil-get-register register) - (current-kill 0))) - (yank-handler (or yank-handler - (when (stringp text) - (car-safe (get-text-property - 0 'yank-handler text))))) - (opoint (point))) - (when text - (if (functionp yank-handler) - (let ((evil-paste-count count) - ;; for non-interactive use - (this-command #'evil-paste-after)) - (insert-for-yank text)) - ;; no yank-handler, default - (set-text-properties 0 (length text) nil text) - (unless (eolp) (forward-char)) - (push-mark (point) t) - ;; TODO: Perhaps it is better to collect a list of all - ;; (point . mark) pairs to undo the yanking for COUNT > 1. - ;; The reason is that this yanking could very well use - ;; `yank-handler'. - (let ((beg (point))) - (dotimes (i (or count 1)) - (insert-for-yank text)) - (setq evil-last-paste - (list #'evil-paste-after - count - opoint - beg ; beg - (point))) ; end - (evil-set-marker ?\[ beg) - (evil-set-marker ?\] (1- (point))) - (when (evil-normal-state-p) - (evil-move-cursor-back))))) - (when register - (setq evil-last-paste nil)) - (and (> (length text) 0) text))))) - -(evil-define-command evil-visual-paste (count &optional register) - "Paste over Visual selection." - :suppress-operator t - (interactive "P") - (let* ((text (if register - (evil-get-register register) - (current-kill 0))) - (yank-handler (car-safe (get-text-property - 0 'yank-handler text))) - paste-eob) - (evil-with-undo - (when (evil-visual-state-p) - ;; add replaced text to the kill-ring - (unless register - ;; if pasting from the kill-ring, - ;; add replaced text before the current kill - (setq kill-ring (delete text kill-ring))) - (setq kill-ring-yank-pointer kill-ring) - (evil-visual-rotate 'upper-left) - ;; if we replace the last buffer line that does not end in a - ;; newline, we use `evil-paste-after' because `evil-delete' - ;; will move point to the line above - (when (and (= evil-visual-end (point-max)) - (/= (char-before (point-max)) ?\n)) - (setq paste-eob t)) - (evil-delete evil-visual-beginning evil-visual-end - (evil-visual-type)) - (unless register - (kill-new text)) - (when (and (eq yank-handler #'evil-yank-line-handler) - (not (eq (evil-visual-type) 'line)) - (not (= evil-visual-end (point-max)))) - (insert "\n")) - (evil-normal-state)) - (if paste-eob - (evil-paste-after count register) - (evil-paste-before count register))))) - -(defun evil-paste-from-register (register) - "Paste from REGISTER." - (interactive - (let ((overlay (make-overlay (point) (point))) - (string "\"")) - (unwind-protect - (progn - ;; display " in the buffer while reading register - (put-text-property 0 1 'face 'minibuffer-prompt string) - (put-text-property 0 1 'cursor t string) - (overlay-put overlay 'after-string string) - (list (or evil-this-register (read-char)))) - (delete-overlay overlay)))) - (when (evil-paste-before nil register t) - ;; go to end of pasted text - (forward-char))) - -(evil-define-command evil-use-register (register) - "Use REGISTER for the next command." - :keep-visual t - (interactive "") - (setq evil-this-register register)) - -(evil-define-command evil-record-macro (register) - "Record a keyboard macro into REGISTER." - :keep-visual t - :suppress-operator t - (interactive - (list (unless (and evil-this-macro defining-kbd-macro) - (or evil-this-register (read-char))))) - (cond - ((and evil-this-macro defining-kbd-macro) - (condition-case nil - (end-kbd-macro) - (error nil)) - (when last-kbd-macro - (when (member last-kbd-macro '("" [])) - (setq last-kbd-macro nil)) - (evil-set-register evil-this-macro last-kbd-macro)) - (setq evil-this-macro nil)) - (t - (when defining-kbd-macro (end-kbd-macro)) - (setq evil-this-macro register) - (evil-set-register evil-this-macro nil) - (start-kbd-macro nil)))) - -(evil-define-command evil-execute-macro (count macro) - "Execute keyboard macro MACRO, COUNT times. -When called with a non-numerical prefix \ -\(such as \\[universal-argument]), -COUNT is infinite. MACRO is read from a register -when called interactively." - :keep-visual t - :suppress-operator t - (interactive - (let (count macro register) - (setq count (if current-prefix-arg - (if (numberp current-prefix-arg) - current-prefix-arg - 0) 1) - register (or evil-this-register (read-char))) - (if (eq register ?@) - (setq macro last-kbd-macro) - (setq macro (evil-get-register register t))) - (list count macro))) - (if (or (and (not (stringp macro)) - (not (vectorp macro))) - (member macro '("" []))) - ;; allow references to currently empty registers - ;; when defining macro - (unless evil-this-macro - (error "No previous macro")) - (condition-case err - (execute-kbd-macro macro count) - ;; enter Normal state if the macro fails - (error - (evil-normal-state) - (evil-normalize-keymaps) - (signal (car err) (cdr err)))))) - -;;; Visual commands - -(evil-define-motion evil-visual-restore () - "Restore previous selection." - (let* ((point (point)) - (mark (or (mark t) point)) - (dir evil-visual-direction) - (type (evil-visual-type)) - range) - (unless (evil-visual-state-p) - (cond - ;; No previous selection. - ((or (null evil-visual-selection) - (null evil-visual-mark) - (null evil-visual-point))) - ;; If the type was one-to-one, it is preferable to infer - ;; point and mark from the selection's boundaries. The reason - ;; is that a destructive operation may displace the markers - ;; inside the selection. - ((evil-type-property type :one-to-one) - (setq range (evil-contract-range (evil-visual-range)) - mark (evil-range-beginning range) - point (evil-range-end range)) - (when (< dir 0) - (evil-swap mark point))) - ;; If the type wasn't one-to-one, we have to restore the - ;; selection on the basis of the previous point and mark. - (t - (setq mark evil-visual-mark - point evil-visual-point))) - (evil-visual-make-selection mark point type t)))) - -(evil-define-motion evil-visual-exchange-corners () - "Rearrange corners in Visual Block mode. - - M---+ +---M - | | <=> | | - +---P P---+ - -For example, if mark is in the upper left corner and point -in the lower right, this function puts mark in the upper right -corner and point in the lower left." - (cond - ((eq evil-visual-selection 'block) - (let* ((point (point)) - (mark (or (mark t) point)) - (point-col (evil-column point)) - (mark-col (evil-column mark)) - (mark (save-excursion - (goto-char mark) - (evil-move-to-column point-col) - (point))) - (point (save-excursion - (goto-char point) - (evil-move-to-column mark-col) - (point)))) - (evil-visual-refresh mark point))) - (t - (evil-exchange-point-and-mark) - (evil-visual-refresh)))) - -(evil-define-command evil-visual-rotate (corner &optional beg end type) - "In Visual Block selection, put point in CORNER. -Corner may be one of `upper-left', `upper-right', `lower-left' -and `lower-right': - - upper-left +---+ upper-right - | | - lower-left +---+ lower-right - -When called interactively, the selection is rotated blockwise." - :keep-visual t - (interactive - (let ((corners '(upper-left upper-right lower-right lower-left))) - (list (or (cadr (memq (evil-visual-block-corner) corners)) - 'upper-left)))) - (let* ((beg (or beg (point))) - (end (or end (mark t) beg)) - (type (or type evil-this-type)) - range) - (cond - ((memq type '(rectangle block)) - (setq range (evil-block-rotate beg end :corner corner) - beg (pop range) - end (pop range)) - (unless (eq corner (evil-visual-block-corner corner beg end)) - (evil-swap beg end)) - (goto-char beg) - (when (evil-visual-state-p) - (evil-move-mark end) - (evil-visual-refresh nil nil nil :corner corner))) - ((memq corner '(upper-right lower-right)) - (goto-char (max beg end)) - (when (evil-visual-state-p) - (evil-move-mark (min beg end)))) - (t - (goto-char (min beg end)) - (when (evil-visual-state-p) - (evil-move-mark (max beg end))))))) - -;;; Insertion commands - -(defun evil-insert (count &optional vcount skip-empty-lines) - "Switch to Insert state just before point. -The insertion will be repeated COUNT times and repeated once for -the next VCOUNT - 1 lines starting at the same column. -If SKIP-EMPTY-LINES is non-nil, the insertion will not be performed -on lines on which the insertion point would be after the end of the -lines. This is the default behaviour for Visual-state insertion." - (interactive - (list (prefix-numeric-value current-prefix-arg) - (and (evil-visual-state-p) - (memq (evil-visual-type) '(line block)) - (save-excursion - ;; go to upper-left corner temporarily so - ;; `count-lines' yields accurate results - (evil-visual-rotate 'upper-left) - (count-lines evil-visual-beginning evil-visual-end))) - (evil-visual-state-p))) - (if (and (evil-called-interactively-p) - (evil-visual-state-p)) - (cond - ((eq (evil-visual-type) 'line) - (evil-visual-rotate 'upper-left) - (evil-insert-line count vcount)) - ((eq (evil-visual-type) 'block) - (let ((column (min (evil-column evil-visual-beginning) - (evil-column evil-visual-end)))) - (evil-visual-rotate 'upper-left) - (move-to-column column t) - (evil-insert count vcount skip-empty-lines))) - (t - (evil-visual-rotate 'upper-left) - (evil-insert count vcount skip-empty-lines))) - (setq evil-insert-count count - evil-insert-lines nil - evil-insert-vcount (and vcount - (> vcount 1) - (list (line-number-at-pos) - (current-column) - vcount)) - evil-insert-skip-empty-lines skip-empty-lines) - (evil-insert-state 1))) - -(defun evil-append (count &optional vcount skip-empty-lines) - "Switch to Insert state just after point. -The insertion will be repeated COUNT times and repeated once for -the next VCOUNT - 1 lines starting at the same column. If -SKIP-EMPTY-LINES is non-nil, the insertion will not be performed -on lines on which the insertion point would be after the end of -the lines." - (interactive - (list (prefix-numeric-value current-prefix-arg) - (and (evil-visual-state-p) - (memq (evil-visual-type) '(line block)) - (save-excursion - ;; go to upper-left corner temporarily so - ;; `count-lines' yields accurate results - (evil-visual-rotate 'upper-left) - (count-lines evil-visual-beginning evil-visual-end))))) - (if (and (evil-called-interactively-p) - (evil-visual-state-p)) - (cond - ((or (eq (evil-visual-type) 'line) - (and (eq (evil-visual-type) 'block) - (memq last-command '(next-line previous-line)) - (numberp temporary-goal-column) - (= temporary-goal-column most-positive-fixnum))) - (evil-visual-rotate 'upper-left) - (evil-append-line count vcount)) - ((eq (evil-visual-type) 'block) - (let ((column (max (evil-column evil-visual-beginning) - (evil-column evil-visual-end)))) - (evil-visual-rotate 'upper-left) - (move-to-column column t) - (evil-insert count vcount skip-empty-lines))) - (t - (evil-visual-rotate 'lower-right) - (evil-append count))) - (unless (eolp) (forward-char)) - (evil-insert count vcount skip-empty-lines))) - -(defun evil-insert-resume (count) - "Switch to Insert state at previous insertion point. -The insertion will be repeated COUNT times." - (interactive "p") - (evil-goto-mark ?^ t) - (evil-insert count)) - -(defun evil-maybe-remove-spaces () - "Remove space from newly opened empty line. -This function should be called from `post-command-hook' after -`evil-open-above' or `evil-open-below'. If the last command -finished insert state and if the current line consists of -whitespaces only, then those spaces have been inserted because of -the indentation. In this case those spaces are removed leaving a -completely empty line." - (unless (memq this-command '(evil-open-above evil-open-below)) - (remove-hook 'post-command-hook 'evil-maybe-remove-spaces) - (when (and (not (evil-insert-state-p)) - (save-excursion - (beginning-of-line) - (looking-at "^\\s-*$"))) - (delete-region (line-beginning-position) - (line-end-position))))) - -(defun evil-open-above (count) - "Insert a new line above point and switch to Insert state. -The insertion will be repeated COUNT times." - (interactive "p") - (evil-insert-newline-above) - (setq evil-insert-count count - evil-insert-lines t - evil-insert-vcount nil) - (evil-insert-state 1) - (add-hook 'post-command-hook #'evil-maybe-remove-spaces) - (when evil-auto-indent - (indent-according-to-mode))) - -(defun evil-open-below (count) - "Insert a new line below point and switch to Insert state. -The insertion will be repeated COUNT times." - (interactive "p") - (evil-insert-newline-below) - (setq evil-insert-count count - evil-insert-lines t - evil-insert-vcount nil) - (evil-insert-state 1) - (add-hook 'post-command-hook #'evil-maybe-remove-spaces) - (when evil-auto-indent - (indent-according-to-mode))) - -(defun evil-insert-line (count &optional vcount) - "Switch to insert state at beginning of current line. -Point is placed at the first non-blank character on the current -line. The insertion will be repeated COUNT times. If VCOUNT is -non nil it should be number > 0. The insertion will be repeated -in the next VCOUNT - 1 lines below the current one." - (interactive "p") - (back-to-indentation) - (setq evil-insert-count count - evil-insert-lines nil - evil-insert-vcount - (and vcount - (> vcount 1) - (list (line-number-at-pos) - #'evil-first-non-blank - vcount))) - (evil-insert-state 1)) - -(defun evil-append-line (count &optional vcount) - "Switch to Insert state at the end of the current line. -The insertion will be repeated COUNT times. If VCOUNT is non nil -it should be number > 0. The insertion will be repeated in the -next VCOUNT - 1 lines below the current one." - (interactive "p") - (evil-move-end-of-line) - (setq evil-insert-count count - evil-insert-lines nil - evil-insert-vcount - (and vcount - (> vcount 1) - (list (line-number-at-pos) - #'end-of-line - vcount))) - (evil-insert-state 1)) - -(defun evil-insert-digraph (count digraph) - "Insert COUNT digraphs DIGRAPH." - (interactive - (let (count char1 char2 overlay string) - (unwind-protect - (progn - (setq count (prefix-numeric-value current-prefix-arg) - overlay (make-overlay (point) (point))) - ;; create overlay prompt - (setq string "?") - (put-text-property 0 1 'face 'minibuffer-prompt string) - ;; put cursor at (i.e., right before) the prompt - (put-text-property 0 1 'cursor t string) - (overlay-put overlay 'after-string string) - (setq char1 (evil-read-key)) - (setq string (string char1)) - (put-text-property 0 1 'face 'minibuffer-prompt string) - (put-text-property 0 1 'cursor t string) - (overlay-put overlay 'after-string string) - (setq char2 (evil-read-key))) - (delete-overlay overlay)) - (list count (list char1 char2)))) - (let ((digraph (or (evil-digraph digraph) - ;; use the last character if undefined - (cadr digraph)))) - (dotimes (var count) - (insert digraph)))) - -(defun evil-copy-from-above (arg) - "Copy characters from preceding non-blank line. -The copied text is inserted before point. -ARG is the number of lines to move backward. -See also \\\\[evil-copy-from-below]." - (interactive - (cond - ;; if a prefix argument was given, repeat it for subsequent calls - ((and (null current-prefix-arg) - (eq last-command #'evil-copy-from-above)) - (setq current-prefix-arg last-prefix-arg) - (list (prefix-numeric-value current-prefix-arg))) - (t - (list (prefix-numeric-value current-prefix-arg))))) - (insert (evil-copy-chars-from-line 1 (- arg)))) - -(defun evil-copy-from-below (arg) - "Copy characters from following non-blank line. -The copied text is inserted before point. -ARG is the number of lines to move forward. -See also \\\\[evil-copy-from-above]." - (interactive - (cond - ((and (null current-prefix-arg) - (eq last-command #'evil-copy-from-below)) - (setq current-prefix-arg last-prefix-arg) - (list (prefix-numeric-value current-prefix-arg))) - (t - (list (prefix-numeric-value current-prefix-arg))))) - (insert (evil-copy-chars-from-line 1 arg))) - -;; adapted from `copy-from-above-command' in misc.el -(defun evil-copy-chars-from-line (n num &optional col) - "Return N characters from line NUM, starting at column COL. -NUM is relative to the current line and can be negative. -COL defaults to the current column." - (interactive "p") - (let ((col (or col (current-column))) prefix) - (save-excursion - (forward-line num) - (when (looking-at "[[:space:]]*$") - (if (< num 0) - (skip-chars-backward " \t\n") - (skip-chars-forward " \t\n"))) - (evil-move-beginning-of-line) - (move-to-column col) - ;; if the column winds up in middle of a tab, - ;; return the appropriate number of spaces - (when (< col (current-column)) - (if (eq (preceding-char) ?\t) - (let ((len (min n (- (current-column) col)))) - (setq prefix (make-string len ?\s) - n (- n len))) - ;; if in middle of a control char, return the whole char - (backward-char 1))) - (concat prefix - (buffer-substring (point) - (min (line-end-position) - (+ n (point)))))))) - -;; completion -(evil-define-command evil-complete-next (&optional arg) - "Complete to the nearest following word. -Search backward if a match isn't found. -Calls `evil-complete-next-func'." - :repeat change - (interactive "P") - (if (minibufferp) - (funcall evil-complete-next-minibuffer-func) - (funcall evil-complete-next-func arg))) - -(evil-define-command evil-complete-previous (&optional arg) - "Complete to the nearest preceding word. -Search forward if a match isn't found. -Calls `evil-complete-previous-func'." - :repeat change - (interactive "P") - (if (minibufferp) - (funcall evil-complete-previous-minibuffer-func) - (funcall evil-complete-previous-func arg))) - -(evil-define-command evil-complete-next-line (&optional arg) - "Complete a whole line. -Calls `evil-complete-next-line-func'." - :repeat change - (interactive "P") - (if (minibufferp) - (funcall evil-complete-next-minibuffer-func) - (funcall evil-complete-next-line-func arg))) - -(evil-define-command evil-complete-previous-line (&optional arg) - "Complete a whole line. -Calls `evil-complete-previous-line-func'." - :repeat change - (interactive "P") - (if (minibufferp) - (funcall evil-complete-previous-minibuffer-func) - (funcall evil-complete-previous-line-func arg))) - -;;; Search - -(defun evil-repeat-search (flag) - "Called to record a search command. -FLAG is either 'pre or 'post if the function is called before resp. -after executing the command." - (cond - ((and (evil-operator-state-p) (eq flag 'pre)) - (evil-repeat-record (this-command-keys)) - (evil-clear-command-keys)) - ((and (evil-operator-state-p) (eq flag 'post)) - ;; The value of (this-command-keys) at this point should be the - ;; key-sequence that called the last command that finished the - ;; search, usually RET. Therefore this key-sequence will be - ;; recorded in the post-command of the operator. Alternatively we - ;; could do it here. - (evil-repeat-record (if evil-regexp-search - (car-safe regexp-search-ring) - (car-safe search-ring)))) - (t (evil-repeat-motion flag)))) - -(evil-define-motion evil-search-forward () - (format "Search forward for user-entered text. -Searches for regular expression if `evil-regexp-search' is t.%s" - (if (and (fboundp 'isearch-forward) - (documentation 'isearch-forward)) - (format "\n\nBelow is the documentation string \ -for `isearch-forward',\nwhich lists available keys:\n\n%s" - (documentation 'isearch-forward)) "")) - :jump t - :type exclusive - :repeat evil-repeat-search - (evil-search-incrementally t evil-regexp-search)) - -(evil-define-motion evil-search-backward () - (format "Search backward for user-entered text. -Searches for regular expression if `evil-regexp-search' is t.%s" - (if (and (fboundp 'isearch-forward) - (documentation 'isearch-forward)) - (format "\n\nBelow is the documentation string \ -for `isearch-forward',\nwhich lists available keys:\n\n%s" - (documentation 'isearch-forward)) "")) - :jump t - :type exclusive - :repeat evil-repeat-search - (evil-search-incrementally nil evil-regexp-search)) - -(evil-define-motion evil-search-next (count) - "Repeat the last search." - :jump t - :type exclusive - (dotimes (var (or count 1)) - (evil-search (if evil-regexp-search - (car-safe regexp-search-ring) - (car-safe search-ring)) - isearch-forward evil-regexp-search))) - -(evil-define-motion evil-search-previous (count) - "Repeat the last search in the opposite direction." - :jump t - :type exclusive - (dotimes (var (or count 1)) - (evil-search (if evil-regexp-search - (car-safe regexp-search-ring) - (car-safe search-ring)) - (not isearch-forward) evil-regexp-search))) - -(evil-define-motion evil-search-symbol-backward (count) - "Search backward for symbol under point." - :jump t - :type exclusive - (dotimes (var (or count 1)) - (evil-search-symbol nil))) - -(evil-define-motion evil-search-symbol-forward (count) - "Search forward for symbol under point." - :jump t - :type exclusive - (dotimes (var (or count 1)) - (evil-search-symbol t))) - -(evil-define-motion evil-goto-definition () - "Go to definition or first occurrence of symbol under point." - :jump t - :type exclusive - (let* ((string (evil-find-symbol t)) - (search (format "\\_<%s\\_>" (regexp-quote string))) - ientry ipos) - ;; load imenu if available - (unless (featurep 'imenu) - (condition-case nil - (require 'imenu) - (error nil))) - (if (null string) - (error "No symbol under cursor") - (setq isearch-forward t) - ;; if imenu is available, try it - (cond - ((fboundp 'imenu--make-index-alist) - (condition-case nil - (setq ientry (imenu--make-index-alist)) - (error nil)) - (setq ientry (assoc string ientry)) - (setq ipos (cdr ientry)) - (when (and (markerp ipos) - (eq (marker-buffer ipos) (current-buffer))) - (setq ipos (marker-position ipos))) - (cond - ;; imenu found a position, so go there and - ;; highlight the occurrence - ((numberp ipos) - (evil-search search t t ipos)) - ;; imenu failed, so just go to first occurrence in buffer - (t - (evil-search search t t (point-min))))) - ;; no imenu, so just go to first occurrence in buffer - (t - (evil-search search t t (point-min))))))) - -;;; Folding - -(evil-define-command evil-toggle-fold () - "Open or close a fold." - (when (fboundp 'hs-minor-mode) - (hs-minor-mode 1) - (with-no-warnings (hs-toggle-hiding)))) - -(evil-define-command evil-open-folds () - "Open all folds. -See also `evil-close-folds'." - (when (fboundp 'hs-minor-mode) - (hs-minor-mode 1) - (with-no-warnings (hs-show-all))) - (when (memq major-mode '(c-mode c++-mode)) - (when (fboundp 'hide-ifdef-mode) - (hide-ifdef-mode 1) - (with-no-warnings (show-ifdefs))))) - -(evil-define-command evil-close-folds () - "Close all folds. -See also `evil-open-folds'." - (when (fboundp 'hs-minor-mode) - (hs-minor-mode 1) - (with-no-warnings (hs-hide-all))) - (when (memq major-mode '(c-mode c++-mode)) - (when (fboundp 'hide-ifdef-mode) - (hide-ifdef-mode 1) - (with-no-warnings (hide-ifdefs))))) - -(evil-define-command evil-open-fold () - "Open fold. -See also `evil-close-fold'." - (with-no-warnings - (cond - ((and (memq major-mode '(c-mode c++-mode)) - (fboundp 'hide-ifdef-mode) - (hide-ifdef-mode 1) - (save-excursion - (beginning-of-line) - (looking-at hif-ifx-else-endif-regexp))) - (show-ifdef-block)) - ((fboundp 'hs-minor-mode) - (hs-minor-mode 1) - (hs-show-block))))) - -(evil-define-command evil-close-fold () - "Close fold. -See also `evil-open-fold'." - (with-no-warnings - (cond - ((and (memq major-mode '(c-mode c++-mode)) - (fboundp 'hide-ifdef-mode) - (hide-ifdef-mode 1) - (save-excursion - (beginning-of-line) - (looking-at hif-ifx-else-endif-regexp))) - (hide-ifdef-block)) - ((fboundp 'hs-minor-mode) - (hs-minor-mode 1) - (hs-hide-block))))) - -;;; Ex - -(evil-define-operator evil-write (beg end type filename &optional bang) - "Save the current buffer, from BEG to END, to FILENAME. -The current buffer's filename is not changed unless it has no -associated file and no region is specified. If the file already -exists and the BANG argument is non-nil, it is overwritten -without confirmation." - :motion nil - :move-point nil - :type line - :repeat nil - (interactive "") - (let ((bufname (buffer-file-name (buffer-base-buffer)))) - (when (zerop (length filename)) - (setq filename bufname)) - (cond - ((zerop (length filename)) - (error "Please specify a file name for the buffer")) - ;; execute command on region - ((eq (aref filename 0) ?!) - (shell-command-on-region beg end (substring filename 1))) - ;; with region, always save to file without resetting modified flag - ((and beg end) - (write-region beg end filename nil nil nil (not bang))) - ;; no current file - ((null bufname) - (write-file filename (not bang))) - ;; save current buffer to its file - ((string= filename bufname) - (if (not bang) (save-buffer) (write-file filename))) - ;; save to another file - (t - (write-region nil nil filename - nil (not bufname) nil - (not bang)))))) - -(evil-define-command evil-write-all (bang) - "Saves all buffers visiting a file. -If BANG is non nil then read-only buffers are saved, too, -otherwise they are skipped. " - :repeat nil - :move-point nil - (interactive "") - (if bang - (save-some-buffers t) - ;; save only buffer that are not read-only and - ;; that are visiting a file - (save-some-buffers t - #'(lambda () - (and (not buffer-read-only) - (buffer-file-name)))))) - -(evil-define-command evil-save (filename &optional bang) - "Save the current buffer to FILENAME. -Changes the file name of the current buffer to FILENAME. If no -FILENAME is given, the current file name is used." - :repeat nil - :move-point nil - (interactive "") - (when (zerop (length filename)) - (setq filename (buffer-file-name (buffer-base-buffer)))) - (write-file filename (not bang))) - -(evil-define-command evil-edit (file &optional bang) - "Open FILE. -If no FILE is specified, reload the current buffer from disk." - :repeat nil - (interactive "") - (if file - (find-file file) - (revert-buffer bang (or bang (not (buffer-modified-p))) t))) - -(evil-define-command evil-read (count file) - "Inserts the contents of FILE below the current line or line COUNT." - :repeat nil - :move-point nil - (interactive "P") - (when (and file (not (zerop (length file)))) - (when count (goto-char (point-min))) - (when (or (not (zerop (forward-line (or count 1)))) - (not (bolp))) - (insert "\n")) - (if (/= (aref file 0) ?!) - (let ((result (insert-file-contents file))) - (save-excursion - (forward-char (cadr result)) - (unless (bolp) (insert "\n")))) - (shell-command (substring file 1) t) - (save-excursion - (goto-char (mark)) - (unless (bolp) (insert "\n")))))) - -(evil-define-command evil-show-buffers () - "Shows the buffer-list." - :repeat nil - (let (message-truncate-lines message-log-max) - (display-message-or-buffer - (mapconcat #'identity - (sort - (mapcar #'buffer-name (buffer-list)) - #'string<) - "\n") - "*Buffers*"))) - -(evil-define-command evil-buffer (buffer) - "Switches to another buffer." - :repeat nil - (interactive "") - (if buffer - (when (or (get-buffer buffer) - (y-or-n-p (format "No buffer with name \"%s\" exists. \ -Create new buffer? " buffer))) - (switch-to-buffer buffer)) - (switch-to-buffer (other-buffer)))) - -(evil-define-command evil-next-buffer (&optional count) - "Goes to the `count'-th next buffer in the buffer list." - :repeat nil - (interactive "p") - (dotimes (i (or count 1)) - (next-buffer))) - -(evil-define-command evil-prev-buffer (&optional count) - "Goes to the `count'-th prev buffer in the buffer list." - :repeat nil - (interactive "p") - (dotimes (i (or count 1)) - (previous-buffer))) - -(evil-define-command evil-delete-buffer (buffer &optional bang) - "Deletes a buffer. -All windows currently showing this buffer will be closed except -for the last window in each frame." - (interactive "") - (with-current-buffer (or buffer (current-buffer)) - (when bang - (set-buffer-modified-p nil) - (dolist (process (process-list)) - (when (eq (process-buffer process) (current-buffer)) - (set-process-query-on-exit-flag process nil)))) - ;; get all windows that show this buffer - (let ((wins (get-buffer-window-list (current-buffer) nil t))) - ;; if the buffer which was initiated by emacsclient, - ;; call `server-edit' from server.el to avoid - ;; "Buffer still has clients" message - (if (and (fboundp 'server-edit) - (boundp 'server-buffer-clients) - server-buffer-clients) - (server-edit) - (kill-buffer nil)) - ;; close all windows that showed this buffer - (mapc #'(lambda (w) - (condition-case nil - (delete-window w) - (error nil))) - wins)))) - -(evil-define-command evil-quit (&optional bang) - "Closes the current window, current frame, Emacs. -If the current frame belongs to some client the client connection -is closed." - :repeat nil - (interactive "") - (condition-case nil - (delete-window) - (error - (condition-case nil - (let ((proc (frame-parameter (selected-frame) 'client))) - (if proc - (evil-quit-all bang) - (delete-frame))) - (error - (evil-quit-all bang)))))) - -(evil-define-command evil-quit-all (&optional bang) - "Exits Emacs, asking for saving." - :repeat nil - (interactive "") - (if (null bang) - (save-buffers-kill-terminal) - (let ((proc (frame-parameter (selected-frame) 'client))) - (if proc - (with-no-warnings - (server-delete-client proc)) - (dolist (process (process-list)) - (set-process-query-on-exit-flag process nil)) - (kill-emacs))))) - -(evil-define-command evil-save-and-quit () - "Exits Emacs, without saving." - (save-buffers-kill-terminal t)) - -(evil-define-command evil-save-and-close (file &optional bang) - "Saves the current buffer and closes the window." - :repeat nil - (interactive "") - (evil-write nil nil nil file bang) - (evil-quit)) - -(evil-define-command evil-save-modified-and-close (file &optional bang) - "Saves the current buffer and closes the window." - :repeat nil - (interactive "") - (when (buffer-modified-p) - (evil-write nil nil nil file bang)) - (evil-quit)) - -(evil-define-operator evil-shell-command - (beg end command &optional previous) - "Execute a shell command. -If BEG and END is specified, COMMAND is executed on the region, -which is replaced with the command's output. Otherwise, the -output is displayed in its own buffer. If PREVIOUS is non-nil, -the previous shell command is executed instead." - :motion nil - (interactive "") - (when command - (setq command (evil-ex-replace-special-filenames command))) - (if (zerop (length command)) - (when previous (setq command evil-previous-shell-command)) - (setq evil-previous-shell-command command)) - (cond - ((zerop (length command)) - (if previous (error "No previous shell command") - (error "No shell command"))) - ((and beg end) - (shell-command-on-region beg end command t) - (goto-char beg) - (evil-first-non-blank)) - (t - (shell-command command)))) - -;; TODO: escape special characters (currently only \n) ... perhaps -;; there is some Emacs function doing this? -(evil-define-command evil-show-registers () - "Shows the contents of all registers." - :repeat nil - (let (message-truncate-lines message-log-max) - (message "%s" - (mapconcat #'(lambda (reg) - (format "\"%c\t%s" - (car reg) - (if (stringp (cdr reg)) - (replace-regexp-in-string "\n" "^J" (cdr reg)) - (cdr reg)))) - (evil-register-list) "\n")))) - -(eval-when-compile (require 'ffap)) -(evil-define-command evil-find-file-at-point-with-line () - "Opens the file at point and goes to line-number." - (require 'ffap) - (let ((fname (with-no-warnings (ffap-file-at-point)))) - (if fname - (let ((line - (save-excursion - (goto-char (cadr ffap-string-at-point-region)) - (and (re-search-backward ":\\([0-9]+\\)\\=" - (line-beginning-position) t) - (string-to-number (match-string 1)))))) - (with-no-warnings (ffap-other-window)) - (when line - (goto-char (point-min)) - (forward-line (1- line)))) - (error "File does not exist.")))) - -(evil-ex-define-argument-type state - "Defines an argument type which can take state names." - :completer - (lambda () - (list - (point-min) (point-max) - (lambda (arg predicate flag) - (let ((completions - (append '("nil") - (mapcar #'(lambda (state) - (format "%s" (car state))) - evil-state-properties)))) - (when arg - (cond - ((eq flag nil) - (try-completion arg completions predicate)) - ((eq flag t) - (all-completions arg completions predicate)) - ((eq flag 'lambda) - (test-completion arg completions predicate)) - ((eq (car-safe flag) 'boundaries) - (cons 'boundaries - (completion-boundaries arg - completions - predicate - (cdr flag))))))))))) - -(evil-define-interactive-code "" - "A valid evil state." - :ex-arg state - (list (when (and (evil-ex-p) evil-ex-argument) - (intern evil-ex-argument)))) - -;; TODO: should we merge this command with `evil-set-initial-state'? -(evil-define-command evil-ex-set-initial-state (state) - "Set the initial state for the current major mode to STATE. -This is the state the buffer comes up in. See `evil-set-initial-state'." - :repeat nil - (interactive "") - (if (not (or (assq state evil-state-properties) - (null state))) - (error "State %s cannot be set as initial Evil state" state) - (let ((current-initial-state (evil-initial-state major-mode))) - (unless (eq current-initial-state state) - ;; only if we selected a new mode - (when (y-or-n-p (format "Major-mode `%s' has initial mode `%s'. \ -Change to `%s'? " - major-mode - (or current-initial-state "DEFAULT") - (or state "DEFAULT"))) - (evil-set-initial-state major-mode state) - (when (y-or-n-p "Save setting in customization file? ") - (dolist (s (list current-initial-state state)) - (when s - (let ((var (intern (format "evil-%s-state-modes" s)))) - (customize-save-variable var (symbol-value var))))))))))) - -(evil-define-command evil-force-normal-state () - "Switch to normal state without recording current command." - :repeat abort - :suppress-operator t - (evil-normal-state)) - -(evil-define-motion evil-ex-search-next (count) - "Goes to the next occurrence." - :jump t - :type exclusive - (setq evil-ex-search-start-point (point)) - (let ((orig (point)) - wrapped) - (dotimes (i (or count 1)) - (if (eq evil-ex-search-direction 'backward) - (unless (bobp) (backward-char)) - (unless (eobp) (forward-char)) - ;; maybe skip end-of-line - (when (and evil-move-cursor-back - (eolp) (not (eobp))) - (forward-char))) - (let ((res (evil-ex-find-next))) - (cond - ((not res) - (goto-char orig) - (signal 'search-failed - (list (evil-ex-pattern-regex evil-ex-search-pattern)))) - ((eq res 'wrapped) (setq wrapped t))))) - (if wrapped - (let (message-log-max) - (message "Search wrapped"))) - (goto-char (match-beginning 0)) - (setq evil-ex-search-match-beg (match-beginning 0) - evil-ex-search-match-end (match-end 0)) - (evil-ex-search-goto-offset evil-ex-search-offset) - (evil-ex-search-activate-highlight evil-ex-search-pattern))) - -(evil-define-motion evil-ex-search-previous (count) - "Goes the the previous occurrence." - :jump t - :type exclusive - (let ((evil-ex-search-direction - (if (eq evil-ex-search-direction 'backward) 'forward 'backward))) - (evil-ex-search-next count))) - -(defun evil-repeat-ex-search (flag) - "Called to record a search command. -FLAG is either 'pre or 'post if the function is called before -resp. after executing the command." - (cond - ((and (evil-operator-state-p) (eq flag 'pre)) - (evil-repeat-record (this-command-keys)) - (evil-clear-command-keys)) - ((and (evil-operator-state-p) (eq flag 'post)) - ;; The value of (this-command-keys) at this point should be the - ;; key-sequence that called the last command that finished the - ;; search, usually RET. Therefore this key-sequence will be - ;; recorded in the post-command of the operator. Alternatively we - ;; could do it here. - (evil-repeat-record (evil-ex-pattern-regex evil-ex-search-pattern))) - (t (evil-repeat-motion flag)))) - -(evil-define-motion evil-ex-search-forward (count) - "Starts a forward search." - :jump t - :type exclusive - :repeat evil-repeat-ex-search - (evil-ex-start-search 'forward count)) - -(evil-define-motion evil-ex-search-backward (count) - "Starts a forward search." - :jump t - :repeat evil-repeat-ex-search - (evil-ex-start-search 'backward count)) - -(evil-define-motion evil-ex-search-symbol-forward (count) - "Search for the next occurrence of word under the cursor." - :jump t - :type exclusive - (evil-ex-start-symbol-search nil 'forward count)) - -(evil-define-motion evil-ex-search-symbol-backward (count) - "Search for the next occurrence of word under the cursor." - :jump t - :type exclusive - (evil-ex-start-symbol-search nil 'backward count)) - -(evil-define-motion evil-ex-search-unbounded-symbol-forward (count) - "Search for the next occurrence of word under the cursor." - :jump t - :type exclusive - (evil-ex-start-symbol-search t 'forward count)) - -(evil-define-motion evil-ex-search-unbounded-symbol-backward (count) - "Search for the next occurrence of word under the cursor." - :jump t - :type exclusive - (evil-ex-start-symbol-search t 'backward count)) - -(evil-define-operator evil-ex-substitute - (beg end pattern replacement flags) - "The Ex substitute command. -\[BEG,END]substitute/PATTERN/REPLACEMENT/FLAGS" - :repeat nil - :jump t - :move-point nil - :motion evil-line - (interactive "") - (evil-ex-nohighlight) - (unless pattern - (error "No pattern given")) - (unless replacement - (error "No replacement given")) - (let* ((flags (append flags nil)) - (confirm (memq ?c flags)) - (case-fold-search (eq (evil-ex-pattern-case-fold pattern) - 'insensitive)) - (evil-ex-substitute-regex (evil-ex-pattern-regex pattern))) - (setq evil-ex-substitute-pattern pattern - evil-ex-substitute-replacement replacement - evil-ex-substitute-flags flags - isearch-string evil-ex-substitute-regex) - (isearch-update-ring evil-ex-substitute-regex t) - (if (evil-ex-pattern-whole-line pattern) - ;; this one is easy, just use the built-in function - (perform-replace evil-ex-substitute-regex - evil-ex-substitute-replacement - confirm t nil nil nil - beg - (if (and (> end (point-min)) - (= (char-after (1- end)) ?\n)) - (1- end) - end)) - (let ((evil-ex-substitute-nreplaced 0) - (evil-ex-substitute-next-line (line-number-at-pos beg)) - (evil-ex-substitute-last-line - (if (save-excursion (goto-char end) (bolp)) - (1- (line-number-at-pos end)) - (line-number-at-pos end))) - (evil-ex-substitute-last-point (point))) - (if confirm - (let ((evil-ex-substitute-overlay - (make-overlay (point) (point))) - (evil-ex-substitute-hl - (evil-ex-make-hl 'evil-ex-substitute))) - (evil-ex-hl-change 'evil-ex-substitute pattern) - (unwind-protect - ;; this one is more difficult: we have to do - ;; the highlighting and querying on our own - (progn - (overlay-put evil-ex-substitute-overlay - 'face 'isearch) - (overlay-put evil-ex-substitute-overlay - 'priority 1001) - (map-y-or-n-p - #'(lambda (x) - (set-match-data x) - (move-overlay evil-ex-substitute-overlay - (match-beginning 0) - (match-end 0)) - (format "Query replacing %s with %s: " - (match-string 0) - (evil-match-substitute-replacement - evil-ex-substitute-replacement - (not case-replace)))) - #'(lambda (x) - (set-match-data x) - (evil-replace-match evil-ex-substitute-replacement - (not case-replace)) - (setq evil-ex-substitute-last-point (point)) - (setq evil-ex-substitute-nreplaced - (1+ evil-ex-substitute-nreplaced)) - (evil-ex-hl-set-region 'evil-ex-substitute - (save-excursion - (forward-line) - (point)) - (evil-ex-hl-get-max - 'evil-ex-substitute))) - #'(lambda () - (goto-char (point-min)) - (when (and - (zerop - (forward-line - (1- evil-ex-substitute-next-line))) - (bolp) - (re-search-forward - evil-ex-substitute-regex - nil t nil) - (<= (line-number-at-pos (match-end 0)) - evil-ex-substitute-last-line)) - (goto-char (match-beginning 0)) - (setq evil-ex-substitute-next-line - (1+ (line-number-at-pos (point)))) - (match-data))))) - (evil-ex-delete-hl 'evil-ex-substitute) - (delete-overlay evil-ex-substitute-overlay))) - - ;; just replace the first occurrences per line - ;; without highlighting and asking - (goto-char (point-min)) - (let ((num (1- evil-ex-substitute-next-line))) - (while (and (zerop (forward-line num)) - (bolp) - (re-search-forward - evil-ex-substitute-regex nil t nil) - (<= (line-number-at-pos - (match-beginning 0)) - evil-ex-substitute-last-line)) - (setq evil-ex-substitute-nreplaced - (1+ evil-ex-substitute-nreplaced)) - (evil-replace-match evil-ex-substitute-replacement - (not case-replace)) - (setq evil-ex-substitute-last-point (point)) - (setq num 1)))) - - (goto-char evil-ex-substitute-last-point) - - (message "Replaced %d occurrence%s" - evil-ex-substitute-nreplaced - (if (/= evil-ex-substitute-nreplaced 1) "s" "")))) - (evil-first-non-blank))) - -(evil-define-operator evil-ex-repeat-substitute - (beg end flags) - "Repeat last substitute command. -This is the same as :s//~/" - :repeat nil - :jump t - :move-point nil - :motion evil-line - (interactive "") - (apply #'evil-ex-substitute beg end - (evil-ex-get-substitute-info (concat "//~/" flags)))) - -(evil-define-operator evil-ex-repeat-substitute-with-flags - (beg end flags) - "Repeat last substitute command with last flags. -This is the same as :s//~/&" - :repeat nil - :jump t - :move-point nil - :motion evil-line - (interactive "") - (apply #'evil-ex-substitute beg end - (evil-ex-get-substitute-info (concat "//~/&" flags)))) - -(evil-define-operator evil-ex-repeat-substitute-with-search - (beg end flags) - "Repeat last substitute command with last search pattern. -This is the same as :s//~/r" - :repeat nil - :jump t - :move-point nil - :motion evil-line - (interactive "") - (apply #'evil-ex-substitute beg end - (evil-ex-get-substitute-info (concat "//~/r" flags)))) - -(evil-define-operator evil-ex-repeat-substitute-with-search-and-flags - (beg end flags) - "Repeat last substitute command with last search pattern and last flags. -This is the same as :s//~/&r" - :repeat nil - :jump t - :move-point nil - :motion evil-line - (interactive "") - (apply #'evil-ex-substitute beg end - (evil-ex-get-substitute-info (concat "//~/&r" flags)))) - -(evil-define-operator evil-ex-repeat-global-substitute () - "Repeat last substitute command on the whole buffer. -This is the same as :%s//~/&" - :repeat nil - :jump t - :move-point nil - :motion evil-line - (interactive) - (apply #'evil-ex-substitute (point-min) (point-max) - (evil-ex-get-substitute-info (concat "//~/&")))) - -(evil-define-operator evil-ex-global - (beg end pattern command &optional invert) - "The Ex global command. -\[BEG,END]global[!]/PATTERN/COMMAND" - :motion mark-whole-buffer - :move-point nil - (interactive "") - (unless pattern - (error "No pattern given")) - (unless command - (error "No command given")) - (evil-with-single-undo - (let ((case-fold-search - (eq (evil-ex-regex-case pattern 'smart) 'insensitive)) - match markers) - (when (and pattern command) - (setq isearch-string pattern) - (isearch-update-ring pattern t) - (goto-char beg) - (evil-move-beginning-of-line) - (while (< (point) end) - (setq match (re-search-forward pattern (line-end-position) t)) - (when (or (and match (not invert)) - (and invert (not match))) - (push (move-marker (make-marker) - (or (and match (match-beginning 0)) - (line-beginning-position))) - markers)) - (forward-line)) - (setq markers (nreverse markers)) - (unwind-protect - (dolist (marker markers) - (goto-char marker) - (evil-ex-eval command)) - ;; ensure that all markers are deleted afterwards, - ;; even in the event of failure - (dolist (marker markers) - (set-marker marker nil))))))) - -(evil-define-operator evil-ex-global-inverted - (beg end pattern command &optional invert) - "The Ex vglobal command. -\[BEG,END]vglobal/PATTERN/COMMAND" - :motion mark-whole-buffer - :move-point nil - (interactive "") - (evil-ex-global beg end pattern command (not invert))) - -(evil-define-command evil-goto-char (position) - "Go to POSITION in the buffer. -Default position is the beginning of the buffer." - (interactive "p") - (let ((position (evil-normalize-position - (or position (point-min))))) - (goto-char position))) - -(evil-define-operator evil-ex-line-number (beg end) - "Print the last line number." - :motion mark-whole-buffer - :move-point nil - (interactive "") - (message "%d" (count-lines (point-min) end))) - -(evil-define-command evil-show-file-info () - "Shows basic file information." - (let* ((nlines (count-lines (point-min) (point-max))) - (curr (line-number-at-pos (point))) - (perc (* (/ (float curr) (float nlines)) 100.0)) - (file (buffer-file-name (buffer-base-buffer))) - (writable (and file (file-writable-p file))) - (readonly (if (and file (not writable)) "[readonly] " ""))) - (if file - (message "\"%s\" %d %slines --%d%%--" file nlines readonly perc) - (message "%d lines --%d%%--" nlines perc)))) - -;;; Window navigation - -(defun evil-resize-window (new-size &optional horizontal) - "Set the current window's width or height to NEW-SIZE. -If HORIZONTAL is non-nil the width of the window is changed, -otherwise its height is changed." - (let ((wincfg (current-window-configuration)) - (nwins (length (window-list))) - (count (if horizontal - (- new-size (window-width)) - (- new-size (window-height))))) - (catch 'done - (save-window-excursion - (while (not (zerop count)) - (if (> count 0) - (progn - (enlarge-window 1 horizontal) - (setq count (1- count))) - (progn - (shrink-window 1 horizontal) - (setq count (1+ count)))) - (if (= nwins (length (window-list))) - (setq wincfg (current-window-configuration)) - (throw 'done t))))) - (set-window-configuration wincfg))) - -(defun evil-get-buffer-tree (wintree) - "Extracts the buffer tree from a given window tree WINTREE." - (if (consp wintree) - (cons (car wintree) (mapcar #'evil-get-buffer-tree (cddr wintree))) - (window-buffer wintree))) - -(defun evil-restore-window-tree (win tree) - "Restore the given buffer-tree layout as subwindows of WIN. -TREE is the tree layout to be restored." - (cond - ((and (consp tree) (cddr tree)) - (let ((newwin (split-window win nil (not (car tree))))) - (evil-restore-window-tree win (cadr tree)) - (evil-restore-window-tree newwin (cons (car tree) (cddr tree))))) - ((consp tree) - (set-window-buffer win (cadr tree))) - (t - (set-window-buffer win tree)))) - -(evil-define-command evil-window-split (&optional count file) - "Splits the current window horizontally, COUNT lines height, -editing a certain FILE." - :repeat nil - (interactive "P") - (let ((new-win (split-window (selected-window) count))) - (when file - (evil-edit file)))) - -(evil-define-command evil-window-vsplit (&optional count file) - "Splits the current window vertically, COUNT columns width, -editing a certain FILE." - :repeat nil - (interactive "P") - (let ((new-win (split-window (selected-window) count t))) - (when file - (evil-edit file)))) - -(evil-define-command evil-split-buffer (buffer) - "Splits window and switches to another buffer." - :repeat nil - (interactive "") - (evil-window-split) - (evil-buffer buffer)) - -(evil-define-command evil-split-next-buffer (&optional count) - "Splits the window and goes to the COUNT-th next buffer in the buffer list." - :repeat nil - (interactive "p") - (evil-window-split) - (evil-next-buffer count)) - -(evil-define-command evil-split-prev-buffer (&optional count) - "Splits window and goes to the COUNT-th prev buffer in the buffer list." - :repeat nil - (interactive "p") - (evil-window-split) - (evil-prev-buffer count)) - -(evil-define-command evil-window-left (count) - "Move the cursor to new COUNT-th window left of the current one." - :repeat nil - (interactive "p") - (dotimes (i count) - (windmove-left))) - -(evil-define-command evil-window-right (count) - "Move the cursor to new COUNT-th window right of the current one." - :repeat nil - (interactive "p") - (dotimes (i count) - (windmove-right))) - -(evil-define-command evil-window-up (count) - "Move the cursor to new COUNT-th window above the current one." - :repeat nil - (interactive "p") - (dotimes (i (or count 1)) - (windmove-up))) - -(evil-define-command evil-window-down (count) - "Move the cursor to new COUNT-th window below the current one." - :repeat nil - (interactive "p") - (dotimes (i (or count 1)) - (windmove-down))) - -(evil-define-command evil-window-bottom-right () - "Move the cursor to bottom-right window." - :repeat nil - (while (let (success) - (condition-case nil - (progn - (windmove-right) - (setq success t)) - (error nil)) - (condition-case nil - (progn - (windmove-down) - (setq success t)) - (error nil)) - success))) - -(evil-define-command evil-window-top-left () - "Move the cursor to top-left window." - :repeat nil - (while (let (success) - (condition-case nil - (progn - (windmove-left) - (setq success t)) - (error nil)) - (condition-case nil - (progn - (windmove-up) - (setq success t)) - (error nil)) - success))) - -(evil-define-command evil-window-mru () - "Move the cursor to the previous (last accessed) buffer in another window. -More precisely, it selectes the most recently used buffer that is -shown in some other window, preferably of the current frame, and -is different from the current one." - :repeat nil - (catch 'done - (dolist (buf (buffer-list (selected-frame))) - (let ((win (get-buffer-window buf))) - (when (and (not (eq buf (current-buffer))) - win - (not (eq win (selected-window)))) - (select-window win) - (throw 'done nil)))))) - -(evil-define-command evil-window-next (count) - "Move the cursor to the next window in the cyclic order. -With COUNT go to the count-th window in the order starting from -top-left." - :repeat nil - (interactive "P") - (if (not count) - (select-window (next-window)) - (evil-window-top-left) - (other-window (1- count)))) - -(evil-define-command evil-window-prev (count) - "Move the cursor to the previous window in the cyclic order. -With COUNT go to the count-th window in the order starting from -top-left." - :repeat nil - (interactive "P") - (if (not count) - (select-window (previous-window)) - (evil-window-top-left) - (other-window (1- count)))) - -(evil-define-command evil-window-new (count file) - "Splits the current window horizontally -and opens a new buffer or edits a certain FILE." - :repeat nil - (interactive "P") - (split-window (selected-window) count) - (if file - (evil-edit file) - (let ((buffer (generate-new-buffer "*new*"))) - (set-window-buffer (selected-window) buffer) - (with-current-buffer buffer - (evil-normal-state))))) - -(evil-define-command evil-window-vnew (count file) - "Splits the current window vertically -and opens a new buffer name or edits a certain FILE." - :repeat nil - (interactive "P") - (split-window (selected-window) count t) - (if file - (evil-edit file) - (let ((buffer (generate-new-buffer "*new*"))) - (set-window-buffer (selected-window) buffer) - (with-current-buffer buffer - (evil-normal-state))))) - -(evil-define-command evil-window-increase-height (count) - "Increase current window height by COUNT." - :repeat nil - (interactive "p") - (evil-resize-window (+ (window-height) count))) - -(evil-define-command evil-window-decrease-height (count) - "Decrease current window height by COUNT." - :repeat nil - (interactive "p") - (evil-resize-window (- (window-height) count))) - -(evil-define-command evil-window-increase-width (count) - "Increase current window width by COUNT." - :repeat nil - (interactive "p") - (evil-resize-window (+ (window-width) count) t)) - -(evil-define-command evil-window-decrease-width (count) - "Decrease current window width by COUNT." - :repeat nil - (interactive "p") - (evil-resize-window (- (window-width) count) t)) - -(evil-define-command evil-window-set-height (count) - "Sets the height of the current window to COUNT." - :repeat nil - (interactive "P") - (evil-resize-window (or count (frame-height)) nil)) - -(evil-define-command evil-window-set-width (count) - "Sets the width of the current window to COUNT." - :repeat nil - (interactive "P") - (evil-resize-window (or count (frame-width)) t)) - -(evil-define-command evil-window-rotate-upwards () - "Rotates the windows according to the currenty cyclic ordering." - :repeat nil - (let ((wlist (window-list)) - (blist (mapcar #'(lambda (w) (window-buffer w)) - (window-list)))) - (setq blist (append (cdr blist) (list (car blist)))) - (while (and wlist blist) - (set-window-buffer (car wlist) (car blist)) - (setq wlist (cdr wlist) - blist (cdr blist))) - (select-window (car (last (window-list)))))) - -(evil-define-command evil-window-rotate-downwards () - "Rotates the windows according to the currenty cyclic ordering." - :repeat nil - (let ((wlist (window-list)) - (blist (mapcar #'(lambda (w) (window-buffer w)) - (window-list)))) - (setq blist (append (last blist) blist)) - (while (and wlist blist) - (set-window-buffer (car wlist) (car blist)) - (setq wlist (cdr wlist) - blist (cdr blist))) - (select-window (cadr (window-list))))) - -(evil-define-command evil-window-move-very-top () - "Closes the current window, splits the upper-left one horizontally -and redisplays the current buffer there." - :repeat nil - (unless (one-window-p) - (let ((b (current-buffer))) - (delete-window) - (let ((btree (evil-get-buffer-tree (car (window-tree))))) - (delete-other-windows) - (let ((newwin (selected-window)) - (subwin (split-window))) - (evil-restore-window-tree subwin btree) - (set-window-buffer newwin b) - (select-window newwin)))) - (balance-windows))) - -(evil-define-command evil-window-move-far-left () - "Closes the current window, splits the upper-left one vertically -and redisplays the current buffer there." - :repeat nil - (unless (one-window-p) - (let ((b (current-buffer))) - (delete-window) - (let ((btree (evil-get-buffer-tree (car (window-tree))))) - (delete-other-windows) - (let ((newwin (selected-window)) - (subwin (split-window-horizontally))) - (evil-restore-window-tree subwin btree) - (set-window-buffer newwin b) - (select-window newwin)))) - (balance-windows))) - -(evil-define-command evil-window-move-far-right () - "Closes the current window, splits the lower-right one vertically -and redisplays the current buffer there." - :repeat nil - (unless (one-window-p) - (let ((b (current-buffer))) - (delete-window) - (let ((btree (evil-get-buffer-tree (car (window-tree))))) - (delete-other-windows) - (let ((subwin (selected-window)) - (newwin (split-window-horizontally))) - (evil-restore-window-tree subwin btree) - (set-window-buffer newwin b) - (select-window newwin)))) - (balance-windows))) - -(evil-define-command evil-window-move-very-bottom () - "Closes the current window, splits the lower-right one horizontally -and redisplays the current buffer there." - :repeat nil - (unless (one-window-p) - (let ((b (current-buffer))) - (delete-window) - (let ((btree (evil-get-buffer-tree (car (window-tree))))) - (delete-other-windows) - (let ((subwin (selected-window)) - (newwin (split-window))) - (evil-restore-window-tree subwin btree) - (set-window-buffer newwin b) - (select-window newwin)))) - (balance-windows))) - -;;; Mouse handling - -;; Large parts of this code are taken from mouse.el which is -;; distributed with GNU Emacs -(defun evil-mouse-drag-region (start-event) - "Set the region to the text that the mouse is dragged over. -Highlight the drag area as you move the mouse. -This must be bound to a button-down mouse event. - -If the click is in the echo area, display the `*Messages*' buffer. - -START-EVENT should be the event that started the drag." - (interactive "e") - ;; Give temporary modes such as isearch a chance to turn off. - (run-hooks 'mouse-leave-buffer-hook) - (evil-mouse-drag-track start-event t)) -(evil-set-command-property 'evil-mouse-drag-region :keep-visual t) - -(defun evil-mouse-drag-track (start-event &optional - do-mouse-drag-region-post-process) - "Track mouse drags by highlighting area between point and cursor. -The region will be defined with mark and point. -DO-MOUSE-DRAG-REGION-POST-PROCESS should only be used by -`mouse-drag-region'." - (mouse-minibuffer-check start-event) - (setq mouse-selection-click-count-buffer (current-buffer)) - (deactivate-mark) - (let* ((scroll-margin 0) ; Avoid margin scrolling (Bug#9541). - (original-window (selected-window)) - ;; We've recorded what we needed from the current buffer and - ;; window, now let's jump to the place of the event, where things - ;; are happening. - (_ (mouse-set-point start-event)) - (echo-keystrokes 0) - (start-posn (event-start start-event)) - (start-point (posn-point start-posn)) - (start-window (posn-window start-posn)) - (start-window-start (window-start start-window)) - (start-hscroll (window-hscroll start-window)) - (bounds (window-edges start-window)) - (make-cursor-line-fully-visible nil) - (top (nth 1 bounds)) - (bottom (if (window-minibuffer-p start-window) - (nth 3 bounds) - ;; Don't count the mode line. - (1- (nth 3 bounds)))) - (on-link (and mouse-1-click-follows-link - (or mouse-1-click-in-non-selected-windows - (eq start-window original-window)) - ;; Use start-point before the intangibility - ;; treatment, in case we click on a link inside an - ;; intangible text. - (mouse-on-link-p start-posn))) - (click-count (1- (event-click-count start-event))) - (remap-double-click (and on-link - (eq mouse-1-click-follows-link 'double) - (= click-count 1))) - ;; Suppress automatic hscrolling, because that is a nuisance - ;; when setting point near the right fringe (but see below). - (auto-hscroll-mode-saved auto-hscroll-mode) - (auto-hscroll-mode nil) - event end end-point) - - (setq mouse-selection-click-count click-count) - ;; In case the down click is in the middle of some intangible text, - ;; use the end of that text, and put it in START-POINT. - (if (< (point) start-point) - (goto-char start-point)) - (setq start-point (point)) - (if remap-double-click - (setq click-count 0)) - - (setq click-count (mod click-count 4)) - - ;; activate correct visual state - (let ((range (evil-mouse-start-end start-point start-point click-count))) - (set-mark (nth 0 range)) - (goto-char (nth 1 range))) - - (cond - ((= click-count 0) - (when (evil-visual-state-p) (evil-exit-visual-state))) - ((= click-count 1) - (evil-visual-char) - (evil-visual-post-command)) - ((= click-count 2) - (evil-visual-line) - (evil-visual-post-command)) - ((= click-count 3) - (evil-visual-block) - (evil-visual-post-command))) - - ;; Track the mouse until we get a non-movement event. - (track-mouse - (while (progn - (setq event (read-event)) - (or (mouse-movement-p event) - (memq (car-safe event) '(switch-frame select-window)))) - (unless (evil-visual-state-p) - (cond - ((= click-count 0) (evil-visual-char)) - ((= click-count 1) (evil-visual-char)) - ((= click-count 2) (evil-visual-line)) - ((= click-count 3) (evil-visual-block)))) - - (evil-visual-pre-command) - (unless (memq (car-safe event) '(switch-frame select-window)) - ;; Automatic hscrolling did not occur during the call to - ;; `read-event'; but if the user subsequently drags the - ;; mouse, go ahead and hscroll. - (let ((auto-hscroll-mode auto-hscroll-mode-saved)) - (redisplay)) - (setq end (event-end event) - end-point (posn-point end)) - (if (and (eq (posn-window end) start-window) - (integer-or-marker-p end-point)) - (evil-mouse--drag-set-mark-and-point start-point - end-point click-count) - (let ((mouse-row (cdr (cdr (mouse-position))))) - (cond - ((null mouse-row)) - ((< mouse-row top) - (mouse-scroll-subr start-window (- mouse-row top) - nil start-point)) - ((>= mouse-row bottom) - (mouse-scroll-subr start-window (1+ (- mouse-row bottom)) - nil start-point)))))) - (evil-visual-post-command))) - - ;; Handle the terminating event if possible. - (when (consp event) - ;; Ensure that point is on the end of the last event. - (when (and (setq end-point (posn-point (event-end event))) - (eq (posn-window end) start-window) - (integer-or-marker-p end-point) - (/= start-point end-point)) - (evil-mouse--drag-set-mark-and-point start-point - end-point click-count)) - - ;; Find its binding. - (let* ((fun (key-binding (vector (car event)))) - (do-multi-click (and (> (event-click-count event) 0) - (functionp fun) - (not (memq fun '(mouse-set-point - mouse-set-region)))))) - (if (and (or (/= (mark) (point)) - (= click-count 1) ; word selection - (and (memq (evil-visual-type) '(line block)))) - (not do-multi-click)) - - ;; If point has moved, finish the drag. - (let (last-command this-command) - (and mouse-drag-copy-region - do-mouse-drag-region-post-process - (let (deactivate-mark) - (evil-visual-expand-region) - (copy-region-as-kill (mark) (point)) - (evil-visual-contract-region)))) - - ;; If point hasn't moved, run the binding of the - ;; terminating up-event. - (if do-multi-click - (goto-char start-point) - (deactivate-mark)) - (when (and (functionp fun) - (= start-hscroll (window-hscroll start-window)) - ;; Don't run the up-event handler if the window - ;; start changed in a redisplay after the - ;; mouse-set-point for the down-mouse event at - ;; the beginning of this function. When the - ;; window start has changed, the up-mouse event - ;; contains a different position due to the new - ;; window contents, and point is set again. - (or end-point - (= (window-start start-window) - start-window-start))) - (when (and on-link - (= start-point (point)) - (evil-mouse--remap-link-click-p start-event event)) - ;; If we rebind to mouse-2, reselect previous selected - ;; window, so that the mouse-2 event runs in the same - ;; situation as if user had clicked it directly. Fixes - ;; the bug reported by juri@jurta.org on 2005-12-27. - (if (or (vectorp on-link) (stringp on-link)) - (setq event (aref on-link 0)) - (select-window original-window) - (setcar event 'mouse-2) - ;; If this mouse click has never been done by the - ;; user, it doesn't have the necessary property to be - ;; interpreted correctly. - (put 'mouse-2 'event-kind 'mouse-click))) - (push event unread-command-events))))))) - -;; This function is a plain copy of `mouse--drag-set-mark-and-point', -;; which is only available in Emacs 24 -(defun evil-mouse--drag-set-mark-and-point (start click click-count) - (let* ((range (evil-mouse-start-end start click click-count)) - (beg (nth 0 range)) - (end (nth 1 range))) - (cond ((eq (mark) beg) - (goto-char end)) - ((eq (mark) end) - (goto-char beg)) - ((< click (mark)) - (set-mark end) - (goto-char beg)) - (t - (set-mark beg) - (goto-char end))))) - -;; This function is a plain copy of `mouse--remap-link-click-p', -;; which is only available in Emacs 23 -(defun evil-mouse--remap-link-click-p (start-event end-event) - (or (and (eq mouse-1-click-follows-link 'double) - (= (event-click-count start-event) 2)) - (and - (not (eq mouse-1-click-follows-link 'double)) - (= (event-click-count start-event) 1) - (= (event-click-count end-event) 1) - (or (not (integerp mouse-1-click-follows-link)) - (let ((t0 (posn-timestamp (event-start start-event))) - (t1 (posn-timestamp (event-end end-event)))) - (and (integerp t0) (integerp t1) - (if (> mouse-1-click-follows-link 0) - (<= (- t1 t0) mouse-1-click-follows-link) - (< (- t0 t1) mouse-1-click-follows-link)))))))) - -(defun evil-mouse-start-end (start end mode) - "Return a list of region bounds based on START and END according to MODE. -If MODE is not 1 then set point to (min START END), mark to (max -START END). If MODE is 1 then set point to start of word at (min -START END), mark to end of word at (max START END)." - (evil-sort start end) - (setq mode (mod mode 4)) - (if (/= mode 1) (list start end) - (list - (save-excursion - (goto-char (min (point-max) (1+ start))) - (if (zerop (funcall evil-mouse-word -1)) - (let ((bpnt (point))) - (funcall evil-mouse-word +1) - (if (> (point) start) bpnt (point))) - (point-min))) - (save-excursion - (goto-char end) - (1- - (if (zerop (funcall evil-mouse-word +1)) - (let ((epnt (point))) - (funcall evil-mouse-word -1) - (if (<= (point) end) epnt (point))) - (point-max))))))) - -;;; State switching - -(evil-define-command evil-exit-emacs-state (&optional buffer message) - "Exit Emacs state. -Changes the state to the previous state, or to Normal state -if the previous state was Emacs state." - :keep-visual t - :suppress-operator t - (interactive '(nil t)) - (with-current-buffer (or buffer (current-buffer)) - (when (evil-emacs-state-p) - (evil-change-to-previous-state buffer message) - (when (evil-emacs-state-p) - (evil-normal-state (and message 1)))))) - -(defun evil-execute-in-normal-state () - "Execute the next command in Normal state." - (interactive) - (evil-delay '(not (memq this-command - '(evil-execute-in-normal-state - evil-use-register - digit-argument - negative-argument - universal-argument - universal-argument-minus - universal-argument-more - universal-argument-other-key))) - `(progn - (evil-change-to-previous-state) - (setq evil-move-cursor-back ',evil-move-cursor-back)) - 'post-command-hook) - (setq evil-move-cursor-back nil) - (evil-normal-state) - (evil-echo "Switched to Normal state for the next command ...")) - -(defun evil-execute-in-emacs-state (&optional arg) - "Execute the next command in Emacs state." - (interactive "p") - (cond - (arg - (add-hook 'post-command-hook #'evil-execute-in-emacs-state t) - (setq evil-execute-in-emacs-state-buffer (current-buffer)) - (evil-emacs-state) - (evil-echo "Switched to Emacs state for the next command ...")) - ((and (not (eq this-command #'evil-execute-in-emacs-state)) - (not (minibufferp))) - (remove-hook 'post-command-hook 'evil-execute-in-emacs-state) - (when (buffer-live-p evil-execute-in-emacs-state-buffer) - (with-current-buffer evil-execute-in-emacs-state-buffer - (evil-change-to-previous-state))) - (setq evil-execute-in-emacs-state-buffer)))) - -;; TODO: this will probably not work well with the repeat-system. -(evil-define-command evil-esc (arg) - "Wait for further keys within `evil-esc-delay'. -Otherwise send [escape]." - :repeat ignore - (interactive "P") - (if (sit-for evil-esc-delay t) - (progn - (push 'escape unread-command-events) - (when defining-kbd-macro - ;; we need to replace the ESC by 'escape in the currently - ;; defined keyboard macro - (evil-save-echo-area - (end-kbd-macro) - (setq last-kbd-macro (vconcat last-kbd-macro [escape])) - (start-kbd-macro t t)))) - (push last-command-event unread-command-events) - ;; preserve prefix argument - (setq prefix-arg arg)) - ;; disable interception for the next key sequence - (evil-esc-mode -1) - (setq this-command last-command) - (add-hook 'pre-command-hook #'evil-turn-on-esc-mode nil t)) - -(defun evil-exit-visual-and-repeat (event) - "Exit insert state and repeat event. -This special command should be used if some command called from -visual state should actually be called in normal-state. The main -reason for doing this is that the repeat system should *not* -record the visual state information for some command. This -command should be bound to exactly the same event in visual state -as the original command is bound in normal state. EVENT is the -event that triggered the execution of this command." - (interactive "e") - (when (evil-visual-state-p) - (evil-exit-visual-state) - (push event unread-command-events))) -(evil-declare-ignore-repeat 'evil-exit-visual-and-repeat) - -(provide 'evil-commands) - -;;; evil-commands.el ends here diff --git a/elpa/evil-1.0.1/evil-common.el b/elpa/evil-1.0.1/evil-common.el deleted file mode 100644 index 31dac756..00000000 --- a/elpa/evil-1.0.1/evil-common.el +++ /dev/null @@ -1,3217 +0,0 @@ -;;; evil-common.el --- Common functions and utilities -;; Author: Vegard Ă˜ye -;; Maintainer: Vegard Ă˜ye - -;; Version: 1.0.1 - -;; -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; This file is part of Evil. -;; -;; Evil is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; Evil is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Evil. If not, see . - -(require 'evil-vars) -(require 'rect) - -;;; Code: - -(declare-function evil-visual-state-p "evil-states") - -;;; Compatibility for Emacs 23 -(unless (fboundp 'deactivate-input-method) - (defalias 'deactivate-input-method 'inactivate-input-method)) -(unless (boundp 'input-method-deactivate-hook) - (defvaralias 'input-method-deactivate-hook 'input-method-inactivate-hook)) - -(condition-case nil - (require 'windmove) - (error - (message "evil: Could not load `windmove', \ -window commands not available.") - nil)) - -(when (and (require 'undo-tree nil t) - (fboundp 'global-undo-tree-mode)) - (global-undo-tree-mode 1)) - -;;; Compatibility with different Emacs versions - -(defmacro evil-called-interactively-p () - "Wrapper for `called-interactively-p'. -In older versions of Emacs, `called-interactively-p' takes -no arguments. In Emacs 23.2 and newer, it takes one argument." - (if (version< emacs-version "23.2") - '(called-interactively-p) - '(called-interactively-p 'any))) - -(unless (fboundp 'region-active-p) - (defun region-active-p () - "Returns t iff region and mark are active." - (and transient-mark-mode mark-active))) - -;; Emacs <23 does not know `characterp' -(unless (fboundp 'characterp) - (defalias 'characterp 'char-valid-p)) - -;; `make-char-table' requires this property in Emacs 22 -(unless (get 'display-table 'char-table-extra-slots) - (put 'display-table 'char-table-extra-slots 0)) - -;; macro helper -(eval-and-compile - (defun evil-unquote (exp) - "Return EXP unquoted." - (while (eq (car-safe exp) 'quote) - (setq exp (cadr exp))) - exp)) - -(defun evil-delay (condition form hook &optional append local name) - "Execute FORM when CONDITION becomes true, checking with HOOK. -NAME specifies the name of the entry added to HOOK. If APPEND is -non-nil, the entry is appended to the hook. If LOCAL is non-nil, -the buffer-local value of HOOK is modified." - (if (and (not (booleanp condition)) (eval condition)) - (eval form) - (let* ((name (or name (format "evil-delay-form-in-%s" hook))) - (fun (make-symbol name)) - (condition (or condition t))) - (fset fun `(lambda (&rest args) - (when ,condition - (remove-hook ',hook #',fun ',local) - ,form))) - (put fun 'permanent-local-hook t) - (add-hook hook fun append local)))) -(put 'evil-delay 'lisp-indent-function 2) - -;;; List functions - -(defun evil-add-to-alist (list-var key val &rest elements) - "Add the assocation of KEY and VAL to the value of LIST-VAR. -If the list already contains an entry for KEY, update that entry; -otherwise add at the end of the list." - (let ((tail (symbol-value list-var))) - (while (and tail (not (equal (car-safe (car-safe tail)) key))) - (setq tail (cdr tail))) - (if tail - (setcar tail (cons key val)) - (set list-var (append (symbol-value list-var) - (list (cons key val))))) - (if elements - (apply #'evil-add-to-alist list-var elements) - (symbol-value list-var)))) - -;; custom version of `delete-if' -(defun evil-filter-list (predicate list &optional pointer) - "Delete by side-effect all items satisfying PREDICATE in LIST. -Stop when reaching POINTER. If the first item satisfies PREDICATE, -there is no way to remove it by side-effect; therefore, write -\(setq foo (evil-filter-list 'predicate foo)) to be sure of -changing the value of `foo'." - (let ((tail list) elt head) - (while (and tail (not (eq tail pointer))) - (setq elt (car tail)) - (cond - ((funcall predicate elt) - (setq tail (cdr tail)) - (if head - (setcdr head tail) - (setq list tail))) - (t - (setq head tail - tail (cdr tail))))) - list)) - -(defun evil-member-if (predicate list &optional pointer) - "Find the first item satisfying PREDICATE in LIST. -Stop when reaching POINTER, which should point at a link -in the list." - (let (elt) - (catch 'done - (while (and (consp list) (not (eq list pointer))) - (setq elt (car list)) - (if (funcall predicate elt) - (throw 'done elt) - (setq list (cdr list))))))) - -(defun evil-member-recursive-if (predicate tree) - "Find the first item satisfying PREDICATE in TREE." - (cond - ((funcall predicate tree) - tree) - ((listp tree) - (catch 'done - (dolist (elt tree) - (when (setq elt (evil-member-recursive-if predicate elt)) - (throw 'done elt))))))) - -(defun evil-concat-lists (&rest sequences) - "Concatenate lists, removing duplicates. -Elements are compared with `eq'." - (let (result) - (dolist (sequence sequences) - (dolist (elt sequence) - (add-to-list 'result elt nil #'eq))) - (nreverse result))) - -(defun evil-concat-alists (&rest sequences) - "Concatenate association lists, removing duplicates. -An alist is a list of cons cells (KEY . VALUE) where each key -may occur only once. Later values overwrite earlier values." - (let (result) - (dolist (sequence sequences) - (dolist (elt sequence) - (setq result (assq-delete-all (car-safe elt) result)) - (push elt result))) - (nreverse result))) - -(defun evil-concat-plists (&rest sequences) - "Concatenate property lists, removing duplicates. -A property list is a list (:KEYWORD1 VALUE1 :KEYWORD2 VALUE2...) -where each keyword may occur only once. Later values overwrite -earlier values." - (let (result) - (dolist (sequence sequences result) - (while sequence - (setq result - (plist-put result (pop sequence) (pop sequence))))))) - -(defun evil-concat-keymap-alists (&rest sequences) - "Concatenate keymap association lists, removing duplicates. -A keymap alist is a list of cons cells (VAR . MAP) where each keymap -may occur only once, but where the variables may be repeated -\(e.g., (VAR . MAP1) (VAR . MAP2) is allowed). The order matters, -with the highest priority keymaps being listed first." - (let (result) - (dolist (sequence sequences) - (dolist (elt sequence) - (unless (rassq (cdr-safe elt) result) - (push elt result)))) - (nreverse result))) - -(defun evil-plist-delete (prop plist) - "Delete by side effect the property PROP from PLIST. -If PROP is the first property in PLIST, there is no way -to remove it by side-effect; therefore, write -\(setq foo (evil-plist-delete :prop foo)) to be sure of -changing the value of `foo'." - (let ((tail plist) elt head) - (while tail - (setq elt (car tail)) - (cond - ((eq elt prop) - (setq tail (cdr (cdr tail))) - (if head - (setcdr (cdr head) tail) - (setq plist tail))) - (t - (setq head tail - tail (cdr (cdr tail)))))) - plist)) - -(defun evil-get-property (alist key &optional prop) - "Return property PROP for KEY in ALIST. -ALIST is an association list with entries of the form -\(KEY . PLIST), where PLIST is a property list. -If PROP is nil, return all properties for KEY. -If KEY is t, return an association list of keys -and their PROP values." - (cond - ((null prop) - (cdr (assq key alist))) - ((eq key t) - (let (result val) - (dolist (entry alist result) - (setq key (car entry) - val (cdr entry)) - (when (plist-member val prop) - (setq val (plist-get val prop)) - (push (cons key val) result))))) - (t - (plist-get (cdr (assq key alist)) prop)))) - -(defun evil-put-property (alist-var key prop val &rest properties) - "Set PROP to VAL for KEY in ALIST-VAR. -ALIST-VAR points to an association list with entries of the form -\(KEY . PLIST), where PLIST is a property list storing PROP and VAL." - (set alist-var - (let* ((alist (symbol-value alist-var)) - (plist (cdr (assq key alist)))) - (setq plist (plist-put plist prop val)) - (when properties - (setq plist (evil-concat-plists plist properties) - val (car (last properties)))) - (setq alist (assq-delete-all key alist)) - (push (cons key plist) alist))) - val) - -(defun evil-state-property (state prop &optional value) - "Return the value of property PROP for STATE. -PROP is a keyword as used by `evil-define-state'. -STATE is the state's symbolic name. -If VALUE is non-nil and the value is a variable, -return the value of that variable." - (let ((val (evil-get-property evil-state-properties state prop))) - (if (and value (symbolp val) (boundp val)) - (symbol-value val) - val))) - -(defmacro evil-swap (this that &rest vars) - "Swap the values of variables THIS and THAT. -If three or more arguments are given, the values are rotated. -E.g., (evil-swap A B C) sets A to B, B to C, and C to A." - `(progn - (setq ,this (prog1 ,that - (setq ,that ,this))) - ,@(when vars - `((evil-swap ,that ,@vars))))) - -(defmacro evil-sort (min max &rest vars) - "Place the smallest value in MIN and the largest in MAX. -If three or more arguments are given, place the smallest -value in the first argument and the largest in the last, -sorting in between." - (let ((sorted (make-symbol "sortvar"))) - `(let ((,sorted (sort (list ,min ,max ,@vars) '<))) - (setq ,min (pop ,sorted) - ,max (pop ,sorted) - ,@(apply #'append - (mapcar #'(lambda (var) - (list var `(pop ,sorted))) - vars)))))) - -;;; Command properties - -(defmacro evil-define-command (command &rest body) - "Define a command COMMAND. - -\(fn COMMAND (ARGS...) DOC [[KEY VALUE]...] BODY...)" - (declare (indent defun) - (debug (&define name - [&optional lambda-list] - [&optional stringp] - [&rest keywordp sexp] - [&optional ("interactive" [&rest form])] - def-body))) - (let ((interactive '(interactive)) - arg args doc doc-form key keys) - ;; collect arguments - (when (listp (car-safe body)) - (setq args (pop body))) - ;; collect docstring - (when (> (length body) 1) - (if (eq (car-safe (car-safe body)) 'format) - (setq doc-form (pop body)) - (when (stringp (car-safe body)) - (setq doc (pop body))))) - ;; collect keywords - (setq keys (plist-put keys :repeat t)) - (while (keywordp (car-safe body)) - (setq key (pop body) - arg (pop body)) - (unless nil ; TODO: add keyword check - (setq keys (plist-put keys key arg)))) - ;; collect `interactive' form - (when (and body (consp (car body)) - (eq (car (car body)) 'interactive)) - (let* ((iform (pop body)) - (result (apply #'evil-interactive-form (cdr iform))) - (form (car result)) - (attrs (cdr result))) - (setq interactive `(interactive ,form) - keys (evil-concat-plists keys attrs)))) - `(progn - ;; the compiler does not recognize `defun' inside `let' - ,(when (and command body) - `(defun ,command ,args - ,@(when doc `(,doc)) - ,interactive - ,@body)) - ,(when (and command doc-form) - `(put ',command 'function-documentation ,doc-form)) - ;; set command properties for symbol or lambda function - (let ((func ',(if (and (null command) body) - `(lambda ,args - ,interactive - ,@body) - command))) - (apply #'evil-set-command-properties func ',keys) - func)))) - -;; If no Evil properties are defined for the command, several parts of -;; Evil apply certain default rules; e.g., the repeat system decides -;; whether the command is repeatable by monitoring buffer changes. -(defun evil-has-command-property-p (command property) - "Whether COMMAND has Evil PROPERTY. -See also `evil-has-command-properties-p'." - (plist-member (evil-get-command-properties command) property)) - -(defun evil-has-command-properties-p (command) - "Whether Evil properties are defined for COMMAND. -See also `evil-has-command-property-p'." - (and (evil-get-command-properties command) t)) - -(defun evil-get-command-property (command property &optional default) - "Return the value of Evil PROPERTY of COMMAND. -If the command does not have the property, return DEFAULT. -See also `evil-get-command-properties'." - (if (evil-has-command-property-p command property) - (evil-get-property evil-command-properties command property) - default)) - -(defun evil-get-command-properties (command) - "Return all Evil properties of COMMAND. -See also `evil-get-command-property'." - (evil-get-property evil-command-properties command)) - -(defun evil-set-command-property (command property value) - "Set PROPERTY to VALUE for COMMAND. -To set multiple properties at once, see -`evil-set-command-properties' and `evil-add-command-properties'." - (evil-put-property 'evil-command-properties command property value)) -(defalias 'evil-put-command-property 'evil-set-command-property) - -(defun evil-add-command-properties (command &rest properties) - "Add PROPERTIES to COMMAND. -PROPERTIES should be a property list. -To replace all properties at once, use `evil-set-command-properties'." - (apply #'evil-put-property - 'evil-command-properties command properties)) - -(defun evil-set-command-properties (command &rest properties) - "Replace all of COMMAND's properties with PROPERTIES. -PROPERTIES should be a property list. -This erases all previous properties; to only add properties, -use `evil-set-command-property'." - (setq evil-command-properties - (assq-delete-all command evil-command-properties)) - (when properties - (apply #'evil-add-command-properties command properties))) - -(defun evil-remove-command-properties (command &rest properties) - "Remove PROPERTIES from COMMAND. -PROPERTIES should be a list of properties (:PROP1 :PROP2 ...). -If PROPERTIES is the empty list, all properties are removed." - (let (plist) - (when properties - (setq plist (evil-get-command-properties command)) - (dolist (property properties) - (setq plist (evil-plist-delete property plist)))) - (apply #'evil-set-command-properties command plist))) - -(defun evil-yank-handler (&optional motion) - "Return the yank handler for MOTION. -MOTION defaults to the current motion." - (setq motion (or motion evil-this-motion)) - (evil-get-command-property motion :yank-handler)) - -(defun evil-declare-motion (command) - "Declare COMMAND to be a movement function. -This ensures that it behaves correctly in Visual state." - (evil-add-command-properties command :keep-visual t :repeat 'motion)) - -(defun evil-declare-repeat (command) - "Declare COMMAND to be repeatable." - (evil-add-command-properties command :repeat t)) - -(defun evil-declare-not-repeat (command) - "Declare COMMAND to be nonrepeatable." - (evil-add-command-properties command :repeat nil)) - -(defun evil-declare-ignore-repeat (command) - "Declare COMMAND to be nonrepeatable." - (evil-add-command-properties command :repeat 'ignore)) - -(defun evil-declare-change-repeat (command) - "Declare COMMAND to be repeatable by buffer changes." - (evil-add-command-properties command :repeat 'change)) - -(defun evil-declare-insert-at-point-repeat (command) - "Declare COMMAND to be repeatable by buffer changes." - (evil-add-command-properties command :repeat 'insert-at-point)) - -(defun evil-declare-abort-repeat (command) - "Declare COMMAND to be nonrepeatable." - (evil-add-command-properties command :repeat 'abort)) - -(defun evil-delimited-arguments (string &optional num) - "Parse STRING as a sequence of delimited arguments. -Returns a list of NUM strings, or as many arguments as -the string contains. The first non-blank character is -taken to be the delimiter. If some arguments are missing -from STRING, the resulting list is padded with nil values. -Two delimiters following directly after each other gives -an empty string." - (save-match-data - (let ((string (or string "")) - (count (or num -1)) (idx 0) - argument delim match result) - (when (string-match "^[[:space:]]*\\([^[:space:]]\\)" string) - (setq delim (match-string 1 string) - argument (format "%s\\(\\(?:[\\].\\|[^%s]\\)*\\)" - (regexp-quote delim) - delim)) - (while (and (/= count 0) (string-match argument string idx)) - (setq match (match-string 1 string) - idx (match-end 1) - count (1- count)) - (when (= count 0) - (unless (save-match-data - (string-match - (format "%s[[:space:]]*$" delim) string idx)) - (setq match (substring string (match-beginning 1))))) - (unless (and (zerop (length match)) - (zerop (length (substring string idx)))) - (push match result)))) - (when (and num (< (length result) num)) - (dotimes (i (- num (length result))) - (push nil result))) - (nreverse result)))) - -(defun evil-concat-charsets (&rest sets) - "Concatenate character sets. -A character set is the part between [ and ] in a regular expression. -If any character set is complemented, the result is also complemented." - (let ((bracket "") (complement "") (hyphen "") result) - (save-match-data - (dolist (set sets) - (when (string-match "^\\^" set) - (setq set (substring set 1) - complement "^")) - (when (string-match "^]" set) - (setq set (substring set 1) - bracket "]")) - (when (string-match "^-" set) - (setq set (substring set 1) - hyphen "-")) - (setq result (concat result set))) - (format "%s%s%s%s" complement bracket hyphen result)))) - -;;; Key sequences - -(defun evil-keypress-parser (&optional input) - "Read from keyboard or INPUT and build a command description. -Returns (CMD COUNT), where COUNT is the numeric prefix argument. -Both COUNT and CMD may be nil." - (let ((input (listify-key-sequence input)) - (inhibit-quit t) - char cmd count digit event seq) - (while (progn - (setq event (or (pop input) (read-event))) - (when (eq event ?\e) - (when (sit-for evil-esc-delay t) - (setq event 'escape))) - (setq char (or (when (characterp event) event) - (when (symbolp event) - (get event 'ascii-character)))) - ;; this trick from simple.el's `digit-argument' - ;; converts keystrokes like C-0 and C-M-1 to digits - (if (or (characterp char) (integerp char)) - (setq digit (- (logand char ?\177) ?0)) - (setq digit nil)) - (if (keymapp cmd) - (setq seq (append seq (list event))) - (setq seq (list event))) - (setq cmd (key-binding (vconcat seq) t)) - (cond - ;; if CMD is a keymap, we need to read more - ((keymapp cmd) - t) - ;; numeric prefix argument - ((or (eq cmd #'digit-argument) - (and (eq (length seq) 1) - (not (keymapp cmd)) - count - (memq digit '(0 1 2 3 4 5 6 7 8 9)))) - ;; store digits in a string, which is easily converted - ;; to a number afterwards - (setq count (concat (or count "") - (number-to-string digit))) - t) - ;; catch middle digits like "da2w" - ((and (not cmd) - (> (length seq) 1) - (memq digit '(0 1 2 3 4 5 6 7 8 9))) - (setq count (concat (or count "") - (number-to-string digit))) - ;; remove the digit from the key sequence - ;; so we can see if the previous one goes anywhere - (setq seq (nbutlast seq 1)) - (setq cmd (key-binding (vconcat seq))) - t) - ((eq cmd 'negative-argument) - (unless count - (setq count "-")))))) - ;; determine COUNT - (when (stringp count) - (if (string= count "-") - (setq count nil) - (setq count (string-to-number count)))) - ;; return command description - (when (arrayp cmd) - (let ((result (evil-keypress-parser cmd))) - (setq cmd (car result) - count (cond - ((and count (cadr result)) - (* count (cadr result))) - (count count) - (t (cadr result)))))) - (list cmd count))) - -(defun evil-read-key (&optional prompt) - "Read a key from the keyboard. -Translates it according to the input method." - (let ((old-global-map (current-global-map)) - (new-global-map (make-sparse-keymap)) - (overriding-terminal-local-map evil-read-key-map) - overriding-local-map seq char cmd) - (unwind-protect - (condition-case nil - (progn - (define-key new-global-map [menu-bar] - (lookup-key global-map [menu-bar])) - (define-key new-global-map [tool-bar] - (lookup-key global-map [tool-bar])) - (add-to-list 'new-global-map - (make-char-table 'display-table - 'self-insert-command) t) - (use-global-map new-global-map) - (setq seq (read-key-sequence prompt nil t) - char (aref seq 0) - cmd (key-binding seq)) - (while (arrayp cmd) - (setq char (aref cmd 0) - cmd (key-binding cmd))) - (cond - ((eq cmd 'self-insert-command) - char) - (cmd - (call-interactively cmd)) - (t - (error "No replacement character typed")))) - (quit - (when (fboundp 'evil-repeat-abort) - (evil-repeat-abort)) - (signal 'quit nil))) - (use-global-map old-global-map)))) - -(defun evil-read-quoted-char () - "Command that calls `read-quoted-char'. -This command can be used wherever `read-quoted-char' is required -as a command. Its main use is in the `evil-read-key-map'." - (interactive) - (read-quoted-char)) - -(defun evil-read-motion (&optional motion count type modifier) - "Read a MOTION, motion COUNT and motion TYPE from the keyboard. -The type may be overridden with MODIFIER, which may be a type -or a Visual selection as defined by `evil-define-visual-selection'. -Return a list (MOTION COUNT [TYPE])." - (let ((modifiers '((evil-visual-char . char) - (evil-visual-line . line) - (evil-visual-block . block))) - command prefix) - (unless motion - (while (progn - (setq command (evil-keypress-parser) - motion (pop command) - prefix (pop command)) - (when prefix - (if count - (setq count (string-to-number - (concat (number-to-string count) - (number-to-string prefix)))) - (setq count prefix))) - ;; if the command is a type modifier, read more - (when (rassq motion evil-visual-alist) - (setq modifier - (or modifier - (car (rassq motion evil-visual-alist)))))))) - (when modifier - (setq type (or type (evil-type motion 'exclusive))) - (cond - ((eq modifier 'char) - ;; TODO: this behavior could be less hard-coded - (if (eq type 'exclusive) - (setq type 'inclusive) - (setq type 'exclusive))) - (t - (setq type modifier)))) - (list motion count type))) - -(defun evil-mouse-events-p (keys) - "Returns non-nil iff KEYS contains a mouse event." - (catch 'done - (dotimes (i (length keys)) - (when (or (and (fboundp 'mouse-event-p) - (mouse-event-p (aref keys i))) - (mouse-movement-p (aref keys i))) - (throw 'done t))) - nil)) - -(defun evil-extract-count (keys) - "Splits the key-sequence KEYS into prefix-argument and the rest. -Returns the list (PREFIX CMD SEQ REST), where PREFIX is the -prefix count, CMD the command to be executed, SEQ the subsequence -calling CMD, and REST is all remaining events in the -key-sequence. PREFIX and REST may be nil if they do not exist. -If a command is bound to some keyboard macro, it is expanded -recursively." - (catch 'done - (let* ((len (length keys)) - (beg 0) - (end 1) - (found-prefix nil)) - (while (and (<= end len)) - (let ((cmd (key-binding (substring keys beg end)))) - (cond - ((memq cmd '(undefined nil)) - (error "No command bound to %s" (substring keys beg end))) - ((arrayp cmd) ; keyboard macro, replace command with macro - (setq keys (vconcat (substring keys 0 beg) - cmd - (substring keys end)) - end (1+ beg) - len (length keys))) - ((functionp cmd) - (if (or (memq cmd '(digit-argument negative-argument)) - (and found-prefix - (evil-get-command-property - cmd :digit-argument-redirection))) - ;; skip those commands - (setq found-prefix t ; found at least one prefix argument - beg end - end (1+ end)) - ;; a real command, finish - (throw 'done - (list (unless (zerop beg) - (string-to-number - (concat (substring keys 0 beg)))) - cmd - (substring keys beg end) - (when (< end len) - (substring keys end)))))) - (t ; append a further event - (setq end (1+ end)))))) - (error "Key sequence contains no complete binding")))) - -(defmacro evil-redirect-digit-argument (map keys target) - "Bind a wrapper function calling TARGET or `digit-argument'. -MAP is a keymap for binding KEYS to the wrapper for TARGET. -The wrapper only calls `digit-argument' if a prefix-argument -has already been started; otherwise TARGET is called." - (let* ((target (eval target)) - (wrapper (intern (format "evil-digit-argument-or-%s" - target)))) - `(progn - (define-key ,map ,keys ',wrapper) - (evil-define-command ,wrapper () - :digit-argument-redirection ,target - :keep-visual t - :repeat nil - (interactive) - (cond - (current-prefix-arg - (setq this-command #'digit-argument) - (call-interactively #'digit-argument)) - (t - (setq this-command #',target) - (call-interactively #',target))))))) - -(defun evil-set-keymap-prompt (map prompt) - "Set the prompt-string of MAP to PROMPT." - (delq (keymap-prompt map) map) - (when prompt - (setcdr map (cons prompt (cdr map))))) - -;;; Display - -(defun evil-set-cursor (specs) - "Change the cursor's apperance according to SPECS. -SPECS may be a cursor type as per `cursor-type', a color -string as passed to `set-cursor-color', a zero-argument -function for changing the cursor, or a list of the above." - (unless (and (listp specs) - (null (cdr-safe (last specs)))) - (setq specs (list specs))) - (dolist (spec specs) - (cond - ((functionp spec) - (condition-case nil - (funcall spec) - (error nil))) - ((stringp spec) - (evil-set-cursor-color spec)) - (t - (setq cursor-type spec))))) - -(defun evil-set-cursor-color (color) - "Set the cursor color to COLOR." - (unless (equal (frame-parameter nil 'cursor-color) color) - ;; `set-cursor-color' forces a redisplay, so only - ;; call it when the color actually changes - (set-cursor-color color))) - -(defun evil-refresh-cursor (&optional state buffer) - "Refresh the cursor for STATE in BUFFER. -STATE defaults to the current state. -BUFFER defaults to the current buffer." - (when (and (boundp 'evil-local-mode) evil-local-mode) - (let* ((state (or state evil-state 'normal)) - (default (or evil-default-cursor t)) - (cursor (evil-state-property state :cursor t)) - (color (or (and (stringp cursor) cursor) - (and (listp cursor) - (evil-member-if #'stringp cursor))))) - (with-current-buffer (or buffer (current-buffer)) - ;; if both STATE and `evil-default-cursor' - ;; specify a color, don't set it twice - (when (and color (listp default)) - (setq default (evil-filter-list #'stringp default))) - (evil-set-cursor default) - (evil-set-cursor cursor))))) -(put 'evil-refresh-cursor 'permanent-local-hook t) - -(defmacro evil-save-cursor (&rest body) - "Save the current cursor; execute BODY; restore the cursor." - (declare (indent defun) - (debug t)) - `(let ((cursor cursor-type) - (color (frame-parameter (selected-frame) 'cursor-color)) - (inhibit-quit t)) - (unwind-protect - (progn ,@body) - (evil-set-cursor cursor) - (evil-set-cursor color)))) - -(defun evil-echo (string &rest args) - "Display an unlogged message in the echo area. -That is, the message is not logged in the *Messages* buffer. -\(To log the message, just use `message'.)" - (unless evil-no-display - (let (message-log-max) - (apply #'message string args)))) - -(defun evil-echo-area-save () - "Save the current echo area in `evil-echo-area-message'." - (setq evil-echo-area-message (current-message))) - -(defun evil-echo-area-restore () - "Restore the echo area from `evil-echo-area-message'. -Does not restore if `evil-write-echo-area' is non-nil." - (unless evil-write-echo-area - (if evil-echo-area-message - (message "%s" evil-echo-area-message) - (message nil))) - (setq evil-echo-area-message nil - evil-write-echo-area nil)) - -;; toggleable version of `with-temp-message' -(defmacro evil-save-echo-area (&rest body) - "Save the echo area; execute BODY; restore the echo area. -Intermittent messages are not logged in the *Messages* buffer." - (declare (indent defun) - (debug t)) - `(let ((inhibit-quit t) - evil-echo-area-message - evil-write-echo-area) - (unwind-protect - (progn - (evil-echo-area-save) - ,@body) - (evil-echo-area-restore)))) - -(defmacro evil-without-display (&rest body) - "Execute BODY without Evil displays. -Inhibits echo area messages, mode line updates and cursor changes." - (declare (indent defun) - (debug t)) - `(let ((evil-no-display t)) - ,@body)) - -(defun evil-num-visible-lines () - "Returns the number of currently visible lines." - (- (window-height) 1)) - -(defun evil-max-scroll-up () - "Returns the maximal number of lines that can be scrolled up." - (1- (line-number-at-pos (window-start)))) - -(defun evil-max-scroll-down () - "Returns the maximal number of lines that can be scrolled down." - (if (pos-visible-in-window-p (window-end)) - 0 - (1+ (- (line-number-at-pos (point-max)) - (line-number-at-pos (window-end)))))) - -;;; Movement - -(defun evil-normalize-position (pos) - "Return POS if it does not exceed the buffer boundaries. -If POS is less than `point-min', return `point-min'. -Is POS is more than `point-max', return `point-max'. -If POS is a marker, return its position." - (cond - ((not (number-or-marker-p pos)) - pos) - ((< pos (point-min)) - (point-min)) - ((> pos (point-max)) - (point-max)) - ((markerp pos) - (marker-position pos)) - (t - pos))) - -(defmacro evil-save-goal-column (&rest body) - "Restores the goal column after execution of BODY. -See also `evil-save-column'." - (declare (indent defun) - (debug t)) - `(let ((goal-column goal-column) - (temporary-goal-column temporary-goal-column)) - ,@body)) - -(defmacro evil-save-column (&rest body) - "Restores the column after execution of BODY. -See also `evil-save-goal-column'." - (declare (indent defun) - (debug t)) - `(let ((col (current-column))) - (evil-save-goal-column - ,@body - (move-to-column col)))) - -(defun evil-narrow (beg end) - "Restrict the buffer to BEG and END. -BEG or END may be nil, specifying a one-sided restriction including -`point-min' or `point-max'. See also `evil-with-restriction.'" - (setq beg (or (evil-normalize-position beg) (point-min))) - (setq end (or (evil-normalize-position end) (point-max))) - (narrow-to-region beg end)) - -(defmacro evil-with-restriction (beg end &rest body) - "Execute BODY with the buffer narrowed to BEG and END. -BEG or END may be nil as passed to `evil-narrow'; this creates -a one-sided restriction." - (declare (indent 2) - (debug t)) - `(save-restriction - (evil-narrow ,beg ,end) - ,@body)) - -(defmacro evil-narrow-to-field (&rest body) - "Narrow to the current field." - (declare (indent defun) - (debug t)) - `(evil-with-restriction (field-beginning) (field-end) - ,@body)) - -(defun evil-move-beginning-of-line (&optional arg) - "Move to the beginning of the line as displayed. -Like `move-beginning-of-line', but retains the goal column." - (evil-save-goal-column - (move-beginning-of-line arg) - (beginning-of-line))) - -(defun evil-move-end-of-line (&optional arg) - "Move to the end of the line as displayed. -Like `move-end-of-line', but retains the goal column." - (evil-save-goal-column - (move-end-of-line arg) - (end-of-line))) - -(defun evil-adjust-cursor (&optional force) - "Move point one character back if at the end of a non-empty line. -This behavior is contingent on the variable `evil-move-cursor-back'; -use the FORCE parameter to override it." - (when (and (eolp) - (not (bolp)) - (= (point) - (save-excursion - (evil-move-end-of-line) - (point)))) - (evil-move-cursor-back force))) - -(defun evil-move-cursor-back (&optional force) - "Move point one character back within the current line. -Contingent on the variable `evil-move-cursor-back' or the FORCE -argument. Honors field boundaries, i.e., constrains the movement -to the current field as recognized by `line-beginning-position'." - (when (or evil-move-cursor-back force) - (unless (or (= (point) (line-beginning-position)) - (and (boundp 'visual-line-mode) - visual-line-mode - (= (point) (save-excursion - (beginning-of-visual-line) - (point))))) - (backward-char)))) - -(defun evil-line-position (line &optional column) - "Return the position of LINE. -If COLUMN is specified, return its position on the line. -A negative number means the end of the line." - (save-excursion - (when (fboundp 'evil-goto-line) - (evil-goto-line line)) - (if (numberp column) - (if (< column 0) - (beginning-of-line 2) - (move-to-column column)) - (beginning-of-line)) - (point))) - -(defun evil-column (&optional pos) - "Return the horizontal position of POS. -POS defaults to point." - (save-excursion - (when pos - (goto-char pos)) - (current-column))) - -(defun evil-move-to-column (column &optional dir force) - "Move point to column COLUMN in the current line. -Places point at left of the tab character (at the right if DIR -is non-nil) and returns point." - (interactive "p") - (move-to-column column force) - (unless force - (when (or (not dir) (and (numberp dir) (< dir 1))) - (when (> (current-column) column) - (evil-move-cursor-back)))) - (point)) - -(defmacro evil-loop (spec &rest body) - "Loop with countdown variable. -Evaluate BODY with VAR counting down from COUNT to 0. -COUNT can be negative, in which case VAR counts up instead. -The return value is the value of VAR when the loop -terminates, which is 0 if the loop completes successfully. -RESULT specifies a variable for storing this value. - -\(fn (VAR COUNT [RESULT]) BODY...)" - (declare (indent defun) - (debug dolist)) - (let* ((i (make-symbol "loopvar")) - (var (pop spec)) - (count (pop spec)) - (result (pop spec))) - (setq var (or (unless (eq var result) var) i) - result (or result var)) - `(let ((,var ,count)) - (setq ,result ,var) - (while (/= ,var 0) - ,@body - (if (> ,var 0) - (setq ,var (1- ,var)) - (setq ,var (1+ ,var))) - (setq ,result ,var)) - ,var))) - -(defmacro evil-motion-loop (spec &rest body) - "Loop a certain number of times. -Evaluate BODY repeatedly COUNT times with VAR bound to 1 or -1, -depending on the sign of COUNT. RESULT, if specified, holds -the number of unsuccessful iterations, which is 0 if the loop -completes successfully. This is also the return value. - -Each iteration must move point; if point does not change, -the loop immediately quits. See also `evil-loop'. - -\(fn (VAR COUNT [RESULT]) BODY...)" - (declare (indent defun) - (debug ((symbolp form &optional symbolp) body))) - (let* ((var (or (pop spec) (make-symbol "unitvar"))) - (countval (or (pop spec) 0)) - (result (pop spec)) - (i (make-symbol "loopvar")) - (count (make-symbol "countvar")) - (done (make-symbol "donevar")) - (orig (make-symbol "origvar"))) - `(let* ((,count ,countval) - (,var (if (< ,count 0) -1 1))) - (catch ',done - (evil-loop (,i ,count ,result) - (let ((,orig (point))) - ,@body - (when (= (point) ,orig) - (throw ',done ,i)))))))) - -(defmacro evil-signal-without-movement (&rest body) - "Catches errors provided point moves within this scope." - (declare (indent defun) - (debug t)) - `(let ((p (point))) - (condition-case err - (progn ,@body) - (error - (when (= p (point)) - (signal (car err) (cdr err))))))) - -(defun evil-goto-min (&rest positions) - "Go to the smallest position in POSITIONS. -Non-numerical elements are ignored. -See also `evil-goto-max'." - (when (setq positions (evil-filter-list - #'(lambda (elt) - (not (number-or-marker-p elt))) - positions)) - (goto-char (apply #'min positions)))) - -(defun evil-goto-max (&rest positions) - "Go to the largest position in POSITIONS. -Non-numerical elements are ignored. -See also `evil-goto-min'." - (when (setq positions (evil-filter-list - #'(lambda (elt) - (not (number-or-marker-p elt))) - positions)) - (goto-char (apply #'max positions)))) - -;; The purpose of this function is the provide line motions which -;; preserve the column. This is how `previous-line' and `next-line' -;; work, but unfortunately the behaviour is hard-coded: if and only if -;; the last command was `previous-line' or `next-line', the column is -;; preserved. Furthermore, in contrast to Vim, when we cannot go -;; further, those motions move point to the beginning resp. the end of -;; the line (we never want point to leave its column). The code here -;; comes from simple.el, and I hope it will work in future. -(defun evil-line-move (count &optional noerror) - "A wrapper for line motions which conserves the column. -Signals an error at buffer boundaries unless NOERROR is non-nil." - (cond - (noerror - (condition-case nil - (evil-line-move count) - (error nil))) - (t - (evil-signal-without-movement - (setq this-command (if (>= count 0) - #'next-line - #'previous-line)) - (let ((opoint (point))) - (condition-case err - (with-no-warnings - (funcall this-command (abs count))) - ((beginning-of-buffer end-of-buffer) - (let ((col (or goal-column - (if (consp temporary-goal-column) - (car temporary-goal-column) - temporary-goal-column)))) - (if line-move-visual - (vertical-motion (cons col 0)) - (line-move-finish col opoint (< count 0))) - ;; Maybe we should just `ding'? - (signal (car err) (cdr err)))))))))) - -(defun evil-forward-word (&optional count) - "Move by words. -Moves point COUNT words forward or (- COUNT) words backward if -COUNT is negative. This function is the same as `forward-word' -but returns the number of words by which point could *not* be -moved." - (setq count (or count 1)) - (let* ((dir (if (>= count 0) +1 -1)) - (count (abs count))) - (while (and (> count 0) - (forward-word dir)) - (setq count (1- count))) - count)) - -(defun evil-move-chars (chars count) - "Move point to the end or beginning of a sequence of CHARS. -CHARS is a character set as inside [...] in a regular expression." - (let ((regexp (format "[%s]" chars))) - (evil-motion-loop (var count) - (cond - ((< var 0) - (re-search-backward regexp nil t) - (skip-chars-backward chars)) - (t - (re-search-forward regexp nil t) - (skip-chars-forward chars)))))) - -;; this function is slightly adapted from paragraphs.el -(defun evil-move-sentence (count) - "Move by sentence." - (let ((count (or count 1)) - (opoint (point)) - (sentence-end (sentence-end)) - pos par-beg par-end) - (evil-motion-loop (var count) - (cond - ;; backward - ((< var 0) - (setq pos (point) - par-beg (save-excursion - (and (zerop (evil-move-paragraph -1)) - (point)))) - (if (and (re-search-backward sentence-end par-beg t) - (or (< (match-end 0) pos) - (re-search-backward sentence-end par-beg t))) - (goto-char (match-end 0)) - (goto-char (or par-beg pos)))) - ;; forward - (t - (setq par-end (save-excursion - (and (zerop (evil-move-paragraph 1)) - (point)))) - (if (re-search-forward sentence-end par-end t) - (skip-chars-backward " \t\n") - (goto-char (or par-end (point))))))))) - -(defun evil-move-paragraph (count) - "Move by paragraph." - (let ((count (or count 1)) - npoint opoint) - (evil-motion-loop (var count) - (setq opoint (point)) - (cond - ((< var 0) - (forward-paragraph -1) - (setq npoint (point)) - (skip-chars-forward " \t\n") - (when (and (>= (point) opoint) (< npoint opoint)) - (goto-char npoint) - (forward-paragraph -1) - (skip-chars-forward " \t\n") - (when (and (>= (point) opoint) (< npoint opoint)) - (goto-char opoint)))) - (t - (forward-paragraph 1) - (setq npoint (point)) - (skip-chars-backward " \t\n") - (when (<= (point) opoint) - (goto-char npoint) - (forward-paragraph 1) - (skip-chars-backward " \t\n") - (when (<= (point) opoint) - (goto-char opoint)))))))) - -(defun evil-in-regexp-p (regexp &optional pos) - "Whether POS is inside a match for REGEXP. -POS defaults to the current position of point." - (let ((pos (or pos (point)))) - (save-excursion - (goto-char pos) - (if (re-search-forward regexp nil t) - (goto-char (match-beginning 0)) - (goto-char (point-max))) - (when (re-search-backward regexp nil t) - (and (> pos (match-beginning 0)) - (< pos (match-end 0))))))) - -(defun evil-in-string-p (&optional pos) - "Whether POS is inside a string. -POS defaults to the current position of point." - (save-excursion - (let ((state (syntax-ppss pos))) - (and (nth 3 state) (nth 8 state))))) - -(defun evil-string-beginning (&optional pos) - "Return beginning of string containing POS. -POS defaults to the current position of point." - (evil-normalize-position (evil-in-string-p))) - -(defun evil-string-end (&optional pos limit) - "Return end of string containing POS. -POS defaults to the current position of point. Stops at LIMIT, -which defaults to the end of the buffer." - (save-excursion - (let ((state (syntax-ppss pos))) - (when (nth 3 state) - (parse-partial-sexp (or pos (point)) - (or limit (point-max)) - nil - nil - state - 'syntax-table) - (evil-normalize-position (point)))))) - -(defun evil-in-comment-p (&optional pos) - "Checks if POS is within a comment according to current syntax. -If POS is nil, (point) is used. The return value is the beginning -position of the comment." - (setq pos (or pos (point))) - (let ((chkpos - (cond - ((eobp) pos) - ((= (char-syntax (char-after)) ?<) (1+ pos)) - ((and (not (zerop (logand (car (syntax-after (point))) - (lsh 1 16)))) - (not (zerop (logand (or (car (syntax-after (1+ (point)))) 0) - (lsh 1 17))))) - (+ pos 2)) - ((and (not (zerop (logand (car (syntax-after (point))) - (lsh 1 17)))) - (not (zerop (logand (or (car (syntax-after (1- (point)))) 0) - (lsh 1 16))))) - (1+ pos)) - (t pos)))) - (let ((syn (save-excursion (syntax-ppss chkpos)))) - (and (nth 4 syn) (nth 8 syn))))) - -(defun evil-looking-at-start-comment (&optional move) - "Returns t if point is at the start of a comment. -point must be on one of the opening characters of a block comment -according to the current syntax table. Futhermore these -characters must been parsed as opening characters, i.e. they -won't be considered as comment starters inside a string or -possibly another comment. Point is moved to the first character -of the comment opener if MOVE is non-nil." - (cond - ;; one character opener - ((= (char-syntax (char-after)) ?<) - (equal (point) (evil-in-comment-p (1+ (point))))) - ;; two character opener on first char - ((and (not (zerop (logand (car (syntax-after (point))) - (lsh 1 16)))) - (not (zerop (logand (or (car (syntax-after (1+ (point)))) 0) - (lsh 1 17))))) - (equal (point) (evil-in-comment-p (+ 2 (point))))) - ;; two character opener on second char - ((and (not (zerop (logand (car (syntax-after (point))) - (lsh 1 17)))) - (not (zerop (logand (or (car (syntax-after (1- (point)))) 0) - (lsh 1 16))))) - (and (equal (1- (point)) (evil-in-comment-p (1+ (point)))) - (prog1 t (when move (backward-char))))))) - -(defun evil-looking-at-end-comment (&optional move) - "Returns t if point is at the end of a comment. -point must be on one of the opening characters of a block comment -according to the current syntax table. Futhermore these -characters must been parsed as opening characters, i.e. they -won't be considered as comment starters inside a string or -possibly another comment. Point is moved right after the comment -closer if MOVE is non-nil." - (cond - ;; one char closer - ((= (char-syntax (char-after)) ?>) - (and (evil-in-comment-p) ; in comment - (not (evil-in-comment-p (1+ (point)))) - (prog1 t (when move (forward-char))))) - ;; two char closer on first char - ((and (not (zerop (logand (car (syntax-after (point))) - (lsh 1 18)))) - (not (zerop (logand (or (car (syntax-after (1+ (point)))) 0) - (lsh 1 19))))) - (and (evil-in-comment-p) - (not (evil-in-comment-p (+ (point) 2))) - (prog1 t (when move (forward-char 2))))) - ;; two char closer on second char - ((and (not (zerop (logand (car (syntax-after (point))) - (lsh 1 19)))) - (not (zerop (logand (or (car (syntax-after (1- (point)))) 0) - (lsh 1 18))))) - (and (evil-in-comment-p) - (not (evil-in-comment-p (1+ (point)))) - (prog1 t (when move (forward-char))))))) - -(defun evil-comment-beginning (&optional pos) - "Return beginning of comment containing POS. -POS defaults to the current position of point." - (evil-in-comment-p pos)) - -(defun evil-comment-end (&optional pos) - "Return end of comment containing POS. -POS defaults to the current position of point." - (let ((beg (evil-in-comment-p pos))) - (and beg - (save-excursion - (goto-char beg) - (forward-comment 1) - (1- (point)))))) - -(defmacro evil-narrow-to-comment (&rest body) - "Narrow to the current comment or docstring, if any." - (declare (indent defun) - (debug t)) - `(save-restriction - (cond - ((evil-in-comment-p) - (narrow-to-region (evil-comment-beginning) (evil-comment-end))) - ((evil-in-string-p) - (narrow-to-region (evil-string-beginning) (evil-string-end)))) - ,@body)) - -(defmacro evil-with-or-without-comment (&rest body) - "Try BODY narrowed to the current comment; then try BODY unnarrowed. -If BODY returns non-nil inside the current comment, return that. -Otherwise, execute BODY again, but without the restriction." - (declare (indent defun) - (debug t)) - `(or (when (or (evil-in-comment-p) (evil-in-string-p)) - (evil-narrow-to-comment ,@body)) - (progn ,@body))) - -(defun evil-insert-newline-above () - "Inserts a new line above point and places point in that line -with regard to indentation." - (evil-narrow-to-field - (evil-move-beginning-of-line) - (insert "\n") - (forward-line -1) - (back-to-indentation))) - -(defun evil-insert-newline-below () - "Inserts a new line below point and places point in that line -with regard to indentation." - (evil-narrow-to-field - (evil-move-end-of-line) - (insert "\n") - (back-to-indentation))) - -;;; Markers - -(defun evil-global-marker-p (char) - "Whether CHAR denotes a global marker." - (or (and (>= char ?A) (<= char ?Z)) - (assq char (default-value 'evil-markers-alist)))) - -(defun evil-set-marker (char &optional pos advance) - "Set the marker denoted by CHAR to position POS. -POS defaults to the current position of point. -If ADVANCE is t, the marker advances when inserting text at it; -otherwise, it stays behind." - (interactive (list (read-char))) - (let ((marker (evil-get-marker char t)) alist) - (unless (markerp marker) - (cond - ((and marker (symbolp marker) (boundp marker)) - (set marker (or (symbol-value marker) (make-marker))) - (setq marker (symbol-value marker))) - ((functionp marker) - (error "Cannot set special marker `%c'" char)) - ((evil-global-marker-p char) - (setq alist (default-value 'evil-markers-alist) - marker (make-marker)) - (evil-add-to-alist 'alist char marker) - (setq-default evil-markers-alist alist)) - (t - (setq marker (make-marker)) - (evil-add-to-alist 'evil-markers-alist char marker)))) - (add-hook 'kill-buffer-hook #'evil-swap-out-markers nil t) - (set-marker-insertion-type marker advance) - (set-marker marker (or pos (point))))) - -(defun evil-get-marker (char &optional raw) - "Return the marker denoted by CHAR. -This is either a marker object as returned by `make-marker', -a number, a cons cell (FILE . POS) with FILE being a string -and POS a number, or nil. If RAW is non-nil, then the -return value may also be a variable, a movement function, -or a marker object pointing nowhere." - (let ((marker (if (evil-global-marker-p char) - (cdr-safe (assq char (default-value - 'evil-markers-alist))) - (cdr-safe (assq char evil-markers-alist))))) - (save-excursion - (if raw - marker - (when (and (symbolp marker) (boundp marker)) - (setq marker (symbol-value marker))) - (when (functionp marker) - (funcall marker) - (setq marker (point))) - (when (markerp marker) - (if (eq (marker-buffer marker) (current-buffer)) - (setq marker (marker-position marker)) - (setq marker (and (marker-buffer marker) marker)))) - (when (or (numberp marker) - (markerp marker) - (and (consp marker) - (stringp (car marker)) - (numberp (cdr marker)))) - marker))))) - -(defun evil-swap-out-markers () - "Turn markers into file references when the buffer is killed." - (and buffer-file-name - (dolist (entry evil-markers-alist) - (and (markerp (cdr entry)) - (eq (marker-buffer (cdr entry)) (current-buffer)) - (setcdr entry (cons buffer-file-name - (marker-position (cdr entry)))))))) -(put 'evil-swap-out-markers 'permanent-local-hook t) - -(defun evil-jump-hook (&optional command) - "Set jump point if COMMAND has a non-nil :jump property." - (setq command (or command this-command)) - (when (evil-get-command-property command :jump) - (evil-set-jump))) - -(defun evil-set-jump (&optional pos) - "Set jump point at POS. -POS defaults to point." - (unless (or (region-active-p) (evil-visual-state-p)) - (evil-save-echo-area - (mapc #'(lambda (marker) - (set-marker marker nil)) - evil-jump-list) - (setq evil-jump-list nil) - (push-mark pos)))) - -(defun evil-get-register (register &optional noerror) - "Return contents of REGISTER. -Signal an error if empty, unless NOERROR is non-nil. - -The following special registers are supported. - \" the unnamed register - * the clipboard contents - + the clipboard contents - % the current file name (read only) - # the alternate file name (read only) - / the last search pattern (read only) - : the last command line (read only) - . the last inserted text (read only) - - the last small (less than a line) delete - = the expression register (read only)" - (when (characterp register) - (or (cond - ((eq register ?\") - (current-kill 0)) - ((and (<= ?0 register) (<= register ?9)) - (current-kill (- register ?0) t)) - ((eq register ?*) - (let ((x-select-enable-primary t)) - (current-kill 0))) - ((eq register ?+) - (let ((x-select-enable-clipboard t)) - (current-kill 0))) - ((eq register ?%) - (or (buffer-file-name) (unless noerror (error "No file name")))) - ((= register ?#) - (or (with-current-buffer (other-buffer) (buffer-file-name)) - (unless noerror (error "No file name")))) - ((eq register ?/) - (or (car-safe - (or (and (boundp 'evil-search-module) - (eq evil-search-module 'evil-search) - evil-ex-search-history) - (and isearch-regexp regexp-search-ring) - search-ring)) - (unless noerror (error "No previous regular expression")))) - ((eq register ?:) - (or (car-safe evil-ex-history) - (unless noerror (error "No previous command line")))) - ((eq register ?.) - evil-last-insertion) - ((eq register ?-) - evil-last-small-deletion) - ((eq register ?=) - (let* ((enable-recursive-minibuffers t) - (result (eval (car (read-from-string (read-string "=")))))) - (cond - ((or (stringp result) - (numberp result) - (symbolp result)) - (prin1-to-string result)) - ((sequencep result) - (mapconcat #'prin1-to-string result "\n")) - (t (error "Using %s as a string" (type-of result)))))) - ((eq register ?_) ; the black hole register - "") - (t - (setq register (downcase register)) - (get-register register))) - (unless noerror - (error "Register `%c' is empty" register))))) - -(defun evil-set-register (register text) - "Set the contents of register REGISTER to TEXT. -If REGISTER is an upcase character then text is appended to that -register instead of replacing its content." - (cond - ((eq register ?\") - (kill-new text)) - ((and (<= ?0 register) (<= register ?9)) - (if (null kill-ring) - (kill-new text) - (let ((kill-ring-yank-pointer kill-ring-yank-pointer) - interprogram-paste-function - interprogram-cut-function) - (current-kill (- register ?0)) - (setcar kill-ring-yank-pointer text)))) - ((eq register ?*) - (let ((x-select-enable-primary t)) - (kill-new text))) - ((eq register ?+) - (let ((x-select-enable-clipboard t)) - (kill-new text))) - ((eq register ?-) - (setq evil-last-small-deletion text)) - ((eq register ?_) ; the black hole register - nil) - ((and (<= ?A register) (<= register ?Z)) - (setq register (downcase register)) - (let ((content (get-register register))) - (cond - ((not content) - (set-register register text)) - ((or (text-property-not-all 0 (length content) - 'yank-handler nil - content) - (text-property-not-all 0 (length text) - 'yank-handler nil - text)) - ;; some non-trivial yank-handler -> always switch to line handler - ;; ensure complete lines - (when (and (> (length content) 0) - (/= (aref content (1- (length content))) ?\n)) - (setq content (concat content "\n"))) - (when (and (> (length text) 0) - (/= (aref text (1- (length text))) ?\n)) - (setq text (concat text "\n"))) - (setq text (concat content text)) - (remove-list-of-text-properties 0 (length text) '(yank-handler) text) - (setq text (propertize text 'yank-handler '(evil-yank-line-handler))) - (set-register register text)) - (t - (set-register register (concat content text)))))) - (t - (set-register register text)))) - -(defun evil-register-list () - "Returns an alist of all registers" - (sort (append (mapcar #'(lambda (reg) - (cons reg (evil-get-register reg t))) - '(?\" ?* ?+ ?% ?# ?/ ?: ?. ?- - ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9)) - register-alist) - #'(lambda (reg1 reg2) (< (car reg1) (car reg2))))) - -(defsubst evil-kbd-macro-suppress-motion-error () - "Returns non-nil if a motion error should be suppressed. -Whether the motion error should be suppressed depends on the -variable `evil-kbd-macro-suppress-motion-error'." - (or (and defining-kbd-macro - (memq evil-kbd-macro-suppress-motion-error '(t record))) - (and executing-kbd-macro - (memq evil-kbd-macro-suppress-motion-error '(t replay))))) - -;;; Region - -;; `set-mark' does too much at once -(defun evil-move-mark (pos) - "Set buffer's mark to POS. -If POS is nil, delete the mark." - (when pos - (setq pos (evil-normalize-position pos))) - (set-marker (mark-marker) pos)) - -(defun evil-save-transient-mark-mode () - "Save Transient Mark mode and make it buffer-local. -Any changes to Transient Mark mode are now local to the current -buffer, until `evil-restore-transient-mark-mode' is called. - -Variables pertaining to Transient Mark mode are listed in -`evil-transient-vars', and their values are stored in -`evil-transient-vals'." - (dolist (var evil-transient-vars) - (when (and (boundp var) - (not (assq var evil-transient-vals))) - (push (list var (symbol-value var) - (and (assq var (buffer-local-variables)) t)) - evil-transient-vals) - (make-variable-buffer-local var) - (put var 'permanent-local t)))) - -(defun evil-restore-transient-mark-mode () - "Restore Transient Mark mode. -This presupposes that `evil-save-transient-mark-mode' has been -called earlier. If Transient Mark mode was disabled before but -enabled in the meantime, this function disables it; if it was -enabled before but disabled in the meantime, this function -enables it. - -The earlier settings of Transient Mark mode are stored in -`evil-transient-vals'." - (let (entry local var val) - (while (setq entry (pop evil-transient-vals)) - (setq var (pop entry) - val (pop entry) - local (pop entry)) - (unless local - (kill-local-variable var)) - (unless (equal (symbol-value var) val) - (if (fboundp var) - (funcall var (if var 1 -1)) - (setq var val)))))) - -(defun evil-save-mark () - "Save the current mark, including whether it is transient. -See also `evil-restore-mark'." - (unless evil-visual-previous-mark - (setq evil-visual-previous-mark (mark t)) - (evil-save-transient-mark-mode))) - -(defun evil-restore-mark () - "Restore the mark, including whether it was transient. -See also `evil-save-mark'." - (when evil-visual-previous-mark - (evil-restore-transient-mark-mode) - (evil-move-mark evil-visual-previous-mark) - (setq evil-visual-previous-mark nil))) - -;; In theory, an active region implies Transient Mark mode, and -;; disabling Transient Mark mode implies deactivating the region. -;; In practice, Emacs never clears `mark-active' except in Transient -;; Mark mode, so we define our own toggle functions to make things -;; more predictable. -(defun evil-transient-mark (&optional arg) - "Toggle Transient Mark mode. -Ensure that the region is properly deactivated. -Enable with positive ARG, disable with negative ARG." - (unless (numberp arg) - (setq arg (if transient-mark-mode -1 1))) - (cond - ((< arg 1) - (evil-active-region -1) - ;; Transient Mark mode cannot be disabled - ;; while CUA mode is enabled - (when (fboundp 'cua-mode) - (cua-mode -1)) - (when transient-mark-mode - (transient-mark-mode -1))) - (t - (unless transient-mark-mode - (evil-active-region -1) - (transient-mark-mode 1))))) - -(defun evil-active-region (&optional arg) - "Toggle active region. -Ensure that Transient Mark mode is properly enabled. -Enable with positive ARG, disable with negative ARG." - (unless (numberp arg) - (setq arg (if (region-active-p) -1 1))) - (cond - ((and (< arg 1)) - (when (or transient-mark-mode mark-active) - (setq mark-active nil - deactivate-mark nil) - (when (boundp 'cua--explicit-region-start) - (setq cua--explicit-region-start nil)) - (run-hooks 'deactivate-mark-hook))) - (t - (evil-transient-mark 1) - (when deactivate-mark - (setq deactivate-mark nil)) - (unless (mark t) - (evil-move-mark (point))) - (unless (region-active-p) - (set-mark (mark t))) - (when (boundp 'cua--explicit-region-start) - (setq cua--explicit-region-start t))))) - -(defmacro evil-with-transient-mark-mode (&rest body) - "Execute BODY with Transient Mark mode. -Then restore Transient Mark mode to its previous setting." - (declare (indent defun) - (debug t)) - `(let ((inhibit-quit t) - evil-transient-vals) - (unwind-protect - (progn - (evil-save-transient-mark-mode) - (evil-transient-mark 1) - ,@body) - (evil-restore-transient-mark-mode)))) - -(defmacro evil-with-active-region (beg end &rest body) - "Execute BODY with an active region from BEG to END." - (declare (indent 2) - (debug t)) - `(let ((beg ,beg) (end ,end) - evil-transient-vals) - (evil-with-transient-mark-mode - (save-excursion - (evil-active-region 1) - (evil-move-mark beg) - (goto-char end) - ,@body)))) - -(defun evil-exchange-point-and-mark () - "Exchange point and mark without activating the region." - (let* ((point (point)) - (mark (or (mark t) point))) - (set-marker (mark-marker) point) - (goto-char mark))) - -(defun evil-apply-on-block (func beg end pass-columns &rest args) - "Call FUNC for each line of a block selection. -The selection is specified by the region BEG and END. FUNC must -take at least two arguments, the beginning and end of each -line. If PASS-COLUMNS is non-nil, these values are the columns, -otherwise tey are buffer positions. Extra arguments to FUNC may -be passed via ARGS." - (let ((eol-col (and (memq last-command '(next-line previous-line)) - (numberp temporary-goal-column) - temporary-goal-column)) - startcol startpt endcol endpt) - (save-excursion - (goto-char beg) - (setq startcol (current-column)) - (beginning-of-line) - (setq startpt (point)) - (goto-char end) - (setq endcol (current-column)) - (forward-line 1) - (setq endpt (point-marker)) - ;; ensure the start column is the left one. - (evil-sort startcol endcol) - ;; maybe find maximal column - (when eol-col - (setq eol-col 0) - (goto-char startpt) - (while (< (point) endpt) - (setq eol-col (max eol-col - (evil-column (line-end-position)))) - (forward-line 1)) - (setq endcol (max endcol - (min eol-col - (1+ (min (1- most-positive-fixnum) - temporary-goal-column)))))) - ;; start looping over lines - (goto-char startpt) - (while (< (point) endpt) - (if pass-columns - (apply func startcol endcol args) - (apply func - (save-excursion (evil-move-to-column startcol)) - (save-excursion (evil-move-to-column endcol t)) - args)) - (forward-line 1))))) - -(defun evil-apply-on-rectangle (function start end &rest args) - "Like `apply-on-rectangle' but maybe extends to eol. -If `temporary-goal-column' is set to a big number, then the -region of each line is extended to the end of each line. The end -column is set to the maximal column in all covered lines." - (apply #'evil-apply-on-block function start end t args)) - -;;; Insertion - -(defun evil-concat-ranges (ranges) - "Concatenate RANGES. -RANGES must be a list of ranges. They must be ordered so that -successive ranges share their boundaries. The return value is a -single range of disjoint union of the ranges or nil if the -disjoint union is not a single range." - (let ((range (car-safe ranges)) (ranges (cdr ranges)) r) - (while (and range (setq r (car-safe ranges))) - (setq range - (cond ((and (= (cdr r) (car range))) (cons (car r) (cdr range))) - ((and (= (cdr range) (car r))) (cons (car range) (cdr r))))) - (setq ranges (cdr ranges))) - range)) - -(defun evil-track-last-insertion (beg end len) - "Track the last insertion range and its text. -The insertion range is stored as a pair of buffer positions in -`evil-current-insertion'. If a subsequent change is compatible, -then the current range is modified, otherwise it is replaced by a -new range. Compatible changes are changes that do not create a -disjoin range." - (cond - ((zerop len) - ;; insertion - (if (and evil-current-insertion - (>= beg (car evil-current-insertion)) - (<= beg (cdr evil-current-insertion))) - (setcdr evil-current-insertion - (+ (- end beg) - (cdr evil-current-insertion))) - (setq evil-current-insertion (cons beg end)))) - (t - ;; deletion of something in range is recorded - (if (and evil-current-insertion - (>= beg (car evil-current-insertion)) - (<= (+ beg len) (cdr evil-current-insertion))) - (setcdr evil-current-insertion - (- (cdr evil-current-insertion) len)) - (setq evil-current-insertion nil))))) -(put 'evil-track-last-insertion 'permanent-local-hook t) - -(defun evil-start-track-last-insertion () - "Start tracking the last insertion." - (setq evil-current-insertion nil) - (add-hook 'after-change-functions #'evil-track-last-insertion nil t)) - -(defun evil-stop-track-last-insertion () - "Stop tracking the last insertion. -The tracked insertion is set to `evil-last-insertion'." - (setq evil-last-insertion - (and evil-current-insertion - (buffer-substring-no-properties (car evil-current-insertion) - (cdr evil-current-insertion)))) - (remove-hook 'after-change-functions #'evil-track-last-insertion t)) - -;;; Paste - -(defun evil-yank-characters (beg end &optional register yank-handler) - "Saves the characters defined by the region BEG and END in the kill-ring." - (let ((text (filter-buffer-substring beg end))) - (when yank-handler - (setq text (propertize text 'yank-handler (list yank-handler)))) - (when register - (evil-set-register register text)) - (kill-new text))) - -(defun evil-yank-lines (beg end &optional register yank-handler) - "Saves the lines in the region BEG and END into the kill-ring." - (let* ((text (filter-buffer-substring beg end)) - (yank-handler (list (or yank-handler - #'evil-yank-line-handler)))) - ;; Ensure the text ends with a newline. This is required - ;; if the deleted lines were the last lines in the buffer. - (when (or (zerop (length text)) - (/= (aref text (1- (length text))) ?\n)) - (setq text (concat text "\n"))) - (setq text (propertize text 'yank-handler yank-handler)) - (when register - (evil-set-register register text)) - (kill-new text))) - -(defun evil-yank-rectangle (beg end &optional register yank-handler) - "Stores the rectangle defined by region BEG and END into the kill-ring." - (let ((lines (list nil))) - (evil-apply-on-rectangle #'extract-rectangle-line beg end lines) - ;; We remove spaces from the beginning and the end of the next. - ;; Spaces are inserted explicitly in the yank-handler in order to - ;; NOT insert lines full of spaces. - (setq lines (nreverse (cdr lines))) - ;; `text' is used as default insert text when pasting this rectangle - ;; in another program, e.g., using the X clipboard. - (let* ((yank-handler (list (or yank-handler - #'evil-yank-block-handler) - lines - nil - #'evil-delete-yanked-rectangle)) - (text (propertize (mapconcat #'identity lines "\n") - 'yank-handler yank-handler))) - (when register - (evil-set-register register text)) - (kill-new text)))) - -(defun evil-yank-line-handler (text) - "Inserts the current text linewise." - (let ((text (apply #'concat (make-list (or evil-paste-count 1) text))) - (opoint (point))) - (remove-list-of-text-properties - 0 (length text) yank-excluded-properties text) - (cond - ((eq this-command #'evil-paste-before) - (evil-move-beginning-of-line) - (evil-move-mark (point)) - (insert text) - (setq evil-last-paste - (list #'evil-paste-before - evil-paste-count - opoint - (mark t) - (point))) - (evil-set-marker ?\[ (mark)) - (evil-set-marker ?\] (1- (point))) - (evil-exchange-point-and-mark) - (back-to-indentation)) - ((eq this-command #'evil-paste-after) - (evil-move-end-of-line) - (evil-move-mark (point)) - (insert "\n") - (insert text) - (evil-set-marker ?\[ (1+ (mark))) - (evil-set-marker ?\] (1- (point))) - (delete-char -1) ; delete the last newline - (setq evil-last-paste - (list #'evil-paste-after - evil-paste-count - opoint - (mark t) - (point))) - (evil-move-mark (1+ (mark t))) - (evil-exchange-point-and-mark) - (back-to-indentation)) - (t - (insert text))))) - -(defun evil-yank-block-handler (lines) - "Inserts the current text as block." - (let ((count (or evil-paste-count 1)) - (col (if (eq this-command #'evil-paste-after) - (1+ (current-column)) - (current-column))) - (current-line (line-number-at-pos (point))) - (opoint (point)) - epoint) - (dolist (line lines) - ;; concat multiple copies according to count - (setq line (apply #'concat (make-list count line))) - ;; strip whitespaces at beginning and end - (string-match "^ *\\(.*?\\) *$" line) - (let ((text (match-string 1 line)) - (begextra (match-beginning 1)) - (endextra (- (match-end 0) (match-end 1)))) - ;; maybe we have to insert a new line at eob - (while (< (line-number-at-pos (point)) - current-line) - (goto-char (point-max)) - (insert "\n")) - (setq current-line (1+ current-line)) - ;; insert text unless we insert an empty line behind eol - (unless (and (< (evil-column (line-end-position)) col) - (zerop (length text))) - ;; if we paste behind eol, it may be sufficient to insert tabs - (if (< (evil-column (line-end-position)) col) - (move-to-column (+ col begextra) t) - (move-to-column col t) - (insert (make-string begextra ? ))) - (remove-list-of-text-properties 0 (length text) - yank-excluded-properties text) - (insert text) - (unless (eolp) - ;; text follows, so we have to insert spaces - (insert (make-string endextra ? ))) - (setq epoint (point))) - (forward-line 1))) - (setq evil-last-paste - (list this-command - evil-paste-count - opoint - (length lines) ; number of rows - (* count (length (car lines))))) ; number of colums - (evil-set-marker ?\[ opoint) - (evil-set-marker ?\] (1- epoint)) - (goto-char opoint) - (when (and (eq this-command #'evil-paste-after) - (not (eolp))) - (forward-char)))) - -(defun evil-delete-yanked-rectangle (nrows ncols) - "Special function to delete the block yanked by a previous paste command." - (let ((opoint (point)) - (col (if (eq last-command #'evil-paste-after) - (1+ (current-column)) - (current-column)))) - (dotimes (i nrows) - (delete-region (save-excursion - (move-to-column col) - (point)) - (save-excursion - (move-to-column (+ col ncols)) - (point))) - (unless (eobp) (forward-line))) - (goto-char opoint))) - -;; TODO: if undoing is disabled in the current buffer, paste-pop won't -;; work. Although this is probably not a big problem, because usually -;; buffers where `evil-paste-pop' may be useful have undoing enabled. -;; A solution would be to temporarily enable undo when pasting and -;; store the undo information in a special variable that does not -;; interfere with `buffer-undo-list'. -(defun evil-paste-pop (count) - "Replace the just-yanked stretch of killed text with a different stretch. -This command is allowed only immediatly after a `yank', -`evil-paste-before', `evil-paste-after' or `evil-paste-pop'. -This command uses the same paste command as before, i.e., when -used after `evil-paste-after' the new text is also yanked using -`evil-paste-after', used with the same paste-count argument. - -The COUNT argument inserts the COUNTth previous kill. If COUNT -is negative this is a more recent kill." - (interactive "p") - (unless (memq last-command - '(evil-paste-after - evil-paste-before)) - (error "Previous command was not an evil-paste: %s" last-command)) - (unless evil-last-paste - (error "Previous paste command used a register")) - (evil-undo-pop) - (goto-char (nth 2 evil-last-paste)) - (current-kill count) - (setq this-command (nth 0 evil-last-paste)) - (funcall (nth 0 evil-last-paste) (nth 1 evil-last-paste))) - -(defun evil-paste-pop-next (count) - "Same as `evil-paste-pop' but with negative argument." - (interactive "p") - (evil-paste-pop (- count))) - -;;; Interactive forms - -(defun evil-match-interactive-code (interactive &optional pos) - "Match an interactive code at position POS in string INTERACTIVE. -Returns the first matching entry in `evil-interactive-alist', or nil." - (let ((length (length interactive)) - (pos (or pos 0))) - (catch 'done - (dolist (entry evil-interactive-alist) - (let* ((string (car entry)) - (end (+ (length string) pos))) - (when (and (<= end length) - (string= string - (substring interactive pos end))) - (throw 'done entry))))))) - -(defun evil-concatenate-interactive-forms (&rest forms) - "Concatenate interactive list expressions FORMS. -Returns a single expression where successive expressions -are joined, if possible." - (let (result) - (when forms - (while (cdr forms) - (cond - ((null (car forms)) - (pop forms)) - ((and (eq (car (car forms)) 'list) - (eq (car (cadr forms)) 'list)) - (setq forms (cons (append (car forms) - (cdr (cadr forms))) - (cdr (cdr forms))))) - (t - (push (pop forms) result)))) - (when (car forms) - (push (pop forms) result)) - (setq result (nreverse result)) - (cond - ((null result)) - ((null (cdr result)) - (car result)) - (t - `(append ,@result)))))) - -(defun evil-interactive-string (string) - "Evaluate the interactive string STRING. -The string may contain extended interactive syntax. -The return value is a cons cell (FORM . PROPERTIES), -where FORM is a single list-expression to be passed to -a standard `interactive' statement, and PROPERTIES is a -list of command properties as passed to `evil-define-command'." - (let ((length (length string)) - (pos 0) - code expr forms match plist prompt properties) - (while (< pos length) - (if (eq (aref string pos) ?\n) - (setq pos (1+ pos)) - (setq match (evil-match-interactive-code string pos)) - (if (null match) - (error "Unknown interactive code: `%s'" - (substring string pos)) - (setq code (car match) - expr (car (cdr match)) - plist (cdr (cdr match)) - pos (+ pos (length code))) - (when (functionp expr) - (setq prompt - (substring string pos - (or (string-match "\n" string pos) - length)) - pos (+ pos (length prompt)) - expr `(funcall ,expr ,prompt))) - (setq forms (append forms (list expr)) - properties (append properties plist))))) - (cons `(append ,@forms) properties))) - -(defun evil-interactive-form (&rest args) - "Evaluate interactive forms ARGS. -The return value is a cons cell (FORM . PROPERTIES), -where FORM is a single list-expression to be passed to -a standard `interactive' statement, and PROPERTIES is a -list of command properties as passed to `evil-define-command'." - (let (forms properties) - (dolist (arg args) - (if (not (stringp arg)) - (setq forms (append forms (list arg))) - (setq arg (evil-interactive-string arg) - forms (append forms (cdr (car arg))) - properties (append properties (cdr arg))))) - (cons (apply #'evil-concatenate-interactive-forms forms) - properties))) - -;;; Types - -(defun evil-type (object &optional default) - "Return the type of OBJECT, or DEFAULT if none." - (let (type) - (cond - ((overlayp object) - (setq type (overlay-get object :type))) - ((evil-range-p object) - (setq type (nth 2 object))) - ((listp object) - (setq type (plist-get object :type))) - ((commandp object) - (setq type (evil-get-command-property object :type))) - ((symbolp object) - (setq type (get object 'type)))) - (setq type (or type default)) - (and (evil-type-p type) type))) - -(defun evil-set-type (object type) - "Set the type of OBJECT to TYPE. -For example, (evil-set-type 'next-line 'line) -will make `line' the type of the `next-line' command." - (cond - ((overlayp object) - (overlay-put object :type type)) - ((evil-range-p object) - (evil-set-range-type object type)) - ((listp object) - (plist-put object :type type)) - ((commandp object) - (evil-set-command-property object :type type)) - ((symbolp object) - (put object 'type type))) - object) - -(defun evil-type-property (type prop) - "Return property PROP for TYPE." - (evil-get-property evil-type-properties type prop)) - -(defun evil-type-p (sym) - "Whether SYM is the name of a type." - (assq sym evil-type-properties)) - -(defun evil-expand (beg end type &rest properties) - "Expand BEG and END as TYPE with PROPERTIES. -Returns a list (BEG END TYPE PROPERTIES ...), where the tail -may contain a property list." - (apply #'evil-transform - ;; don't expand if already expanded - (unless (plist-get properties :expanded) :expand) - beg end type properties)) - -(defun evil-contract (beg end type &rest properties) - "Contract BEG and END as TYPE with PROPERTIES. -Returns a list (BEG END TYPE PROPERTIES ...), where the tail -may contain a property list." - (apply #'evil-transform :contract beg end type properties)) - -(defun evil-normalize (beg end type &rest properties) - "Normalize BEG and END as TYPE with PROPERTIES. -Returns a list (BEG END TYPE PROPERTIES ...), where the tail -may contain a property list." - (apply #'evil-transform :normalize beg end type properties)) - -(defun evil-transform - (transform beg end type &rest properties) - "Apply TRANSFORM on BEG and END with PROPERTIES. -Returns a list (BEG END TYPE PROPERTIES ...), where the tail -may contain a property list. If TRANSFORM is undefined, -return positions unchanged." - (let* ((type (or type (evil-type properties))) - (transform (when (and type transform) - (evil-type-property type transform)))) - (if transform - (apply transform beg end properties) - (apply #'evil-range beg end type properties)))) - -(defun evil-describe (beg end type &rest properties) - "Return description of BEG and END with PROPERTIES. -If no description is available, return the empty string." - (let* ((type (or type (evil-type properties))) - (properties (plist-put properties :type type)) - (describe (evil-type-property type :string))) - (or (when describe - (apply describe beg end properties)) - ""))) - -;;; Ranges - -(defun evil-range (beg end &optional type &rest properties) - "Return a list (BEG END [TYPE] PROPERTIES...). -BEG and END are buffer positions (numbers or markers), -TYPE is a type as per `evil-type-p', and PROPERTIES is -a property list." - (let ((beg (evil-normalize-position beg)) - (end (evil-normalize-position end))) - (when (and (numberp beg) (numberp end)) - (append (list (min beg end) (max beg end)) - (when (evil-type-p type) - (list type)) - properties)))) - -(defun evil-range-p (object) - "Whether OBJECT is a range." - (and (listp object) - (>= (length object) 2) - (numberp (nth 0 object)) - (numberp (nth 1 object)))) - -(defun evil-range-beginning (range) - "Return beginning of RANGE." - (when (evil-range-p range) - (let ((beg (evil-normalize-position (nth 0 range))) - (end (evil-normalize-position (nth 1 range)))) - (min beg end)))) - -(defun evil-range-end (range) - "Return end of RANGE." - (when (evil-range-p range) - (let ((beg (evil-normalize-position (nth 0 range))) - (end (evil-normalize-position (nth 1 range)))) - (max beg end)))) - -(defun evil-range-properties (range) - "Return properties of RANGE." - (when (evil-range-p range) - (if (evil-type range) - (nthcdr 3 range) - (nthcdr 2 range)))) - -(defun evil-copy-range (range) - "Return a copy of RANGE." - (copy-sequence range)) - -(defun evil-set-range (range &optional beg end type &rest properties) - "Set RANGE to have beginning BEG and end END. -The TYPE and additional PROPERTIES may also be specified. -If an argument is nil, it's not used; the previous value is retained. -See also `evil-set-range-beginning', `evil-set-range-end', -`evil-set-range-type' and `evil-set-range-properties'." - (when (evil-range-p range) - (let ((beg (or (evil-normalize-position beg) - (evil-range-beginning range))) - (end (or (evil-normalize-position end) - (evil-range-end range))) - (type (or type (evil-type range))) - (plist (evil-range-properties range))) - (evil-sort beg end) - (setq plist (evil-concat-plists plist properties)) - (evil-set-range-beginning range beg) - (evil-set-range-end range end) - (evil-set-range-type range type) - (evil-set-range-properties range plist) - range))) - -(defun evil-set-range-beginning (range beg &optional copy) - "Set RANGE's beginning to BEG. -If COPY is non-nil, return a copy of RANGE." - (when copy - (setq range (evil-copy-range range))) - (setcar range beg) - range) - -(defun evil-set-range-end (range end &optional copy) - "Set RANGE's end to END. -If COPY is non-nil, return a copy of RANGE." - (when copy - (setq range (evil-copy-range range))) - (setcar (cdr range) end) - range) - -(defun evil-set-range-type (range type &optional copy) - "Set RANGE's type to TYPE. -If COPY is non-nil, return a copy of RANGE." - (when copy - (setq range (evil-copy-range range))) - (if type - (setcdr (cdr range) - (cons type (evil-range-properties range))) - (setcdr (cdr range) (evil-range-properties range))) - range) - -(defun evil-set-range-properties (range properties &optional copy) - "Set RANGE's properties to PROPERTIES. -If COPY is non-nil, return a copy of RANGE." - (when copy - (setq range (evil-copy-range range))) - (if (evil-type range) - (setcdr (cdr (cdr range)) properties) - (setcdr (cdr range) properties)) - range) - -(defun evil-range-union (range1 range2 &optional type) - "Return the union of the ranges RANGE1 and RANGE2. -If the ranges have conflicting types, use RANGE1's type. -This can be overridden with TYPE." - (when (and (evil-range-p range1) - (evil-range-p range2)) - (evil-range (min (evil-range-beginning range1) - (evil-range-beginning range2)) - (max (evil-range-end range1) - (evil-range-end range2)) - (or type - (evil-type range1) - (evil-type range2))))) - -(defun evil-subrange-p (range1 range2) - "Whether RANGE1 is contained within RANGE2." - (and (evil-range-p range1) - (evil-range-p range2) - (<= (evil-range-beginning range2) - (evil-range-beginning range1)) - (>= (evil-range-end range2) - (evil-range-end range1)))) - -(defun evil-add-whitespace-to-range (range &optional dir pos regexp) - "Add whitespace at one side of RANGE, depending on POS. -If POS is before the range, add trailing whitespace; -if POS is after the range, add leading whitespace. -If there is no trailing whitespace, add leading and vice versa. -If POS is inside the range, add trailing if DIR is positive and -leading if DIR is negative. POS defaults to point. -REGEXP is a regular expression for matching whitespace; -the default is \"[ \\f\\t\\n\\r\\v]+\"." - (let* ((pos (or pos (point))) - (dir (or (when (<= pos (evil-range-beginning range)) 1) - (when (>= pos (evil-range-end range)) -1) - dir 1)) - (regexp (or regexp "[ \f\t\n\r\v]+"))) - (save-excursion - (save-match-data - (goto-char pos) - (cond - ((if (< dir 0) - (looking-back regexp (1- (line-beginning-position))) - (not (looking-at regexp))) - (or (evil-add-whitespace-after-range range regexp) - (evil-add-whitespace-before-range range regexp))) - (t - (or (evil-add-whitespace-before-range range regexp) - (evil-add-whitespace-after-range range regexp)))) - range)))) - -(defun evil-add-whitespace-before-range (range &optional regexp) - "Add whitespace at the beginning of RANGE. -REGEXP is a regular expression for matching whitespace; -the default is \"[ \\f\\t\\n\\r\\v]+\". -Returns t if RANGE was successfully increased and nil otherwise." - (let ((orig (evil-copy-range range)) - (regexp (or regexp "[ \f\t\n\r\v]+"))) - (save-excursion - (save-match-data - (goto-char (evil-range-beginning range)) - (when (looking-back regexp (1- (line-beginning-position)) t) - ;; exclude the newline on the preceding line - (goto-char (match-beginning 0)) - (when (eolp) (forward-char)) - (evil-set-range range (point))) - (not (evil-subrange-p range orig)))))) - -(defun evil-add-whitespace-after-range (range &optional regexp) - "Add whitespace at the end of RANGE. -REGEXP is a regular expression for matching whitespace; -the default is \"[ \\f\\t\\n\\r\\v]+\". -Returns t if RANGE was successfully increased and nil otherwise." - (let ((orig (evil-copy-range range)) - (regexp (or regexp "[ \f\t\n\r\v]+"))) - (save-excursion - (save-match-data - (goto-char (evil-range-end range)) - (when (looking-at regexp) - (evil-set-range range nil (match-end 0))) - (not (evil-subrange-p range orig)))))) - -(defun evil-adjust-whitespace-inside-range (range &optional shrink regexp) - "Adjust whitespace inside RANGE. -Leading whitespace at the end of the line is excluded. -If SHRINK is non-nil, indentation may also be excluded, -and the trailing whitespace is adjusted as well. -REGEXP is a regular expression for matching whitespace; -the default is \"[ \\f\\t\\n\\r\\v]*\". -Returns t if RANGE was successfully adjusted and nil otherwise." - (let ((orig (evil-copy-range range)) - (regexp (or regexp "[ \f\t\n\r\v]*"))) - (save-excursion - (goto-char (evil-range-beginning range)) - (when (looking-at (concat regexp "$")) - (forward-line) - (if (and shrink evil-auto-indent) - (back-to-indentation) - (evil-move-beginning-of-line)) - (evil-set-range range (point) nil)) - (goto-char (evil-range-end range)) - (when (and shrink (looking-back (concat "^" regexp) - (line-beginning-position))) - (evil-set-range range nil (line-end-position 0))) - (not (evil-subrange-p orig range))))) - -(defun evil-inner-object-range (count beg end type forward &optional backward range-type) - "Return an inner text object range (BEG END) of COUNT objects. -If COUNT is positive, return objects following point; -if COUNT is negative, return objects preceding point. -FORWARD is a function which moves to the end of an object, and -BACKWARD is a function which moves to the beginning. -If one is unspecified, the other is used with a negative argument." - (let* ((count (or count 1)) - (forward-func forward) - (backward-func backward) - (forward (or forward - #'(lambda (count) - (funcall backward-func (- count))))) - (backward (or backward - #'(lambda (count) - (funcall forward-func (- count))))) - (current - #'(lambda () - (save-excursion - (let ((pnt (point)) - beg-obj end-obj) - (funcall forward 1) - (setq end-obj (point)) - (funcall backward 1) - (setq beg-obj (point)) - (cond - ((<= beg-obj pnt) - (cons beg-obj end-obj)) - ((zerop (funcall backward 1)) - (funcall forward 1) - (cons (if (and (eolp) (not (bolp))) - (1+ (point)) - (point)) - beg-obj)) - (t - (cons (point-min) beg-obj)))))))) - - (save-excursion - (cond - ((> count 0) - (let ((obj (funcall current))) - (if (or (not beg) (not end) - (> beg (car obj)) - (< end (cdr obj))) - ;; current object not yet selected - (progn - (when (or (not beg) (< (car obj) beg)) - (setq beg (car obj))) - (when (or (not end) (> (cdr obj) end)) - (setq end (cdr obj))) - (setq count (1- count)) - (goto-char end)) - (goto-char (cdr obj)))) - (dotimes(i count) - (let ((obj (funcall current))) - (goto-char (cdr obj)))) - (evil-range beg (point) range-type)) - (t - (setq count (- count)) - (let ((obj (funcall current))) - (if (or (not beg) (not end) - (> beg (car obj)) - (< end (cdr obj))) - ;; current object not yet selected - (progn - (when (or (not beg) (< (car obj) beg)) - (setq beg (car obj))) - (when (or (not end) (> (cdr obj) end)) - (setq end (cdr obj))) - (setq count (1- count)) - (goto-char beg)) - (goto-char (car obj)))) - (dotimes(i count) - (backward-char 1) - (let ((obj (funcall current))) - (goto-char (car obj)))) - (evil-range (point) end range-type)))))) - -(defun evil-an-object-range (count beg end type forward &optional backward range-type newlines) - "Return a text object range of COUNT objects with whitespace. -BEG, END and TYPE specify the range of the current selection that -should be extended. The function returns a list (B E) specifying -the new (extended) text object range. See -`evil-inner-object-range' for more details." - (let* ((count (or count 1)) - (forward-func forward) - (backward-func backward) - (forward (or forward - #'(lambda (count) - (funcall backward-func (- count))))) - (backward (or backward - #'(lambda (count) - (funcall forward-func (- count)))))) - (if (> count 0) - ;; ensure we select the next object - (when (and beg end) (forward-char 1)) - ;; going backward - (evil-swap forward backward) - (setq count (abs count))) - (let ((range - (evil-range (save-excursion - (funcall forward 1) - (funcall backward 1) - (point)) - (save-excursion - (funcall forward count) - (point)) - range-type))) - (setq range - (save-excursion - (if newlines - (evil-add-whitespace-to-range range count) - (evil-with-restriction - (save-excursion - (goto-char (evil-range-beginning range)) - (line-beginning-position)) - (save-excursion - (goto-char (evil-range-end range)) - (line-end-position)) - (evil-add-whitespace-to-range range count))))) - (if (and beg end) - (evil-range-union range (evil-range beg end)) - range)))) - -(defun evil-paren-range (count beg end type open close &optional exclusive) - "Return a range (BEG END) of COUNT delimited text objects. -BEG, END and TYPE are the currently selected (visual) range. -OPEN is an opening character and CLOSE is a closing character. -If EXCLUSIVE is non-nil, OPEN and CLOSE are excluded from -the range; otherwise they are included. - -This function uses Emacs' syntax table and can therefore only -handle single-character delimiters. To match whole strings, -use `evil-regexp-range'." - (let ((open-regexp (regexp-quote (string open))) - (close-regexp (regexp-quote (string close))) - (count (or count 1)) - forward-sexp-function ; always use the default one - level range) - (save-excursion - (if (or (evil-in-comment-p) - (and (evil-in-string-p) - ;; TODO: this checks whether the current closing - ;; quote is indeed the end of a string. This is - ;; only a quick fix and should be done more - ;; carefully! - (or (/= (char-after) close) - (eobp) - (evil-in-string-p (1+ (point)))))) - ;; if in a comment, first look inside the comment only; - ;; failing that, look outside it - (or (evil-regexp-range count - beg end type - open-regexp close-regexp - exclusive) - (progn - (evil-goto-min (evil-string-beginning) - (evil-comment-beginning)) - (evil-paren-range count beg end type open close exclusive))) - (with-syntax-table (copy-syntax-table (syntax-table)) - (cond - ((= count 0)) - ;; if OPEN is equal to CLOSE, handle as string delimiters - ((eq open close) - (modify-syntax-entry open "\"") - ;; syntax table is out-of-date, encourage reparsing - (let ((pnt (point))) - (beginning-of-defun) - (let ((state (parse-partial-sexp (point) pnt))) - (when (not (nth 3 state)) - (setq state (parse-partial-sexp (point) - (point-max) - 0 - nil - state - 'syntax-table))) - (when (nth 3 state) - (let ((beg (nth 8 state))) - (parse-partial-sexp (point) (point-max) - 0 - nil - state - 'syntax-table) - (setq range (evil-range - (if exclusive (1+ beg) beg) - (if exclusive (1- (point)) (point))))))))) - (t - ;; otherwise handle as open and close parentheses - (modify-syntax-entry open (format "(%c" close)) - (modify-syntax-entry close (format ")%c" open)) - (if (< count 0) - (when (looking-back close-regexp (line-beginning-position)) - (backward-char)) - (when (looking-at open-regexp) - (forward-char) - (when (and beg end (= (1+ beg) end)) - (setq beg (1+ beg))))) - ;; find OPEN, start at beginning of current range (if any) - (when (and beg end) - (goto-char (min beg (point))) - ;; check if current object matches current selection - (condition-case nil - (save-excursion - ;; find OPEN of current object - (while (progn - (backward-up-list 1) - (not (looking-at open-regexp)))) - (let ((beg1 (point))) - ;; find CLOSE of current object - (forward-list) - ;; modify current object of inclusive range - (when exclusive - (setq beg1 (1+ beg1)) - (backward-char)) - (when (and (= beg1 beg) - (= (point) end)) - ;; current object *is* current selection, - ;; select one more - (if (> count 0) - (setq count (1+ count)) - (setq count (1- count)))))) - (error nil))) - ;; find OPEN again with correct count - (evil-motion-loop (nil count level) - (condition-case nil - (while (progn - (backward-up-list 1) - (not (looking-at open-regexp)))) - (error nil))) - (when (/= level count) - (setq beg (if exclusive (1+ (point)) (point))) - ;; find CLOSE - (forward-list) - (setq end (if exclusive (1- (point)) (point))) - (setq range (evil-range beg end)) - (when exclusive - (evil-adjust-whitespace-inside-range - range (not (eq evil-this-operator #'evil-delete))))))) - range))))) - -(defun evil-quote-range (count beg end type open close &optional exclusive) - "Return a range (BEG END) of COUNT quotes. -BEG, END and TYPE are the currently selected (visual) range. -OPEN is the opening quote, CLOSE is the closing quote (often both -are equal). If EXCLUSIVE is non-nil, OPEN and CLOSE are excluded -from the range unless COUNT is 2 in which case they are included; -otherwise they are included as well as any succeeding (or -preceding if no whitespace follows) white space." - (if exclusive - (if (and count (= count 2)) - (evil-paren-range 1 nil nil nil open close nil) - (evil-paren-range count nil nil nil open close t)) - (let ((range (evil-paren-range count nil nil nil open close nil))) - (save-excursion - (if (progn - (goto-char (evil-range-end range)) - (looking-at "[[:space:]]+")) - (evil-range (evil-range-beginning range) (match-end 0)) - (goto-char (evil-range-beginning range)) - (skip-chars-backward "[:space:]") - (evil-range (point) (evil-range-end range))))))) - -(defun evil-regexp-range (count beg end type open close &optional exclusive) - "Return a range (BEG END) of COUNT delimited text objects. -BEG END TYPE are the currently selected (visual) range. -OPEN is a regular expression matching the opening sequence, -and CLOSE is a regular expression matching the closing sequence. -If EXCLUSIVE is non-nil, OPEN and CLOSE are excluded from -the range; otherwise they are included. See also `evil-paren-range'." - (let ((either (format "\\(%s\\)\\|\\(%s\\)" open close)) - (count (or count 1)) - (level 0)) - (let ((select - #'(lambda (count) - ;; Is point inside a delimiter? - (evil-with-or-without-comment - (save-excursion - (save-match-data - (let ((level 0) - beg-inc end-inc beg-exc end-exc) - (when (evil-in-regexp-p either) - (if (< count 0) - (goto-char (match-end 0)) - (goto-char (match-beginning 0)))) - ;; Is point next to a delimiter? - (if (< count 0) - (when (looking-back close (line-beginning-position)) - (goto-char (match-beginning 0))) - (when (looking-at open) - (goto-char (match-end 0)))) - ;; find beginning of range - (while (and (< level (abs count)) - (re-search-backward either nil t)) - (if (looking-at open) - (setq level (1+ level)) - ;; found a CLOSE, so need to find another - ;; OPEN first - (setq level (1- level)))) - ;; find end of range - (when (> level 0) - (forward-char) - (setq level 1 - beg-inc (match-beginning 0) - beg-exc (match-end 0)) - (while (and (> level 0) - (re-search-forward either nil t)) - (if (looking-back close (line-beginning-position)) - (setq level (1- level)) - ;; found an OPEN, so need to find another - ;; CLOSE first - (setq level (1+ level)))) - (when (= level 0) - (setq end-inc (match-end 0) - end-exc (match-beginning 0)) - (cons (evil-range beg-inc end-inc) - (evil-range beg-exc end-exc))))))))))) - (when (and beg end) - (let* ((ranges1 (funcall select (if (> count 0) 1 -1))) - (rng-inc1 (car ranges1)) - (rng-exc1 (cdr ranges1))) - (cond - ((and (= beg (evil-range-beginning rng-inc1)) - (= end (evil-range-end rng-inc1))) - (setq count (+ count (if (> count 0) 1 -1)))) - ((and exclusive - (= beg (evil-range-beginning rng-exc1)) - (= end (evil-range-end rng-exc1))) - (if (= (abs count) 1) - (setq exclusive nil) - (setq count (+ count (if (> count 0) 1 -1)))))))) - (let ((ranges (funcall select count))) - (if exclusive (cdr ranges) (car ranges)))))) - -(defun evil-xml-range (&optional count beg end type exclusive) - "Return a range (BEG END) of COUNT matching XML tags. -If EXCLUSIVE is non-nil, the tags themselves are excluded -from the range." - (evil-regexp-range - count beg end type - "<\\(?:[^/ ]\\(?:[^>]*?[^/>]\\)?\\)?>" "]+?>" - exclusive)) - -(defun evil-expand-range (range &optional copy) - "Expand RANGE according to its type. -Return a new range if COPY is non-nil." - (when copy - (setq range (evil-copy-range range))) - (unless (plist-get (evil-range-properties range) :expanded) - (setq range (evil-transform-range :expand range))) - range) - -(defun evil-contract-range (range &optional copy) - "Contract RANGE according to its type. -Return a new range if COPY is non-nil." - (evil-transform-range :contract range copy)) - -(defun evil-normalize-range (range &optional copy) - "Normalize RANGE according to its type. -Return a new range if COPY is non-nil." - (evil-transform-range :normalize range copy)) - -(defun evil-transform-range (transform range &optional copy) - "Apply TRANSFORM to RANGE according to its type. -Return a new range if COPY is non-nil." - (when copy - (setq range (evil-copy-range range))) - (when (evil-type range) - (apply #'evil-set-range range - (apply #'evil-transform transform range))) - range) - -(defun evil-describe-range (range) - "Return description of RANGE. -If no description is available, return the empty string." - (apply #'evil-describe range)) - -;;; Undo - -(defun evil-start-undo-step (&optional continue) - "Start a undo step. -All following buffer modifications are grouped together as a -single action. If CONTINUE is non-nil, preceding modifications -are included. The step is terminated with `evil-end-undo-step'." - (when (and (listp buffer-undo-list) - (not evil-in-single-undo)) - (if evil-undo-list-pointer - (evil-refresh-undo-step) - (unless (or continue (null (car-safe buffer-undo-list))) - (undo-boundary)) - (setq evil-undo-list-pointer (or buffer-undo-list t))))) - -(defun evil-end-undo-step (&optional continue) - "End a undo step started with `evil-start-undo-step'. -Adds an undo boundary unless CONTINUE is specified." - (when (and evil-undo-list-pointer - (not evil-in-single-undo)) - (evil-refresh-undo-step) - (unless continue - (undo-boundary)) - (remove-hook 'post-command-hook #'evil-refresh-undo-step t) - (setq evil-undo-list-pointer nil))) - -(defun evil-refresh-undo-step () - "Refresh `buffer-undo-list' entries for current undo step. -Undo boundaries until `evil-undo-list-pointer' are removed -to make the entries undoable as a single action. -See `evil-start-undo-step'." - (when evil-undo-list-pointer - (setq buffer-undo-list - (evil-filter-list #'null buffer-undo-list - evil-undo-list-pointer) - evil-undo-list-pointer (or buffer-undo-list t)))) - -(defmacro evil-with-undo (&rest body) - "Execute BODY with enabled undo. -If undo is disabled in the current buffer, the undo information -is stored in `evil-temporary-undo' instead of `buffer-undo-list'." - (declare (indent defun) - (debug t)) - `(unwind-protect - (let (buffer-undo-list) - (prog1 - (progn ,@body) - (setq evil-temporary-undo (cons nil buffer-undo-list)))) - (unless (eq buffer-undo-list t) - ;; undo is enabled, so update the global buffer undo list - (setq buffer-undo-list - ;; prepend new undos (if there are any) - (if (cdr evil-temporary-undo) - (nconc evil-temporary-undo buffer-undo-list) - buffer-undo-list) - evil-temporary-undo nil)))) - -(defmacro evil-with-single-undo (&rest body) - "Execute BODY as a single undo step." - (declare (indent defun) - (debug t)) - `(let (evil-undo-list-pointer) - (evil-with-undo - (unwind-protect - (progn - (evil-start-undo-step) - (let ((evil-in-single-undo t)) - ,@body)) - (evil-end-undo-step))))) - -(defun evil-undo-pop () - "Undo the last buffer change. -Removes the last undo information from `buffer-undo-list'. -If undo is disabled in the current buffer, use the information -in `evil-temporary-undo' instead." - (let ((paste-undo (list nil))) - (let ((undo-list (if (eq buffer-undo-list t) - evil-temporary-undo - buffer-undo-list))) - (when (or (not undo-list) (car undo-list)) - (error "Can't undo previous change")) - (while (and undo-list (null (car undo-list))) - (pop undo-list)) ; remove nil - (while (and undo-list (car undo-list)) - (push (pop undo-list) paste-undo)) - (let ((buffer-undo-list (nreverse paste-undo))) - (evil-save-echo-area - (undo))) - (if (eq buffer-undo-list t) - (setq evil-temporary-undo nil) - (setq buffer-undo-list undo-list))))) - -;;; Search -(defun evil-transform-regexp (regexp replacements-alist) - (let ((pos 0) result) - (replace-regexp-in-string - "\\\\+[^\\\\]" - #'(lambda (txt) - (let* ((b (match-beginning 0)) - (e (match-end 0)) - (ch (aref txt (1- e))) - (repl (assoc ch replacements-alist))) - (if (and repl (zerop (mod (length txt) 2))) - (concat (substring txt b (- e 2)) - (cdr repl)) - txt))) - regexp nil t))) - -(defun evil-transform-magic (str magic quote transform &optional start) - "Transforms STR with magic characters. -MAGIC is a regexp that matches all potential magic -characters. Each occurence of CHAR as magic character within str -is replaced by the result of calling the associated TRANSFORM -function. TRANSFORM is a function taking two arguments, the -character to be transformed and the rest of string after the -character. The function should return a triple (REPLACEMENT REST -. STOP) where REPLACEMENT is the replacement and REST is the rest -of the string that has not been transformed. If STOP is non-nil -then the substitution stops immediately. The replacement starts -at position START, everything before that position is returned -literally. The result is a pair (RESULT . REST). RESULT is a -list containing the transformed parts in order. If two -subsequents parts are both strings, they are concatenated. REST -is the untransformed rest string (usually \"\" but may be more if -TRANSFORM stopped the substitution). Which characters are -considered as magic characters (i.e. the transformation happens -if the character is NOT preceeded by a backslash) is determined -by `evil-magic'. The special tokens \\v, \\V, \\m and \\M have -always a special meaning (like in Vim) and should not be -contained in TRANSFORMS, otherwise their meaning is overwritten. - -The parameter QUOTE is a quoting function applied to literal -transformations, usually `regexp-quote' or `replace-quote'." - (save-match-data - (let ((regexp (concat "\\(?:\\`\\|[^\\]\\)\\(\\\\\\(?:\\(" magic "\\)\\|\\(.\\)\\)\\|\\(" magic "\\)\\)")) - (magic-chars (evil-get-magic evil-magic)) - (evil-magic evil-magic) - (quote (or quote #'identity)) - result stop) - (while (and (not stop) str (string-match regexp str)) - (unless (zerop (match-beginning 1)) - (push (substring str 0 (match-beginning 1)) result)) - (let ((char (or (match-string 2 str) - (match-string 3 str) - (match-string 4 str))) - (rest (substring str (match-end 0)))) - (cond - ((match-beginning 4) - ;; magic character without backslash - (if (string-match magic-chars char) - ;; magic, do transform - (let ((trans (funcall transform (aref char 0) rest))) - (push (car trans) result) - (setq str (cadr trans) stop (nthcdr 2 trans))) - ;; non-magic, literal transformation - (push (funcall quote char) result) - (setq str rest))) - ((match-beginning 2) - ;; magic character with backslash - (if (not (string-match magic-chars char)) - ;; non-magic, do transform - (let ((trans (funcall transform (aref char 0) rest))) - (push (car trans) result) - (setq str (cadr trans) stop (nthcdr 2 trans))) - ;; magic, literal transformation - (push (funcall quote char) result) - (setq str rest))) - ((memq (aref char 0) '(?m ?M ?v ?V)) - (setq evil-magic (cdr (assq (aref char 0) - '((?m . t) - (?M . nil) - (?v . very-magic) - (?V . very-nomagic))))) - (setq magic-chars (evil-get-magic evil-magic)) - (setq str rest)) - (t - ;; non-magic char with backslash, literal transformation - (push (funcall quote char) result) - (setq str rest))))) - (cond - ((and str (not stop)) - (push str result) - (setq str "")) - ((not str) - (setq str ""))) - ;; concatenate subsequent strings - ;; note that result is in reverse order - (let (repl) - (while result - (cond - ((and (stringp (car result)) - (zerop (length (car result)))) - (pop result)) - ((and (stringp (car result)) - (stringp (cadr result))) - (setq result (cons (concat (cadr result) - (car result)) - (nthcdr 2 result)))) - (t - (push (pop result) repl)))) - (cons repl str))))) - -(defconst evil-vim-regexp-replacements - '((?n . "\n") (?r . "\r") - (?t . "\t") (?b . "\b") - (?s . "[[:space:]]") (?S . "[^[:space:]]") - (?d . "[[:digit:]]") (?D . "[^[:digit:]]") - (?x . "[[:xdigit:]]") (?X . "[^[:xdigit:]]") - (?o . "[0-7]") (?O . "[^0-7]") - (?a . "[[:alpha:]]") (?A . "[^[:alpha:]]") - (?l . "[a-z]") (?L . "[^a-z]") - (?u . "[A-Z]") (?U . "[^A-Z]") - (?y . "\\s") (?Y . "\\S") - (?( . "\\(") (?) . "\\)") - (?{ . "\\{") (?} . "\\}") - (?[ . "[") (?] . "]") - (?< . "\\<") (?> . "\\>") - (?_ . "\\_") - (?* . "*") (?+ . "+") - (?? . "?") (?= . "?") - (?. . ".") - (?` . "`") (?^ . "^") - (?$ . "$") (?| . "\\|"))) - -(defconst evil-regexp-magic "[][(){}<>_dDsSxXoOaAlLuUwWyY.*+?=^$`|nrtb]") - -(defun evil-transform-vim-style-regexp (regexp) - "Transforms vim-style backslash codes to Emacs regexp. -This includes the backslash codes \\d, \\D, \\s, \\S, \\x, \\X, -\\o, \\O, \\a, \\A, \\l, \\L, \\u, \\U and \\w, \\W. The new -codes \\y and \\Y can be used instead of the Emacs code \\s and -\\S which have a different meaning in Vim-style." - (car - (car - (evil-transform-magic - regexp evil-regexp-magic #'regexp-quote - #'(lambda (char rest) - (let ((repl (assoc char evil-vim-regexp-replacements))) - (if repl - (list (cdr repl) rest) - (list (concat "\\" (char-to-string char)) rest)))))))) - -;;; Substitute - -(defun evil-downcase-first (str) - "Return STR with the first letter downcased." - (if (zerop (length str)) - str - (concat (downcase (substring str 0 1)) - (substring str 1)))) - -(defun evil-upcase-first (str) - "Return STR with the first letter upcased." - (if (zerop (length str)) - str - (concat (upcase (substring str 0 1)) - (substring str 1)))) - -(defun evil-get-magic (magic) - "Returns a regexp matching the magic characters according to MAGIC. -Depending on the value of MAGIC the following characters are -considered magic. - t [][{}*+?.&~$^ - nil [][{}*+?$^ - 'very-magic not 0-9A-Za-z_ - 'very-nomagic empty." - (cond - ((eq magic t) "[][}{*+?.&~$^]") - ((eq magic 'very-magic) "[^0-9A-Za-z_]") - ((eq magic 'very-nomagic) "\\\\") - (t "[][}{*+?$^]"))) - -;; TODO: support magic characters in patterns -(defconst evil-replacement-magic "[eElLuU0-9&#,rnbt]" - "All magic characters in a replacement string") - -(defun evil-compile-subreplacement (to &optional start) - "Convert a regexp replacement TO to Lisp from START until \\e or \\E. -Returns a pair (RESULT . REST). RESULT is a list suitable for -`perform-replace' if necessary, the original string if not. -REST is the unparsed remainder of TO." - (let ((result - (evil-transform-magic - to evil-replacement-magic #'replace-quote - #'(lambda (char rest) - (cond - ((eq char ?#) - (list '(number-to-string replace-count) rest)) - ((eq char ?r) (list "\r" rest)) - ((eq char ?n) (list "\n" rest)) - ((eq char ?b) (list "\b" rest)) - ((eq char ?t) (list "\t" rest)) - ((memq char '(?e ?E)) - `("" ,rest . t)) - ((memq char '(?l ?L ?u ?U)) - (let ((result (evil-compile-subreplacement rest)) - (func (cdr (assoc char - '((?l . evil-downcase-first) - (?L . downcase) - (?u . evil-upcase-first) - (?U . upcase)))))) - (list `(,func - (replace-quote - (evil-match-substitute-replacement - ,(car result) t))) - (cdr result)))) - ((eq char ?,) - (let* ((obj (read-from-string rest)) - (result `(replace-quote ,(car obj))) - (end - ;; swallow a space after a symbol - (if (and (or (symbolp (car obj)) - ;; swallow a space after 'foo, - ;; but not after (quote foo) - (and (eq (car-safe (car obj)) 'quote) - (not (= ?\( (aref rest 0))))) - (eq (string-match " " rest (cdr obj)) - (cdr obj))) - (1+ (cdr obj)) - (cdr obj)))) - (list result (substring rest end)))) - (t - (list (concat "\\" (char-to-string char)) rest)))) - start))) - (let ((rest (cdr result)) - (result (car result))) - (replace-match-string-symbols result) - (cons (if (cdr result) - (cons 'concat result) - (or (car result) "")) - rest)))) - -(defun evil-compile-replacement (to) - "Maybe convert a regexp replacement TO to Lisp. -Returns a list suitable for `perform-replace' if necessary, the -original string if not. Currently the following magic characters -in replacements are supported: 0-9&#lLuUrnbt, -The magic character , (comma) start an Emacs-lisp expression." - (when (stringp to) - (save-match-data - (cons 'replace-eval-replacement - (car (evil-compile-subreplacement to)))))) - -(defun evil-replace-match (replacement &optional fixedcase string) - "Replace text match by last search with REPLACEMENT. -If REPLACEMENT is an expression it will be evaluated to compute -the replacement text, otherwise the function behaves as -`replace-match'." - (if (stringp replacement) - (replace-match replacement fixedcase nil string) - (replace-match (funcall (car replacement) - (cdr replacement) - 0) - fixedcase nil string))) - -(defun evil-match-substitute-replacement (replacement &optional fixedcase string) - "Return REPLACEMENT as it will be inserted by `evil-replace-match'." - (if (stringp replacement) - (match-substitute-replacement replacement fixedcase nil string) - (match-substitute-replacement (funcall (car replacement) - (cdr replacement) - 0) - fixedcase nil string))) - -;;; Alignment - -(defun evil-justify-lines (beg end justify position) - "Justifes all lines in a range. -BEG and END specify the range of those lines to be -justified. JUSTIFY is either 'left, 'right or 'center according -to the justification type. POSITION is the maximal text width for -right and center justification or the column at which the lines -should be left-aligned for left justification." - (let ((fill-column position) - adaptive-fill-mode fill-prefix) - (evil-with-restriction - (save-excursion - (goto-char beg) - (line-beginning-position)) - (save-excursion - (goto-char end) - (if (bolp) - (line-end-position 0) - (line-end-position))) - (goto-char (point-min)) - (while (progn - (if (eq justify 'left) - (indent-line-to position) - (when (re-search-forward "^[[:space:]]*" nil t) - (delete-region (match-beginning 0) - (match-end 0))) - (justify-current-line justify nil t)) - (and (zerop (forward-line)) (bolp)))) - (goto-char (point-min)) - (back-to-indentation)))) - -(provide 'evil-common) - -;;; evil-common.el ends here diff --git a/elpa/evil-1.0.1/evil-core.el b/elpa/evil-1.0.1/evil-core.el deleted file mode 100644 index c3405034..00000000 --- a/elpa/evil-1.0.1/evil-core.el +++ /dev/null @@ -1,1082 +0,0 @@ -;;; evil-core.el --- Core functionality -;; Author: Vegard Ă˜ye -;; Maintainer: Vegard Ă˜ye - -;; Version: 1.0.1 - -;; -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; This file is part of Evil. -;; -;; Evil is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; Evil is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Evil. If not, see . - -;;; Commentary: - -;; Evil is defined as a globalized minor mode, enabled with the toggle -;; function `evil-mode'. This in turn enables `evil-local-mode' in -;; every buffer, which sets up the buffer's state. -;; -;; Each state has its own keymaps, and these keymaps have status as -;; "emulation keymaps" with priority over regular keymaps. Emacs -;; maintains the following keymap hierarchy (highest priority first): -;; -;; * Overriding keymaps/overlay keymaps... -;; * Emulation mode keymaps... -;; - Evil keymaps... -;; * Minor mode keymaps... -;; * Local keymap (`local-set-key') -;; * Global keymap (`global-set-key') -;; -;; Within this hierarchy, Evil arranges the keymaps for the current -;; state as shown below: -;; -;; * Intercept keymaps... -;; * Local state keymap -;; * Auxiliary keymaps... -;; * Overriding keymaps... -;; * Global state keymap -;; * Keymaps for other states... -;; -;; These keymaps are listed in `evil-mode-map-alist', which is listed -;; in `emulation-mode-map-alist'. -;; -;; Most of the key bindings for a state are stored in its global -;; keymap, which has a name such as `evil-normal-state-map'. (See the -;; file evil-maps.el, which contains all the default key bindings.) -;; A state also has a local keymap (`evil-normal-state-local-map'), -;; which may contain user customizations for the current buffer. -;; Furthermore, any Emacs mode may be assigned state bindings of its -;; own by passing the mode's keymap to the function `evil-define-key'. -;; These mode-specific bindings are ultimately stored in so-called -;; auxiliary keymaps, which are sandwiched between the local keymap -;; and the global keymap. Finally, the state may also activate the -;; keymaps of other states (e.g., Normal state inherits bindings -;; from Motion state). -;; -;; For integration purposes, a regular Emacs keymap may be "elevated" -;; to emulation status by passing it to `evil-make-intercept-map' or -;; `evil-make-overriding-map'. An "intercept" keymap has priority over -;; all other Evil keymaps. (Evil uses this facility when debugging and -;; for handling the "ESC" key in the terminal.) More common is the -;; "overriding" keymap, which only has priority over the global state -;; keymap. (This is useful for adapting key-heavy modes such as Dired, -;; where all but a few keys should be left as-is and should not be -;; shadowed by Evil's default bindings.) -;; -;; States are defined with the macro `evil-define-state', which -;; creates a command for switching to the state. This command, -;; for example `evil-normal-state' for Normal state, performs -;; the following tasks: -;; -;; * Setting `evil-state' to the new state. -;; * Refreshing the keymaps in `evil-mode-map-alist'. -;; * Updating the mode line. -;; - Normal state depends on `evil-normal-state-tag'. -;; * Adjusting the cursor's appearance. -;; - Normal state depends on `evil-normal-state-cursor'. -;; * Displaying a message in the echo area. -;; - Normal state depends on `evil-normal-state-message'. -;; * Running hooks. -;; - Normal state runs `evil-normal-state-entry-hook' when -;; entering, and `evil-normal-state-exit-hook' when exiting. -;; -;; The various properties of a state can be accessed through their -;; respective variables, or by passing a keyword and the state's name -;; to the `evil-state-property' function. Evil defines the states -;; Normal state ("normal"), Insert state ("insert"), Visual state -;; ("visual"), Replace state ("replace"), Operator-Pending state -;; ("operator"), Motion state ("motion") and Emacs state ("emacs"). - -(require 'evil-common) - -;;; Code: - -(define-minor-mode evil-local-mode - "Minor mode for setting up Evil in a single buffer." - :init-value nil - (cond - ((evil-disabled-buffer-p)) - (evil-local-mode - (setq emulation-mode-map-alists - (evil-concat-lists '(evil-mode-map-alist) - emulation-mode-map-alists)) - (evil-initialize-local-keymaps) - ;; restore the proper value of `major-mode' in Fundamental buffers - (when (eq major-mode 'turn-on-evil-mode) - (setq major-mode 'fundamental-mode)) - ;; The initial state is usually setup by `evil-initialize' when - ;; the major-mode in a buffer changes. This preliminary - ;; initialization is only for the case when `evil-local-mode' is - ;; called directly for the first time in a buffer. - (unless evil-state (evil-initialize-state)) - (add-hook 'input-method-activate-hook #'evil-activate-input-method t t) - (add-hook 'input-method-deactivate-hook #'evil-deactivate-input-method t t) - (add-hook 'activate-mark-hook #'evil-visual-activate-hook nil t) - (add-hook 'pre-command-hook #'evil-repeat-pre-hook) - (add-hook 'pre-command-hook #'evil-jump-hook nil t) - (add-hook 'post-command-hook #'evil-repeat-post-hook) - (add-hook 'post-command-hook #'evil-refresh-cursor)) - (t - (evil-refresh-mode-line) - (remove-hook 'pre-command-hook #'evil-jump-hook t) - (remove-hook 'activate-mark-hook #'evil-visual-activate-hook t) - (remove-hook 'input-method-activate-hook #'evil-activate-input-method t) - (remove-hook 'input-method-deactivate-hook #'evil-deactivate-input-method t) - (evil-change-state nil)))) - -(defun turn-on-evil-mode (&optional arg) - "Turn on Evil in the current buffer." - (interactive) - (evil-local-mode (or arg 1))) - -(defun turn-off-evil-mode (&optional arg) - "Turn off Evil in the current buffer." - (interactive) - (evil-local-mode (or arg -1))) - -;; The function `evil-initialize' should only be used to initialize -;; `evil-local-mode' from the globalized minor-mode `evil-mode'. It is -;; called whenever evil is enabled in a buffer for the first time or -;; when evil is active and the major-mode of the buffer changes. In -;; addition to enabling `evil-local-mode' it also sets the initial -;; evil-state according to the major-mode. -(defun evil-initialize () - "Enable Evil in the current buffer, if appropriate. -To enable Evil globally, do (evil-mode 1)." - ;; TODO: option for enabling vi keys in the minibuffer - (unless (minibufferp) - (evil-local-mode 1) - (evil-initialize-state))) - -;;;###autoload (autoload 'evil-mode "evil" "Toggle evil in all buffers" t) -(define-globalized-minor-mode evil-mode - evil-local-mode evil-initialize) - -;; No hooks are run in Fundamental buffers, so other measures are -;; necessary to initialize Evil in these buffers. When Evil is -;; enabled globally, the default value of `major-mode' is set to -;; `turn-on-evil-mode', so that Evil is enabled in Fundamental -;; buffers as well. Then, the buffer-local value of `major-mode' is -;; changed back to `fundamental-mode'. (Since the `evil-mode' function -;; is created by a macro, we use `defadvice' to augment it.) -(defadvice evil-mode (after start-evil activate) - "Enable Evil in Fundamental mode." - (if evil-mode - (progn - ;; changed back by `evil-local-mode' - (setq-default major-mode 'turn-on-evil-mode) - (ad-enable-regexp "^evil") - (ad-activate-regexp "^evil")) - (setq-default major-mode 'fundamental-mode) - (ad-disable-regexp "^evil") - (ad-update-regexp "^evil"))) - -(put 'evil-mode 'function-documentation - "Toggle Evil in all buffers. -Enable with positive ARG and disable with negative ARG. -See `evil-local-mode' to toggle Evil in the -current buffer only.") - -(defun evil-change-state (state &optional message) - "Change the state to STATE. -If STATE is nil, disable all states." - (let ((func (evil-state-property (or state evil-state) :toggle))) - (when (and (functionp func) - (or message (not (eq state evil-state)))) - (funcall func (if state (and message 1) -1))))) - -(defmacro evil-save-state (&rest body) - "Save the current state; execute BODY; restore the state." - (declare (indent defun) - (debug t)) - `(let* ((evil-state evil-state) - (evil-previous-state evil-previous-state) - (evil-previous-state-alist (copy-tree evil-previous-state-alist)) - (evil-next-state evil-next-state) - (old-state evil-state) - (inhibit-quit t)) - (unwind-protect - (progn ,@body) - (evil-change-state old-state)))) - -(defmacro evil-with-state (state &rest body) - "Change to STATE and execute BODY without refreshing the display. -Restore the previous state afterwards." - (declare (indent defun) - (debug t)) - `(evil-without-display - (evil-save-state - (evil-change-state ',state) - ,@body))) - -(defun evil-initializing-p (&optional buffer) - "Whether Evil is in the process of being initialized." - (memq (or buffer (current-buffer)) evil-mode-buffers)) - -(defun evil-initialize-state (&optional state buffer) - "Set up the initial state for BUFFER. -BUFFER defaults to the current buffer. -Uses STATE if specified, or calls `evil-initial-state-for-buffer'. -See also `evil-set-initial-state'." - (with-current-buffer (or buffer (current-buffer)) - (if state (evil-change-state state) - (evil-change-to-initial-state buffer)))) -(put 'evil-initialize-state 'permanent-local-hook t) - -(defun evil-initial-state-for-buffer-name (&optional name default) - "Return the initial Evil state to use for a buffer with name NAME. -Matches the name against the regular expressions in -`evil-buffer-regexps'. If none matches, returns DEFAULT." - (let ((name (if (stringp name) name (buffer-name name))) - regexp state) - (when (stringp name) - (catch 'done - (dolist (entry evil-buffer-regexps default) - (setq regexp (car entry) - state (cdr entry)) - (when (string-match regexp name) - (throw 'done state))))))) - -(defun evil-disabled-buffer-p (&optional buffer) - "Whether Evil should be disabled in BUFFER." - (null (evil-initial-state-for-buffer-name buffer 'undefined))) - -(defun evil-initial-state-for-buffer (&optional buffer default) - "Return the initial Evil state to use for BUFFER. -BUFFER defaults to the current buffer. Returns DEFAULT -if no initial state is associated with BUFFER. -See also `evil-initial-state'." - (with-current-buffer (or buffer (current-buffer)) - (or (evil-initial-state-for-buffer-name (buffer-name)) - (catch 'done - (dolist (mode minor-mode-map-alist) - (setq mode (car-safe mode)) - (when (and (boundp mode) (symbol-value mode)) - (when (setq mode (evil-initial-state mode)) - (throw 'done mode))))) - (evil-initial-state major-mode) - default))) - -(defun evil-initial-state (mode &optional default) - "Return the Evil state to use for MODE. -Returns DEFAULT if no initial state is associated with MODE. -The initial state for a mode can be set with -`evil-set-initial-state'." - (let (state modes) - (catch 'done - (dolist (entry (evil-state-property t :modes) default) - (setq state (car entry) - modes (symbol-value (cdr entry))) - (when (memq mode modes) - (throw 'done state)))))) - -(defun evil-set-initial-state (mode state) - "Set the initial state for MODE to STATE. -This is the state the buffer comes up in." - (dolist (modes (evil-state-property t :modes)) - (setq modes (cdr-safe modes)) - (set modes (delq mode (symbol-value modes)))) - (when state - (add-to-list (evil-state-property state :modes) mode))) - -(evil-define-command evil-change-to-initial-state - (&optional buffer message) - "Change the state of BUFFER to its initial state. -This is the state the buffer came up in." - :keep-visual t - :suppress-operator t - (with-current-buffer (or buffer (current-buffer)) - (evil-change-state (evil-initial-state-for-buffer - buffer (or evil-default-state 'normal)) - message))) - -(evil-define-command evil-change-to-previous-state - (&optional buffer message) - "Change the state of BUFFER to its previous state." - :keep-visual t - :repeat abort - :suppress-operator t - (with-current-buffer (or buffer (current-buffer)) - (let ((prev-state evil-previous-state) - (prev-prev-state (cdr-safe (assoc evil-previous-state - evil-previous-state-alist)))) - (evil-change-state nil) - (when prev-prev-state - (setq evil-previous-state prev-prev-state)) - (evil-change-state (or prev-state evil-default-state 'normal) - message)))) - -;; When a buffer is created in a low-level way, it is invisible to -;; Evil (as well as other globalized minor modes) because no hooks are -;; run. This is appropriate since many buffers are used for throwaway -;; purposes. Passing the buffer to `display-buffer' indicates -;; otherwise, though, so advise this function to initialize Evil. -(defadvice display-buffer (before evil activate) - "Initialize Evil in the displayed buffer." - (when evil-mode - (when (get-buffer (ad-get-arg 0)) - (with-current-buffer (ad-get-arg 0) - (unless evil-local-mode - (evil-local-mode 1)))))) - -(defadvice switch-to-buffer (before evil activate) - "Initialize Evil in the displayed buffer." - (when evil-mode - (let* ((arg0 (ad-get-arg 0)) - (buffer (if arg0 (get-buffer arg0) (other-buffer)))) - (when buffer - (with-current-buffer buffer - (unless evil-local-mode - (evil-local-mode 1))))))) - -(defun evil-generate-mode-line-tag (&optional state) - "Generate the evil mode-line tag for STATE." - (let ((tag (evil-state-property state :tag t))) - ;; prepare mode-line: add tooltip - (if (stringp tag) - (propertize tag - 'help-echo (evil-state-property state :name) - 'mouse-face 'mode-line-highlight) - tag))) - -(defun evil-refresh-mode-line (&optional state) - "Refresh mode line tag." - (when (listp mode-line-format) - (setq evil-mode-line-tag (evil-generate-mode-line-tag state)) - ;; refresh mode line data structure - ;; first remove evil from mode-line - (setq mode-line-format (delq 'evil-mode-line-tag mode-line-format)) - (let ((mlpos mode-line-format) - pred which where) - ;; determine before/after which symbol the tag should be placed - (cond - ((eq evil-mode-line-format 'before) - (setq where 'after which 'mode-line-position)) - ((eq evil-mode-line-format 'after) - (setq where 'after which 'mode-line-modes)) - ((consp evil-mode-line-format) - (setq where (car evil-mode-line-format) - which (cdr evil-mode-line-format)))) - ;; find the cons-cell of the symbol before/after which the tag - ;; should be placed - (while (and mlpos - (let ((sym (or (car-safe (car mlpos)) (car mlpos)))) - (not (eq which sym)))) - (setq pred mlpos - mlpos (cdr mlpos))) - ;; put evil tag at the right position in the mode line - (cond - ((not mlpos)) ;; position not found, so do not add the tag - ((eq where 'before) - (if pred - (setcdr pred (cons 'evil-mode-line-tag mlpos)) - (setq mode-line-format - (cons 'evil-mode-line-tag mode-line-format)))) - ((eq where 'after) - (setcdr mlpos (cons 'evil-mode-line-tag (cdr mlpos))))) - (force-mode-line-update)))) - -;; input methods should be disabled in non-insertion states -(defun evil-activate-input-method () - "Disable input method in states with :input-method nil." - (let (input-method-activate-hook - input-method-deactivate-hook) - (when (and evil-local-mode evil-state) - (setq evil-input-method current-input-method) - (unless (evil-state-property evil-state :input-method) - (deactivate-input-method))))) -(put 'evil-activate-input-method 'permanent-local-hook t) - -(defun evil-deactivate-input-method () - "Disable input method in states with :input-method nil." - (let (input-method-activate-hook - input-method-deactivate-hook) - (when (and evil-local-mode evil-state) - (setq evil-input-method nil)))) -(put 'evil-deactivate-input-method 'permanent-local-hook t) - -(defadvice toggle-input-method (around evil activate) - "Refresh `evil-input-method'." - (cond - ((not evil-local-mode) - ad-do-it) - ((evil-state-property evil-state :input-method) - ad-do-it) - (t - (let ((current-input-method evil-input-method)) - ad-do-it)))) - -;; Local keymaps are implemented using buffer-local variables. -;; However, unless a buffer-local value already exists, -;; `define-key' acts on the variable's default (global) value. -;; So we need to initialize the variable whenever we enter a -;; new buffer or when the buffer-local values are reset. -(defun evil-initialize-local-keymaps () - "Initialize a buffer-local value for local keymaps as necessary. -The initial value is that of `make-sparse-keymap'." - (dolist (entry evil-local-keymaps-alist) - (let ((mode (car entry)) - (map (cdr entry))) - (unless (and (keymapp (symbol-value map)) - (assq map (buffer-local-variables))) - (set map (make-sparse-keymap)))))) - -(defun evil-make-overriding-map (keymap &optional state copy) - "Give KEYMAP precedence over the global keymap of STATE. -The keymap will have lower precedence than custom STATE bindings. -If STATE is nil, give it precedence over all states. -If COPY is t, create a copy of KEYMAP and give that -higher precedence. See also `evil-make-intercept-map'." - (let ((key [override-state])) - (if (not copy) - (define-key keymap key (or state 'all)) - (unless (keymapp copy) - (setq copy (assq-delete-all 'menu-bar (copy-keymap keymap)))) - (define-key copy key (or state 'all)) - (define-key keymap key copy)))) - -(defun evil-make-intercept-map (keymap &optional state) - "Give KEYMAP precedence over all Evil keymaps in STATE. -If STATE is nil, give it precedence over all states. -See also `evil-make-overriding-map'." - (let ((key [intercept-state])) - (define-key keymap key (or state 'all)))) - -(defmacro evil-define-keymap (keymap doc &rest body) - "Define a keymap KEYMAP listed in `evil-mode-map-alist'. -That means it will have precedence over regular keymaps. - -DOC is the documentation for the variable. BODY, if specified, -is executed after toggling the mode. Optional keyword arguments -may be specified before the body code: - -:mode VAR Mode variable. If unspecified, the variable - is based on the keymap name. -:local BOOLEAN Whether the keymap should be buffer-local, that is, - reinitialized for each buffer. -:func BOOLEAN Create a toggle function even if BODY is empty. - -\(fn KEYMAP DOC [[KEY VAL]...] BODY...)" - (declare (indent defun) - (debug (&define name - [&optional stringp] - [&rest [keywordp sexp]] - def-body))) - (let ((func t) - arg intercept key local mode overriding) - (while (keywordp (car-safe body)) - (setq key (pop body) - arg (pop body)) - (cond - ((eq key :mode) - (setq mode arg)) - ((eq key :local) - (setq local arg)) - ((eq key :func) - (setq func arg)) - ((eq key :intercept) - (setq intercept arg)) - ((eq key :overriding) - (setq overriding arg)))) - (setq mode (or mode - (intern (replace-regexp-in-string - "\\(?:-\\(?:mode-\\)?\\(?:key\\)?map\\)?$" - "-mode" - (symbol-name keymap))))) - `(progn - (defvar ,keymap ,(unless local '(make-sparse-keymap))) - (unless (get ',keymap 'variable-documentation) - (put ',keymap 'variable-documentation ,doc)) - (defvar ,mode nil) - (unless (get ',mode 'variable-documentation) - (put ',mode 'variable-documentation ,doc)) - (make-variable-buffer-local ',mode) - (put ',mode 'permanent-local t) - (when ,intercept - (evil-make-intercept-map ,keymap)) - (when ,overriding - (evil-make-overriding-map ,keymap)) - ,@(if local - `((make-variable-buffer-local ',keymap) - (put ',keymap 'permanent-local t) - (evil-add-to-alist 'evil-local-keymaps-alist - ',mode ',keymap)) - `((evil-add-to-alist 'evil-global-keymaps-alist - ',mode ',keymap) - (evil-add-to-alist 'evil-mode-map-alist - ',mode ,keymap))) - ,(when (or body func) - `(defun ,mode (&optional arg) - ,@(when doc `(,doc)) - (interactive) - (cond - ((numberp arg) - (setq ,mode (> arg 0))) - (t - (setq ,mode (not ,mode)))) - ,@body)) - ',keymap))) - -;; Intercept the ESC event when running in the terminal. This allows -;; keys that use "ESC" as a prefix key, such as "M-x". If "ESC" is -;; immediately followed by another key, or another key is pressed -;; within `evil-esc-delay', the prefixed key sequence is sent. -;; Otherwise only [escape] is sent. -(evil-define-keymap evil-esc-map - "Keymap for intercepting ESC." - :intercept t) - -(defun evil-turn-on-esc-mode () - "Enable interception of ESC." - (unless (eq this-command #'evil-esc) - (evil-esc-mode 1) - (remove-hook 'pre-command-hook #'evil-turn-on-esc-mode t))) -(put 'evil-turn-on-esc-mode 'permanent-local-hook t) - -;; `evil-esc' is bound to (kbd "ESC"), while other commands -;; are bound to [escape]. That way `evil-esc' is used only when -;; (kbd "ESC") and [escape] are the same event -- i.e., when -;; running Emacs in the terminal. -(define-key evil-esc-map (kbd "ESC") 'evil-esc) - -(defun evil-state-p (sym) - "Whether SYM is the name of a state." - (assq sym evil-state-properties)) - -(defun evil-state-keymaps (state &rest excluded) - "Return a keymap alist of keymaps activated by STATE. -If STATE references other states in its :enable property, -these states are recursively processed and added to the list. -\(The EXCLUDED argument is an internal safeguard against -infinite recursion, keeping track of processed states.)" - (let* ((state (or state evil-state)) - (enable (evil-state-property state :enable)) - (map (cons - (evil-state-property state :mode) - (evil-state-property state :keymap t))) - (local-map (cons - (evil-state-property state :local) - (evil-state-property state :local-keymap t))) - (aux-maps (evil-state-auxiliary-keymaps state)) - (overriding-maps - (evil-state-overriding-keymaps state)) - (intercept-maps - (evil-state-intercept-keymaps state)) - (result `(,intercept-maps)) - (remove-duplicates (null excluded))) - (unless (memq state enable) - (setq enable (cons state enable))) - ;; process STATE's :enable property - (dolist (entry enable) - (cond - ((memq entry excluded)) - ;; the keymaps for STATE - ((eq entry state) - (setq result `(,@result - (,local-map) - ,aux-maps - ,overriding-maps - (,map))) - (push state excluded)) - ;; the keymaps for another state: call `evil-state-keymaps' - ;; recursively, but keep track of processed states - ((evil-state-p entry) - (setq result `(,@result - ,(apply #'evil-state-keymaps entry excluded)))) - ;; a single keymap - ((or (keymapp entry) - (and (keymapp (symbol-value entry)) - (setq entry (symbol-value entry))) - (setq entry (evil-keymap-for-mode entry))) - (setq result `(,@result - ((,(evil-mode-for-keymap entry t) . - ,entry))))))) - ;; postpone the expensive filtering of duplicates to the top level - (if remove-duplicates - (apply #'evil-concat-keymap-alists result) - (apply #'append result)))) - -(defun evil-normalize-keymaps (&optional state) - "Create a buffer-local value for `evil-mode-map-alist'. -This is a keymap alist, determined by the current state -\(or by STATE if specified)." - (let ((state (or state evil-state)) - (excluded '(nil t)) - map mode temp) - ;; initialize buffer-local keymaps as necessary - (evil-initialize-local-keymaps) - ;; deactivate keymaps of previous state - (dolist (entry evil-mode-map-alist) - (setq mode (car-safe entry) - map (cdr-safe entry)) - ;; don't deactivate overriding keymaps; - ;; they are toggled by their associated mode - (if (or (memq mode excluded) - (evil-intercept-keymap-p map) - (evil-overriding-keymap-p map) - (evil-auxiliary-keymap-p map)) - (push mode excluded) - (when (and (fboundp mode) (symbol-value mode)) - (funcall mode -1)) - (set mode nil))) - (setq evil-mode-map-alist nil) - ;; activate keymaps of current state - (when state - (setq temp (evil-state-keymaps state)) - (dolist (entry temp) - (setq mode (car entry) - map (cdr entry)) - (unless (and (boundp mode) (symbol-value mode)) - (when (fboundp mode) - (funcall mode 1)) - (set mode t)) - ;; refresh the keymap in case it has changed - ;; (e.g., `evil-operator-shortcut-map' is - ;; reset on toggling) - (if (or (memq mode excluded) - (evil-intercept-keymap-p map) - (evil-overriding-keymap-p map) - (evil-auxiliary-keymap-p map)) - (push mode excluded) - (setcdr entry (or (evil-keymap-for-mode mode) map)))) - ;; update `evil-mode-map-alist' - (setq evil-mode-map-alist temp)))) - -(defun evil-mode-for-keymap (keymap &optional default) - "Return the minor mode associated with KEYMAP. -Returns DEFAULT if no mode is found. -See also `evil-keymap-for-mode'." - (let ((map (if (keymapp keymap) keymap (symbol-value keymap))) - (var (when (symbolp keymap) keymap))) - ;; Check Evil variables first for speed purposes. - ;; If all else fails, check `minor-mode-map-alist'. - (or (when var - (or (car (rassq var evil-global-keymaps-alist)) - (car (rassq var evil-local-keymaps-alist)))) - (car (rassq map (mapcar #'(lambda (e) - ;; from (MODE-VAR . MAP-VAR) - ;; to (MODE-VAR . MAP) - (cons (car-safe e) - (symbol-value (cdr-safe e)))) - (append evil-global-keymaps-alist - evil-local-keymaps-alist)))) - (car (rassq map minor-mode-map-alist)) - default))) - -(defun evil-keymap-for-mode (mode &optional variable) - "Return the keymap associated with MODE. -Return the keymap variable if VARIABLE is non-nil. -See also `evil-mode-for-keymap'." - (let* ((var (or (cdr (assq mode evil-global-keymaps-alist)) - (cdr (assq mode evil-local-keymaps-alist)))) - (map (or (symbol-value var) - (cdr (assq mode minor-mode-map-alist))))) - (if variable var map))) - -(defun evil-state-auxiliary-keymaps (state) - "Return a keymap alist of auxiliary keymaps for STATE." - (let ((state (or state evil-state)) - aux result) - (dolist (map (current-active-maps) result) - (when (setq aux (evil-get-auxiliary-keymap map state)) - (push (cons (evil-mode-for-keymap map t) aux) result))) - (nreverse result))) - -(defun evil-state-overriding-keymaps (&optional state) - "Return a keymap alist of overriding keymaps for STATE." - (let* ((state (or state evil-state)) - result) - (dolist (map (current-active-maps)) - (when (setq map (evil-overriding-keymap-p map state)) - (push (cons (evil-mode-for-keymap map t) map) result))) - (nreverse result))) - -(defun evil-state-intercept-keymaps (&optional state) - "Return a keymap alist of intercept keymaps for STATE." - (let* ((state (or state evil-state)) - result) - (dolist (map (current-active-maps)) - (when (setq map (evil-intercept-keymap-p map state)) - (push (cons (evil-mode-for-keymap map t) map) result))) - (setq result (nreverse result)) - (add-to-list 'result `(evil-esc-mode . ,evil-esc-map)) - result)) - -(defun evil-set-auxiliary-keymap (map state &optional aux) - "Set the auxiliary keymap for MAP in STATE to AUX. -If AUX is nil, create a new auxiliary keymap." - (unless (keymapp aux) - (setq aux (make-sparse-keymap))) - (unless (evil-auxiliary-keymap-p aux) - (evil-set-keymap-prompt - aux (format "Auxiliary keymap for %s" - (or (evil-state-property state :name) - (format "%s state" state))))) - (define-key map - (vconcat (list (intern (format "%s-state" state)))) aux) - aux) -(put 'evil-set-auxiliary-keymap 'lisp-indent-function 'defun) - -(defun evil-get-auxiliary-keymap (map state &optional create) - "Get the auxiliary keymap for MAP in STATE. -If CREATE is non-nil, create an auxiliary keymap -if MAP does not have one." - (when state - (let* ((key (vconcat (list (intern (format "%s-state" state))))) - (aux (if state (lookup-key map key) map))) - (cond - ((evil-auxiliary-keymap-p aux) - aux) - (create - (evil-set-auxiliary-keymap map state)))))) - -(defun evil-auxiliary-keymap-p (map) - "Whether MAP is an auxiliary keymap." - (and (keymapp map) - (string-match "Auxiliary keymap" - (or (keymap-prompt map) "")) t)) - -(defun evil-intercept-keymap-p (map &optional state) - "Whether MAP is an intercept keymap for STATE. -If STATE is nil, it means any state." - (let ((entry (and (keymapp map) - (lookup-key map [intercept-state])))) - (cond - ((null entry) - nil) - ((null state) - map) - ((eq entry state) - map) - ((eq entry 'all) - map)))) - -(defun evil-overriding-keymap-p (map &optional state) - "Whether MAP is an overriding keymap for STATE. -If STATE is nil, it means any state." - (let ((entry (and (keymapp map) - (lookup-key map [override-state])))) - (cond - ((null entry) - nil) - ((keymapp entry) - (evil-overriding-keymap-p entry state)) - ((null state) - map) - ((eq entry state) - map) - ((eq entry 'all) - map)))) - -(defun evil-intercept-keymap-state (map) - "Return the state for the intercept keymap MAP. -A return value of t means all states." - (let ((state (lookup-key map [intercept-state] map))) - (cond - ((keymapp state) - (evil-intercept-keymap-state state)) - ((eq state 'all) - t) - (t - state)))) - -(defun evil-overriding-keymap-state (map) - "Return the state for the overriding keymap MAP. -A return value of t means all states." - (let ((state (lookup-key map [override-state] map))) - (cond - ((keymapp state) - (evil-overriding-keymap-state state)) - ((eq state 'all) - t) - (t - state)))) - -(defmacro evil-define-key (state keymap key def &rest bindings) - "Create a STATE binding from KEY to DEF for KEYMAP. -STATE is one of `normal', `insert', `visual', `replace', -`operator', `motion' and `emacs'. The remaining arguments -are like those of `define-key'. For example: - - (evil-define-key 'normal foo-map \"a\" 'bar) - -This creates a binding from \"a\" to `bar' in Normal state, -which is active whenever `foo-map' is active. It is possible -to specify multiple bindings at once: - - (evil-define-key 'normal foo-map - \"a\" 'bar - \"b\" 'foo) - -If foo-map has not been initialized yet, this macro adds an entry -to `after-load-functions', delaying execution as necessary." - (declare (indent defun)) - `(evil-delay ',(if (symbolp keymap) - `(and (boundp ',keymap) (keymapp ,keymap)) - `(keymapp ,keymap)) - '(let* ((state ,state) (keymap ,keymap) (key ,key) (def ,def) - (bindings (list ,@bindings)) aux) - (if state - (setq aux (evil-get-auxiliary-keymap keymap state t)) - (setq aux keymap)) - (while key - (define-key aux key def) - (setq key (pop bindings) - def (pop bindings))) - ;; ensure the prompt string comes first - (evil-set-keymap-prompt aux (keymap-prompt aux))) - 'after-load-functions t nil - (format "evil-define-key-in-%s" - ',(if (symbolp keymap) keymap 'keymap)))) -(defalias 'evil-declare-key 'evil-define-key) - -(defmacro evil-add-hjkl-bindings (keymap &optional state &rest bindings) - "Add \"h\", \"j\", \"k\", \"l\" bindings to KEYMAP in STATE. -Add additional BINDINGS if specified." - (declare (indent defun)) - `(evil-define-key ,state ,keymap - "h" (lookup-key evil-motion-state-map "h") - "j" (lookup-key evil-motion-state-map "j") - "k" (lookup-key evil-motion-state-map "k") - "l" (lookup-key evil-motion-state-map "l") - ":" (lookup-key evil-motion-state-map ":") - ,@bindings)) - -;; may be useful for programmatic purposes -(defun evil-global-set-key (state key def) - "Bind KEY to DEF in STATE." - (define-key (evil-state-property state :keymap t) key def)) - -(defun evil-local-set-key (state key def) - "Bind KEY to DEF in STATE in the current buffer." - (define-key (evil-state-property state :local-keymap t) key def)) - -;; Advise these functions as they may activate an overriding keymap or -;; a keymap with state bindings; if so, refresh `evil-mode-map-alist'. -(defadvice use-global-map (after evil activate) - "Refresh Evil keymaps." - (evil-normalize-keymaps)) - -(defadvice use-local-map (after evil activate) - "Refresh Evil keymaps." - (evil-normalize-keymaps)) - -(defmacro evil-define-state (state doc &rest body) - "Define an Evil state STATE. -DOC is a general description and shows up in all docstrings; -the first line of the string should be the full name of the state. -Then follows one or more optional keywords: - -:tag STRING Mode line indicator. -:message STRING Echo area message when changing to STATE. -:cursor SPEC Cursor to use in STATE. -:entry-hook LIST Hooks run when changing to STATE. -:exit-hook LIST Hooks run when changing from STATE. -:enable LIST List of other states and modes enabled by STATE. -:suppress-keymap FLAG If FLAG is non-nil, makes `evil-suppress-map' - the parent of the global map of STATE, - effectively disabling bindings to - `self-insert-command'. - -Following the keywords is optional code to be executed each time -the state is enabled or disabled. For example: - - (evil-define-state test - \"Test state.\" - :tag \" \" - (setq test-var t)) - -The global keymap of this state will be `evil-test-state-map', -the local keymap will be `evil-test-state-local-map', and so on. - -\(fn STATE DOC [[KEY VAL]...] BODY...)" - (declare (indent defun) - (debug (&define name - [&optional stringp] - [&rest [keywordp sexp]] - def-body))) - (let* ((name (and (string-match "^\\(.+\\)\\(\\(?:.\\|\n\\)*\\)" doc) - (match-string 1 doc))) - (doc (match-string 2 doc)) - (name (and (string-match "^\\(.+?\\)\\.?$" name) - (match-string 1 name))) - (doc (if (or (null doc) (string= doc "")) "" - (format "\n%s" doc))) - (toggle (intern (format "evil-%s-state" state))) - (mode (intern (format "%s-minor-mode" toggle))) - (keymap (intern (format "%s-map" toggle))) - (local (intern (format "%s-local-minor-mode" toggle))) - (local-keymap (intern (format "%s-local-map" toggle))) - (tag (intern (format "%s-tag" toggle))) - (message (intern (format "%s-message" toggle))) - (cursor (intern (format "%s-cursor" toggle))) - (entry-hook (intern (format "%s-entry-hook" toggle))) - (exit-hook (intern (format "%s-exit-hook" toggle))) - (modes (intern (format "%s-modes" toggle))) - (predicate (intern (format "%s-p" toggle))) - (intercept-esc t) - arg cursor-value enable entry-hook-value exit-hook-value - input-method key message-value suppress-keymap tag-value) - ;; collect keywords - (while (keywordp (car-safe body)) - (setq key (pop body) - arg (pop body)) - (cond - ((eq key :tag) - (setq tag-value arg)) - ((eq key :message) - (setq message-value arg)) - ((eq key :cursor) - (setq cursor-value arg)) - ((eq key :entry-hook) - (setq entry-hook-value arg) - (unless (listp entry-hook-value) - (setq entry-hook-value (list entry-hook-value)))) - ((eq key :exit-hook) - (setq exit-hook-value arg) - (unless (listp exit-hook-value) - (setq exit-hook-value (list entry-hook-value)))) - ((eq key :enable) - (setq enable arg)) - ((eq key :input-method) - (setq input-method arg)) - ((eq key :intercept-esc) - (setq intercept-esc arg)) - ((eq key :suppress-keymap) - (setq suppress-keymap arg)))) - - ;; macro expansion - `(progn - ;; Save the state's properties in `evil-state-properties' for - ;; runtime lookup. Among other things, this information is used - ;; to determine what keymaps should be activated by the state - ;; (and, when processing :enable, what keymaps are activated by - ;; other states). We cannot know this at compile time because - ;; it depends on the current buffer and its active keymaps - ;; (to which we may have assigned state bindings), as well as - ;; states whose definitions may not have been processed yet. - (evil-put-property - 'evil-state-properties ',state - :name ',name - :toggle ',toggle - :mode (defvar ,mode nil - ,(format "Non-nil if %s is enabled. -Use the command `%s' to change this variable." name toggle)) - :keymap (defvar ,keymap (make-sparse-keymap) - ,(format "Keymap for %s." name)) - :local (defvar ,local nil - ,(format "Non-nil if %s is enabled. -Use the command `%s' to change this variable." name toggle)) - :local-keymap (defvar ,local-keymap nil - ,(format "Buffer-local keymap for %s." name)) - :tag (defvar ,tag ,tag-value - ,(format "Mode line tag for %s." name)) - :message (defvar ,message ,message-value - ,(format "Echo area message for %s." name)) - :cursor (defvar ,cursor ',cursor-value - ,(format "Cursor for %s. -May be a cursor type as per `cursor-type', a color string as passed -to `set-cursor-color', a zero-argument function for changing the -cursor, or a list of the above." name)) - :entry-hook (defvar ,entry-hook nil - ,(format "Hooks to run when entering %s." name)) - :exit-hook (defvar ,exit-hook nil - ,(format "Hooks to run when exiting %s." name)) - :modes (defvar ,modes nil - ,(format "Modes that should come up in %s." name)) - :input-method ',input-method - :predicate ',predicate - :enable ',enable) - - ,@(when suppress-keymap - `((set-keymap-parent ,keymap evil-suppress-map))) - - (dolist (func ',entry-hook-value) - (add-hook ',entry-hook func)) - - (dolist (func ',exit-hook-value) - (add-hook ',exit-hook func)) - - (defun ,predicate (&optional state) - ,(format "Whether the current state is %s. -\(That is, whether `evil-state' is `%s'.)" name state) - (and evil-local-mode - (eq (or state evil-state) ',state))) - - ;; define state function - (defun ,toggle (&optional arg) - ,(format "Enable %s. Disable with negative ARG. -If ARG is nil, don't display a message in the echo area.%s" name doc) - (interactive "p") - (cond - ((and (numberp arg) (< arg 1)) - (setq evil-previous-state evil-state - evil-state nil) - (let ((evil-state ',state)) - (run-hooks ',exit-hook) - (setq evil-state nil) - (evil-esc-mode -1) - (evil-normalize-keymaps) - ,@body)) - (t - (unless evil-local-mode - (evil-local-mode 1)) - (let ((evil-next-state ',state) - input-method-activate-hook - input-method-deactivate-hook) - (evil-change-state nil) - (setq evil-state ',state) - (evil-add-to-alist 'evil-previous-state-alist - ',state evil-previous-state) - (let ((evil-state ',state)) - (evil-normalize-keymaps) - (if ,intercept-esc - (evil-esc-mode 1) - (evil-esc-mode -1)) - (if ',input-method - (activate-input-method evil-input-method) - (deactivate-input-method)) - (unless evil-no-display - (evil-refresh-cursor ',state) - (evil-refresh-mode-line ',state) - (when (evil-called-interactively-p) - (redisplay))) - ,@body - (run-hooks ',entry-hook) - (when (and evil-echo-state - arg (not evil-no-display) ,message) - (if (functionp ,message) - (funcall ,message) - (evil-echo "%s" ,message)))))))) - - (evil-set-command-property ',toggle :keep-visual t) - (evil-set-command-property ',toggle :suppress-operator t) - - (evil-define-keymap ,keymap nil - :mode ,mode - :func nil) - - (evil-define-keymap ,local-keymap nil - :mode ,local - :local t - :func nil) - - ',state))) - -(provide 'evil-core) - -;;; evil-core.el ends here diff --git a/elpa/evil-1.0.1/evil-digraphs.el b/elpa/evil-1.0.1/evil-digraphs.el deleted file mode 100644 index 1266f446..00000000 --- a/elpa/evil-1.0.1/evil-digraphs.el +++ /dev/null @@ -1,1729 +0,0 @@ -;;; evil-digraphs.el --- Digraphs - -;; Author: Vegard Ă˜ye -;; Maintainer: Vegard Ă˜ye - -;; Version: 1.0.1 - -;; -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; This file is part of Evil. -;; -;; Evil is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; Evil is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Evil. If not, see . - -(require 'evil-vars) - -;;; Code: - -(defgroup evil-digraphs nil - "Digraph support based on RFC 1345." - :group 'evil - :prefix "evil-digraph-") - -(defcustom evil-digraphs-table-user nil - "List of user-defined digraphs. -Entries have the form ((?CHAR1 ?CHAR2) . ?DIGRAPH). That is, -a cons cell of the digraph and its character replacement, -where the digraph is a list of two characters. -See also `evil-digraphs-table'." - :type '(alist :key-type (list character character) - :value-type character) - :require 'evil-digraphs - :group 'evil-digraphs) - -(defconst evil-digraphs-table - '(((?N ?U) . ?\x00) - ((?S ?H) . ?\x01) - ((?S ?X) . ?\x02) - ((?E ?X) . ?\x03) - ((?E ?T) . ?\x04) - ((?E ?Q) . ?\x05) - ((?A ?K) . ?\x06) - ((?B ?L) . ?\x07) - ((?B ?S) . ?\x08) - ((?H ?T) . ?\x09) - ((?L ?F) . ?\x0a) - ((?V ?T) . ?\x0b) - ((?F ?F) . ?\x0c) - ((?C ?R) . ?\x0d) - ((?S ?O) . ?\x0e) - ((?S ?I) . ?\x0f) - ((?D ?L) . ?\x10) - ((?D ?1) . ?\x11) - ((?D ?2) . ?\x12) - ((?D ?3) . ?\x13) - ((?D ?4) . ?\x14) - ((?N ?K) . ?\x15) - ((?S ?Y) . ?\x16) - ((?E ?B) . ?\x17) - ((?C ?N) . ?\x18) - ((?E ?M) . ?\x19) - ((?S ?B) . ?\x1a) - ((?E ?C) . ?\x1b) - ((?F ?S) . ?\x1c) - ((?G ?S) . ?\x1d) - ((?R ?S) . ?\x1e) - ((?U ?S) . ?\x1f) - ((?S ?P) . ?\x20) - ((?N ?b) . ?\x23) - ((?D ?O) . ?\x24) - ((?A ?t) . ?\x40) - ((?< ?\() . ?\x5b) - ((?/ ?/) . ?\x5c) - ((?\) ?>) . ?\x5d) - ((?' ?>) . ?\x5e) - ((?' ?!) . ?\x60) - ((?\( ?!) . ?\x7b) - ((?! ?!) . ?\x7c) - ((?! ?\)) . ?\x7d) - ((?' ??) . ?\x7e) - ((?D ?T) . ?\x7f) - ((?P ?A) . ?\x80) - ((?H ?O) . ?\x81) - ((?B ?H) . ?\x82) - ((?N ?H) . ?\x83) - ((?I ?N) . ?\x84) - ((?N ?L) . ?\x85) - ((?S ?A) . ?\x86) - ((?E ?S) . ?\x87) - ((?H ?S) . ?\x88) - ((?H ?J) . ?\x89) - ((?V ?S) . ?\x8a) - ((?P ?D) . ?\x8b) - ((?P ?U) . ?\x8c) - ((?R ?I) . ?\x8d) - ((?S ?2) . ?\x8e) - ((?S ?3) . ?\x8f) - ((?D ?C) . ?\x90) - ((?P ?1) . ?\x91) - ((?P ?2) . ?\x92) - ((?T ?S) . ?\x93) - ((?C ?C) . ?\x94) - ((?M ?W) . ?\x95) - ((?S ?G) . ?\x96) - ((?E ?G) . ?\x97) - ((?S ?S) . ?\x98) - ((?G ?C) . ?\x99) - ((?S ?C) . ?\x9a) - ((?C ?I) . ?\x9b) - ((?S ?T) . ?\x9c) - ((?O ?C) . ?\x9d) - ((?P ?M) . ?\x9e) - ((?A ?C) . ?\x9f) - ((?N ?S) . ?\xa0) - ((?! ?I) . ?\xa1) - ((?C ?t) . ?\xa2) - ((?P ?d) . ?\xa3) - ((?C ?u) . ?\xa4) - ((?Y ?e) . ?\xa5) - ((?B ?B) . ?\xa6) - ((?S ?E) . ?\xa7) - ((?' ?:) . ?\xa8) - ((?C ?o) . ?\xa9) - ((?- ?a) . ?\xaa) - ((?< ?<) . ?\xab) - ((?N ?O) . ?\xac) - ((?- ?-) . ?\xad) - ((?R ?g) . ?\xae) - ((?' ?m) . ?\xaf) - ((?D ?G) . ?\xb0) - ((?+ ?-) . ?\xb1) - ((?2 ?S) . ?\xb2) - ((?3 ?S) . ?\xb3) - ((?' ?') . ?\xb4) - ((?M ?y) . ?\xb5) - ((?P ?I) . ?\xb6) - ((?. ?M) . ?\xb7) - ((?' ?,) . ?\xb8) - ((?1 ?S) . ?\xb9) - ((?- ?o) . ?\xba) - ((?> ?>) . ?\xbb) - ((?1 ?4) . ?\xbc) - ((?1 ?2) . ?\xbd) - ((?3 ?4) . ?\xbe) - ((?? ?I) . ?\xbf) - ((?A ?!) . ?\xc0) - ((?A ?') . ?\xc1) - ((?A ?>) . ?\xc2) - ((?A ??) . ?\xc3) - ((?A ?:) . ?\xc4) - ((?A ?A) . ?\xc5) - ((?A ?E) . ?\xc6) - ((?C ?,) . ?\xc7) - ((?E ?!) . ?\xc8) - ((?E ?') . ?\xc9) - ((?E ?>) . ?\xca) - ((?E ?:) . ?\xcb) - ((?I ?!) . ?\xcc) - ((?I ?') . ?\xcd) - ((?I ?>) . ?\xce) - ((?I ?:) . ?\xcf) - ((?D ?-) . ?\xd0) - ((?N ??) . ?\xd1) - ((?O ?!) . ?\xd2) - ((?O ?') . ?\xd3) - ((?O ?>) . ?\xd4) - ((?O ??) . ?\xd5) - ((?O ?:) . ?\xd6) - ((?* ?X) . ?\xd7) - ((?O ?/) . ?\xd8) - ((?U ?!) . ?\xd9) - ((?U ?') . ?\xda) - ((?U ?>) . ?\xdb) - ((?U ?:) . ?\xdc) - ((?Y ?') . ?\xdd) - ((?T ?H) . ?\xde) - ((?s ?s) . ?\xdf) - ((?a ?!) . ?\xe0) - ((?a ?') . ?\xe1) - ((?a ?>) . ?\xe2) - ((?a ??) . ?\xe3) - ((?a ?:) . ?\xe4) - ((?a ?a) . ?\xe5) - ((?a ?e) . ?\xe6) - ((?c ?,) . ?\xe7) - ((?e ?!) . ?\xe8) - ((?e ?') . ?\xe9) - ((?e ?>) . ?\xea) - ((?e ?:) . ?\xeb) - ((?i ?!) . ?\xec) - ((?i ?') . ?\xed) - ((?i ?>) . ?\xee) - ((?i ?:) . ?\xef) - ((?d ?-) . ?\xf0) - ((?n ??) . ?\xf1) - ((?o ?!) . ?\xf2) - ((?o ?') . ?\xf3) - ((?o ?>) . ?\xf4) - ((?o ??) . ?\xf5) - ((?o ?:) . ?\xf6) - ((?- ?:) . ?\xf7) - ((?o ?/) . ?\xf8) - ((?u ?!) . ?\xf9) - ((?u ?') . ?\xfa) - ((?u ?>) . ?\xfb) - ((?u ?:) . ?\xfc) - ((?y ?') . ?\xfd) - ((?t ?h) . ?\xfe) - ((?y ?:) . ?\xff) - ((?A ?-) . ?\x0100) - ((?a ?-) . ?\x0101) - ((?A ?\() . ?\x0102) - ((?a ?\() . ?\x0103) - ((?A ?\;) . ?\x0104) - ((?a ?\;) . ?\x0105) - ((?C ?') . ?\x0106) - ((?c ?') . ?\x0107) - ((?C ?>) . ?\x0108) - ((?c ?>) . ?\x0109) - ((?C ?.) . ?\x010a) - ((?c ?.) . ?\x010b) - ((?C ?<) . ?\x010c) - ((?c ?<) . ?\x010d) - ((?D ?<) . ?\x010e) - ((?d ?<) . ?\x010f) - ((?D ?/) . ?\x0110) - ((?d ?/) . ?\x0111) - ((?E ?-) . ?\x0112) - ((?e ?-) . ?\x0113) - ((?E ?\() . ?\x0114) - ((?e ?\() . ?\x0115) - ((?E ?.) . ?\x0116) - ((?e ?.) . ?\x0117) - ((?E ?\;) . ?\x0118) - ((?e ?\;) . ?\x0119) - ((?E ?<) . ?\x011a) - ((?e ?<) . ?\x011b) - ((?G ?>) . ?\x011c) - ((?g ?>) . ?\x011d) - ((?G ?\() . ?\x011e) - ((?g ?\() . ?\x011f) - ((?G ?.) . ?\x0120) - ((?g ?.) . ?\x0121) - ((?G ?,) . ?\x0122) - ((?g ?,) . ?\x0123) - ((?H ?>) . ?\x0124) - ((?h ?>) . ?\x0125) - ((?H ?/) . ?\x0126) - ((?h ?/) . ?\x0127) - ((?I ??) . ?\x0128) - ((?i ??) . ?\x0129) - ((?I ?-) . ?\x012a) - ((?i ?-) . ?\x012b) - ((?I ?\() . ?\x012c) - ((?i ?\() . ?\x012d) - ((?I ?\;) . ?\x012e) - ((?i ?\;) . ?\x012f) - ((?I ?.) . ?\x0130) - ((?i ?.) . ?\x0131) - ((?I ?J) . ?\x0132) - ((?i ?j) . ?\x0133) - ((?J ?>) . ?\x0134) - ((?j ?>) . ?\x0135) - ((?K ?,) . ?\x0136) - ((?k ?,) . ?\x0137) - ((?k ?k) . ?\x0138) - ((?L ?') . ?\x0139) - ((?l ?') . ?\x013a) - ((?L ?,) . ?\x013b) - ((?l ?,) . ?\x013c) - ((?L ?<) . ?\x013d) - ((?l ?<) . ?\x013e) - ((?L ?.) . ?\x013f) - ((?l ?.) . ?\x0140) - ((?L ?/) . ?\x0141) - ((?l ?/) . ?\x0142) - ((?N ?') . ?\x0143) - ((?n ?') . ?\x0144) - ((?N ?,) . ?\x0145) - ((?n ?,) . ?\x0146) - ((?N ?<) . ?\x0147) - ((?n ?<) . ?\x0148) - ((?' ?n) . ?\x0149) - ((?N ?G) . ?\x014a) - ((?n ?g) . ?\x014b) - ((?O ?-) . ?\x014c) - ((?o ?-) . ?\x014d) - ((?O ?\() . ?\x014e) - ((?o ?\() . ?\x014f) - ((?O ?\") . ?\x0150) - ((?o ?\") . ?\x0151) - ((?O ?E) . ?\x0152) - ((?o ?e) . ?\x0153) - ((?R ?') . ?\x0154) - ((?r ?') . ?\x0155) - ((?R ?,) . ?\x0156) - ((?r ?,) . ?\x0157) - ((?R ?<) . ?\x0158) - ((?r ?<) . ?\x0159) - ((?S ?') . ?\x015a) - ((?s ?') . ?\x015b) - ((?S ?>) . ?\x015c) - ((?s ?>) . ?\x015d) - ((?S ?,) . ?\x015e) - ((?s ?,) . ?\x015f) - ((?S ?<) . ?\x0160) - ((?s ?<) . ?\x0161) - ((?T ?,) . ?\x0162) - ((?t ?,) . ?\x0163) - ((?T ?<) . ?\x0164) - ((?t ?<) . ?\x0165) - ((?T ?/) . ?\x0166) - ((?t ?/) . ?\x0167) - ((?U ??) . ?\x0168) - ((?u ??) . ?\x0169) - ((?U ?-) . ?\x016a) - ((?u ?-) . ?\x016b) - ((?U ?\() . ?\x016c) - ((?u ?\() . ?\x016d) - ((?U ?0) . ?\x016e) - ((?u ?0) . ?\x016f) - ((?U ?\") . ?\x0170) - ((?u ?\") . ?\x0171) - ((?U ?\;) . ?\x0172) - ((?u ?\;) . ?\x0173) - ((?W ?>) . ?\x0174) - ((?w ?>) . ?\x0175) - ((?Y ?>) . ?\x0176) - ((?y ?>) . ?\x0177) - ((?Y ?:) . ?\x0178) - ((?Z ?') . ?\x0179) - ((?z ?') . ?\x017a) - ((?Z ?.) . ?\x017b) - ((?z ?.) . ?\x017c) - ((?Z ?<) . ?\x017d) - ((?z ?<) . ?\x017e) - ((?O ?9) . ?\x01a0) - ((?o ?9) . ?\x01a1) - ((?O ?I) . ?\x01a2) - ((?o ?i) . ?\x01a3) - ((?y ?r) . ?\x01a6) - ((?U ?9) . ?\x01af) - ((?u ?9) . ?\x01b0) - ((?Z ?/) . ?\x01b5) - ((?z ?/) . ?\x01b6) - ((?E ?D) . ?\x01b7) - ((?A ?<) . ?\x01cd) - ((?a ?<) . ?\x01ce) - ((?I ?<) . ?\x01cf) - ((?i ?<) . ?\x01d0) - ((?O ?<) . ?\x01d1) - ((?o ?<) . ?\x01d2) - ((?U ?<) . ?\x01d3) - ((?u ?<) . ?\x01d4) - ((?A ?1) . ?\x01de) - ((?a ?1) . ?\x01df) - ((?A ?7) . ?\x01e0) - ((?a ?7) . ?\x01e1) - ((?A ?3) . ?\x01e2) - ((?a ?3) . ?\x01e3) - ((?G ?/) . ?\x01e4) - ((?g ?/) . ?\x01e5) - ((?G ?<) . ?\x01e6) - ((?g ?<) . ?\x01e7) - ((?K ?<) . ?\x01e8) - ((?k ?<) . ?\x01e9) - ((?O ?\;) . ?\x01ea) - ((?o ?\;) . ?\x01eb) - ((?O ?1) . ?\x01ec) - ((?o ?1) . ?\x01ed) - ((?E ?Z) . ?\x01ee) - ((?e ?z) . ?\x01ef) - ((?j ?<) . ?\x01f0) - ((?G ?') . ?\x01f4) - ((?g ?') . ?\x01f5) - ((?\; ?S) . ?\x02bf) - ((?' ?<) . ?\x02c7) - ((?' ?\() . ?\x02d8) - ((?' ?.) . ?\x02d9) - ((?' ?0) . ?\x02da) - ((?' ?\;) . ?\x02db) - ((?' ?\") . ?\x02dd) - ((?A ?%) . ?\x0386) - ((?E ?%) . ?\x0388) - ((?Y ?%) . ?\x0389) - ((?I ?%) . ?\x038a) - ((?O ?%) . ?\x038c) - ((?U ?%) . ?\x038e) - ((?W ?%) . ?\x038f) - ((?i ?3) . ?\x0390) - ((?A ?*) . ?\x0391) - ((?B ?*) . ?\x0392) - ((?G ?*) . ?\x0393) - ((?D ?*) . ?\x0394) - ((?E ?*) . ?\x0395) - ((?Z ?*) . ?\x0396) - ((?Y ?*) . ?\x0397) - ((?H ?*) . ?\x0398) - ((?I ?*) . ?\x0399) - ((?K ?*) . ?\x039a) - ((?L ?*) . ?\x039b) - ((?M ?*) . ?\x039c) - ((?N ?*) . ?\x039d) - ((?C ?*) . ?\x039e) - ((?O ?*) . ?\x039f) - ((?P ?*) . ?\x03a0) - ((?R ?*) . ?\x03a1) - ((?S ?*) . ?\x03a3) - ((?T ?*) . ?\x03a4) - ((?U ?*) . ?\x03a5) - ((?F ?*) . ?\x03a6) - ((?X ?*) . ?\x03a7) - ((?Q ?*) . ?\x03a8) - ((?W ?*) . ?\x03a9) - ((?J ?*) . ?\x03aa) - ((?V ?*) . ?\x03ab) - ((?a ?%) . ?\x03ac) - ((?e ?%) . ?\x03ad) - ((?y ?%) . ?\x03ae) - ((?i ?%) . ?\x03af) - ((?u ?3) . ?\x03b0) - ((?a ?*) . ?\x03b1) - ((?b ?*) . ?\x03b2) - ((?g ?*) . ?\x03b3) - ((?d ?*) . ?\x03b4) - ((?e ?*) . ?\x03b5) - ((?z ?*) . ?\x03b6) - ((?y ?*) . ?\x03b7) - ((?h ?*) . ?\x03b8) - ((?i ?*) . ?\x03b9) - ((?k ?*) . ?\x03ba) - ((?l ?*) . ?\x03bb) - ((?m ?*) . ?\x03bc) - ((?n ?*) . ?\x03bd) - ((?c ?*) . ?\x03be) - ((?o ?*) . ?\x03bf) - ((?p ?*) . ?\x03c0) - ((?r ?*) . ?\x03c1) - ((?* ?s) . ?\x03c2) - ((?s ?*) . ?\x03c3) - ((?t ?*) . ?\x03c4) - ((?u ?*) . ?\x03c5) - ((?f ?*) . ?\x03c6) - ((?x ?*) . ?\x03c7) - ((?q ?*) . ?\x03c8) - ((?w ?*) . ?\x03c9) - ((?j ?*) . ?\x03ca) - ((?v ?*) . ?\x03cb) - ((?o ?%) . ?\x03cc) - ((?u ?%) . ?\x03cd) - ((?w ?%) . ?\x03ce) - ((?' ?G) . ?\x03d8) - ((?, ?G) . ?\x03d9) - ((?T ?3) . ?\x03da) - ((?t ?3) . ?\x03db) - ((?M ?3) . ?\x03dc) - ((?m ?3) . ?\x03dd) - ((?K ?3) . ?\x03de) - ((?k ?3) . ?\x03df) - ((?P ?3) . ?\x03e0) - ((?p ?3) . ?\x03e1) - ((?' ?%) . ?\x03f4) - ((?j ?3) . ?\x03f5) - ((?I ?O) . ?\x0401) - ((?D ?%) . ?\x0402) - ((?G ?%) . ?\x0403) - ((?I ?E) . ?\x0404) - ((?D ?S) . ?\x0405) - ((?I ?I) . ?\x0406) - ((?Y ?I) . ?\x0407) - ((?J ?%) . ?\x0408) - ((?L ?J) . ?\x0409) - ((?N ?J) . ?\x040a) - ((?T ?s) . ?\x040b) - ((?K ?J) . ?\x040c) - ((?V ?%) . ?\x040e) - ((?D ?Z) . ?\x040f) - ((?A ?=) . ?\x0410) - ((?B ?=) . ?\x0411) - ((?V ?=) . ?\x0412) - ((?G ?=) . ?\x0413) - ((?D ?=) . ?\x0414) - ((?E ?=) . ?\x0415) - ((?Z ?%) . ?\x0416) - ((?Z ?=) . ?\x0417) - ((?I ?=) . ?\x0418) - ((?J ?=) . ?\x0419) - ((?K ?=) . ?\x041a) - ((?L ?=) . ?\x041b) - ((?M ?=) . ?\x041c) - ((?N ?=) . ?\x041d) - ((?O ?=) . ?\x041e) - ((?P ?=) . ?\x041f) - ((?R ?=) . ?\x0420) - ((?S ?=) . ?\x0421) - ((?T ?=) . ?\x0422) - ((?U ?=) . ?\x0423) - ((?F ?=) . ?\x0424) - ((?H ?=) . ?\x0425) - ((?C ?=) . ?\x0426) - ((?C ?%) . ?\x0427) - ((?S ?%) . ?\x0428) - ((?S ?c) . ?\x0429) - ((?= ?\") . ?\x042a) - ((?Y ?=) . ?\x042b) - ((?% ?\") . ?\x042c) - ((?J ?E) . ?\x042d) - ((?J ?U) . ?\x042e) - ((?J ?A) . ?\x042f) - ((?a ?=) . ?\x0430) - ((?b ?=) . ?\x0431) - ((?v ?=) . ?\x0432) - ((?g ?=) . ?\x0433) - ((?d ?=) . ?\x0434) - ((?e ?=) . ?\x0435) - ((?z ?%) . ?\x0436) - ((?z ?=) . ?\x0437) - ((?i ?=) . ?\x0438) - ((?j ?=) . ?\x0439) - ((?k ?=) . ?\x043a) - ((?l ?=) . ?\x043b) - ((?m ?=) . ?\x043c) - ((?n ?=) . ?\x043d) - ((?o ?=) . ?\x043e) - ((?p ?=) . ?\x043f) - ((?r ?=) . ?\x0440) - ((?s ?=) . ?\x0441) - ((?t ?=) . ?\x0442) - ((?u ?=) . ?\x0443) - ((?f ?=) . ?\x0444) - ((?h ?=) . ?\x0445) - ((?c ?=) . ?\x0446) - ((?c ?%) . ?\x0447) - ((?s ?%) . ?\x0448) - ((?s ?c) . ?\x0449) - ((?= ?') . ?\x044a) - ((?y ?=) . ?\x044b) - ((?% ?') . ?\x044c) - ((?j ?e) . ?\x044d) - ((?j ?u) . ?\x044e) - ((?j ?a) . ?\x044f) - ((?i ?o) . ?\x0451) - ((?d ?%) . ?\x0452) - ((?g ?%) . ?\x0453) - ((?i ?e) . ?\x0454) - ((?d ?s) . ?\x0455) - ((?i ?i) . ?\x0456) - ((?y ?i) . ?\x0457) - ((?j ?%) . ?\x0458) - ((?l ?j) . ?\x0459) - ((?n ?j) . ?\x045a) - ((?t ?s) . ?\x045b) - ((?k ?j) . ?\x045c) - ((?v ?%) . ?\x045e) - ((?d ?z) . ?\x045f) - ((?Y ?3) . ?\x0462) - ((?y ?3) . ?\x0463) - ((?O ?3) . ?\x046a) - ((?o ?3) . ?\x046b) - ((?F ?3) . ?\x0472) - ((?f ?3) . ?\x0473) - ((?V ?3) . ?\x0474) - ((?v ?3) . ?\x0475) - ((?C ?3) . ?\x0480) - ((?c ?3) . ?\x0481) - ((?G ?3) . ?\x0490) - ((?g ?3) . ?\x0491) - ((?A ?+) . ?\x05d0) - ((?B ?+) . ?\x05d1) - ((?G ?+) . ?\x05d2) - ((?D ?+) . ?\x05d3) - ((?H ?+) . ?\x05d4) - ((?W ?+) . ?\x05d5) - ((?Z ?+) . ?\x05d6) - ((?X ?+) . ?\x05d7) - ((?T ?j) . ?\x05d8) - ((?J ?+) . ?\x05d9) - ((?K ?%) . ?\x05da) - ((?K ?+) . ?\x05db) - ((?L ?+) . ?\x05dc) - ((?M ?%) . ?\x05dd) - ((?M ?+) . ?\x05de) - ((?N ?%) . ?\x05df) - ((?N ?+) . ?\x05e0) - ((?S ?+) . ?\x05e1) - ((?E ?+) . ?\x05e2) - ((?P ?%) . ?\x05e3) - ((?P ?+) . ?\x05e4) - ((?Z ?j) . ?\x05e5) - ((?Z ?J) . ?\x05e6) - ((?Q ?+) . ?\x05e7) - ((?R ?+) . ?\x05e8) - ((?S ?h) . ?\x05e9) - ((?T ?+) . ?\x05ea) - ((?, ?+) . ?\x060c) - ((?\; ?+) . ?\x061b) - ((?? ?+) . ?\x061f) - ((?H ?') . ?\x0621) - ((?a ?M) . ?\x0622) - ((?a ?H) . ?\x0623) - ((?w ?H) . ?\x0624) - ((?a ?h) . ?\x0625) - ((?y ?H) . ?\x0626) - ((?a ?+) . ?\x0627) - ((?b ?+) . ?\x0628) - ((?t ?m) . ?\x0629) - ((?t ?+) . ?\x062a) - ((?t ?k) . ?\x062b) - ((?g ?+) . ?\x062c) - ((?h ?k) . ?\x062d) - ((?x ?+) . ?\x062e) - ((?d ?+) . ?\x062f) - ((?d ?k) . ?\x0630) - ((?r ?+) . ?\x0631) - ((?z ?+) . ?\x0632) - ((?s ?+) . ?\x0633) - ((?s ?n) . ?\x0634) - ((?c ?+) . ?\x0635) - ((?d ?d) . ?\x0636) - ((?t ?j) . ?\x0637) - ((?z ?H) . ?\x0638) - ((?e ?+) . ?\x0639) - ((?i ?+) . ?\x063a) - ((?+ ?+) . ?\x0640) - ((?f ?+) . ?\x0641) - ((?q ?+) . ?\x0642) - ((?k ?+) . ?\x0643) - ((?l ?+) . ?\x0644) - ((?m ?+) . ?\x0645) - ((?n ?+) . ?\x0646) - ((?h ?+) . ?\x0647) - ((?w ?+) . ?\x0648) - ((?j ?+) . ?\x0649) - ((?y ?+) . ?\x064a) - ((?: ?+) . ?\x064b) - ((?\" ?+) . ?\x064c) - ((?= ?+) . ?\x064d) - ((?/ ?+) . ?\x064e) - ((?' ?+) . ?\x064f) - ((?1 ?+) . ?\x0650) - ((?3 ?+) . ?\x0651) - ((?0 ?+) . ?\x0652) - ((?a ?S) . ?\x0670) - ((?p ?+) . ?\x067e) - ((?v ?+) . ?\x06a4) - ((?g ?f) . ?\x06af) - ((?0 ?a) . ?\x06f0) - ((?1 ?a) . ?\x06f1) - ((?2 ?a) . ?\x06f2) - ((?3 ?a) . ?\x06f3) - ((?4 ?a) . ?\x06f4) - ((?5 ?a) . ?\x06f5) - ((?6 ?a) . ?\x06f6) - ((?7 ?a) . ?\x06f7) - ((?8 ?a) . ?\x06f8) - ((?9 ?a) . ?\x06f9) - ((?B ?.) . ?\x1e02) - ((?b ?.) . ?\x1e03) - ((?B ?_) . ?\x1e06) - ((?b ?_) . ?\x1e07) - ((?D ?.) . ?\x1e0a) - ((?d ?.) . ?\x1e0b) - ((?D ?_) . ?\x1e0e) - ((?d ?_) . ?\x1e0f) - ((?D ?,) . ?\x1e10) - ((?d ?,) . ?\x1e11) - ((?F ?.) . ?\x1e1e) - ((?f ?.) . ?\x1e1f) - ((?G ?-) . ?\x1e20) - ((?g ?-) . ?\x1e21) - ((?H ?.) . ?\x1e22) - ((?h ?.) . ?\x1e23) - ((?H ?:) . ?\x1e26) - ((?h ?:) . ?\x1e27) - ((?H ?,) . ?\x1e28) - ((?h ?,) . ?\x1e29) - ((?K ?') . ?\x1e30) - ((?k ?') . ?\x1e31) - ((?K ?_) . ?\x1e34) - ((?k ?_) . ?\x1e35) - ((?L ?_) . ?\x1e3a) - ((?l ?_) . ?\x1e3b) - ((?M ?') . ?\x1e3e) - ((?m ?') . ?\x1e3f) - ((?M ?.) . ?\x1e40) - ((?m ?.) . ?\x1e41) - ((?N ?.) . ?\x1e44) - ((?n ?.) . ?\x1e45) - ((?N ?_) . ?\x1e48) - ((?n ?_) . ?\x1e49) - ((?P ?') . ?\x1e54) - ((?p ?') . ?\x1e55) - ((?P ?.) . ?\x1e56) - ((?p ?.) . ?\x1e57) - ((?R ?.) . ?\x1e58) - ((?r ?.) . ?\x1e59) - ((?R ?_) . ?\x1e5e) - ((?r ?_) . ?\x1e5f) - ((?S ?.) . ?\x1e60) - ((?s ?.) . ?\x1e61) - ((?T ?.) . ?\x1e6a) - ((?t ?.) . ?\x1e6b) - ((?T ?_) . ?\x1e6e) - ((?t ?_) . ?\x1e6f) - ((?V ??) . ?\x1e7c) - ((?v ??) . ?\x1e7d) - ((?W ?!) . ?\x1e80) - ((?w ?!) . ?\x1e81) - ((?W ?') . ?\x1e82) - ((?w ?') . ?\x1e83) - ((?W ?:) . ?\x1e84) - ((?w ?:) . ?\x1e85) - ((?W ?.) . ?\x1e86) - ((?w ?.) . ?\x1e87) - ((?X ?.) . ?\x1e8a) - ((?x ?.) . ?\x1e8b) - ((?X ?:) . ?\x1e8c) - ((?x ?:) . ?\x1e8d) - ((?Y ?.) . ?\x1e8e) - ((?y ?.) . ?\x1e8f) - ((?Z ?>) . ?\x1e90) - ((?z ?>) . ?\x1e91) - ((?Z ?_) . ?\x1e94) - ((?z ?_) . ?\x1e95) - ((?h ?_) . ?\x1e96) - ((?t ?:) . ?\x1e97) - ((?w ?0) . ?\x1e98) - ((?y ?0) . ?\x1e99) - ((?A ?2) . ?\x1ea2) - ((?a ?2) . ?\x1ea3) - ((?E ?2) . ?\x1eba) - ((?e ?2) . ?\x1ebb) - ((?E ??) . ?\x1ebc) - ((?e ??) . ?\x1ebd) - ((?I ?2) . ?\x1ec8) - ((?i ?2) . ?\x1ec9) - ((?O ?2) . ?\x1ece) - ((?o ?2) . ?\x1ecf) - ((?U ?2) . ?\x1ee6) - ((?u ?2) . ?\x1ee7) - ((?Y ?!) . ?\x1ef2) - ((?y ?!) . ?\x1ef3) - ((?Y ?2) . ?\x1ef6) - ((?y ?2) . ?\x1ef7) - ((?Y ??) . ?\x1ef8) - ((?y ??) . ?\x1ef9) - ((?\; ?') . ?\x1f00) - ((?, ?') . ?\x1f01) - ((?\; ?!) . ?\x1f02) - ((?, ?!) . ?\x1f03) - ((?? ?\;) . ?\x1f04) - ((?? ?,) . ?\x1f05) - ((?! ?:) . ?\x1f06) - ((?? ?:) . ?\x1f07) - ((?1 ?N) . ?\x2002) - ((?1 ?M) . ?\x2003) - ((?3 ?M) . ?\x2004) - ((?4 ?M) . ?\x2005) - ((?6 ?M) . ?\x2006) - ((?1 ?T) . ?\x2009) - ((?1 ?H) . ?\x200a) - ((?- ?1) . ?\x2010) - ((?- ?N) . ?\x2013) - ((?- ?M) . ?\x2014) - ((?- ?3) . ?\x2015) - ((?! ?2) . ?\x2016) - ((?= ?2) . ?\x2017) - ((?' ?6) . ?\x2018) - ((?' ?9) . ?\x2019) - ((?. ?9) . ?\x201a) - ((?9 ?') . ?\x201b) - ((?\" ?6) . ?\x201c) - ((?\" ?9) . ?\x201d) - ((?: ?9) . ?\x201e) - ((?9 ?\") . ?\x201f) - ((?/ ?-) . ?\x2020) - ((?/ ?=) . ?\x2021) - ((?. ?.) . ?\x2025) - ((?% ?0) . ?\x2030) - ((?1 ?') . ?\x2032) - ((?2 ?') . ?\x2033) - ((?3 ?') . ?\x2034) - ((?1 ?\") . ?\x2035) - ((?2 ?\") . ?\x2036) - ((?3 ?\") . ?\x2037) - ((?C ?a) . ?\x2038) - ((?< ?1) . ?\x2039) - ((?> ?1) . ?\x203a) - ((?: ?X) . ?\x203b) - ((?' ?-) . ?\x203e) - ((?/ ?f) . ?\x2044) - ((?0 ?S) . ?\x2070) - ((?4 ?S) . ?\x2074) - ((?5 ?S) . ?\x2075) - ((?6 ?S) . ?\x2076) - ((?7 ?S) . ?\x2077) - ((?8 ?S) . ?\x2078) - ((?9 ?S) . ?\x2079) - ((?+ ?S) . ?\x207a) - ((?- ?S) . ?\x207b) - ((?= ?S) . ?\x207c) - ((?\( ?S) . ?\x207d) - ((?\) ?S) . ?\x207e) - ((?n ?S) . ?\x207f) - ((?0 ?s) . ?\x2080) - ((?1 ?s) . ?\x2081) - ((?2 ?s) . ?\x2082) - ((?3 ?s) . ?\x2083) - ((?4 ?s) . ?\x2084) - ((?5 ?s) . ?\x2085) - ((?6 ?s) . ?\x2086) - ((?7 ?s) . ?\x2087) - ((?8 ?s) . ?\x2088) - ((?9 ?s) . ?\x2089) - ((?+ ?s) . ?\x208a) - ((?- ?s) . ?\x208b) - ((?= ?s) . ?\x208c) - ((?\( ?s) . ?\x208d) - ((?\) ?s) . ?\x208e) - ((?L ?i) . ?\x20a4) - ((?P ?t) . ?\x20a7) - ((?W ?=) . ?\x20a9) - ((?= ?e) . ?\x20ac) - ((?E ?u) . ?\x20ac) - ((?o ?C) . ?\x2103) - ((?c ?o) . ?\x2105) - ((?o ?F) . ?\x2109) - ((?N ?0) . ?\x2116) - ((?P ?O) . ?\x2117) - ((?R ?x) . ?\x211e) - ((?S ?M) . ?\x2120) - ((?T ?M) . ?\x2122) - ((?O ?m) . ?\x2126) - ((?A ?O) . ?\x212b) - ((?1 ?3) . ?\x2153) - ((?2 ?3) . ?\x2154) - ((?1 ?5) . ?\x2155) - ((?2 ?5) . ?\x2156) - ((?3 ?5) . ?\x2157) - ((?4 ?5) . ?\x2158) - ((?1 ?6) . ?\x2159) - ((?5 ?6) . ?\x215a) - ((?1 ?8) . ?\x215b) - ((?3 ?8) . ?\x215c) - ((?5 ?8) . ?\x215d) - ((?7 ?8) . ?\x215e) - ((?1 ?R) . ?\x2160) - ((?2 ?R) . ?\x2161) - ((?3 ?R) . ?\x2162) - ((?4 ?R) . ?\x2163) - ((?5 ?R) . ?\x2164) - ((?6 ?R) . ?\x2165) - ((?7 ?R) . ?\x2166) - ((?8 ?R) . ?\x2167) - ((?9 ?R) . ?\x2168) - ((?a ?R) . ?\x2169) - ((?b ?R) . ?\x216a) - ((?c ?R) . ?\x216b) - ((?1 ?r) . ?\x2170) - ((?2 ?r) . ?\x2171) - ((?3 ?r) . ?\x2172) - ((?4 ?r) . ?\x2173) - ((?5 ?r) . ?\x2174) - ((?6 ?r) . ?\x2175) - ((?7 ?r) . ?\x2176) - ((?8 ?r) . ?\x2177) - ((?9 ?r) . ?\x2178) - ((?a ?r) . ?\x2179) - ((?b ?r) . ?\x217a) - ((?c ?r) . ?\x217b) - ((?< ?-) . ?\x2190) - ((?- ?!) . ?\x2191) - ((?- ?>) . ?\x2192) - ((?- ?v) . ?\x2193) - ((?< ?>) . ?\x2194) - ((?U ?D) . ?\x2195) - ((?< ?=) . ?\x21d0) - ((?= ?>) . ?\x21d2) - ((?= ?=) . ?\x21d4) - ((?F ?A) . ?\x2200) - ((?d ?P) . ?\x2202) - ((?T ?E) . ?\x2203) - ((?/ ?0) . ?\x2205) - ((?D ?E) . ?\x2206) - ((?N ?B) . ?\x2207) - ((?\( ?-) . ?\x2208) - ((?- ?\)) . ?\x220b) - ((?* ?P) . ?\x220f) - ((?+ ?Z) . ?\x2211) - ((?- ?2) . ?\x2212) - ((?- ?+) . ?\x2213) - ((?* ?-) . ?\x2217) - ((?O ?b) . ?\x2218) - ((?S ?b) . ?\x2219) - ((?R ?T) . ?\x221a) - ((?0 ?\() . ?\x221d) - ((?0 ?0) . ?\x221e) - ((?- ?L) . ?\x221f) - ((?- ?V) . ?\x2220) - ((?P ?P) . ?\x2225) - ((?A ?N) . ?\x2227) - ((?O ?R) . ?\x2228) - ((?\( ?U) . ?\x2229) - ((?\) ?U) . ?\x222a) - ((?I ?n) . ?\x222b) - ((?D ?I) . ?\x222c) - ((?I ?o) . ?\x222e) - ((?. ?:) . ?\x2234) - ((?: ?.) . ?\x2235) - ((?: ?R) . ?\x2236) - ((?: ?:) . ?\x2237) - ((?? ?1) . ?\x223c) - ((?C ?G) . ?\x223e) - ((?? ?-) . ?\x2243) - ((?? ?=) . ?\x2245) - ((?? ?2) . ?\x2248) - ((?= ??) . ?\x224c) - ((?H ?I) . ?\x2253) - ((?! ?=) . ?\x2260) - ((?= ?3) . ?\x2261) - ((?= ?<) . ?\x2264) - ((?> ?=) . ?\x2265) - ((?< ?*) . ?\x226a) - ((?* ?>) . ?\x226b) - ((?! ?<) . ?\x226e) - ((?! ?>) . ?\x226f) - ((?\( ?C) . ?\x2282) - ((?\) ?C) . ?\x2283) - ((?\( ?_) . ?\x2286) - ((?\) ?_) . ?\x2287) - ((?0 ?.) . ?\x2299) - ((?0 ?2) . ?\x229a) - ((?- ?T) . ?\x22a5) - ((?. ?P) . ?\x22c5) - ((?: ?3) . ?\x22ee) - ((?. ?3) . ?\x22ef) - ((?E ?h) . ?\x2302) - ((?< ?7) . ?\x2308) - ((?> ?7) . ?\x2309) - ((?7 ?<) . ?\x230a) - ((?7 ?>) . ?\x230b) - ((?N ?I) . ?\x2310) - ((?\( ?A) . ?\x2312) - ((?T ?R) . ?\x2315) - ((?I ?u) . ?\x2320) - ((?I ?l) . ?\x2321) - ((?< ?/) . ?\x2329) - ((?/ ?>) . ?\x232a) - ((?V ?s) . ?\x2423) - ((?1 ?h) . ?\x2440) - ((?3 ?h) . ?\x2441) - ((?2 ?h) . ?\x2442) - ((?4 ?h) . ?\x2443) - ((?1 ?j) . ?\x2446) - ((?2 ?j) . ?\x2447) - ((?3 ?j) . ?\x2448) - ((?4 ?j) . ?\x2449) - ((?1 ?.) . ?\x2488) - ((?2 ?.) . ?\x2489) - ((?3 ?.) . ?\x248a) - ((?4 ?.) . ?\x248b) - ((?5 ?.) . ?\x248c) - ((?6 ?.) . ?\x248d) - ((?7 ?.) . ?\x248e) - ((?8 ?.) . ?\x248f) - ((?9 ?.) . ?\x2490) - ((?h ?h) . ?\x2500) - ((?H ?H) . ?\x2501) - ((?v ?v) . ?\x2502) - ((?V ?V) . ?\x2503) - ((?3 ?-) . ?\x2504) - ((?3 ?_) . ?\x2505) - ((?3 ?!) . ?\x2506) - ((?3 ?/) . ?\x2507) - ((?4 ?-) . ?\x2508) - ((?4 ?_) . ?\x2509) - ((?4 ?!) . ?\x250a) - ((?4 ?/) . ?\x250b) - ((?d ?r) . ?\x250c) - ((?d ?R) . ?\x250d) - ((?D ?r) . ?\x250e) - ((?D ?R) . ?\x250f) - ((?d ?l) . ?\x2510) - ((?d ?L) . ?\x2511) - ((?D ?l) . ?\x2512) - ((?L ?D) . ?\x2513) - ((?u ?r) . ?\x2514) - ((?u ?R) . ?\x2515) - ((?U ?r) . ?\x2516) - ((?U ?R) . ?\x2517) - ((?u ?l) . ?\x2518) - ((?u ?L) . ?\x2519) - ((?U ?l) . ?\x251a) - ((?U ?L) . ?\x251b) - ((?v ?r) . ?\x251c) - ((?v ?R) . ?\x251d) - ((?V ?r) . ?\x2520) - ((?V ?R) . ?\x2523) - ((?v ?l) . ?\x2524) - ((?v ?L) . ?\x2525) - ((?V ?l) . ?\x2528) - ((?V ?L) . ?\x252b) - ((?d ?h) . ?\x252c) - ((?d ?H) . ?\x252f) - ((?D ?h) . ?\x2530) - ((?D ?H) . ?\x2533) - ((?u ?h) . ?\x2534) - ((?u ?H) . ?\x2537) - ((?U ?h) . ?\x2538) - ((?U ?H) . ?\x253b) - ((?v ?h) . ?\x253c) - ((?v ?H) . ?\x253f) - ((?V ?h) . ?\x2542) - ((?V ?H) . ?\x254b) - ((?F ?D) . ?\x2571) - ((?B ?D) . ?\x2572) - ((?T ?B) . ?\x2580) - ((?L ?B) . ?\x2584) - ((?F ?B) . ?\x2588) - ((?l ?B) . ?\x258c) - ((?R ?B) . ?\x2590) - ((?. ?S) . ?\x2591) - ((?: ?S) . ?\x2592) - ((?? ?S) . ?\x2593) - ((?f ?S) . ?\x25a0) - ((?O ?S) . ?\x25a1) - ((?R ?O) . ?\x25a2) - ((?R ?r) . ?\x25a3) - ((?R ?F) . ?\x25a4) - ((?R ?Y) . ?\x25a5) - ((?R ?H) . ?\x25a6) - ((?R ?Z) . ?\x25a7) - ((?R ?K) . ?\x25a8) - ((?R ?X) . ?\x25a9) - ((?s ?B) . ?\x25aa) - ((?S ?R) . ?\x25ac) - ((?O ?r) . ?\x25ad) - ((?U ?T) . ?\x25b2) - ((?u ?T) . ?\x25b3) - ((?P ?R) . ?\x25b6) - ((?T ?r) . ?\x25b7) - ((?D ?t) . ?\x25bc) - ((?d ?T) . ?\x25bd) - ((?P ?L) . ?\x25c0) - ((?T ?l) . ?\x25c1) - ((?D ?b) . ?\x25c6) - ((?D ?w) . ?\x25c7) - ((?L ?Z) . ?\x25ca) - ((?0 ?m) . ?\x25cb) - ((?0 ?o) . ?\x25ce) - ((?0 ?M) . ?\x25cf) - ((?0 ?L) . ?\x25d0) - ((?0 ?R) . ?\x25d1) - ((?S ?n) . ?\x25d8) - ((?I ?c) . ?\x25d9) - ((?F ?d) . ?\x25e2) - ((?B ?d) . ?\x25e3) - ((?* ?2) . ?\x2605) - ((?* ?1) . ?\x2606) - ((?< ?H) . ?\x261c) - ((?> ?H) . ?\x261e) - ((?0 ?u) . ?\x263a) - ((?0 ?U) . ?\x263b) - ((?S ?U) . ?\x263c) - ((?F ?m) . ?\x2640) - ((?M ?l) . ?\x2642) - ((?c ?S) . ?\x2660) - ((?c ?H) . ?\x2661) - ((?c ?D) . ?\x2662) - ((?c ?C) . ?\x2663) - ((?M ?d) . ?\x2669) - ((?M ?8) . ?\x266a) - ((?M ?2) . ?\x266b) - ((?M ?b) . ?\x266d) - ((?M ?x) . ?\x266e) - ((?M ?X) . ?\x266f) - ((?O ?K) . ?\x2713) - ((?X ?X) . ?\x2717) - ((?- ?X) . ?\x2720) - ((?I ?S) . ?\x3000) - ((?, ?_) . ?\x3001) - ((?. ?_) . ?\x3002) - ((?+ ?\") . ?\x3003) - ((?+ ?_) . ?\x3004) - ((?* ?_) . ?\x3005) - ((?\; ?_) . ?\x3006) - ((?0 ?_) . ?\x3007) - ((?< ?+) . ?\x300a) - ((?> ?+) . ?\x300b) - ((?< ?') . ?\x300c) - ((?> ?') . ?\x300d) - ((?< ?\") . ?\x300e) - ((?> ?\") . ?\x300f) - ((?\( ?\") . ?\x3010) - ((?\) ?\") . ?\x3011) - ((?= ?T) . ?\x3012) - ((?= ?_) . ?\x3013) - ((?\( ?') . ?\x3014) - ((?\) ?') . ?\x3015) - ((?\( ?I) . ?\x3016) - ((?\) ?I) . ?\x3017) - ((?- ??) . ?\x301c) - ((?A ?5) . ?\x3041) - ((?a ?5) . ?\x3042) - ((?I ?5) . ?\x3043) - ((?i ?5) . ?\x3044) - ((?U ?5) . ?\x3045) - ((?u ?5) . ?\x3046) - ((?E ?5) . ?\x3047) - ((?e ?5) . ?\x3048) - ((?O ?5) . ?\x3049) - ((?o ?5) . ?\x304a) - ((?k ?a) . ?\x304b) - ((?g ?a) . ?\x304c) - ((?k ?i) . ?\x304d) - ((?g ?i) . ?\x304e) - ((?k ?u) . ?\x304f) - ((?g ?u) . ?\x3050) - ((?k ?e) . ?\x3051) - ((?g ?e) . ?\x3052) - ((?k ?o) . ?\x3053) - ((?g ?o) . ?\x3054) - ((?s ?a) . ?\x3055) - ((?z ?a) . ?\x3056) - ((?s ?i) . ?\x3057) - ((?z ?i) . ?\x3058) - ((?s ?u) . ?\x3059) - ((?z ?u) . ?\x305a) - ((?s ?e) . ?\x305b) - ((?z ?e) . ?\x305c) - ((?s ?o) . ?\x305d) - ((?z ?o) . ?\x305e) - ((?t ?a) . ?\x305f) - ((?d ?a) . ?\x3060) - ((?t ?i) . ?\x3061) - ((?d ?i) . ?\x3062) - ((?t ?U) . ?\x3063) - ((?t ?u) . ?\x3064) - ((?d ?u) . ?\x3065) - ((?t ?e) . ?\x3066) - ((?d ?e) . ?\x3067) - ((?t ?o) . ?\x3068) - ((?d ?o) . ?\x3069) - ((?n ?a) . ?\x306a) - ((?n ?i) . ?\x306b) - ((?n ?u) . ?\x306c) - ((?n ?e) . ?\x306d) - ((?n ?o) . ?\x306e) - ((?h ?a) . ?\x306f) - ((?b ?a) . ?\x3070) - ((?p ?a) . ?\x3071) - ((?h ?i) . ?\x3072) - ((?b ?i) . ?\x3073) - ((?p ?i) . ?\x3074) - ((?h ?u) . ?\x3075) - ((?b ?u) . ?\x3076) - ((?p ?u) . ?\x3077) - ((?h ?e) . ?\x3078) - ((?b ?e) . ?\x3079) - ((?p ?e) . ?\x307a) - ((?h ?o) . ?\x307b) - ((?b ?o) . ?\x307c) - ((?p ?o) . ?\x307d) - ((?m ?a) . ?\x307e) - ((?m ?i) . ?\x307f) - ((?m ?u) . ?\x3080) - ((?m ?e) . ?\x3081) - ((?m ?o) . ?\x3082) - ((?y ?A) . ?\x3083) - ((?y ?a) . ?\x3084) - ((?y ?U) . ?\x3085) - ((?y ?u) . ?\x3086) - ((?y ?O) . ?\x3087) - ((?y ?o) . ?\x3088) - ((?r ?a) . ?\x3089) - ((?r ?i) . ?\x308a) - ((?r ?u) . ?\x308b) - ((?r ?e) . ?\x308c) - ((?r ?o) . ?\x308d) - ((?w ?A) . ?\x308e) - ((?w ?a) . ?\x308f) - ((?w ?i) . ?\x3090) - ((?w ?e) . ?\x3091) - ((?w ?o) . ?\x3092) - ((?n ?5) . ?\x3093) - ((?v ?u) . ?\x3094) - ((?\" ?5) . ?\x309b) - ((?0 ?5) . ?\x309c) - ((?* ?5) . ?\x309d) - ((?+ ?5) . ?\x309e) - ((?a ?6) . ?\x30a1) - ((?A ?6) . ?\x30a2) - ((?i ?6) . ?\x30a3) - ((?I ?6) . ?\x30a4) - ((?u ?6) . ?\x30a5) - ((?U ?6) . ?\x30a6) - ((?e ?6) . ?\x30a7) - ((?E ?6) . ?\x30a8) - ((?o ?6) . ?\x30a9) - ((?O ?6) . ?\x30aa) - ((?K ?a) . ?\x30ab) - ((?G ?a) . ?\x30ac) - ((?K ?i) . ?\x30ad) - ((?G ?i) . ?\x30ae) - ((?K ?u) . ?\x30af) - ((?G ?u) . ?\x30b0) - ((?K ?e) . ?\x30b1) - ((?G ?e) . ?\x30b2) - ((?K ?o) . ?\x30b3) - ((?G ?o) . ?\x30b4) - ((?S ?a) . ?\x30b5) - ((?Z ?a) . ?\x30b6) - ((?S ?i) . ?\x30b7) - ((?Z ?i) . ?\x30b8) - ((?S ?u) . ?\x30b9) - ((?Z ?u) . ?\x30ba) - ((?S ?e) . ?\x30bb) - ((?Z ?e) . ?\x30bc) - ((?S ?o) . ?\x30bd) - ((?Z ?o) . ?\x30be) - ((?T ?a) . ?\x30bf) - ((?D ?a) . ?\x30c0) - ((?T ?i) . ?\x30c1) - ((?D ?i) . ?\x30c2) - ((?T ?U) . ?\x30c3) - ((?T ?u) . ?\x30c4) - ((?D ?u) . ?\x30c5) - ((?T ?e) . ?\x30c6) - ((?D ?e) . ?\x30c7) - ((?T ?o) . ?\x30c8) - ((?D ?o) . ?\x30c9) - ((?N ?a) . ?\x30ca) - ((?N ?i) . ?\x30cb) - ((?N ?u) . ?\x30cc) - ((?N ?e) . ?\x30cd) - ((?N ?o) . ?\x30ce) - ((?H ?a) . ?\x30cf) - ((?B ?a) . ?\x30d0) - ((?P ?a) . ?\x30d1) - ((?H ?i) . ?\x30d2) - ((?B ?i) . ?\x30d3) - ((?P ?i) . ?\x30d4) - ((?H ?u) . ?\x30d5) - ((?B ?u) . ?\x30d6) - ((?P ?u) . ?\x30d7) - ((?H ?e) . ?\x30d8) - ((?B ?e) . ?\x30d9) - ((?P ?e) . ?\x30da) - ((?H ?o) . ?\x30db) - ((?B ?o) . ?\x30dc) - ((?P ?o) . ?\x30dd) - ((?u ?R) . ?\x2515) - ((?U ?r) . ?\x2516) - ((?U ?R) . ?\x2517) - ((?u ?l) . ?\x2518) - ((?u ?L) . ?\x2519) - ((?U ?l) . ?\x251a) - ((?U ?L) . ?\x251b) - ((?v ?r) . ?\x251c) - ((?v ?R) . ?\x251d) - ((?V ?r) . ?\x2520) - ((?V ?R) . ?\x2523) - ((?v ?l) . ?\x2524) - ((?v ?L) . ?\x2525) - ((?V ?l) . ?\x2528) - ((?V ?L) . ?\x252b) - ((?d ?h) . ?\x252c) - ((?d ?H) . ?\x252f) - ((?D ?h) . ?\x2530) - ((?D ?H) . ?\x2533) - ((?u ?h) . ?\x2534) - ((?u ?H) . ?\x2537) - ((?U ?h) . ?\x2538) - ((?U ?H) . ?\x253b) - ((?v ?h) . ?\x253c) - ((?v ?H) . ?\x253f) - ((?V ?h) . ?\x2542) - ((?V ?H) . ?\x254b) - ((?F ?D) . ?\x2571) - ((?B ?D) . ?\x2572) - ((?T ?B) . ?\x2580) - ((?L ?B) . ?\x2584) - ((?F ?B) . ?\x2588) - ((?l ?B) . ?\x258c) - ((?R ?B) . ?\x2590) - ((?. ?S) . ?\x2591) - ((?: ?S) . ?\x2592) - ((?? ?S) . ?\x2593) - ((?f ?S) . ?\x25a0) - ((?O ?S) . ?\x25a1) - ((?R ?O) . ?\x25a2) - ((?R ?r) . ?\x25a3) - ((?R ?F) . ?\x25a4) - ((?R ?Y) . ?\x25a5) - ((?R ?H) . ?\x25a6) - ((?R ?Z) . ?\x25a7) - ((?R ?K) . ?\x25a8) - ((?R ?X) . ?\x25a9) - ((?s ?B) . ?\x25aa) - ((?S ?R) . ?\x25ac) - ((?O ?r) . ?\x25ad) - ((?U ?T) . ?\x25b2) - ((?u ?T) . ?\x25b3) - ((?P ?R) . ?\x25b6) - ((?T ?r) . ?\x25b7) - ((?D ?t) . ?\x25bc) - ((?d ?T) . ?\x25bd) - ((?P ?L) . ?\x25c0) - ((?T ?l) . ?\x25c1) - ((?D ?b) . ?\x25c6) - ((?D ?w) . ?\x25c7) - ((?L ?Z) . ?\x25ca) - ((?0 ?m) . ?\x25cb) - ((?0 ?o) . ?\x25ce) - ((?0 ?M) . ?\x25cf) - ((?0 ?L) . ?\x25d0) - ((?0 ?R) . ?\x25d1) - ((?S ?n) . ?\x25d8) - ((?I ?c) . ?\x25d9) - ((?F ?d) . ?\x25e2) - ((?B ?d) . ?\x25e3) - ((?* ?2) . ?\x2605) - ((?* ?1) . ?\x2606) - ((?< ?H) . ?\x261c) - ((?> ?H) . ?\x261e) - ((?0 ?u) . ?\x263a) - ((?0 ?U) . ?\x263b) - ((?S ?U) . ?\x263c) - ((?F ?m) . ?\x2640) - ((?M ?l) . ?\x2642) - ((?c ?S) . ?\x2660) - ((?c ?H) . ?\x2661) - ((?c ?D) . ?\x2662) - ((?c ?C) . ?\x2663) - ((?M ?d) . ?\x2669) - ((?M ?8) . ?\x266a) - ((?M ?2) . ?\x266b) - ((?M ?b) . ?\x266d) - ((?M ?x) . ?\x266e) - ((?M ?X) . ?\x266f) - ((?O ?K) . ?\x2713) - ((?X ?X) . ?\x2717) - ((?- ?X) . ?\x2720) - ((?I ?S) . ?\x3000) - ((?, ?_) . ?\x3001) - ((?. ?_) . ?\x3002) - ((?+ ?\") . ?\x3003) - ((?+ ?_) . ?\x3004) - ((?* ?_) . ?\x3005) - ((?\; ?_) . ?\x3006) - ((?0 ?_) . ?\x3007) - ((?< ?+) . ?\x300a) - ((?> ?+) . ?\x300b) - ((?< ?') . ?\x300c) - ((?> ?') . ?\x300d) - ((?< ?\") . ?\x300e) - ((?> ?\") . ?\x300f) - ((?\( ?\") . ?\x3010) - ((?\) ?\") . ?\x3011) - ((?= ?T) . ?\x3012) - ((?= ?_) . ?\x3013) - ((?\( ?') . ?\x3014) - ((?\) ?') . ?\x3015) - ((?\( ?I) . ?\x3016) - ((?\) ?I) . ?\x3017) - ((?- ??) . ?\x301c) - ((?A ?5) . ?\x3041) - ((?a ?5) . ?\x3042) - ((?I ?5) . ?\x3043) - ((?i ?5) . ?\x3044) - ((?U ?5) . ?\x3045) - ((?u ?5) . ?\x3046) - ((?E ?5) . ?\x3047) - ((?e ?5) . ?\x3048) - ((?O ?5) . ?\x3049) - ((?o ?5) . ?\x304a) - ((?k ?a) . ?\x304b) - ((?g ?a) . ?\x304c) - ((?k ?i) . ?\x304d) - ((?g ?i) . ?\x304e) - ((?k ?u) . ?\x304f) - ((?g ?u) . ?\x3050) - ((?k ?e) . ?\x3051) - ((?g ?e) . ?\x3052) - ((?k ?o) . ?\x3053) - ((?g ?o) . ?\x3054) - ((?s ?a) . ?\x3055) - ((?z ?a) . ?\x3056) - ((?s ?i) . ?\x3057) - ((?z ?i) . ?\x3058) - ((?s ?u) . ?\x3059) - ((?z ?u) . ?\x305a) - ((?s ?e) . ?\x305b) - ((?z ?e) . ?\x305c) - ((?s ?o) . ?\x305d) - ((?z ?o) . ?\x305e) - ((?t ?a) . ?\x305f) - ((?d ?a) . ?\x3060) - ((?t ?i) . ?\x3061) - ((?d ?i) . ?\x3062) - ((?t ?U) . ?\x3063) - ((?t ?u) . ?\x3064) - ((?d ?u) . ?\x3065) - ((?t ?e) . ?\x3066) - ((?d ?e) . ?\x3067) - ((?t ?o) . ?\x3068) - ((?d ?o) . ?\x3069) - ((?n ?a) . ?\x306a) - ((?n ?i) . ?\x306b) - ((?n ?u) . ?\x306c) - ((?n ?e) . ?\x306d) - ((?n ?o) . ?\x306e) - ((?h ?a) . ?\x306f) - ((?b ?a) . ?\x3070) - ((?p ?a) . ?\x3071) - ((?h ?i) . ?\x3072) - ((?b ?i) . ?\x3073) - ((?p ?i) . ?\x3074) - ((?h ?u) . ?\x3075) - ((?b ?u) . ?\x3076) - ((?p ?u) . ?\x3077) - ((?h ?e) . ?\x3078) - ((?b ?e) . ?\x3079) - ((?p ?e) . ?\x307a) - ((?h ?o) . ?\x307b) - ((?b ?o) . ?\x307c) - ((?p ?o) . ?\x307d) - ((?m ?a) . ?\x307e) - ((?m ?i) . ?\x307f) - ((?m ?u) . ?\x3080) - ((?m ?e) . ?\x3081) - ((?m ?o) . ?\x3082) - ((?y ?A) . ?\x3083) - ((?y ?a) . ?\x3084) - ((?y ?U) . ?\x3085) - ((?y ?u) . ?\x3086) - ((?y ?O) . ?\x3087) - ((?y ?o) . ?\x3088) - ((?r ?a) . ?\x3089) - ((?r ?i) . ?\x308a) - ((?r ?u) . ?\x308b) - ((?r ?e) . ?\x308c) - ((?r ?o) . ?\x308d) - ((?w ?A) . ?\x308e) - ((?w ?a) . ?\x308f) - ((?w ?i) . ?\x3090) - ((?w ?e) . ?\x3091) - ((?w ?o) . ?\x3092) - ((?n ?5) . ?\x3093) - ((?v ?u) . ?\x3094) - ((?\" ?5) . ?\x309b) - ((?0 ?5) . ?\x309c) - ((?* ?5) . ?\x309d) - ((?+ ?5) . ?\x309e) - ((?a ?6) . ?\x30a1) - ((?A ?6) . ?\x30a2) - ((?i ?6) . ?\x30a3) - ((?I ?6) . ?\x30a4) - ((?u ?6) . ?\x30a5) - ((?U ?6) . ?\x30a6) - ((?e ?6) . ?\x30a7) - ((?E ?6) . ?\x30a8) - ((?o ?6) . ?\x30a9) - ((?O ?6) . ?\x30aa) - ((?K ?a) . ?\x30ab) - ((?G ?a) . ?\x30ac) - ((?K ?i) . ?\x30ad) - ((?G ?i) . ?\x30ae) - ((?K ?u) . ?\x30af) - ((?G ?u) . ?\x30b0) - ((?K ?e) . ?\x30b1) - ((?G ?e) . ?\x30b2) - ((?K ?o) . ?\x30b3) - ((?G ?o) . ?\x30b4) - ((?S ?a) . ?\x30b5) - ((?Z ?a) . ?\x30b6) - ((?S ?i) . ?\x30b7) - ((?Z ?i) . ?\x30b8) - ((?S ?u) . ?\x30b9) - ((?Z ?u) . ?\x30ba) - ((?S ?e) . ?\x30bb) - ((?Z ?e) . ?\x30bc) - ((?S ?o) . ?\x30bd) - ((?Z ?o) . ?\x30be) - ((?T ?a) . ?\x30bf) - ((?D ?a) . ?\x30c0) - ((?T ?i) . ?\x30c1) - ((?D ?i) . ?\x30c2) - ((?T ?U) . ?\x30c3) - ((?T ?u) . ?\x30c4) - ((?D ?u) . ?\x30c5) - ((?T ?e) . ?\x30c6) - ((?D ?e) . ?\x30c7) - ((?T ?o) . ?\x30c8) - ((?D ?o) . ?\x30c9) - ((?N ?a) . ?\x30ca) - ((?N ?i) . ?\x30cb) - ((?N ?u) . ?\x30cc) - ((?N ?e) . ?\x30cd) - ((?N ?o) . ?\x30ce) - ((?H ?a) . ?\x30cf) - ((?B ?a) . ?\x30d0) - ((?P ?a) . ?\x30d1) - ((?H ?i) . ?\x30d2) - ((?B ?i) . ?\x30d3) - ((?P ?i) . ?\x30d4) - ((?H ?u) . ?\x30d5) - ((?B ?u) . ?\x30d6) - ((?P ?u) . ?\x30d7) - ((?H ?e) . ?\x30d8) - ((?B ?e) . ?\x30d9) - ((?P ?e) . ?\x30da) - ((?H ?o) . ?\x30db) - ((?B ?o) . ?\x30dc) - ((?P ?o) . ?\x30dd) - ((?M ?a) . ?\x30de) - ((?M ?i) . ?\x30df) - ((?M ?u) . ?\x30e0) - ((?M ?e) . ?\x30e1) - ((?M ?o) . ?\x30e2) - ((?Y ?A) . ?\x30e3) - ((?Y ?a) . ?\x30e4) - ((?Y ?U) . ?\x30e5) - ((?Y ?u) . ?\x30e6) - ((?Y ?O) . ?\x30e7) - ((?Y ?o) . ?\x30e8) - ((?R ?a) . ?\x30e9) - ((?R ?i) . ?\x30ea) - ((?R ?u) . ?\x30eb) - ((?R ?e) . ?\x30ec) - ((?R ?o) . ?\x30ed) - ((?W ?A) . ?\x30ee) - ((?W ?a) . ?\x30ef) - ((?W ?i) . ?\x30f0) - ((?W ?e) . ?\x30f1) - ((?W ?o) . ?\x30f2) - ((?N ?6) . ?\x30f3) - ((?V ?u) . ?\x30f4) - ((?K ?A) . ?\x30f5) - ((?K ?E) . ?\x30f6) - ((?V ?a) . ?\x30f7) - ((?V ?i) . ?\x30f8) - ((?V ?e) . ?\x30f9) - ((?V ?o) . ?\x30fa) - ((?. ?6) . ?\x30fb) - ((?- ?6) . ?\x30fc) - ((?* ?6) . ?\x30fd) - ((?+ ?6) . ?\x30fe) - ((?b ?4) . ?\x3105) - ((?p ?4) . ?\x3106) - ((?m ?4) . ?\x3107) - ((?f ?4) . ?\x3108) - ((?d ?4) . ?\x3109) - ((?t ?4) . ?\x310a) - ((?n ?4) . ?\x310b) - ((?l ?4) . ?\x310c) - ((?g ?4) . ?\x310d) - ((?k ?4) . ?\x310e) - ((?h ?4) . ?\x310f) - ((?j ?4) . ?\x3110) - ((?q ?4) . ?\x3111) - ((?x ?4) . ?\x3112) - ((?z ?h) . ?\x3113) - ((?c ?h) . ?\x3114) - ((?s ?h) . ?\x3115) - ((?r ?4) . ?\x3116) - ((?z ?4) . ?\x3117) - ((?c ?4) . ?\x3118) - ((?s ?4) . ?\x3119) - ((?a ?4) . ?\x311a) - ((?o ?4) . ?\x311b) - ((?e ?4) . ?\x311c) - ((?a ?i) . ?\x311e) - ((?e ?i) . ?\x311f) - ((?a ?u) . ?\x3120) - ((?o ?u) . ?\x3121) - ((?a ?n) . ?\x3122) - ((?e ?n) . ?\x3123) - ((?a ?N) . ?\x3124) - ((?e ?N) . ?\x3125) - ((?e ?r) . ?\x3126) - ((?i ?4) . ?\x3127) - ((?u ?4) . ?\x3128) - ((?i ?u) . ?\x3129) - ((?v ?4) . ?\x312a) - ((?n ?G) . ?\x312b) - ((?g ?n) . ?\x312c) - ((?1 ?c) . ?\x3220) - ((?2 ?c) . ?\x3221) - ((?3 ?c) . ?\x3222) - ((?4 ?c) . ?\x3223) - ((?5 ?c) . ?\x3224) - ((?6 ?c) . ?\x3225) - ((?7 ?c) . ?\x3226) - ((?8 ?c) . ?\x3227) - ((?9 ?c) . ?\x3228) - ((?\s ?\s) . ?\xe000) - ((?/ ?c) . ?\xe001) - ((?U ?A) . ?\xe002) - ((?U ?B) . ?\xe003) - ((?\" ?3) . ?\xe004) - ((?\" ?1) . ?\xe005) - ((?\" ?!) . ?\xe006) - ((?\" ?') . ?\xe007) - ((?\" ?>) . ?\xe008) - ((?\" ??) . ?\xe009) - ((?\" ?-) . ?\xe00a) - ((?\" ?\() . ?\xe00b) - ((?\" ?.) . ?\xe00c) - ((?\" ?:) . ?\xe00d) - ((?\" ?0) . ?\xe00e) - ((?\" ?\") . ?\xe00f) - ((?\" ?<) . ?\xe010) - ((?\" ?,) . ?\xe011) - ((?\" ?\;) . ?\xe012) - ((?\" ?_) . ?\xe013) - ((?\" ?=) . ?\xe014) - ((?\" ?/) . ?\xe015) - ((?\" ?i) . ?\xe016) - ((?\" ?d) . ?\xe017) - ((?\" ?p) . ?\xe018) - ((?\; ?\;) . ?\xe019) - ((?, ?,) . ?\xe01a) - ((?b ?3) . ?\xe01b) - ((?C ?i) . ?\xe01c) - ((?f ?\() . ?\xe01d) - ((?e ?d) . ?\xe01e) - ((?a ?m) . ?\xe01f) - ((?p ?m) . ?\xe020) - ((?F ?l) . ?\xe023) - ((?G ?F) . ?\xe024) - ((?> ?V) . ?\xe025) - ((?! ?*) . ?\xe026) - ((?? ?*) . ?\xe027) - ((?J ?<) . ?\xe028) - ((?f ?f) . ?\xfb00) - ((?f ?i) . ?\xfb01) - ((?f ?l) . ?\xfb02) - ((?f ?t) . ?\xfb05) - ((?s ?t) . ?\xfb06) - ((?~ ?!) . ?\x00a1) - ((?c ?|) . ?\x00a2) - ((?$ ?$) . ?\x00a3) - ((?o ?x) . ?\x00a4) - ((?Y ?-) . ?\x00a5) - ((?| ?|) . ?\x00a6) - ((?c ?O) . ?\x00a9) - ((?- ?,) . ?\x00ac) - ((?- ?=) . ?\x00af) - ((?~ ?o) . ?\x00b0) - ((?2 ?2) . ?\x00b2) - ((?3 ?3) . ?\x00b3) - ((?p ?p) . ?\x00b6) - ((?~ ?.) . ?\x00b7) - ((?1 ?1) . ?\x00b9) - ((?~ ??) . ?\x00bf) - ((?A ?`) . ?\x00c0) - ((?A ?^) . ?\x00c2) - ((?A ?~) . ?\x00c3) - ((?A ?\") . ?\x00c4) - ((?A ?@) . ?\x00c5) - ((?E ?`) . ?\x00c8) - ((?E ?^) . ?\x00ca) - ((?E ?\") . ?\x00cb) - ((?I ?`) . ?\x00cc) - ((?I ?^) . ?\x00ce) - ((?I ?\") . ?\x00cf) - ((?N ?~) . ?\x00d1) - ((?O ?`) . ?\x00d2) - ((?O ?^) . ?\x00d4) - ((?O ?~) . ?\x00d5) - ((?/ ?\\) . ?\x00d7) - ((?U ?`) . ?\x00d9) - ((?U ?^) . ?\x00db) - ((?I ?p) . ?\x00de) - ((?a ?`) . ?\x00e0) - ((?a ?^) . ?\x00e2) - ((?a ?~) . ?\x00e3) - ((?a ?\") . ?\x00e4) - ((?a ?@) . ?\x00e5) - ((?e ?`) . ?\x00e8) - ((?e ?^) . ?\x00ea) - ((?e ?\") . ?\x00eb) - ((?i ?`) . ?\x00ec) - ((?i ?^) . ?\x00ee) - ((?n ?~) . ?\x00f1) - ((?o ?`) . ?\x00f2) - ((?o ?^) . ?\x00f4) - ((?o ?~) . ?\x00f5) - ((?u ?`) . ?\x00f9) - ((?u ?^) . ?\x00fb) - ((?y ?\") . ?\x00ff)) - "Table of default digraphs. -This includes all digraphs defined in RFC 1345, -as well as miscellaneous digraphs for multi-byte characters. -See also `evil-digraphs-table-user'.") - -(defun evil-digraph (digraph) - "Convert DIGRAPH to character or list representation. -If DIGRAPH is a list (CHAR1 CHAR2), return the corresponding character; -if DIGRAPH is a character, return the corresponding list. -Searches in `evil-digraphs-table-user' and `evil-digraphs-table'." - (if (listp digraph) - (let* ((char1 (car digraph)) - (char2 (cadr digraph))) - (or (cdr (assoc (list char1 char2) evil-digraphs-table-user)) - (cdr (assoc (list char1 char2) evil-digraphs-table)) - (unless (eq char1 char2) - (or (cdr (assoc (list char2 char1) evil-digraphs-table-user)) - (cdr (assoc (list char2 char1) evil-digraphs-table)))))) - (or (car (rassoc digraph evil-digraphs-table-user)) - (car (rassoc digraph evil-digraphs-table))))) - -(provide 'evil-digraphs) - -;;; evil-digraphs.el ends here diff --git a/elpa/evil-1.0.1/evil-ex.el b/elpa/evil-1.0.1/evil-ex.el deleted file mode 100644 index 48ed13e5..00000000 --- a/elpa/evil-1.0.1/evil-ex.el +++ /dev/null @@ -1,1044 +0,0 @@ -;;; evil-ex.el --- Ex-mode - -;; Author: Frank Fischer -;; Maintainer: Vegard Ă˜ye - -;; Version: 1.0.1 - -;; -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; This file is part of Evil. -;; -;; Evil is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; Evil is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Evil. If not, see . - -;;; Commentary: - -;; Ex is implemented as an extensible minilanguage, whose grammar -;; is stored in `evil-ex-grammar'. Ex commands are defined with -;; `evil-ex-define-cmd', which creates a binding from a string -;; to an interactive function. It is also possible to define key -;; sequences which execute a command immediately when entered: -;; such shortcuts go in `evil-ex-map'. -;; -;; To provide buffer and filename completion, as well as interactive -;; feedback, Ex defines the concept of an argument handler, specified -;; with `evil-ex-define-argument-type'. In the case of the -;; substitution command (":s/foo/bar"), the handler incrementally -;; highlights matches in the buffer as the substitution is typed. - -(require 'evil-common) -(require 'evil-states) - -;;; Code: - -(defconst evil-ex-grammar - '((expression - (count command argument #'evil-ex-call-command) - ((\? range) command argument #'evil-ex-call-command) - (line #'evil-goto-line) - (sexp #'eval-expression)) - (count - number) - (command #'evil-ex-parse-command) - (binding - "[~&*@<>=:]+\\|[[:alpha:]-]+\\|!") - (bang - (\? (! space) "!" #'$1)) - (argument - ((\? space) (\? "\\(?:.\\|\n\\)+") #'$2)) - (range - ("%" #'(evil-ex-full-range)) - (line (\? "[,;]" line #'$2) #'evil-ex-range)) - (line - (base (\? offset) #'evil-ex-line) - ((\? base) offset #'evil-ex-line)) - (base - number - marker - search - ("\\^" #'(evil-ex-first-line)) - ("\\$" #'(evil-ex-last-line)) - ("\\." #'(evil-ex-current-line))) - (offset - (+ signed-number #'+)) - (marker - ("'" "[-a-zA-Z_<>']" #'(evil-ex-marker $2))) - (search - forward - backward - next - prev - subst) - (forward - ("/" "\\(?:[\\].\\|[^/,; ]\\)+" (! "/") - #'(evil-ex-re-fwd $2)) - ("/" "\\(?:[\\].\\|[^/]\\)+" "/" - #'(evil-ex-re-fwd $2))) - (backward - ("\\?" "\\(?:[\\].\\|[^?,; ]\\)+" (! "\\?") - #'(evil-ex-re-bwd $2)) - ("\\?" "\\(?:[\\].\\|[^?]\\)+" "\\?" - #'(evil-ex-re-bwd $2))) - (next - "\\\\/" #'(evil-ex-prev-search)) - (prev - "\\\\\\?" #'(evil-ex-prev-search)) - (subst - "\\\\&" #'(evil-ex-prev-search)) - (signed-number - (sign (\? number) #'evil-ex-signed-number)) - (sign - "\\+\\|-" #'intern) - (number - "[0-9]+" #'string-to-number) - (space - "[ ]+") - (sexp - "(.*)" #'(car-safe (read-from-string $1)))) - "Grammar for Ex. -An association list of syntactic symbols and their definitions. -The first entry is the start symbol. A symbol's definition may -reference other symbols, but the grammar cannot contain -left recursion. See `evil-parser' for a detailed explanation -of the syntax.") - -(defun evil-ex-p () - "Whether Ex is currently active." - (and evil-ex-current-buffer t)) - -(evil-define-command evil-ex (&optional initial-input) - "Enter an Ex command." - :keep-visual t - (interactive - (cond - ((evil-visual-state-p) - '("'<,'>")) - (current-prefix-arg - (let ((arg (prefix-numeric-value current-prefix-arg))) - (cond ((< arg 0) (setq arg (1+ arg))) - ((> arg 0) (setq arg (1- arg)))) - (if (= arg 0) '(".") - `(,(format ".,.%+d" arg))))))) - (let ((minibuffer-local-completion-map evil-ex-completion-map) - (evil-ex-current-buffer (current-buffer)) - (evil-ex-previous-command (unless initial-input - (car-safe evil-ex-history))) - evil-ex-argument-handler evil-ex-info-string result) - (add-hook 'minibuffer-setup-hook #'evil-ex-setup) - (setq result (read-from-minibuffer - ":" - (or initial-input - (and evil-ex-previous-command - (format "(default: %s) " - evil-ex-previous-command))) - evil-ex-completion-map - nil - 'evil-ex-history - evil-ex-previous-command - t)) - (when (zerop (length result)) - (setq result evil-ex-previous-command)) - (evil-ex-update nil nil nil result) - (unless (zerop (length result)) - (if evil-ex-expression - (eval evil-ex-expression) - (error "Ex: syntax error"))))) - -(defun evil-ex-delete-backward-char () - "Close the minibuffer if it is empty. -Otherwise behaves like `delete-backward-char'." - (interactive) - (call-interactively - (if (zerop (length (minibuffer-contents))) - #'abort-recursive-edit - #'delete-backward-char))) - -(defun evil-ex-setup () - "Initialize Ex minibuffer." - (add-hook 'after-change-functions #'evil-ex-update nil t) - (add-hook 'minibuffer-exit-hook #'evil-ex-teardown) - (when evil-ex-previous-command - (add-hook 'pre-command-hook #'evil-ex-remove-default)) - (remove-hook 'minibuffer-setup-hook #'evil-ex-setup) - (with-no-warnings - (make-variable-buffer-local 'completion-at-point-functions)) - (setq completion-at-point-functions - '(evil-ex-completion-at-point))) -(put 'evil-ex-setup 'permanent-local-hook t) - -(defun evil-ex-teardown () - "Deinitialize Ex minibuffer." - (remove-hook 'minibuffer-exit-hook #'evil-ex-teardown) - (remove-hook 'after-change-functions #'evil-ex-update t) - (when evil-ex-argument-handler - (let ((runner (evil-ex-argument-handler-runner - evil-ex-argument-handler))) - (when runner - (funcall runner 'stop))))) -(put 'evil-ex-teardown 'permanent-local-hook t) - -(defun evil-ex-remove-default () - (delete-minibuffer-contents) - (remove-hook 'pre-command-hook #'evil-ex-remove-default)) -(put 'evil-ex-remove-default 'permanent-local-hook t) - -(defun evil-ex-update (&optional beg end len string) - "Update Ex variables when the minibuffer changes. -This function is usually called from `after-change-functions' -hook. If BEG is non-nil (which is the case when called from -`after-change-functions'), then an error description is shown -in case of incomplete or unknown commands." - (let* ((prompt (minibuffer-prompt-end)) - (string (or string (buffer-substring prompt (point-max)))) - arg bang cmd count expr func handler range tree type) - (cond - ((and (eq this-command #'self-insert-command) - (commandp (setq cmd (lookup-key evil-ex-map string)))) - (setq evil-ex-expression `(call-interactively #',cmd)) - (when (minibufferp) - (exit-minibuffer))) - (t - (setq cmd nil) - ;; store the buffer position of each character - ;; as the `ex-index' text property - (dotimes (i (length string)) - (add-text-properties - i (1+ i) (list 'ex-index (+ i prompt)) string)) - (with-current-buffer evil-ex-current-buffer - (setq tree (evil-ex-parse string t) - expr (evil-ex-parse string)) - (when (eq (car-safe expr) 'evil-ex-call-command) - (setq count (eval (nth 1 expr)) - cmd (eval (nth 2 expr)) - arg (eval (nth 3 expr)) - range (cond - ((evil-range-p count) - count) - ((numberp count) - (evil-ex-range count count))) - bang (and (string-match ".!$" cmd) t)))) - (setq evil-ex-tree tree - evil-ex-expression expr - evil-ex-range range - evil-ex-command cmd - evil-ex-bang bang - evil-ex-argument arg) - ;; test the current command - (when (and cmd (minibufferp)) - (setq func (evil-ex-completed-binding cmd t)) - (cond - ;; update argument-handler - (func - (when (setq type (evil-get-command-property - func :ex-arg)) - (setq handler (cdr-safe - (assoc type - evil-ex-argument-types)))) - (unless (eq handler evil-ex-argument-handler) - (let ((runner (and evil-ex-argument-handler - (evil-ex-argument-handler-runner - evil-ex-argument-handler)))) - (when runner (funcall runner 'stop))) - (setq evil-ex-argument-handler handler) - (let ((runner (and evil-ex-argument-handler - (evil-ex-argument-handler-runner - evil-ex-argument-handler)))) - (when runner (funcall runner 'start evil-ex-argument)))) - (let ((runner (and evil-ex-argument-handler - (evil-ex-argument-handler-runner - evil-ex-argument-handler)))) - (when runner (funcall runner 'update evil-ex-argument)))) - ((all-completions cmd evil-ex-commands) - ;; show error message only when called from `after-change-functions' - (when beg (evil-ex-echo "Incomplete command"))) - (t - ;; show error message only when called from `after-change-functions' - (when beg (evil-ex-echo "Unknown command"))))))))) -(put 'evil-ex-update 'permanent-local-hook t) - -(defun evil-ex-echo (string &rest args) - "Display a message after the current Ex command." - (with-selected-window (minibuffer-window) - (with-current-buffer (window-buffer (minibuffer-window)) - (unless (or evil-no-display - (zerop (length string))) - (let ((string (format " [%s]" (apply #'format string args))) - after-change-functions before-change-functions) - (put-text-property 0 (length string) 'face 'evil-ex-info string) - (minibuffer-message string)))))) - -(defun evil-ex-define-cmd (cmd function) - "Binds the function FUNCTION to the command CMD." - (if (string-match "^[^][]*\\(\\[\\(.*\\)\\]\\)[^][]*$" cmd) - (let ((abbrev (replace-match "" nil t cmd 1)) - (full (replace-match "\\2" nil nil cmd 1))) - (evil-add-to-alist 'evil-ex-commands full function) - (evil-add-to-alist 'evil-ex-commands abbrev full)) - (evil-add-to-alist 'evil-ex-commands cmd function))) - -(defun evil-ex-make-argument-handler (runner completer) - (list runner completer)) - -(defun evil-ex-argument-handler-runner (arg-handler) - (car arg-handler)) - -(defun evil-ex-argument-handler-completer (arg-handler) - (cadr arg-handler)) - -(defmacro evil-ex-define-argument-type (arg-type doc &rest body) - "Defines a new handler for argument-type ARG-TYPE. -DOC is the documentation string. It is followed by a list of -keywords and function: - -:completer FUNC Function to be called to initialize a - potential completion. FUNC must match the - requirements as described for the variable - `completion-at-point-functions'. When FUNC is - called the minibuffer content is narrowed to - exactly match the argument. - -:runner FUNC Function to be called when the type of the - current argument changes or when the content - of this argument changes. This function - should take one obligatory argument FLAG - followed by an optional argument ARG. FLAG is - one of three symbol 'start, 'stop or - 'update. When the argument type is recognized - for the first time and this handler is - started the FLAG is 'start. If the argument - type changes to something else or ex state - finished the handler FLAG is 'stop. If the - content of the argument has changed FLAG is - 'update. If FLAG is either 'start or 'update - then ARG is the current value of this - argument. If FLAG is 'stop then arg is nil." - (declare (indent defun) - (debug (&define name - [&optional stringp] - [&rest [keywordp function-form]]))) - (unless (stringp doc) (push doc body)) - (let (runner completer) - (while (keywordp (car-safe body)) - (let ((key (pop body)) - (func (pop body))) - (cond - ((eq key :runner) - (setq runner func)) - ((eq key :completer) - (setq completer func))))) - `(eval-and-compile - (evil-add-to-alist - 'evil-ex-argument-types - ',arg-type - '(,runner ,completer))))) - -(defun evil-ex-filename-completion-at-point () - "Completion at point function for file arguments." - (list - (point-min) (point-max) - (lambda (arg predicate flag) - (if (null arg) - default-directory - (let ((dir (or (file-name-directory arg) - (with-current-buffer evil-ex-current-buffer - default-directory))) - (fname (file-name-nondirectory arg))) - (cond - ((null dir) (ding)) - ((null flag) - (let ((result (file-name-completion fname dir))) - (cond - ((null result) nil) - ((eq result t) t) - (t (concat dir result))))) - - ((eq t flag) - (file-name-all-completions fname dir)) - - ((eq 'lambda flag) - (eq (file-name-completion fname dir) t)))))))) - -(evil-ex-define-argument-type file - "Handles a file argument." - :completer evil-ex-filename-completion-at-point) - -(evil-ex-define-argument-type buffer - "Called to complete a buffer name argument." - :completer (lambda () - (list - (point-min) (point-max) - (lambda (arg predicate flag) - (when arg - (let ((buffers (mapcar #'(lambda (buffer) - (cons (buffer-name buffer) nil)) - (buffer-list t)))) - (cond - ((null flag) - (try-completion arg buffers predicate)) - ((eq t flag) - (all-completions arg buffers predicate)) - ((eq 'lambda flag) - (test-completion arg buffers predicate))))))))) - -(declare-function shell-completion-vars "shell" ()) - -(defun evil-ex-init-shell-argument-completion (flag &optional arg) - "Prepares the current minibuffer for completion of shell commands. -This function must be called from the :runner function of some -argument handler that requires shell completion." - (when (and (eq flag 'start) - (not evil-ex-shell-argument-initialized) - (require 'shell nil t) - (require 'comint nil t)) - (set (make-local-variable 'evil-ex-shell-argument-initialized) t) - (cond - ;; Emacs 24 - ((fboundp 'comint-completion-at-point) - (shell-completion-vars)) - (t - (set (make-local-variable 'minibuffer-default-add-function) - 'minibuffer-default-add-shell-commands))) - (setq completion-at-point-functions - '(evil-ex-completion-at-point)))) - -;; because this variable is used only for Emacs 23 shell completion, -;; we put it here instead of "evil-vars.el" -(defvar evil-ex-shell-argument-range nil - "Internal helper variable for Emacs 23 shell completion.") - -(defun evil-ex-complete-shell-command-at-point () - "Completion at point function for shell commands." - (cond - ;; Emacs 24 - ((fboundp 'comint-completion-at-point) - (comint-completion-at-point)) - ;; Emacs 23 - ((fboundp 'minibuffer-complete-shell-command) - (set (make-local-variable 'evil-ex-shell-argument-range) - (list (point-min) (point-max))) - #'(lambda () - ;; We narrow the buffer to the argument so - ;; `minibuffer-complete-shell-command' will correctly detect - ;; the beginning of the argument. When narrowing the buffer - ;; to the argument the leading text in the minibuffer will be - ;; hidden. Therefore we add a dummy overlay which shows that - ;; text during narrowing. - (let* ((beg (car evil-ex-shell-argument-range)) - (end (cdr evil-ex-shell-argument-range)) - (prev-text (buffer-substring - (point-min) - (car evil-ex-shell-argument-range))) - (ov (make-overlay beg beg))) - (overlay-put ov 'before-string prev-text) - (save-restriction - (apply #'narrow-to-region evil-ex-shell-argument-range) - (minibuffer-complete-shell-command)) - (delete-overlay ov)))))) - -(evil-ex-define-argument-type shell - "Shell argument type, supports completion." - :completer evil-ex-complete-shell-command-at-point - :runner evil-ex-init-shell-argument-completion) - -(evil-ex-define-argument-type file-or-shell - "File or shell argument type. -If the current argument starts with a ! the rest of the argument -is considered a shell command, otherwise a file-name. Completion -works accordingly." - :completer (lambda () - (if (and (< (point-min) (point-max)) - (= (char-after (point-min)) ?!)) - (save-restriction - (narrow-to-region (1+ (point-min)) (point-max)) - (evil-ex-complete-shell-command-at-point)) - (evil-ex-filename-completion-at-point))) - :runner evil-ex-init-shell-argument-completion) - -(defun evil-ex-binding (command &optional noerror) - "Returns the final binding of COMMAND." - (let ((binding command)) - (when binding - (string-match "^\\(.+?\\)\\!?$" binding) - (setq binding (match-string 1 binding)) - (while (progn - (setq binding (cdr (assoc binding evil-ex-commands))) - (stringp binding))) - (unless binding - (setq binding (intern command))) - (if (commandp binding) - binding - (unless noerror - (error "Unknown command: `%s'" command)))))) - -(defun evil-ex-completed-binding (command &optional noerror) - "Returns the final binding of the completion of COMMAND." - (let ((completion (try-completion command evil-ex-commands))) - (evil-ex-binding (if (eq completion t) command - (or completion command)) - noerror))) - -;;; TODO: extensions likes :p :~ ... -(defun evil-ex-replace-special-filenames (file-name) - "Replace special symbols in FILE-NAME. -Replaces % by the current file-name, -Replaces # by the alternate file-name in FILE-NAME." - (let ((current-fname (buffer-file-name)) - (alternate-fname (and (other-buffer) - (buffer-file-name (other-buffer))))) - (when current-fname - (setq file-name - (replace-regexp-in-string "\\(^\\|[^\\\\]\\)\\(%\\)" - current-fname file-name - t t 2))) - (when alternate-fname - (setq file-name - (replace-regexp-in-string "\\(^\\|[^\\\\]\\)\\(#\\)" - alternate-fname file-name - t t 2))) - (setq file-name - (replace-regexp-in-string "\\\\\\([#%]\\)" - "\\1" file-name t))) - file-name) - -(defun evil-ex-file-arg () - "Returns the current Ex argument as a file name. -This function interprets special file names like # and %." - (unless (or (null evil-ex-argument) - (zerop (length evil-ex-argument))) - (evil-ex-replace-special-filenames evil-ex-argument))) - -(defun evil-ex-run-completion-at-point () - "Same as `completion-at-point' but disables `evil-ex-update' during call. -This function calls `evil-ex-update' explicitly when -`completion-at-point' finished." - (interactive) - (let ((after-change-functions - (remq 'evil-ex-update after-change-functions))) - (completion-at-point) - (evil-ex-update t))) - -(defun evil-ex-completion-at-point () - (let ((string (minibuffer-contents)) - (prompt (minibuffer-prompt-end)) - context start prefix) - (when (= (point) (+ (length string) prompt)) - (evil-ex-update) - (setq context (evil-ex-syntactic-context (1- (point)))) - (cond - ((memq 'command context) - (setq start (or (get-text-property - 0 'ex-index evil-ex-command) - (point)) - prefix (buffer-substring prompt start)) - (list start (point-max) #'evil-ex-complete-command)) - ((memq 'argument context) - (let ((arg (or evil-ex-argument ""))) - (setq start (or (get-text-property - 0 'ex-index arg) - (point)) - prefix (buffer-substring prompt start)) - (let* ((binding (evil-ex-completed-binding evil-ex-command)) - (arg-type (evil-get-command-property binding :ex-arg)) - (arg-handler (assoc arg-type evil-ex-argument-types)) - (completer (and arg-handler - (evil-ex-argument-handler-completer - (cdr arg-handler))))) - (when completer - (save-restriction - (narrow-to-region start (point-max)) - (funcall completer)))))))))) - -(defun evil-ex-complete-command (cmd predicate flag) - "Called to complete a command." - (cond - ((eq flag nil) - (let ((result (try-completion cmd evil-ex-commands predicate))) - (if (and (eq result t) (evil-ex-command-force-p cmd)) - cmd - result))) - ((eq flag t) - (let ((result (all-completions cmd evil-ex-commands predicate)) - new-result) - (mapc #'(lambda (x) - (push x new-result) - (when (evil-ex-command-force-p cmd) - (push (concat x "!") new-result))) - result) - new-result)) - ((eq flag 'lambda) - (test-completion cmd evil-ex-commands predicate)))) - -(defun evil-ex-repeat (count) - "Repeats the last ex command." - (interactive "P") - (when count - (goto-char (point-min)) - (forward-line (1- count))) - (let ((evil-ex-current-buffer (current-buffer)) - (hist evil-ex-history)) - (while hist - (let ((evil-ex-last-cmd (pop hist))) - (when evil-ex-last-cmd - (evil-ex-update nil nil nil evil-ex-last-cmd) - (let ((binding (evil-ex-binding evil-ex-command))) - (unless (eq binding #'evil-ex-repeat) - (setq hist nil) - (if evil-ex-expression - (eval evil-ex-expression) - (error "Ex: syntax error"))))))))) - -(defun evil-ex-call-command (range command argument) - "Execute the given command COMMAND." - (let* ((count (when (numberp range) range)) - (range (when (evil-range-p range) range)) - (bang (and (string-match ".!$" command) t)) - (evil-ex-range - (or range (and count (evil-ex-range count count)))) - (evil-ex-command (evil-ex-completed-binding command)) - (evil-ex-bang (and bang t)) - (evil-ex-argument (copy-sequence argument)) - (evil-this-type (evil-type evil-ex-range)) - (current-prefix-arg count) - (prefix-arg current-prefix-arg)) - (when (stringp evil-ex-argument) - (set-text-properties - 0 (length evil-ex-argument) nil evil-ex-argument)) - (let ((buf (current-buffer))) - (unwind-protect - (if (not evil-ex-range) - (call-interactively evil-ex-command) - ;; set visual selection to match the region if an explicit - ;; range has been specified - (let ((ex-range (evil-copy-range evil-ex-range)) - beg end) - (evil-expand-range ex-range) - (setq beg (evil-range-beginning ex-range) - end (evil-range-end ex-range)) - (evil-sort beg end) - (set-mark end) - (goto-char beg) - (activate-mark) - (call-interactively evil-ex-command))) - (when (buffer-live-p buf) - (with-current-buffer buf - (deactivate-mark))))))) - -(defun evil-ex-line (base &optional offset) - "Return the line number of BASE plus OFFSET." - (+ (or base (line-number-at-pos)) - (or offset 0))) - -(defun evil-ex-first-line () - "Return the line number of the first line." - (line-number-at-pos (point-min))) - -(defun evil-ex-current-line () - "Return the line number of the current line." - (line-number-at-pos (point))) - -(defun evil-ex-last-line () - "Return the line number of the last line." - (save-excursion - (goto-char (point-max)) - (when (bolp) - (forward-line -1)) - (line-number-at-pos))) - -(defun evil-ex-range (beg-line &optional end-line) - "Returns the first and last position of the current range." - (evil-range - (evil-line-position beg-line) - (evil-line-position (or end-line beg-line) -1) - 'line - :expanded t)) - -(defun evil-ex-full-range () - "Return a range encompassing the whole buffer." - (evil-range (point-min) (point-max) 'line)) - -(defun evil-ex-marker (marker) - "Return MARKER's line number in the current buffer. -Signal an error if MARKER is in a different buffer." - (when (stringp marker) - (setq marker (aref marker 0))) - (setq marker (evil-get-marker marker)) - (if (numberp marker) - (line-number-at-pos marker) - (error "Ex does not support markers in other files"))) - -(defun evil-ex-re-fwd (pattern) - "Search forward for PATTERN. -Returns the line number of the match." - (condition-case err - (save-excursion - (set-text-properties 0 (length pattern) nil pattern) - (evil-move-end-of-line) - (and (re-search-forward pattern nil t) - (line-number-at-pos (1- (match-end 0))))) - (invalid-regexp - (evil-ex-echo (cadr err)) - nil))) - -(defun evil-ex-re-bwd (pattern) - "Search backward for PATTERN. -Returns the line number of the match." - (condition-case err - (save-excursion - (set-text-properties 0 (length pattern) nil pattern) - (evil-move-beginning-of-line) - (and (re-search-backward pattern nil t) - (line-number-at-pos (match-beginning 0)))) - (invalid-regexp - (evil-ex-echo (cadr err)) - nil))) - -(defun evil-ex-prev-search () - (error "Previous search not yet implemented")) - -(defun evil-ex-signed-number (sign &optional number) - "Return a signed number like -3 and +1. -NUMBER defaults to 1." - (funcall sign (or number 1))) - -(defun evil-ex-eval (string &optional start) - "Evaluate STRING as an Ex command. -START is the start symbol, which defaults to `expression'." - ;; disable the mark before executing, otherwise the visual region - ;; may be used as operator range instead of the ex-range - (let ((form (evil-ex-parse string nil start)) - transient-mark-mode deactivate-mark) - (eval form))) - -(defun evil-ex-parse (string &optional syntax start) - "Parse STRING as an Ex expression and return an evaluation tree. -If SYNTAX is non-nil, return a syntax tree instead. -START is the start symbol, which defaults to `expression'." - (let* ((start (or start (car-safe (car-safe evil-ex-grammar)))) - (match (evil-parser - string start evil-ex-grammar t syntax))) - (car-safe match))) - -(defun evil-ex-parse-command (string) - "Parse STRING as an Ex binding." - (let ((result (evil-parser string 'binding evil-ex-grammar)) - bang command) - (when result - (setq command (car-safe result) - string (cdr-safe result)) - ;; parse a following "!" as bang only if - ;; the command has the property :ex-bang t - (when (evil-ex-command-force-p command) - (setq result (evil-parser string 'bang evil-ex-grammar) - bang (or (car-safe result) "") - string (cdr-safe result) - command (concat command bang))) - (cons command string)))) - -(defun evil-ex-command-force-p (command) - "Whether COMMAND accepts the bang argument." - (let ((binding (evil-ex-completed-binding command t))) - (when binding - (evil-get-command-property binding :ex-bang)))) - -(defun evil-flatten-syntax-tree (tree) - "Find all paths from the root of TREE to its leaves. -TREE is a syntax tree, i.e., all its leave nodes are strings. -The `nth' element in the result is the syntactic context -for the corresponding string index (counted from zero)." - (let* ((result nil) - (traverse nil) - (traverse - #'(lambda (tree path) - (if (stringp tree) - (dotimes (char (length tree)) - (push path result)) - (let ((path (cons (car tree) path))) - (dolist (subtree (cdr tree)) - (funcall traverse subtree path))))))) - (funcall traverse tree nil) - (nreverse result))) - -(defun evil-ex-syntactic-context (&optional pos) - "Return the syntactical context of the character at POS. -POS defaults to the current position of point." - (let* ((contexts (evil-flatten-syntax-tree evil-ex-tree)) - (length (length contexts)) - (pos (- (or pos (point)) (minibuffer-prompt-end)))) - (when (>= pos length) - (setq pos (1- length))) - (when (< pos 0) - (setq pos 0)) - (when contexts - (nth pos contexts)))) - -(defun evil-parser (string symbol grammar &optional greedy syntax) - "Parse STRING as a SYMBOL in GRAMMAR. -If GREEDY is non-nil, the whole of STRING must match. -If the parse succeeds, the return value is a cons cell -\(RESULT . TAIL), where RESULT is a parse tree and TAIL is -the remainder of STRING. Otherwise, the return value is nil. - -GRAMMAR is an association list of symbols and their definitions. -A definition is either a list of production rules, which are -tried in succession, or a #'-quoted function, which is called -to parse the input. - -A production rule can be one of the following: - - nil matches the empty string. - A regular expression matches a substring. - A symbol matches a production for that symbol. - (X Y) matches X followed by Y. - (\\? X) matches zero or one of X. - (* X) matches zero or more of X. - (+ X) matches one or more of X. - (& X) matches X, but does not consume. - (! X) matches anything but X, but does not consume. - -Thus, a simple grammar may look like: - - ((plus \"\\\\+\") ; plus <- \"+\" - (minus \"-\") ; minus <- \"-\" - (operator plus minus)) ; operator <- plus / minus - -All input-consuming rules have a value. A regular expression evaluates -to the text matched, while a list evaluates to a list of values. -The value of a list may be overridden with a semantic action, which is -specified with a #'-quoted expression at the end: - - (X Y #'foo) - -The value of this rule is the result of calling foo with the values -of X and Y as arguments. Alternatively, the function call may be -specified explicitly: - - (X Y #'(foo $1 $2)) - -Here, $1 refers to X and $2 refers to Y. $0 refers to the whole list. -Dollar expressions can also be used directly: - - (X Y #'$1) - -This matches X followed by Y, but ignores the value of Y; -the value of the list is the same as the value of X. - -If the SYNTAX argument is non-nil, then all semantic actions -are ignored, and a syntax tree is constructed instead. The -syntax tree obeys the property that all the leave nodes are -parts of the input string. Thus, by traversing the syntax tree, -one can determine how each character was parsed. - -The following symbols have reserved meanings within a grammar: -`\\?', `*', `+', `&', `!', `function', `alt', `seq' and nil." - (let ((string (or string "")) - func pair result rules tail) - (cond - ;; epsilon - ((member symbol '("" nil)) - (setq pair (cons (if syntax "" nil) string))) - ;; token - ((stringp symbol) - (save-match-data - (when (or (eq (string-match symbol string) 0) - ;; ignore leading whitespace - (and (eq (string-match "^[ \f\t\n\r\v]+" string) 0) - (eq (match-end 0) - (string-match - symbol string (match-end 0))))) - (setq result (match-string 0 string) - tail (substring string (match-end 0)) - pair (cons result tail)) - (when (and syntax pair) - (setq result (substring string 0 - (- (length string) - (length tail)))) - (setcar pair result))))) - ;; symbol - ((symbolp symbol) - (let ((context symbol)) - (setq rules (cdr-safe (assq symbol grammar))) - (setq pair (evil-parser string `(alt ,@rules) - grammar greedy syntax)) - (when (and syntax pair) - (setq result (car pair)) - (if (and (listp result) (sequencep (car result))) - (setq result `(,symbol ,@result)) - (setq result `(,symbol ,result))) - (setcar pair result)))) - ;; function - ((eq (car-safe symbol) 'function) - (setq symbol (cadr symbol) - pair (funcall symbol string)) - (when (and syntax pair) - (setq tail (or (cdr pair) "") - result (substring string 0 - (- (length string) - (length tail)))) - (setcar pair result))) - ;; list - ((listp symbol) - (setq rules symbol - symbol (car-safe rules)) - (if (memq symbol '(& ! \? * + alt seq)) - (setq rules (cdr rules)) - (setq symbol 'seq)) - (when (and (memq symbol '(+ alt seq)) - (> (length rules) 1)) - (setq func (car (last rules))) - (if (eq (car-safe func) 'function) - (setq rules (delq func (copy-sequence rules)) - func (cadr func)) - (setq func nil))) - (cond - ;; positive lookahead - ((eq symbol '&) - (when (evil-parser string rules grammar greedy syntax) - (setq pair (evil-parser string nil grammar nil syntax)))) - ;; negative lookahead - ((eq symbol '!) - (unless (evil-parser string rules grammar greedy syntax) - (setq pair (evil-parser string nil grammar nil syntax)))) - ;; zero or one - ((eq symbol '\?) - (setq rules (if (> (length rules) 1) - `(alt ,rules nil) - `(alt ,@rules nil)) - pair (evil-parser string rules grammar greedy syntax))) - ;; zero or more - ((eq symbol '*) - (setq rules `(alt (+ ,@rules) nil) - pair (evil-parser string rules grammar greedy syntax))) - ;; one or more - ((eq symbol '+) - (let (current results) - (catch 'done - (while (setq current (evil-parser - string rules grammar nil syntax)) - (setq result (car-safe current) - tail (or (cdr-safe current) "") - results (append results (if syntax result - (cdr-safe result)))) - ;; stop if stuck - (if (equal string tail) - (throw 'done nil) - (setq string tail)))) - (when results - (setq func (or func 'list) - pair (cons results tail))))) - ;; alternatives - ((eq symbol 'alt) - (catch 'done - (dolist (rule rules) - (when (setq pair (evil-parser - string rule grammar greedy syntax)) - (throw 'done pair))))) - ;; sequence - (t - (setq func (or func 'list)) - (let ((last (car-safe (last rules))) - current results rule) - (catch 'done - (while rules - (setq rule (pop rules) - current (evil-parser string rule grammar - (when greedy - (null rules)) - syntax)) - (cond - ((null current) - (setq results nil) - (throw 'done nil)) - (t - (setq result (car-safe current) - tail (cdr-safe current)) - (unless (memq (car-safe rule) '(& !)) - (if (and syntax - (or (null result) - (and (listp result) - (listp rule) - ;; splice in single-element - ;; (\? ...) expressions - (not (and (eq (car-safe rule) '\?) - (eq (length rule) 2)))))) - (setq results (append results result)) - (setq results (append results (list result))))) - (setq string (or tail "")))))) - (when results - (setq pair (cons results tail)))))) - ;; semantic action - (when (and pair func (not syntax)) - (setq result (car pair)) - (let* ((dexp - #'(lambda (obj) - (when (symbolp obj) - (let ((str (symbol-name obj))) - (when (string-match "\\$\\([0-9]+\\)" str) - (string-to-number (match-string 1 str))))))) - ;; traverse a tree for dollar expressions - (dval nil) - (dval - #'(lambda (obj) - (if (listp obj) - (mapcar dval obj) - (let ((num (funcall dexp obj))) - (if num - (if (not (listp result)) - result - (if (eq num 0) - `(list ,@result) - (nth (1- num) result))) - obj)))))) - (cond - ((null func) - (setq result nil)) - ;; lambda function - ((eq (car-safe func) 'lambda) - (if (memq symbol '(+ seq)) - (setq result `(funcall ,func ,@result)) - (setq result `(funcall ,func ,result)))) - ;; string replacement - ((or (stringp func) (stringp (car-safe func))) - (let* ((symbol (or (car-safe (cdr-safe func)) - (and (boundp 'context) context) - (car-safe (car-safe grammar)))) - (string (if (stringp func) func (car-safe func)))) - (setq result (car-safe (evil-parser string symbol grammar - greedy syntax))))) - ;; dollar expression - ((funcall dexp func) - (setq result (funcall dval func))) - ;; function call - ((listp func) - (setq result (funcall dval func))) - ;; symbol - (t - (if (memq symbol '(+ seq)) - (setq result `(,func ,@result)) - (setq result `(,func ,result)))))) - (setcar pair result)))) - ;; weed out incomplete matches - (when pair - (if (not greedy) pair - (if (null (cdr pair)) pair - ;; ignore trailing whitespace - (when (string-match "^[ \f\t\n\r\v]*$" (cdr pair)) - (unless syntax (setcdr pair nil)) - pair)))))) - -(provide 'evil-ex) - -;;; evil-ex.el ends here diff --git a/elpa/evil-1.0.1/evil-integration.el b/elpa/evil-1.0.1/evil-integration.el deleted file mode 100644 index e65bf3ee..00000000 --- a/elpa/evil-1.0.1/evil-integration.el +++ /dev/null @@ -1,288 +0,0 @@ -;;; evil-integration.el --- Integrate Evil with other modules - -;; Author: Vegard Ă˜ye -;; Maintainer: Vegard Ă˜ye - -;; Version: 1.0.1 - -;; -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; This file is part of Evil. -;; -;; Evil is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; Evil is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Evil. If not, see . - -(require 'evil-maps) -(require 'evil-core) - -;;; Code: - -;;; Evilize some commands - -(mapc #'(lambda (cmd) - (evil-set-command-property cmd :keep-visual t) - (evil-declare-not-repeat cmd)) - '(digit-argument - negative-argument - universal-argument - universal-argument-minus - universal-argument-more - universal-argument-other-key)) -(mapc #'evil-declare-not-repeat - '(what-cursor-position)) -(mapc #'evil-declare-change-repeat - '(dabbrev-expand - hippie-expand)) -(mapc #'evil-declare-abort-repeat - '(balance-windows - eval-expression - execute-extended-command - exit-minibuffer - compile - delete-window - delete-other-windows - find-file-at-point - ffap-other-window - recompile - save-buffer - split-window - split-window-horizontally - split-window-vertically)) - -(evil-set-type #'previous-line 'line) -(evil-set-type #'next-line 'line) - -(dolist (cmd '(keyboard-quit keyboard-escape-quit)) - (evil-set-command-property cmd :suppress-operator t)) - -;;; Mouse -(evil-declare-insert-at-point-repeat 'mouse-yank-primary) -(evil-declare-insert-at-point-repeat 'mouse-yank-secondary) - -;;; key-binding - -;; disable evil-esc-mode during a call to key-binding -(defadvice key-binding (around evil activate) - (let (evil-esc-mode) - ad-do-it)) - -;; disable evil-esc-mode during the read of a key-sequence -;; TODO: should we handle the special ESC-delay, too? -(defadvice read-key-sequence (around evil activate) - (let (evil-esc-mode) - ad-do-it)) - -;; disable evil-esc-mode during the read of a key-sequence -;; TODO: should we handle the special ESC-delay, too? -(defadvice read-key-sequence-vector (around evil activate) - (let (evil-esc-mode) - ad-do-it)) - -;; Calling `keyboard-quit' should cancel repeat -(defadvice keyboard-quit (before evil activate) - (when (fboundp 'evil-repeat-abort) - (evil-repeat-abort))) - -;; etags-select -;; FIXME: probably etags-select should be recomended in docs -(eval-after-load 'etags-select - '(progn - (define-key evil-motion-state-map "g]" 'etags-select-find-tag-at-point))) - -;;; Buffer-menu - -(evil-add-hjkl-bindings Buffer-menu-mode-map 'motion) - -;; dictionary.el - -(evil-add-hjkl-bindings dictionary-mode-map 'motion - "?" 'dictionary-help ; "h" - "C-o" 'dictionary-previous) ; "l" - -;;; Dired - -(eval-after-load 'dired - '(progn - ;; use the standard Dired bindings as a base - (evil-make-overriding-map dired-mode-map 'normal t) - (evil-add-hjkl-bindings dired-mode-map 'normal - "J" 'dired-goto-file ; "j" - "K" 'dired-do-kill-lines ; "k" - "r" 'dired-do-redisplay ; "l" - ";" (lookup-key dired-mode-map ":")))) ; ":d", ":v", ":s", ":e" - -(eval-after-load 'wdired - '(progn - (add-hook 'wdired-mode-hook #'evil-change-to-initial-state) - (defadvice wdired-change-to-dired-mode (after evil activate) - (evil-change-to-initial-state nil t)))) - -;;; ELP - -(eval-after-load 'elp - '(defadvice elp-results (after evil activate) - (evil-motion-state))) - -;;; ERT - -(evil-add-hjkl-bindings ert-results-mode-map 'motion) - -;;; Info - -(evil-add-hjkl-bindings Info-mode-map 'motion - "0" 'evil-digit-argument-or-evil-beginning-of-line - (kbd "\M-h") 'Info-help ; "h" - "\C-t" 'Info-history-back ; "l" - "\C-o" 'Info-history-back - " " 'Info-scroll-up - "\C-]" 'Info-follow-nearest-node - (kbd "DEL") 'Info-scroll-down) - -;;; Parentheses - -(defadvice show-paren-function (around evil) - "Match parentheses in Normal state." - (if (if (memq 'not evil-highlight-closing-paren-at-point-states) - (memq evil-state evil-highlight-closing-paren-at-point-states) - (not (memq evil-state evil-highlight-closing-paren-at-point-states))) - ad-do-it - (let ((pos (point)) syntax narrow) - (setq pos - (catch 'end - (dotimes (var (1+ (* 2 evil-show-paren-range))) - (if (zerop (mod var 2)) - (setq pos (+ pos var)) - (setq pos (- pos var))) - (setq syntax (syntax-class (syntax-after pos))) - (cond - ((eq syntax 4) - (setq narrow pos) - (throw 'end pos)) - ((eq syntax 5) - (throw 'end (1+ pos))))))) - (if pos - (save-excursion - (goto-char pos) - (save-restriction - (when narrow - (narrow-to-region narrow (point-max))) - ad-do-it)) - ;; prevent the preceding pair from being highlighted - (when (overlayp show-paren-overlay) - (delete-overlay show-paren-overlay)) - (when (overlayp show-paren-overlay-1) - (delete-overlay show-paren-overlay-1)))))) - -;;; Speedbar - -(evil-add-hjkl-bindings speedbar-key-map 'motion - "h" 'backward-char - "j" 'speedbar-next - "k" 'speedbar-prev - "l" 'forward-char - "i" 'speedbar-item-info - "r" 'speedbar-refresh - "u" 'speedbar-up-directory - "o" 'speedbar-toggle-line-expansion - (kbd "RET") 'speedbar-edit-line) - -;; Ibuffer -(eval-after-load 'ibuffer - '(progn - (evil-make-overriding-map ibuffer-mode-map 'normal t) - (evil-define-key 'normal ibuffer-mode-map - "j" 'evil-next-line - "k" 'evil-previous-line - "RET" 'ibuffer-visit-buffer))) - -;;; Undo tree visualizer - -(defadvice undo-tree-visualize (after evil activate) - "Initialize Evil in the visualization buffer." - (when evil-local-mode - (evil-initialize-state))) - -(when (boundp 'undo-tree-visualizer-map) - (define-key undo-tree-visualizer-map [remap evil-backward-char] - 'undo-tree-visualize-switch-branch-left) - (define-key undo-tree-visualizer-map [remap evil-forward-char] - 'undo-tree-visualize-switch-branch-right) - (define-key undo-tree-visualizer-map [remap evil-next-line] - 'undo-tree-visualize-redo) - (define-key undo-tree-visualizer-map [remap evil-previous-line] - 'undo-tree-visualize-undo)) - -;;; Auto-complete -(eval-after-load 'auto-complete - '(progn - (evil-add-command-properties 'ac-complete :repeat 'evil-ac-repeat) - (evil-add-command-properties 'ac-expand :repeat 'evil-ac-repeat) - (evil-add-command-properties 'ac-next :repeat 'ignore) - (evil-add-command-properties 'ac-previous :repeat 'ignore) - - (defvar evil-ac-prefix-len nil - "The length of the prefix of the current item to be completed.") - - (defun evil-ac-repeat (flag) - "Record the changes for auto-completion." - (cond - ((eq flag 'pre) - (setq evil-ac-prefix-len (length ac-prefix)) - (evil-repeat-start-record-changes)) - ((eq flag 'post) - ;; Add change to remove the prefix - (evil-repeat-record-change (- evil-ac-prefix-len) - "" - evil-ac-prefix-len) - ;; Add change to insert the full completed text - (evil-repeat-record-change - (- evil-ac-prefix-len) - (buffer-substring-no-properties (- evil-repeat-pos - evil-ac-prefix-len) - (point)) - 0) - ;; Finish repeation - (evil-repeat-finish-record-changes)))))) - -;; Eval last sexp -(defadvice preceding-sexp (around evil activate) - "In normal-state, last sexp ends at point." - (if (evil-normal-state-p) - (save-excursion - (unless (or (eobp) (eolp)) (forward-char)) - ad-do-it) - ad-do-it)) - -(defadvice pp-last-sexp (around evil activate) - "In normal-state, last sexp ends at point." - (if (evil-normal-state-p) - (save-excursion - (unless (or (eobp) (eolp)) (forward-char)) - ad-do-it) - ad-do-it)) - -;; Show key -(defadvice quail-show-key (around evil activate) - "Temporarily go to Emacs state" - (evil-with-state emacs ad-do-it)) - -(defadvice describe-char (around evil activate) - "Temporarily go to Emacs state" - (evil-with-state emacs ad-do-it)) - -(provide 'evil-integration) - -;;; evil-integration.el ends here diff --git a/elpa/evil-1.0.1/evil-macros.el b/elpa/evil-1.0.1/evil-macros.el deleted file mode 100644 index 1a84bd31..00000000 --- a/elpa/evil-1.0.1/evil-macros.el +++ /dev/null @@ -1,751 +0,0 @@ -;;; evil-macros.el --- Macros - -;; Author: Vegard Ă˜ye -;; Maintainer: Vegard Ă˜ye - -;; Version: 1.0.1 - -;; -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; This file is part of Evil. -;; -;; Evil is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; Evil is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Evil. If not, see . - -(require 'evil-common) -(require 'evil-states) -(require 'evil-repeat) - -;;; Code: - -(declare-function evil-ex-p "evil-ex") - -(defun evil-motion-range (motion &optional count type) - "Execute a motion and return the buffer positions. -The return value is a list (BEG END TYPE)." - (let ((opoint (point)) - (omark (mark t)) - (omactive (and (boundp 'mark-active) mark-active)) - (obuffer (current-buffer)) - (evil-motion-marker (move-marker (make-marker) (point))) - range) - (evil-with-transient-mark-mode - (evil-narrow-to-field - (unwind-protect - (let ((current-prefix-arg count) - ;; Store type in global variable `evil-this-type'. - ;; If necessary, motions can change their type - ;; during execution by setting this variable. - (evil-this-type - (or type (evil-type motion 'exclusive)))) - (condition-case err - (let ((repeat-type (evil-repeat-type motion t))) - (if (functionp repeat-type) - (funcall repeat-type 'pre)) - (unless (with-local-quit - (setq range (call-interactively motion)) - t) - (evil-repeat-abort) - (setq quit-flag t)) - (if (functionp repeat-type) - (funcall repeat-type 'post))) - (error (prog1 nil - (evil-repeat-abort) - (setq evil-this-type 'exclusive - evil-write-echo-area t) - (message (error-message-string err))))) - (cond - ;; the motion returned a range - ((evil-range-p range)) - ;; the motion made a Visual selection - ((evil-visual-state-p) - (setq range (evil-visual-range))) - ;; the motion made an active region - ((region-active-p) - (setq range (evil-range (region-beginning) - (region-end) - evil-this-type))) - ;; default: range from previous position to current - (t - (setq range (evil-expand-range - (evil-normalize evil-motion-marker - (point) - evil-this-type))))) - (unless (or (null type) (eq (evil-type range) type)) - (evil-set-type range type) - (evil-expand-range range)) - (evil-set-range-properties range nil) - range) - ;; restore point and mark like `save-excursion', - ;; but only if the motion hasn't disabled the operator - (unless evil-inhibit-operator - (set-buffer obuffer) - (evil-move-mark omark) - (goto-char opoint)) - ;; delete marker so it doesn't slow down editing - (move-marker evil-motion-marker nil)))))) - -(defmacro evil-define-motion (motion args &rest body) - "Define an motion command MOTION. - -\(fn MOTION (COUNT ARGS...) DOC [[KEY VALUE]...] BODY...)" - (declare (indent defun) - (debug (&define name lambda-list - [&optional stringp] - [&rest keywordp sexp] - [&optional ("interactive" [&rest form])] - def-body))) - (let (arg doc interactive key keys type) - (when args - (setq args `(&optional ,@(delq '&optional args)) - ;; the count is either numerical or nil - interactive '(""))) - ;; collect docstring - (when (and (> (length body) 1) - (or (eq (car-safe (car-safe body)) 'format) - (stringp (car-safe body)))) - (setq doc (pop body))) - ;; collect keywords - (setq keys (plist-put keys :repeat 'motion)) - (while (keywordp (car-safe body)) - (setq key (pop body) - arg (pop body) - keys (plist-put keys key arg))) - ;; collect `interactive' specification - (when (eq (car-safe (car-safe body)) 'interactive) - (setq interactive (cdr (pop body)))) - ;; macro expansion - `(progn - ;; refresh echo area in Eldoc mode - (when ',motion - (eval-after-load 'eldoc - '(eldoc-add-command ',motion))) - (evil-define-command ,motion (,@args) - ,@(when doc `(,doc)) ; avoid nil before `interactive' - ,@keys - :keep-visual t - (interactive ,@interactive) - ,@body)))) - -(defmacro evil-define-union-move (name args &rest moves) - "Create a movement function named NAME. -The function moves to the nearest object boundary defined by one -of the movement function in MOVES, which is a list where each -element has the form \(FUNC PARAMS... COUNT). - -COUNT is a variable which is bound to 1 or -1, depending on the -direction. In each iteration, the function calls each move in -isolation and settles for the nearest position. If unable to move -further, the return value is the number of iterations that could -not be performed. - -\(fn NAME (COUNT) MOVES...)" - (declare (indent defun) - (debug (&define name lambda-list - [&optional stringp] - def-body))) - (let* ((var (or (car-safe args) 'var)) - (doc (when (stringp (car-safe moves)) - (pop moves))) - (moves (mapcar #'(lambda (move) - `(save-excursion - ;; don't include failing moves - (when (zerop ,move) - (point)))) - moves))) - `(evil-define-motion ,name (count) - ,@(when doc `(,doc)) - (evil-motion-loop (,var (or count 1)) - (if (> ,var 0) - (evil-goto-min ,@moves) - (evil-goto-max ,@moves)))))) - -(defmacro evil-narrow-to-line (&rest body) - "Narrow BODY to the current line. -BODY will signal the errors \"Beginning of line\" or \"End of line\" -upon reaching the beginning or end of the current line. - -\(fn [[KEY VAL]...] BODY...)" - (declare (indent defun) - (debug t)) - `(let* ((range (evil-expand (point) (point) 'line)) - (beg (evil-range-beginning range)) - (end (evil-range-end range)) - (min (point-min)) - (max (point-max))) - (when (save-excursion (goto-char end) (bolp)) - (setq end (max beg (1- end)))) - ;; don't include the newline in Normal state - (when (and evil-move-cursor-back - (not (evil-visual-state-p)) - (not (evil-operator-state-p))) - (setq end (max beg (1- end)))) - (evil-with-restriction beg end - (evil-signal-without-movement - (condition-case err - (progn ,@body) - (beginning-of-buffer - (if (= beg min) - (signal (car err) (cdr err)) - (error "Beginning of line"))) - (end-of-buffer - (if (= end max) - (signal (car err) (cdr err)) - (error "End of line")))))))) - -;; we don't want line boundaries to trigger the debugger -;; when `debug-on-error' is t -(add-to-list 'debug-ignored-errors "^Beginning of line$") -(add-to-list 'debug-ignored-errors "^End of line$") - -(defun evil-eobp (&optional pos) - "Whether point is at end-of-buffer with regard to end-of-line." - (save-excursion - (when pos (goto-char pos)) - (cond - ((eobp)) - ;; the rest only pertains to Normal state - ((not (evil-normal-state-p)) - nil) - ;; at the end of the last line - ((eolp) - (forward-char) - (eobp)) - ;; at the last character of the last line - (t - (forward-char) - (cond - ((eobp)) - ((eolp) - (forward-char) - (eobp))))))) - -(defun evil-move-beginning (count forward &optional backward) - "Move to the beginning of the COUNT next object. -If COUNT is negative, move to the COUNT previous object. -FORWARD is a function which moves to the end of the object, and -BACKWARD is a function which moves to the beginning. -If one is unspecified, the other is used with a negative argument." - (let* ((count (or count 1)) - (backward (or backward - #'(lambda (count) - (funcall forward (- count))))) - (forward (or forward - #'(lambda (count) - (funcall backward (- count))))) - (opoint (point))) - (cond - ((< count 0) - (when (bobp) - (signal 'beginning-of-buffer nil)) - (unwind-protect - (evil-motion-loop (nil count count) - (funcall backward 1)) - (unless (zerop count) - (goto-char (point-min))))) - ((> count 0) - (when (evil-eobp) - (signal 'end-of-buffer nil)) - ;; Do we need to move past the current object? - (when (<= (save-excursion - (funcall forward 1) - (funcall backward 1) - (point)) - opoint) - (setq count (1+ count))) - (unwind-protect - (evil-motion-loop (nil count count) - (funcall forward 1)) - (if (zerop count) - ;; go back to beginning of object - (funcall backward 1) - (goto-char (point-max))))) - (t - count)))) - -(defun evil-move-end (count forward &optional backward inclusive) - "Move to the end of the COUNT next object. -If COUNT is negative, move to the COUNT previous object. -FORWARD is a function which moves to the end of the object, and -BACKWARD is a function which moves to the beginning. -If one is unspecified, the other is used with a negative argument. -If INCLUSIVE is non-nil, then point is placed at the last character -of the object; otherwise it is placed at the end of the object." - (let* ((count (or count 1)) - (backward (or backward - #'(lambda (count) - (funcall forward (- count))))) - (forward (or forward - #'(lambda (count) - (funcall backward (- count))))) - (opoint (point))) - (cond - ((< count 0) - (when (bobp) - (signal 'beginning-of-buffer nil)) - ;; Do we need to move past the current object? - (when (>= (save-excursion - (funcall backward 1) - (funcall forward 1) - (point)) - (if inclusive - (1+ opoint) - opoint)) - (setq count (1- count))) - (unwind-protect - (evil-motion-loop (nil count count) - (funcall backward 1)) - (if (not (zerop count)) - (goto-char (point-min)) - ;; go to end of object - (funcall forward 1) - (when inclusive - (unless (bobp) (backward-char))) - (when (or (evil-normal-state-p) - (evil-motion-state-p)) - (evil-adjust-cursor t))))) - ((> count 0) - (when (evil-eobp) - (signal 'end-of-buffer nil)) - (when inclusive - (forward-char)) - (unwind-protect - (evil-motion-loop (nil count count) - (funcall forward 1)) - (if (not (zerop count)) - (goto-char (point-max)) - (when inclusive - (unless (bobp) (backward-char))) - (when (or (evil-normal-state-p) - (evil-motion-state-p)) - (evil-adjust-cursor t))))) - (t - count)))) - -(defmacro evil-define-text-object (object args &rest body) - "Define a text object command OBJECT. -BODY should return a range (BEG END) to the right of point -if COUNT is positive, and to the left of it if negative. - -\(fn OBJECT (COUNT) DOC [[KEY VALUE]...] BODY...)" - (declare (indent defun) - (debug (&define name lambda-list - [&optional stringp] - [&rest keywordp sexp] - def-body))) - (let* ((args (delq '&optional args)) - (count (or (pop args) 'count)) - (args (when args `(&optional ,@args))) - (interactive '((interactive ""))) - arg doc key keys) - ;; collect docstring - (when (stringp (car-safe body)) - (setq doc (pop body))) - ;; collect keywords - (setq keys (plist-put keys :extend-selection t)) - (while (keywordp (car-safe body)) - (setq key (pop body) - arg (pop body) - keys (plist-put keys key arg))) - ;; interactive - (when (eq (car-safe (car-safe body)) 'interactive) - (setq interactive (list (pop body)))) - ;; macro expansion - `(evil-define-motion ,object (,count ,@args) - ,@(when doc `(,doc)) - ,@keys - ,@interactive - (setq ,count (or ,count 1)) - (when (/= ,count 0) - (let ((type (evil-type ',object evil-visual-char)) - (extend (evil-get-command-property - ',object :extend-selection - ',(plist-get keys :extend-selection))) - (dir evil-visual-direction) - mark point range selection) - (cond - ;; Visual state: extend the current selection - ((and (evil-visual-state-p) - (evil-called-interactively-p)) - ;; if we are at the beginning of the Visual selection, - ;; go to the left (negative COUNT); if at the end, - ;; go to the right (positive COUNT) - (setq dir evil-visual-direction - ,count (* ,count dir)) - (setq range (progn ,@body)) - (when (evil-range-p range) - (setq range (evil-expand-range range)) - (evil-set-type range (evil-type range type)) - (setq range (evil-contract-range range)) - ;; the beginning is mark and the end is point - ;; unless the selection goes the other way - (setq mark (evil-range-beginning range) - point (evil-range-end range) - type (evil-type range)) - (when (< dir 0) - (evil-swap mark point)) - ;; select the union - (evil-visual-make-selection mark point type))) - ;; not Visual state: return a pair of buffer positions - (t - (setq range (progn ,@body)) - (unless (evil-range-p range) - (setq ,count (- ,count) - range (progn ,@body))) - (when (evil-range-p range) - (setq selection (evil-range (point) (point) type)) - (if extend - (setq range (evil-range-union range selection)) - (evil-set-type range (evil-type range type))) - ;; ensure the range is properly expanded - (evil-contract-range range) - (evil-expand-range range) - (evil-set-range-properties range nil) - range)))))))) - -(defmacro evil-define-operator (operator args &rest body) - "Define an operator command OPERATOR. - -\(fn OPERATOR (BEG END ARGS...) DOC [[KEY VALUE]...] BODY...)" - (declare (indent defun) - (debug (&define name lambda-list - [&optional stringp] - [&rest keywordp sexp] - [&optional ("interactive" [&rest form])] - def-body))) - (let* ((args (delq '&optional args)) - (interactive (if (> (length args) 2) '("") '(""))) - (args (if (> (length args) 2) - `(,(nth 0 args) ,(nth 1 args) - &optional ,@(nthcdr 2 args)) - args)) - arg doc key keys visual) - ;; collect docstring - (when (and (> (length body) 1) - (or (eq (car-safe (car-safe body)) 'format) - (stringp (car-safe body)))) - (setq doc (pop body))) - ;; collect keywords - (setq keys (plist-put keys :move-point t)) - (while (keywordp (car-safe body)) - (setq key (pop body) - arg (pop body)) - (cond - ((eq key :keep-visual) - (setq visual arg)) - (t - (setq keys (plist-put keys key arg))))) - ;; collect `interactive' specification - (when (eq (car-safe (car-safe body)) 'interactive) - (setq interactive (cdr-safe (pop body)))) - ;; transform extended interactive specs - (setq interactive (apply #'evil-interactive-form interactive)) - (setq keys (evil-concat-plists keys (cdr-safe interactive)) - interactive (car-safe interactive)) - ;; macro expansion - `(evil-define-command ,operator ,args - ,@(when doc `(,doc)) - ,@keys - :keep-visual t - :suppress-operator t - (interactive - (let* ((evil-operator-range-motion - (when (evil-has-command-property-p ',operator :motion) - ;; :motion nil is equivalent to :motion undefined - (or (evil-get-command-property ',operator :motion) - #'undefined))) - (evil-operator-range-type - (evil-get-command-property ',operator :type)) - (orig (point)) - evil-operator-range-beginning - evil-operator-range-end - evil-inhibit-operator) - (setq evil-inhibit-operator-value nil - evil-this-operator this-command) - (prog1 ,interactive - (setq orig (point) - evil-inhibit-operator-value evil-inhibit-operator) - (if ,visual - (when (evil-visual-state-p) - (evil-visual-expand-region)) - (when (or (evil-visual-state-p) (region-active-p)) - (setq deactivate-mark t))) - (cond - ((evil-visual-state-p) - (evil-visual-rotate 'upper-left)) - ((evil-get-command-property ',operator :move-point) - (goto-char (or evil-operator-range-beginning orig))) - (t - (goto-char orig)))))) - (unwind-protect - (let ((evil-inhibit-operator evil-inhibit-operator-value)) - (unless (and evil-inhibit-operator - (evil-called-interactively-p)) - ,@body)) - (setq evil-inhibit-operator-value nil))))) - -;; this is used in the `interactive' specification of an operator command -(defun evil-operator-range (&optional return-type) - "Read a motion from the keyboard and return its buffer positions. -The return value is a list (BEG END), or (BEG END TYPE) if -RETURN-TYPE is non-nil." - (let ((motion (or evil-operator-range-motion - (when (evil-ex-p) #'evil-line))) - (type evil-operator-range-type) - (range (evil-range (point) (point))) - command count modifier) - (evil-save-echo-area - (cond - ;; Ex mode - ((and (evil-ex-p) evil-ex-range) - (setq range evil-ex-range)) - ;; Visual selection - ((and (not (evil-ex-p)) (evil-visual-state-p)) - (setq range (evil-visual-range))) - ;; active region - ((and (not (evil-ex-p)) (region-active-p)) - (setq range (evil-range (region-beginning) - (region-end) - (or evil-this-type 'exclusive)))) - (t - ;; motion - (evil-save-state - (unless motion - (evil-change-state 'operator) - ;; Make linewise operator shortcuts. E.g., "d" yields the - ;; shortcut "dd", and "g?" yields shortcuts "g??" and "g?g?". - (let ((keys (nth 2 (evil-extract-count (this-command-keys))))) - (setq keys (listify-key-sequence keys)) - (dotimes (var (length keys)) - (define-key evil-operator-shortcut-map - (vconcat (nthcdr var keys)) 'evil-line))) - ;; read motion from keyboard - (setq command (evil-read-motion motion) - motion (nth 0 command) - count (nth 1 command) - type (or type (nth 2 command)))) - (cond - ((eq motion #'undefined) - (setq range (if return-type '(nil nil nil) '(nil nil)) - motion nil)) - ((or (null motion) ; keyboard-quit - (evil-get-command-property motion :suppress-operator)) - (when (fboundp 'evil-repeat-abort) - (evil-repeat-abort)) - (setq quit-flag t - motion nil)) - (evil-repeat-count - (setq count evil-repeat-count - ;; only the first operator's count is overwritten - evil-repeat-count nil)) - ((or count current-prefix-arg) - ;; multiply operator count and motion count together - (setq count - (* (prefix-numeric-value count) - (prefix-numeric-value current-prefix-arg))))) - (when motion - (let ((evil-state 'operator) - mark-active) - ;; calculate motion range - (setq range (evil-motion-range - motion - count - type)))) - ;; update global variables - (setq evil-this-motion motion - evil-this-motion-count count - type (evil-type range type) - evil-this-type type)))) - (when (evil-range-p range) - (unless (or (null type) (eq (evil-type range) type)) - (evil-contract-range range) - (evil-set-type range type) - (evil-expand-range range)) - (evil-set-range-properties range nil) - (unless return-type - (evil-set-type range nil)) - (setq evil-operator-range-beginning (evil-range-beginning range) - evil-operator-range-end (evil-range-end range) - evil-operator-range-type (evil-type range))) - range))) - -(defmacro evil-define-type (type doc &rest body) - "Define type TYPE. -DOC is a general description and shows up in all docstrings. -It is followed by a list of keywords and functions: - -:expand FUNC Expansion function. This function should accept - two positions in the current buffer, BEG and END, - and return a pair of expanded buffer positions. -:contract FUNC The opposite of :expand, optional. -:one-to-one BOOL Whether expansion is one-to-one. This means that - :expand followed by :contract always returns the - original range. -:normalize FUNC Normalization function, optional. This function should - accept two unexpanded positions and adjust them before - expansion. May be used to deal with buffer boundaries. -:string FUNC Description function. This takes two buffer positions - and returns a human-readable string, for example, - \"2 lines\". - -If further keywords and functions are specified, they are assumed to -be transformations on buffer positions, like :expand and :contract. - -\(fn TYPE DOC [[KEY FUNC]...])" - (declare (indent defun) - (debug (&define name - [&optional stringp] - [&rest [keywordp function-form]]))) - (let (args defun-forms func key name plist string sym val) - ;; standard values - (setq plist (plist-put plist :one-to-one t)) - ;; keywords - (while (keywordp (car-safe body)) - (setq key (pop body) - val (pop body)) - (if (plist-member plist key) ; not a function - (setq plist (plist-put plist key val)) - (setq func val - sym (intern (replace-regexp-in-string - "^:" "" (symbol-name key))) - name (intern (format "evil-%s-%s" type sym)) - args (car (cdr-safe func)) - string (car (cdr (cdr-safe func))) - string (if (stringp string) - (format "%s\n\n" string) "") - plist (plist-put plist key `',name)) - (add-to-list - 'defun-forms - (cond - ((eq key :string) - `(defun ,name (beg end &rest properties) - ,(format "Return size of %s from BEG to END \ -with PROPERTIES.\n\n%s%s" type string doc) - (let ((beg (evil-normalize-position beg)) - (end (evil-normalize-position end)) - (type ',type) - plist range) - (when (and beg end) - (save-excursion - (evil-sort beg end) - (unless (plist-get properties :expanded) - (setq range (apply #'evil-expand - beg end type properties) - beg (evil-range-beginning range) - end (evil-range-end range) - type (evil-type range type) - plist (evil-range-properties range)) - (setq properties - (evil-concat-plists properties plist))) - (or (apply #',func beg end - (when ,(> (length args) 2) - properties)) - "")))))) - (t - `(defun ,name (beg end &rest properties) - ,(format "Perform %s transformation on %s from BEG to END \ -with PROPERTIES.\n\n%s%s" sym type string doc) - (let ((beg (evil-normalize-position beg)) - (end (evil-normalize-position end)) - (type ',type) - plist range) - (when (and beg end) - (save-excursion - (evil-sort beg end) - (when (memq ,key '(:expand :contract)) - (setq properties - (plist-put properties - :expanded - ,(eq key :expand)))) - (setq range (or (apply #',func beg end - (when ,(> (length args) 2) - properties)) - (apply #'evil-range - beg end type properties)) - beg (evil-range-beginning range) - end (evil-range-end range) - type (evil-type range type) - plist (evil-range-properties range)) - (setq properties - (evil-concat-plists properties plist)) - (apply #'evil-range beg end type properties))))))) - t))) - ;; :one-to-one requires both or neither of :expand and :contract - (when (plist-get plist :expand) - (setq plist (plist-put plist :one-to-one - (and (plist-get plist :contract) - (plist-get plist :one-to-one))))) - `(progn - (evil-put-property 'evil-type-properties ',type ,@plist) - ,@defun-forms - ',type))) - -(defmacro evil-define-interactive-code (code &rest body) - "Define an interactive code. -PROMPT, if given, is the remainder of the interactive string -up to the next newline. Command properties may be specified -via KEY-VALUE pairs. BODY should evaluate to a list of values. - -\(fn CODE (PROMPT) [[KEY VALUE]...] BODY...)" - (declare (indent defun)) - (let* ((args (when (and (> (length body) 1) - (listp (car-safe body))) - (pop body))) - (doc (when (stringp (car-safe body)) (pop body))) - func properties) - (while (keywordp (car-safe body)) - (setq properties - (append properties (list (pop body) (pop body))))) - (cond - (args - (setq func `(lambda ,args - ,@(when doc `(,doc)) - ,@body))) - ((> (length body) 1) - (setq func `(progn ,@body))) - (t - (setq func (car body)))) - `(eval-and-compile - (let* ((code ,code) - (entry (assoc code evil-interactive-alist)) - (value (cons ',func ',properties))) - (if entry - (setcdr entry value) - (push (cons code value) evil-interactive-alist)) - code)))) - -;;; Highlighting - -(when (fboundp 'font-lock-add-keywords) - (font-lock-add-keywords - 'emacs-lisp-mode - ;; Match all `evil-define-' forms except `evil-define-key'. - ;; (In the interests of speed, this expression is incomplete - ;; and does not match all three-letter words.) - '(("(\\(evil-\\(?:ex-\\)?define-\ -\\(?:[^ k][^ e][^ y]\\|[-[:word:]]\\{4,\\}\\)\\)\ -\\>[ \f\t\n\r\v]*\\(\\sw+\\)?" - (1 font-lock-keyword-face) - (2 font-lock-function-name-face nil t)) - ("(\\(evil-\\(?:delay\\|narrow\\|signal\\|save\\|with\\(?:out\\)?\\)\ -\\(?:-[-[:word:]]+\\)?\\)\\>\[ \f\t\n\r\v]+" - 1 font-lock-keyword-face) - ("(\\(evil-\\(?:[-[:word:]]\\)*loop\\)\\>[ \f\t\n\r\v]+" - 1 font-lock-keyword-face)))) - -(provide 'evil-macros) - -;;; evil-macros.el ends here diff --git a/elpa/evil-1.0.1/evil-maps.el b/elpa/evil-1.0.1/evil-maps.el deleted file mode 100644 index a01890e1..00000000 --- a/elpa/evil-1.0.1/evil-maps.el +++ /dev/null @@ -1,464 +0,0 @@ -;;; evil-maps.el --- Default keymaps - -;; Author: Vegard Ă˜ye -;; Maintainer: Vegard Ă˜ye - -;; Version: 1.0.1 - -;; -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; This file is part of Evil. -;; -;; Evil is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; Evil is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Evil. If not, see . - -(require 'evil-states) -(require 'evil-ex) - -;;; Code: - -;;; Normal state - -(define-key evil-normal-state-map "a" 'evil-append) -(define-key evil-normal-state-map "A" 'evil-append-line) -(define-key evil-normal-state-map "c" 'evil-change) -(define-key evil-normal-state-map "C" 'evil-change-line) -(define-key evil-normal-state-map "d" 'evil-delete) -(define-key evil-normal-state-map "D" 'evil-delete-line) -(define-key evil-normal-state-map "i" 'evil-insert) -(define-key evil-normal-state-map "I" 'evil-insert-line) -(define-key evil-normal-state-map "J" 'evil-join) -(define-key evil-normal-state-map "m" 'evil-set-marker) -(define-key evil-normal-state-map "o" 'evil-open-below) -(define-key evil-normal-state-map "O" 'evil-open-above) -(define-key evil-normal-state-map "p" 'evil-paste-after) -(define-key evil-normal-state-map "P" 'evil-paste-before) -(define-key evil-normal-state-map "q" 'evil-record-macro) -(define-key evil-normal-state-map "r" 'evil-replace) -(define-key evil-normal-state-map "R" 'evil-replace-state) -(define-key evil-normal-state-map "s" 'evil-substitute) -(define-key evil-normal-state-map "S" 'evil-change-whole-line) -(define-key evil-normal-state-map "x" 'evil-delete-char) -(define-key evil-normal-state-map "X" 'evil-delete-backward-char) -(define-key evil-normal-state-map "y" 'evil-yank) -(define-key evil-normal-state-map "Y" 'evil-yank-line) -(define-key evil-normal-state-map "&" 'evil-ex-repeat-substitute) -(define-key evil-normal-state-map "g&" 'evil-ex-repeat-global-substitute) -(define-key evil-normal-state-map "g8" 'what-cursor-position) -(define-key evil-normal-state-map "ga" 'what-cursor-position) -(define-key evil-normal-state-map "gi" 'evil-insert-resume) -(define-key evil-normal-state-map "gJ" 'evil-join-whitespace) -(define-key evil-normal-state-map "gq" 'evil-fill-and-move) -(define-key evil-normal-state-map "gw" 'evil-fill) -(define-key evil-normal-state-map "gu" 'evil-downcase) -(define-key evil-normal-state-map "gU" 'evil-upcase) -(define-key evil-normal-state-map "gf" 'find-file-at-point) -(define-key evil-normal-state-map "gF" 'evil-find-file-at-point-with-line) -(define-key evil-normal-state-map "g?" 'evil-rot13) -(define-key evil-normal-state-map "g~" 'evil-invert-case) -(define-key evil-normal-state-map "zo" 'evil-open-fold) -(define-key evil-normal-state-map "zc" 'evil-close-fold) -(define-key evil-normal-state-map "za" 'evil-toggle-fold) -(define-key evil-normal-state-map "zr" 'evil-open-folds) -(define-key evil-normal-state-map "zm" 'evil-close-folds) -(define-key evil-normal-state-map "\C-n" 'evil-paste-pop-next) -(define-key evil-normal-state-map "\C-p" 'evil-paste-pop) -(define-key evil-normal-state-map "\C-t" 'pop-tag-mark) -(define-key evil-normal-state-map (kbd "C-.") 'evil-repeat-pop) -(define-key evil-normal-state-map (kbd "M-.") 'evil-repeat-pop-next) -(define-key evil-normal-state-map "." 'evil-repeat) -(define-key evil-normal-state-map "@" 'evil-execute-macro) -(define-key evil-normal-state-map "\"" 'evil-use-register) -(define-key evil-normal-state-map "~" 'evil-invert-char) -(define-key evil-normal-state-map "=" 'evil-indent) -(define-key evil-normal-state-map "<" 'evil-shift-left) -(define-key evil-normal-state-map ">" 'evil-shift-right) -(define-key evil-normal-state-map "ZZ" 'evil-save-modified-and-close) -(define-key evil-normal-state-map "ZQ" 'evil-quit) -(define-key evil-normal-state-map (kbd "DEL") 'evil-backward-char) -(define-key evil-normal-state-map [escape] 'evil-force-normal-state) -(define-key evil-normal-state-map [remap cua-paste-pop] 'evil-paste-pop) -(define-key evil-normal-state-map [remap yank-pop] 'evil-paste-pop) - -;; go to last change -(define-key evil-normal-state-map "g;" 'goto-last-change) -(define-key evil-normal-state-map "g," 'goto-last-change-reverse) - -;; undo -(define-key evil-normal-state-map "u" 'undo) - -(when (fboundp 'undo-tree-undo) - (define-key evil-normal-state-map "u" 'undo-tree-undo) - (define-key evil-normal-state-map "\C-r" 'undo-tree-redo)) - -;; window commands -(define-prefix-command 'evil-window-map) -(define-key evil-window-map "b" 'evil-window-bottom-right) -(define-key evil-window-map "c" 'delete-window) -(define-key evil-window-map "h" 'evil-window-left) -(define-key evil-window-map "H" 'evil-window-move-far-left) -(define-key evil-window-map "j" 'evil-window-down) -(define-key evil-window-map "J" 'evil-window-move-very-bottom) -(define-key evil-window-map "k" 'evil-window-up) -(define-key evil-window-map "K" 'evil-window-move-very-top) -(define-key evil-window-map "l" 'evil-window-right) -(define-key evil-window-map "L" 'evil-window-move-far-right) -(define-key evil-window-map "n" 'evil-window-new) -(define-key evil-window-map "o" 'delete-other-windows) -(define-key evil-window-map "p" 'evil-window-mru) -(define-key evil-window-map "r" 'evil-window-rotate-downwards) -(define-key evil-window-map "R" 'evil-window-rotate-upwards) -(define-key evil-window-map "s" 'split-window-vertically) -(define-key evil-window-map "S" 'split-window-vertically) -(define-key evil-window-map "t" 'evil-window-top-left) -(define-key evil-window-map "v" 'split-window-horizontally) -(define-key evil-window-map "w" 'evil-window-next) -(define-key evil-window-map "W" 'evil-window-prev) -(define-key evil-window-map "+" 'evil-window-increase-height) -(define-key evil-window-map "-" 'evil-window-decrease-height) -(define-key evil-window-map "_" 'evil-window-set-height) -(define-key evil-window-map "<" 'evil-window-decrease-width) -(define-key evil-window-map ">" 'evil-window-increase-width) -(define-key evil-window-map "=" 'balance-windows) -(define-key evil-window-map "|" 'evil-window-set-width) -(define-key evil-window-map "\C-b" 'evil-window-bottom-right) -(define-key evil-window-map "\C-c" 'delete-window) -(define-key evil-window-map "\C-H" 'evil-window-move-far-left) -(define-key evil-window-map "\C-h" 'evil-window-left) -(define-key evil-window-map "\C-J" 'evil-window-move-very-bottom) -(define-key evil-window-map "\C-j" 'evil-window-down) -(define-key evil-window-map "\C-K" 'evil-window-move-very-top) -(define-key evil-window-map "\C-k" 'evil-window-up) -(define-key evil-window-map "\C-L" 'evil-window-move-far-right) -(define-key evil-window-map "\C-l" 'evil-window-right) -(define-key evil-window-map "\C-n" 'evil-window-new) -(define-key evil-window-map "\C-o" 'delete-other-windows) -(define-key evil-window-map "\C-p" 'evil-window-mru) -(define-key evil-window-map "\C-r" 'evil-window-rotate-downwards) -(define-key evil-window-map "\C-R" 'evil-window-rotate-upwards) -(define-key evil-window-map "\C-s" 'split-window-vertically) -(define-key evil-window-map "\C-S" 'split-window-vertically) -(define-key evil-window-map "\C-t" 'evil-window-top-left) -(define-key evil-window-map "\C-v" 'split-window-horizontally) -(define-key evil-window-map "\C-w" 'evil-window-next) -(define-key evil-window-map "\C-W" 'evil-window-prev) -(define-key evil-window-map "\C-_" 'evil-window-set-height) -(define-key evil-window-map "\C-f" 'ffap-other-window) - -;;; Motion state - -;; "0" is a special command when called first -(evil-redirect-digit-argument evil-motion-state-map "0" 'evil-beginning-of-line) -(define-key evil-motion-state-map "1" 'digit-argument) -(define-key evil-motion-state-map "2" 'digit-argument) -(define-key evil-motion-state-map "3" 'digit-argument) -(define-key evil-motion-state-map "4" 'digit-argument) -(define-key evil-motion-state-map "5" 'digit-argument) -(define-key evil-motion-state-map "6" 'digit-argument) -(define-key evil-motion-state-map "7" 'digit-argument) -(define-key evil-motion-state-map "8" 'digit-argument) -(define-key evil-motion-state-map "9" 'digit-argument) -(define-key evil-motion-state-map "b" 'evil-backward-word-begin) -(define-key evil-motion-state-map "B" 'evil-backward-WORD-begin) -(define-key evil-motion-state-map "e" 'evil-forward-word-end) -(define-key evil-motion-state-map "E" 'evil-forward-WORD-end) -(define-key evil-motion-state-map "f" 'evil-find-char) -(define-key evil-motion-state-map "F" 'evil-find-char-backward) -(define-key evil-motion-state-map "G" 'evil-goto-line) -(define-key evil-motion-state-map "h" 'evil-backward-char) -(define-key evil-motion-state-map "H" 'evil-window-top) -(define-key evil-motion-state-map "j" 'evil-next-line) -(define-key evil-motion-state-map "k" 'evil-previous-line) -(define-key evil-motion-state-map "l" 'evil-forward-char) -(define-key evil-motion-state-map " " 'evil-forward-char) -(define-key evil-motion-state-map "K" 'evil-lookup) -(define-key evil-motion-state-map "L" 'evil-window-bottom) -(define-key evil-motion-state-map "M" 'evil-window-middle) -(define-key evil-motion-state-map "n" 'evil-search-next) -(define-key evil-motion-state-map "N" 'evil-search-previous) -(define-key evil-motion-state-map "t" 'evil-find-char-to) -(define-key evil-motion-state-map "T" 'evil-find-char-to-backward) -(define-key evil-motion-state-map "w" 'evil-forward-word-begin) -(define-key evil-motion-state-map "W" 'evil-forward-WORD-begin) -(define-key evil-motion-state-map "gd" 'evil-goto-definition) -(define-key evil-motion-state-map "ge" 'evil-backward-word-end) -(define-key evil-motion-state-map "gE" 'evil-backward-WORD-end) -(define-key evil-motion-state-map "gg" 'evil-goto-first-line) -(define-key evil-motion-state-map "gj" 'evil-next-visual-line) -(define-key evil-motion-state-map "gk" 'evil-previous-visual-line) -(define-key evil-motion-state-map "g0" 'evil-beginning-of-visual-line) -(define-key evil-motion-state-map "g_" 'evil-last-non-blank) -(define-key evil-motion-state-map "g^" 'evil-first-non-blank-of-visual-line) -(define-key evil-motion-state-map "g$" 'evil-end-of-visual-line) -(define-key evil-motion-state-map "g\C-]" 'find-tag) -(define-key evil-motion-state-map "{" 'evil-backward-paragraph) -(define-key evil-motion-state-map "}" 'evil-forward-paragraph) -(define-key evil-motion-state-map "#" 'evil-search-symbol-backward) -(define-key evil-motion-state-map "$" 'evil-end-of-line) -(define-key evil-motion-state-map "%" 'evil-jump-item) -(define-key evil-motion-state-map "`" 'evil-goto-mark) -(define-key evil-motion-state-map "'" 'evil-goto-mark-line) -(define-key evil-motion-state-map "(" 'evil-backward-sentence) -(define-key evil-motion-state-map ")" 'evil-forward-sentence) -(define-key evil-motion-state-map "]]" 'evil-forward-section-begin) -(define-key evil-motion-state-map "][" 'evil-forward-section-end) -(define-key evil-motion-state-map "[[" 'evil-backward-section-begin) -(define-key evil-motion-state-map "[]" 'evil-backward-section-end) -(define-key evil-motion-state-map "[(" 'evil-previous-open-paren) -(define-key evil-motion-state-map "])" 'evil-next-close-paren) -(define-key evil-motion-state-map "[{" 'evil-previous-open-brace) -(define-key evil-motion-state-map "]}" 'evil-next-close-brace) -(define-key evil-motion-state-map "*" 'evil-search-symbol-forward) -(define-key evil-motion-state-map "," 'evil-repeat-find-char-reverse) -(define-key evil-motion-state-map "/" 'evil-search-forward) -(define-key evil-motion-state-map ";" 'evil-repeat-find-char) -(define-key evil-motion-state-map "?" 'evil-search-backward) -(define-key evil-motion-state-map "|" 'evil-goto-column) -(define-key evil-motion-state-map "^" 'evil-first-non-blank) -(define-key evil-motion-state-map "+" 'evil-next-line-first-non-blank) -(define-key evil-motion-state-map "_" 'evil-next-line-1-first-non-blank) -(define-key evil-motion-state-map "-" 'evil-previous-line-first-non-blank) -(define-key evil-motion-state-map "\C-w" 'evil-window-map) -(define-key evil-motion-state-map "\C-]" 'evil-jump-to-tag) -(define-key evil-motion-state-map (kbd "C-b") 'evil-scroll-page-up) -(define-key evil-motion-state-map (kbd "C-d") 'evil-scroll-down) -(define-key evil-motion-state-map (kbd "C-e") 'evil-scroll-line-down) -(define-key evil-motion-state-map (kbd "C-f") 'evil-scroll-page-down) -(define-key evil-motion-state-map (kbd "C-o") 'evil-jump-backward) -(define-key evil-motion-state-map (kbd "C-y") 'evil-scroll-line-up) -(define-key evil-motion-state-map (kbd "RET") 'evil-ret) -(define-key evil-motion-state-map "\\" 'evil-execute-in-emacs-state) -(define-key evil-motion-state-map "z^" 'evil-scroll-top-line-to-bottom) -(define-key evil-motion-state-map "z+" 'evil-scroll-bottom-line-to-top) -(define-key evil-motion-state-map "zt" 'evil-scroll-line-to-top) -;; TODO: z RET has an advanced form taking an count before the RET -;; but this requires again a special state with a single command -;; bound to RET -(define-key evil-motion-state-map (vconcat "z" [return]) "zt^") -(define-key evil-motion-state-map (kbd "z RET") (vconcat "z" [return])) -(define-key evil-motion-state-map "zz" 'evil-scroll-line-to-center) -(define-key evil-motion-state-map "z." "zz^") -(define-key evil-motion-state-map "zb" 'evil-scroll-line-to-bottom) -(define-key evil-motion-state-map "z-" "zb^") -(define-key evil-motion-state-map "v" 'evil-visual-char) -(define-key evil-motion-state-map "V" 'evil-visual-line) -(define-key evil-motion-state-map "\C-v" 'evil-visual-block) -(define-key evil-motion-state-map "gv" 'evil-visual-restore) -(define-key evil-motion-state-map (kbd "C-^") 'evil-buffer) -(define-key evil-motion-state-map [left] 'evil-backward-char) -(define-key evil-motion-state-map [right] 'evil-forward-char) -(define-key evil-motion-state-map [up] 'evil-previous-line) -(define-key evil-motion-state-map [down] 'evil-next-line) -(define-key evil-motion-state-map - (read-kbd-macro evil-toggle-key) 'evil-emacs-state) - -;; text objects -(define-key evil-outer-text-objects-map "w" 'evil-a-word) -(define-key evil-outer-text-objects-map "W" 'evil-a-WORD) -(define-key evil-outer-text-objects-map "s" 'evil-a-sentence) -(define-key evil-outer-text-objects-map "p" 'evil-a-paragraph) -(define-key evil-outer-text-objects-map "b" 'evil-a-paren) -(define-key evil-outer-text-objects-map "(" 'evil-a-paren) -(define-key evil-outer-text-objects-map ")" 'evil-a-paren) -(define-key evil-outer-text-objects-map "[" 'evil-a-bracket) -(define-key evil-outer-text-objects-map "]" 'evil-a-bracket) -(define-key evil-outer-text-objects-map "B" 'evil-a-curly) -(define-key evil-outer-text-objects-map "{" 'evil-a-curly) -(define-key evil-outer-text-objects-map "}" 'evil-a-curly) -(define-key evil-outer-text-objects-map "<" 'evil-an-angle) -(define-key evil-outer-text-objects-map ">" 'evil-an-angle) -(define-key evil-outer-text-objects-map "'" 'evil-a-single-quote) -(define-key evil-outer-text-objects-map "\"" 'evil-a-double-quote) -(define-key evil-outer-text-objects-map "`" 'evil-a-back-quote) -(define-key evil-outer-text-objects-map "t" 'evil-a-tag) -(define-key evil-outer-text-objects-map "o" 'evil-a-symbol) -(define-key evil-inner-text-objects-map "w" 'evil-inner-word) -(define-key evil-inner-text-objects-map "W" 'evil-inner-WORD) -(define-key evil-inner-text-objects-map "s" 'evil-inner-sentence) -(define-key evil-inner-text-objects-map "p" 'evil-inner-paragraph) -(define-key evil-inner-text-objects-map "b" 'evil-inner-paren) -(define-key evil-inner-text-objects-map "(" 'evil-inner-paren) -(define-key evil-inner-text-objects-map ")" 'evil-inner-paren) -(define-key evil-inner-text-objects-map "[" 'evil-inner-bracket) -(define-key evil-inner-text-objects-map "]" 'evil-inner-bracket) -(define-key evil-inner-text-objects-map "B" 'evil-inner-curly) -(define-key evil-inner-text-objects-map "{" 'evil-inner-curly) -(define-key evil-inner-text-objects-map "}" 'evil-inner-curly) -(define-key evil-inner-text-objects-map "<" 'evil-inner-angle) -(define-key evil-inner-text-objects-map ">" 'evil-inner-angle) -(define-key evil-inner-text-objects-map "'" 'evil-inner-single-quote) -(define-key evil-inner-text-objects-map "\"" 'evil-inner-double-quote) -(define-key evil-inner-text-objects-map "`" 'evil-inner-back-quote) -(define-key evil-inner-text-objects-map "t" 'evil-inner-tag) -(define-key evil-inner-text-objects-map "o" 'evil-inner-symbol) - -(when evil-want-C-i-jump - (define-key evil-motion-state-map (kbd "C-i") 'evil-jump-forward)) - -(when evil-want-C-u-scroll - (define-key evil-motion-state-map (kbd "C-u") 'evil-scroll-up)) - -;;; Visual state - -(define-key evil-visual-state-map "A" 'evil-append) -(define-key evil-visual-state-map "I" 'evil-insert) -(define-key evil-visual-state-map "o" 'exchange-point-and-mark) -(define-key evil-visual-state-map "O" 'evil-visual-exchange-corners) -(define-key evil-visual-state-map "R" 'evil-change) -(define-key evil-visual-state-map "u" 'evil-downcase) -(define-key evil-visual-state-map "U" 'evil-upcase) -(define-key evil-visual-state-map "a" evil-outer-text-objects-map) -(define-key evil-visual-state-map "i" evil-inner-text-objects-map) -(define-key evil-visual-state-map [remap evil-repeat] 'undefined) -(define-key evil-visual-state-map [escape] 'evil-exit-visual-state) - -;;; Operator-Pending state - -(define-key evil-operator-state-map "a" evil-outer-text-objects-map) -(define-key evil-operator-state-map "i" evil-inner-text-objects-map) -;; (define-key evil-operator-state-map [escape] 'keyboard-quit) - -;;; Insert state - -(define-key evil-insert-state-map "\C-k" 'evil-insert-digraph) -(define-key evil-insert-state-map "\C-o" 'evil-execute-in-normal-state) -(define-key evil-insert-state-map "\C-r" 'evil-paste-from-register) -(define-key evil-insert-state-map "\C-y" 'evil-copy-from-above) -(define-key evil-insert-state-map "\C-e" 'evil-copy-from-below) -(define-key evil-insert-state-map "\C-n" 'evil-complete-next) -(define-key evil-insert-state-map "\C-p" 'evil-complete-previous) -(define-key evil-insert-state-map "\C-x\C-n" 'evil-complete-next-line) -(define-key evil-insert-state-map "\C-x\C-p" 'evil-complete-previous-line) -(define-key evil-insert-state-map [remap newline] 'evil-ret) -(define-key evil-insert-state-map [remap newline-and-indent] 'evil-ret) -(define-key evil-insert-state-map [escape] 'evil-normal-state) -(define-key evil-insert-state-map - (read-kbd-macro evil-toggle-key) 'evil-emacs-state) - -(if evil-want-C-w-delete - (define-key evil-insert-state-map "\C-w" 'evil-delete-backward-word) - (define-key evil-insert-state-map "\C-w" 'evil-window-map)) - -;;; Replace state - -(define-key evil-replace-state-map (kbd "DEL") 'evil-replace-backspace) -(define-key evil-replace-state-map [escape] 'evil-normal-state) - -;;; Emacs state - -(define-key evil-emacs-state-map - (read-kbd-macro evil-toggle-key) 'evil-exit-emacs-state) - -(when evil-want-C-w-in-emacs-state - (define-key evil-emacs-state-map "\C-w" 'evil-window-map)) - -;;; Minibuffer - -(define-key minibuffer-local-map "\C-p" 'evil-complete-next) -(define-key minibuffer-local-map "\C-n" 'evil-complete-previous) -(define-key minibuffer-local-map "\C-x\C-p" 'evil-complete-next-line) -(define-key minibuffer-local-map "\C-x\C-n" 'evil-complete-previous-line) - -;;; Mouse -(define-key evil-motion-state-map [down-mouse-1] 'evil-mouse-drag-region) -(define-key evil-visual-state-map [mouse-2] 'evil-exit-visual-and-repeat) -(define-key evil-normal-state-map [mouse-2] 'mouse-yank-primary) -(define-key evil-insert-state-map [mouse-2] 'mouse-yank-primary) - -;; Ex -(define-key evil-motion-state-map ":" 'evil-ex) - -(evil-ex-define-cmd "e[dit]" 'evil-edit) -(evil-ex-define-cmd "w[rite]" 'evil-write) -(evil-ex-define-cmd "wa[ll]" 'evil-write-all) -(evil-ex-define-cmd "sav[eas]" 'evil-save) -(evil-ex-define-cmd "r[ead]" 'evil-read) -(evil-ex-define-cmd "b[uffer]" 'evil-buffer) -(evil-ex-define-cmd "bn[ext]" 'evil-next-buffer) -(evil-ex-define-cmd "bp[revious]" 'evil-prev-buffer) -(evil-ex-define-cmd "bN[ext]" "bprevious") -(evil-ex-define-cmd "sb[uffer]" 'evil-split-buffer) -(evil-ex-define-cmd "sbn[ext]" 'evil-split-next-buffer) -(evil-ex-define-cmd "sbp[revious]" 'evil-split-prev-buffer) -(evil-ex-define-cmd "sbN[ext]" "sbprevious") -(evil-ex-define-cmd "buffers" 'evil-show-buffers) -(evil-ex-define-cmd "files" "buffers") -(evil-ex-define-cmd "ls" "buffers") - -(evil-ex-define-cmd "c[hange]" 'evil-change) -(evil-ex-define-cmd "d[elete]" 'evil-delete) -(evil-ex-define-cmd "go[to]" 'evil-goto-char) -(evil-ex-define-cmd "j[oin]" 'evil-join) -(evil-ex-define-cmd "le[ft]" 'evil-align-left) -(evil-ex-define-cmd "ri[ght]" 'evil-align-right) -(evil-ex-define-cmd "ce[nter]" 'evil-align-center) -(evil-ex-define-cmd "sp[lit]" 'evil-window-split) -(evil-ex-define-cmd "vs[plit]" 'evil-window-vsplit) -(evil-ex-define-cmd "new" 'evil-window-new) -(evil-ex-define-cmd "vne[w]" 'evil-window-vnew) -(evil-ex-define-cmd "clo[se]" 'delete-window) -(evil-ex-define-cmd "on[ly]" 'delete-other-windows) -(evil-ex-define-cmd "q[uit]" 'evil-quit) -(evil-ex-define-cmd "wq" 'evil-save-and-close) -(evil-ex-define-cmd "quita[ll]" 'evil-quit-all) -(evil-ex-define-cmd "qa[ll]" "quitall") -(evil-ex-define-cmd "wqa[ll]" 'evil-save-and-quit) -(evil-ex-define-cmd "xa[ll]" "wqall") -(evil-ex-define-cmd "x[it]" 'evil-save-modified-and-close) -(evil-ex-define-cmd "exi[t]" 'evil-save-modified-and-close) -(evil-ex-define-cmd "bd[elete]" 'evil-delete-buffer) -(evil-ex-define-cmd "g[lobal]" 'evil-ex-global) -(evil-ex-define-cmd "v[global]" 'evil-ex-global-inverted) -(evil-ex-define-cmd "s[ubstitute]" 'evil-ex-substitute) -(evil-ex-define-cmd "&" 'evil-ex-repeat-substitute) -(evil-ex-define-cmd "&&" 'evil-ex-repeat-substitute-with-flags) -(evil-ex-define-cmd "~" 'evil-ex-repeat-substitute-with-search) -(evil-ex-define-cmd "~&" 'evil-ex-repeat-substitute-with-search-and-flags) -(evil-ex-define-cmd "registers" 'evil-show-registers) -(evil-ex-define-cmd "marks" 'evil-show-marks) -(evil-ex-define-cmd "ju[mps]" 'evil-show-jumps) -(evil-ex-define-cmd "noh[lsearch]" 'evil-ex-nohighlight) -(evil-ex-define-cmd "f[ile]" 'evil-show-file-info) -(evil-ex-define-cmd "<" 'evil-shift-left) -(evil-ex-define-cmd ">" 'evil-shift-right) -(evil-ex-define-cmd "=" 'evil-ex-line-number) -(evil-ex-define-cmd "!" 'evil-shell-command) -(evil-ex-define-cmd "@:" 'evil-ex-repeat) -(evil-ex-define-cmd "set-initial-state" 'evil-ex-set-initial-state) - -(when (fboundp 'undo-tree-visualize) - (evil-ex-define-cmd "undol[ist]" 'undo-tree-visualize) - (evil-ex-define-cmd "ul" 'undo-tree-visualize)) - -;; completion -(define-key evil-ex-search-keymap "\d" #'evil-ex-delete-backward-char) -(define-key evil-ex-completion-map "\d" #'evil-ex-delete-backward-char) -(define-key evil-ex-completion-map "\t" #'evil-ex-run-completion-at-point) -(define-key evil-ex-completion-map [tab] #'evil-ex-run-completion-at-point) -(define-key evil-ex-completion-map "\C-p" #'evil-ex-run-completion-at-point) -(define-key evil-ex-completion-map "\C-n" #'evil-ex-run-completion-at-point) -(define-key evil-ex-completion-map "?" nil) - -;; evil-read-key -(define-key evil-read-key-map (kbd "ESC") #'keyboard-quit) -(define-key evil-read-key-map (kbd "C-]") #'keyboard-quit) -(define-key evil-read-key-map (kbd "C-q") #'evil-read-quoted-char) -(define-key evil-read-key-map (kbd "C-v") #'evil-read-quoted-char) -(define-key evil-read-key-map "\r" "\n") - -(provide 'evil-maps) - -;;; evil-maps.el ends here diff --git a/elpa/evil-1.0.1/evil-pkg.el b/elpa/evil-1.0.1/evil-pkg.el deleted file mode 100644 index a690aebd..00000000 --- a/elpa/evil-1.0.1/evil-pkg.el +++ /dev/null @@ -1,5 +0,0 @@ -(define-package - "evil" - "1.0.1" - "Extensible Vi layer for Emacs." - '((undo-tree "0.5.1"))) diff --git a/elpa/evil-1.0.1/evil-repeat.el b/elpa/evil-1.0.1/evil-repeat.el deleted file mode 100644 index 5dc80375..00000000 --- a/elpa/evil-1.0.1/evil-repeat.el +++ /dev/null @@ -1,607 +0,0 @@ -;;; evil-repeat.el --- Repeat system - -;; Author: Frank Fischer -;; Maintainer: Vegard Ă˜ye - -;; Version: 1.0.1 - -;; -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; This file is part of Evil. -;; -;; Evil is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; Evil is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Evil. If not, see . - -;;; Commentary: - -;; A repeat begins when leaving Normal state; it ends when re-entering -;; Normal state. The diagram below shows possible routes between -;; Normal state (N), Insert state (I), Visual state (V), -;; Operator-Pending state (O) and Replace state (R). (Emacs state -;; is an exception: nothing is repeated in that state.) -;; ___ -;; / \ -;; | R | -;; \___/ -;; ^ | -;; | | -;; ___ |___V ___ -;; / \ <------- / \ -------> / \ -;; | V | | N | | O | -;; \___/ -------> \___/ <------- \___/ -;; | | ^ | -;; | | | | -;; | V___| | -;; | / \ | -;; +--------> | I | <--------+ -;; \___/ -;; -;; The recording of a repeat is started in one of two cases: Either a -;; command is about being executed (in pre-command-hook) or normal -;; state is exited. The recording is stopped whenever a command has -;; being completed and evil is in normal state afterwards. Therefore, -;; a non-inserting command in normal-state is recorded as a single -;; repeat unit. In contrast, if the command leaves normal state and -;; starts insert-state, all commands that are executed until -;; insert-state is left and normal state is reactivated are recorded -;; together in one repeat unit. In other words, a repeat unit consists -;; of all commands that are executed starting and ending in normal -;; state. -;; -;; Not all commands are recored. There are several commands that are -;; completely ignored and other commands that even abort the currently -;; active recording, e.g., commands that change the current buffer. -;; -;; During recording the repeat information is appended to the variable -;; `evil-repeat-info', which is cleared when the recording -;; starts. This accumulated repeat information is put into the -;; `evil-repeat-ring' when the recording is finished. The dot command, -;; `\[evil-repeat]' (`evil-repeat') replays the most recent entry in -;; the ring, preceeding repeats can be replayed using -;; `\[evil-repeat-pop]' (`evil-repeat-pop'). -;; -;; Repeat information can be stored in almost arbitrary form. How the -;; repeat information for each single command is recored is determined -;; by the :repeat property of the command. This property has the -;; following interpretation: -;; -;; t record commands by storing the key-sequence that invoked it -;; nil ignore this command completely -;; ignore synonym to nil -;; motion command is recorded by storing the key-sequence but only in -;; insert state, otherwise it is ignored. -;; abort stop recording of repeat information immediately -;; change record commands by storing buffer changes -;; SYMBOL if SYMBOL is contained as key in `evil-repeat-types' -;; call the corresponding (function-)value, otherwise -;; call the function associated with SYMBOL. In both -;; cases the function should take exactly one argument -;; which is either 'pre or 'post depending on whether -;; the function is called before or after the execution -;; of the command. -;; -;; Therefore, using a certain SYMBOL one can write specific repeation -;; functions for each command. -;; -;; Each value of ring `evil-repeat-info', i.e., each single repeat -;; information must be one of the following two possibilities: -;; If element is a sequence, it is regarded as a key-sequence to -;; be repeated. Otherwise the element must be a list -;; (FUNCTION PARAMS ...) which will be called using -;; (apply FUNCTION PARAMS) whenever this repeat is being executed. -;; -;; A user supplied repeat function can use the functions -;; `evil-record-repeat' to append further repeat-information of the -;; form described above to `evil-repeat-info'. See the implementation -;; of `evil-repeat-keystrokes' and `evil-repeat-changes' for examples. -;; Those functions are called in different situations before and after -;; the execution of a command. Each function should take one argument -;; which can be either 'pre, 'post, 'pre-operator or 'post-operator -;; specifying when the repeat function has been called. If the command -;; is a usual command the function is called with 'pre before the -;; command is executed and with 'post after the command has been -;; executed. -;; -;; The repeat information is executed with `evil-execute-repeat-info', -;; which passes key-sequence elements to `execute-kbd-macro' and -;; executes other elements as defined above. A special version is -;; `evil-execute-repeat-info-with-count'. This function works as -;; `evil-execute-repeat-info', but replaces the count of the first -;; command. This is done by parsing the key-sequence, ignoring all -;; calls to `digit-prefix-argument' and `negative-argument', and -;; prepending the count as a string to the vector of the remaining -;; key-sequence. - -(require 'evil-states) - -;;; Code: - -(declare-function evil-visual-state-p "evil-visual") -(declare-function evil-visual-range "evil-visual") -(declare-function evil-visual-char "evil-visual") -(declare-function evil-visual-line "evil-visual") -(declare-function evil-visual-block "evil-visual") - -(defsubst evil-repeat-recording-p () - "Returns non-nil iff a recording is in progress." - (eq evil-recording-repeat t)) - -(defun evil-repeat-start () - "Start recording a new repeat into `evil-repeat-info'." - (evil-repeat-reset t) - (evil-repeat-record-buffer) - (when (evil-visual-state-p) - (let* ((range (evil-visual-range)) - (beg (evil-range-beginning range)) - (end (1- (evil-range-end range))) - (nfwdlines (- (line-number-at-pos end) - (line-number-at-pos beg)))) - (evil-repeat-record - (cond - ((eq evil-visual-selection 'char) - (list #'evil-repeat-visual-char - nfwdlines - (- end - (if (zerop nfwdlines) - beg - (save-excursion - (goto-char end) - (line-beginning-position)))))) - ((eq evil-visual-selection 'line) - (list #'evil-repeat-visual-line nfwdlines)) - ((eq evil-visual-selection 'block) - (list #'evil-repeat-visual-block - nfwdlines - (abs (- (evil-column beg) (evil-column end)))))))))) - -(defun evil-repeat-stop () - "Stop recording a repeat. -Update `evil-repeat-ring' with the accumulated changes -in `evil-repeat-info' and clear variables." - (unwind-protect - (when (evil-repeat-recording-p) - (setq evil-repeat-info - (evil-normalize-repeat-info evil-repeat-info)) - (when (and evil-repeat-info evil-repeat-ring) - (ring-insert evil-repeat-ring evil-repeat-info))) - (evil-repeat-reset nil))) - -(defun evil-repeat-abort () - "Abort current repeation." - (evil-repeat-reset 'abort)) - -(defun evil-repeat-reset (flag) - "Clear all repeat recording variables. -Set `evil-recording-repeat' to FLAG." - (setq evil-recording-repeat flag - evil-repeat-info nil - evil-repeat-buffer nil)) - -(defsubst evil-repeat-record-position (&optional pos) - "Set `evil-repeat-pos' to POS or point." - (setq evil-repeat-pos (or pos (point)))) - -(defun evil-repeat-record-buffer () - "Set `evil-repeat-buffer' to the current buffer." - (unless (minibufferp) - (setq evil-repeat-buffer (current-buffer)))) - -(defmacro evil-save-repeat-info (&rest body) - "Execute BODY, protecting the values of repeat variables." - (declare (indent defun) - (debug t)) - `(let (evil-repeat-ring - evil-recording-repeat - evil-recording-current-command - evil-repeat-info - evil-repeat-changes - evil-repeat-pos - evil-repeat-keys - evil-repeat-buffer - this-command - last-command) - ,@body)) - -(defun evil-repeat-different-buffer-p (&optional strict) - "Whether the buffer has changed in a repeat. -If STRICT is non-nil, returns t if the previous buffer -is unknown; otherwise returns t only if the previous -buffer is known and different from the current buffer." - (and (or (buffer-live-p evil-repeat-buffer) strict) - (not (minibufferp)) - (not (eq (current-buffer) evil-repeat-buffer)))) - -(defun evil-repeat-type (command &optional default) - "Return the :repeat property of COMMAND. -If COMMAND doesn't have this property, return DEFAULT." - (when (functionp command) ; ignore keyboard macros - (let* ((type (evil-get-command-property command :repeat default)) - (repeat-type (assq type evil-repeat-types))) - (if repeat-type (cdr repeat-type) type)))) - -(defun evil-repeat-force-abort-p (repeat-type) - "Returns non-nil iff the current command should abort the recording of repeat information." - (or (evil-repeat-different-buffer-p) ; ... buffer changed - (eq repeat-type 'abort) ; ... explicitely forced - (eq evil-recording-repeat 'abort) ; ... already aborted - (evil-emacs-state-p) ; ... in Emacs state - (and (evil-mouse-events-p (this-command-keys)) ; ... mouse events - (eq repeat-type nil)) - (minibufferp))) ; ... minibuffer activated - -(defun evil-repeat-record (info) - "Add INFO to the end of `evil-repeat-info'." - (when (evil-repeat-recording-p) - (setq evil-repeat-info (nconc evil-repeat-info (list info))))) - -;; called from `evil-normal-state-exit-hook' -(defun evil-repeat-start-hook () - "Record a new repeat when exiting Normal state. -Does not record in Emacs state or if the current command -has :repeat nil." - (when (and (eq (evil-repeat-type this-command t) t) - (not (evil-emacs-state-p))) - (evil-repeat-start))) - -;; called from `pre-command-hook' -(defun evil-repeat-pre-hook () - "Prepare the current command for recording the repeation." - (when evil-local-mode - (let ((repeat-type (evil-repeat-type this-command t))) - (cond - ;; abort the repeat - ((evil-repeat-force-abort-p repeat-type) - ;; We mark the current record as being aborted, because there - ;; may be further pre-hooks following before the post-hook is - ;; called. - (evil-repeat-abort)) - ;; ignore those commands completely - ((null repeat-type)) - ;; record command - (t - ;; In normal-state or visual state, each command is a single - ;; repeation, therefore start a new repeation. - (when (or (evil-normal-state-p) - (evil-visual-state-p)) - (evil-repeat-start)) - (setq evil-recording-current-command t) - (funcall repeat-type 'pre)))))) -(put 'evil-repeat-pre-hook 'permanent-local-hook t) - -;; called from `post-command-hook' -(defun evil-repeat-post-hook () - "Finish recording of repeat-information for the current-command." - (when (and evil-local-mode evil-recording-repeat) - (let ((repeat-type (evil-repeat-type this-command t))) - (cond - ;; abort the repeat - ((evil-repeat-force-abort-p repeat-type) - ;; The command has been aborted but is complete, so just reset - ;; the recording state. - (evil-repeat-reset nil)) - ;; ignore if command should not be recorded or the current - ;; command is not being recorded - ((or (null repeat-type) - (not evil-recording-current-command))) - ;; record command - (t - (funcall repeat-type 'post) - ;; In normal state, the repeat sequence is complete, so record it. - (when (evil-normal-state-p) - (evil-repeat-stop))))) - ;; done with recording the current command - (setq evil-recording-current-command nil))) -(put 'evil-repeat-post-hook 'permanent-local-hook t) - -(defun evil-clear-command-keys () - "Clear `this-command-keys' and all information about the current command keys. -Calling this function prevents further recording of the keys that -invoked the current command" - (clear-this-command-keys t) - (setq evil-repeat-keys "")) - -(defun evil-repeat-keystrokes (flag) - "Repeation recording function for commands that are repeated by keystrokes." - (cond - ((eq flag 'pre) - (setq evil-repeat-keys (this-command-keys))) - ((eq flag 'post) - (evil-repeat-record (if (zerop (length (this-command-keys))) - evil-repeat-keys - (this-command-keys))) - ;; erase commands keys to prevent double recording - (evil-clear-command-keys)))) - -(defun evil-repeat-motion (flag) - "Repeation for motions. Motions are recorded by keystroke but only in insert state." - (when (memq evil-state '(insert replace)) - (evil-repeat-keystrokes flag))) - -(defun evil-repeat-changes (flag) - "Repeation recording function for commands that are repeated by buffer changes." - (cond - ((eq flag 'pre) - (add-hook 'after-change-functions #'evil-repeat-change-hook nil t) - (evil-repeat-start-record-changes)) - ((eq flag 'post) - (remove-hook 'after-change-functions #'evil-repeat-change-hook t) - (evil-repeat-finish-record-changes)))) - -;; called from the `after-change-functions' hook -(defun evil-repeat-change-hook (beg end length) - "Record change information for current command." - (let ((repeat-type (evil-repeat-type this-command t))) - (when (and (evil-repeat-recording-p) - (eq repeat-type 'evil-repeat-changes) - (not (evil-emacs-state-p)) - (not (evil-repeat-different-buffer-p t)) - evil-state) - (unless (evil-repeat-recording-p) - (evil-repeat-start)) - (evil-repeat-record-change (- beg evil-repeat-pos) - (buffer-substring beg end) - length)))) -(put 'evil-repeat-change-hook 'permanent-local-hook t) - -(defun evil-repeat-record-change (relpos ins ndel) - "Record the current buffer changes during a repeat. -If CHANGE is specified, it is added to `evil-repeat-changes'." - (when (evil-repeat-recording-p) - (setq evil-repeat-changes - (nconc evil-repeat-changes (list (list relpos ins ndel)))))) - -(defun evil-repeat-start-record-changes () - "Starts the recording of a new set of buffer changes." - (setq evil-repeat-changes nil) - (evil-repeat-record-position)) - -(defun evil-repeat-finish-record-changes () - "Finishes the recording of buffer changes and records them as repeat." - (when (evil-repeat-recording-p) - (evil-repeat-record `(evil-execute-change - ,evil-repeat-changes - ,(- (point) evil-repeat-pos))) - (setq evil-repeat-changes nil))) - -(defun evil-repeat-insert-at-point (flag) - "Repeation recording function for commands that insert text in region. -This records text insertion when a command inserts some text in a -buffer between (point) and (mark)." - (cond - ((eq flag 'pre) - (add-hook 'after-change-functions #'evil-repeat-insert-at-point-hook nil t)) - ((eq flag 'post) - (remove-hook 'after-change-functions #'evil-repeat-insert-at-point-hook t)))) - -(defun evil-repeat-insert-at-point-hook (beg end length) - (let ((repeat-type (evil-repeat-type this-command t))) - (when (and (evil-repeat-recording-p) - (eq repeat-type 'evil-repeat-insert-at-point) - (not (evil-emacs-state-p)) - (not (evil-repeat-different-buffer-p t)) - evil-state) - (setq evil-repeat-pos beg) - (evil-repeat-record (list 'insert (buffer-substring beg end)))))) -(put 'evil-repeat-insert-at-point-hook 'permanent-local-hook t) - -(defun evil-normalize-repeat-info (repeat-info) - "Concatenate consecutive arrays in REPEAT-INFO. -Returns a single array." - (let* ((result (cons nil nil)) - (result-last result) - cur cur-last) - (dolist (rep repeat-info) - (cond - ((null rep)) - ((arrayp rep) - (setq rep (listify-key-sequence rep)) - (cond - (cur - (setcdr cur-last (cons rep nil)) - (setq cur-last (cdr cur-last))) - (t - (setq cur (cons rep nil)) - (setq cur-last cur)))) - (t - (when cur - (setcdr result-last (cons (apply #'vconcat cur) nil)) - (setq result-last (cdr result-last)) - (setq cur nil)) - (setcdr result-last (cons rep nil)) - (setq result-last (cdr result-last))))) - (when cur - (setcdr result-last (cons (apply #'vconcat cur) nil))) - (cdr result))) - -(defun evil-repeat-visual-char (nfwdlines nfwdchars) - "Restores a character visual selection. -If the selection is in a single line, the restored visual -selection covers the same number of characters. If the selection -covers several lines, the restored selection covers the same -number of lines and the same number of characters in the last -line as the original selection." - (evil-visual-char) - (when (> nfwdlines 0) - (forward-line nfwdlines)) - (forward-char nfwdchars)) - -(defun evil-repeat-visual-line (nfwdlines) - "Restores a character visual selection. -If the selection is in a single line, the restored visual -selection covers the same number of characters. If the selection -covers several lines, the restored selection covers the same -number of lines and the same number of characters in the last -line as the original selection." - (evil-visual-line) - (forward-line nfwdlines)) - -(defun evil-repeat-visual-block (nfwdlines nfwdchars) - "Restores a character visual selection. -If the selection is in a single line, the restored visual -selection covers the same number of characters. If the selection -covers several lines, the restored selection covers the same -number of lines and the same number of characters in the last -line as the original selection." - (evil-visual-block) - (let ((col (current-column))) - (forward-line nfwdlines) - (move-to-column (+ col nfwdchars) t))) - -(defun evil-execute-change (changes rel-point) - "Executes as list of changes. - -CHANGES is a list of triples (REL-BEG INSERT-TEXT NDEL). -REL-BEG is the relative position (to point) where the change -takes place. INSERT-TEXT is the text to be inserted at that -position and NDEL the number of characters to be deleted at that -position before insertion. - -REL-POINT is the relative position to point before the changed -where point should be placed after all changes." - (evil-save-repeat-info - (let ((point (point))) - (dolist (change changes) - (goto-char (+ point (nth 0 change))) - (delete-char (nth 2 change)) - (insert (nth 1 change))) - (goto-char (+ point rel-point))))) - -(defun evil-execute-repeat-info (repeat-info) - "Executes a repeat-information REPEAT-INFO." - (evil-save-repeat-info - (dolist (rep repeat-info) - (cond - ((or (arrayp rep) (stringp rep)) - (execute-kbd-macro rep)) - ((consp rep) - (apply (car rep) (cdr rep))) - (t - (error "Unexpected repeat-info: %S" rep)))))) - -;; TODO: currently we prepend the replacing count before the -;; key-sequence that calls the command. Can we use direct -;; modification of prefix-arg instead? Does it work in -;; conjunction with `execute-kbd-macro'? -(defun evil-execute-repeat-info-with-count (count repeat-info) - "Repeat the repeat-information REPEAT-INFO with the count of -the first command replaced by COUNT. The count is replaced if -and only if COUNT is non-nil." - (evil-save-repeat-info - (cond - ;; do nothing (zero repeating) - ((and count (zerop count))) - ;; replace count - (count - (let ((evil-repeat-count count) - done) - (while (and repeat-info - (arrayp (car repeat-info)) - (not done)) - (let* ((count-and-cmd (evil-extract-count (pop repeat-info)))) - (push (vconcat (number-to-string count) - (nth 2 count-and-cmd) - (nth 3 count-and-cmd)) - repeat-info) - (setq done t))) - (evil-execute-repeat-info repeat-info))) - ;; repeat with original count - (t - (evil-execute-repeat-info repeat-info))))) - -(evil-define-command evil-repeat (count &optional save-point) - "Repeat the last editing command with count replaced by COUNT. -If SAVE-POINT is non-nil, do not move point." - :repeat ignore - :suppress-operator t - (interactive (list current-prefix-arg - (not evil-repeat-move-cursor))) - (cond - ((null evil-repeat-ring) - (error "Already executing repeat")) - (save-point - (save-excursion - (evil-repeat count))) - (t - (unwind-protect - (let ((confirm-kill-emacs t) - (kill-buffer-hook - (cons #'(lambda () - (error "Cannot delete buffer in repeat command")) - kill-buffer-hook)) - (undo-pointer buffer-undo-list)) - (evil-with-single-undo - (setq evil-last-repeat (list (point) count undo-pointer)) - (evil-execute-repeat-info-with-count - count (ring-ref evil-repeat-ring 0)))) - (evil-normal-state))))) - -;; TODO: the same issue concering disabled undos as for `evil-paste-pop' -(evil-define-command evil-repeat-pop (count &optional save-point) - "Replace the just repeated command with a previously executed command. -Only allowed after `evil-repeat', `evil-repeat-pop' or -`evil-repeat-pop-next'. Uses the same repeat count that -was used for the first repeat. - -The COUNT argument inserts the COUNT-th previous kill. -If COUNT is negative, this is a more recent kill." - :repeat nil - :suppress-operator t - (interactive (list (prefix-numeric-value current-prefix-arg) - (not evil-repeat-move-cursor))) - (cond - ((not (and (eq last-command #'evil-repeat) - evil-last-repeat)) - (error "Previous command was not evil-repeat: %s" last-command)) - (save-point - (save-excursion - (evil-repeat-pop count))) - (t - (unless (eq buffer-undo-list (nth 2 evil-last-repeat)) - (evil-undo-pop)) - (goto-char (car evil-last-repeat)) - ;; rotate the repeat-ring - (while (> count 0) - (when evil-repeat-ring - (ring-insert-at-beginning evil-repeat-ring - (ring-remove evil-repeat-ring 0))) - (setq count (1- count))) - (while (< count 0) - (when evil-repeat-ring - (ring-insert evil-repeat-ring - (ring-remove evil-repeat-ring))) - (setq count (1+ count))) - (setq this-command #'evil-repeat) - (evil-repeat (cadr evil-last-repeat))))) - -(evil-define-command evil-repeat-pop-next (count &optional save-point) - "Same as `evil-repeat-pop', but with negative COUNT." - :repeat nil - :suppress-operator t - (interactive (list (prefix-numeric-value current-prefix-arg) - (not evil-repeat-move-cursor))) - (evil-repeat-pop (- count) save-point)) - -(defadvice read-key-sequence (before evil activate) - "Record `this-command-keys' before it is reset." - (when (and (evil-repeat-recording-p) - evil-recording-current-command) - (let ((repeat-type (evil-repeat-type this-command t))) - (if (functionp repeat-type) - (funcall repeat-type 'post))))) - -(provide 'evil-repeat) - -;;; evil-repeat.el ends here diff --git a/elpa/evil-1.0.1/evil-search.el b/elpa/evil-1.0.1/evil-search.el deleted file mode 100644 index 3ddd40a3..00000000 --- a/elpa/evil-1.0.1/evil-search.el +++ /dev/null @@ -1,1124 +0,0 @@ -;;; evil-search.el --- Search and substitute - -;; Author: Vegard Ă˜ye -;; Maintainer: Vegard Ă˜ye - -;; Version: 1.0.1 - -;; -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; This file is part of Evil. -;; -;; Evil is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; Evil is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Evil. If not, see . - -(require 'evil-common) -(require 'evil-ex) - -;;; Code: - -(defun evil-select-search-module (option module) - "Change the search module according to MODULE. -If MODULE is `isearch', then Emacs' isearch module is used. -If MODULE is `evil-search', then Evil's own interactive -search module is used." - (let ((search-functions - '(forward - backward - symbol-forward - symbol-backward - unbounded-symbol-forward - unbounded-symbol-backward - next - previous))) - (dolist (fun search-functions) - (let ((isearch (intern (format "evil-search-%s" fun))) - (evil-search (intern (format "evil-ex-search-%s" fun)))) - (if (eq module 'isearch) - (substitute-key-definition - evil-search isearch evil-motion-state-map) - (substitute-key-definition - isearch evil-search evil-motion-state-map))))) - (set-default option module)) - -;; this customization is here because it requires -;; the knowledge of `evil-select-search-mode' -(defcustom evil-search-module 'isearch - "The search module to be used." - :type '(radio (const :tag "Emacs built-in isearch." :value isearch) - (const :tag "Evil interactive search." :value evil-search)) - :group 'evil - :set 'evil-select-search-module - :initialize 'evil-custom-initialize-pending-reset) - -(defun evil-search-incrementally (forward regexp-p) - "Search incrementally for user-entered text." - (let ((evil-search-prompt (evil-search-prompt forward)) - (isearch-search-fun-function 'evil-isearch-function) - (point (point)) - isearch-success search-nonincremental-instead) - (setq isearch-forward forward) - (evil-save-echo-area - (if forward - (isearch-forward regexp-p) - (isearch-backward regexp-p)) - (if (not isearch-success) - (goto-char point) - ;; always position point at the beginning of the match - (when (and forward isearch-other-end) - (goto-char isearch-other-end)) - (when (and (eq point (point)) - (not (string= isearch-string ""))) - (if forward - (isearch-repeat-forward) - (isearch-repeat-backward)) - (isearch-exit) - (when (and forward isearch-other-end) - (goto-char isearch-other-end))) - (evil-flash-search-pattern - (evil-search-message isearch-string forward)))))) - -(defun evil-flash-search-pattern (string &optional all) - "Flash last search matches for duration of `evil-flash-delay'. -If ALL is non-nil, flash all matches. STRING is a message -to display in the echo area." - (let ((lazy-highlight-initial-delay 0) - (isearch-search-fun-function 'evil-isearch-function) - (isearch-case-fold-search case-fold-search) - (disable #'(lambda (&optional arg) (evil-flash-hook t)))) - (when evil-flash-timer - (cancel-timer evil-flash-timer)) - (unless (or (null string) - (string= string "")) - (evil-echo-area-save) - (evil-echo "%s" string) - (isearch-highlight (match-beginning 0) (match-end 0)) - (when all - (setq isearch-lazy-highlight-wrapped nil - isearch-lazy-highlight-start (point) - isearch-lazy-highlight-end (point)) - (isearch-lazy-highlight-new-loop) - (unless isearch-lazy-highlight-overlays - (isearch-lazy-highlight-update))) - (add-hook 'pre-command-hook #'evil-flash-hook nil t) - (add-hook 'evil-operator-state-exit-hook #'evil-flash-hook nil t) - (add-hook 'pre-command-hook #'evil-clean-isearch-overlays nil t) - (setq evil-flash-timer - (run-at-time evil-flash-delay nil disable))))) - -(defun evil-clean-isearch-overlays () - "Clean isearch overlays unless `this-command' is search." - (remove-hook 'pre-command-hook #'evil-clean-isearch-overlays t) - (unless (memq this-command - '(evil-search-backward - evil-search-forward - evil-search-next - evil-search-previous - evil-search-symbol-backward - evil-search-symbol-forward)) - (isearch-clean-overlays))) -(put 'evil-clean-isearch-overlays 'permanent-local-hook t) - -(defun evil-flash-hook (&optional force) - "Disable hightlighting if `this-command' is not search. -Disable anyway if FORCE is t." - (when (or force - ;; to avoid flicker, don't disable highlighting - ;; if the next command is also a search command - (not (memq this-command - '(evil-search-backward - evil-search-forward - evil-search-next - evil-search-previous - evil-search-symbol-backward - evil-search-symbol-forward)))) - (evil-echo-area-restore) - (isearch-dehighlight) - (setq isearch-lazy-highlight-last-string nil) - (lazy-highlight-cleanup t) - (when evil-flash-timer - (cancel-timer evil-flash-timer))) - (remove-hook 'pre-command-hook #'evil-flash-hook t) - (remove-hook 'evil-operator-state-exit-hook #'evil-flash-hook t)) -(put 'evil-flash-hook 'permanent-local-hook t) - -(defun evil-search-function (&optional forward regexp-p wrap) - "Return a search function. -If FORWARD is nil, search backward, otherwise forward. -If REGEXP-P is non-nil, the input is a regular expression. -If WRAP is non-nil, the search wraps around the top or bottom -of the buffer." - `(lambda (string &optional bound noerror count) - (let ((start (point)) - (search-fun ',(if regexp-p - (if forward - 're-search-forward - 're-search-backward) - (if forward - 'search-forward - 'search-backward))) - result) - (setq result (funcall search-fun string bound - ,(if wrap t 'noerror) count)) - (when (and ,wrap (null result)) - (goto-char ,(if forward '(point-min) '(point-max))) - (unwind-protect - (setq result (funcall search-fun string bound noerror count)) - (unless result - (goto-char start)))) - result))) - -(defun evil-isearch-function () - "Return a search function for use with isearch. -Based on `isearch-regexp' and `isearch-forward'." - (evil-search-function isearch-forward evil-regexp-search evil-search-wrap)) - -(defun evil-search (string forward &optional regexp-p start) - "Search for STRING and highlight matches. -If FORWARD is nil, search backward, otherwise forward. -If REGEXP-P is non-nil, STRING is taken to be a regular expression. -START is the position to search from; if unspecified, it is -one more than the current position." - (when (and (stringp string) - (not (string= string ""))) - (let* ((orig (point)) - (start (or start - (if forward - (min (point-max) (1+ orig)) - orig))) - (isearch-regexp regexp-p) - (isearch-forward forward) - (case-fold-search - (unless (and search-upper-case - (not (isearch-no-upper-case-p string nil))) - case-fold-search)) - (search-func (evil-search-function - forward regexp-p evil-search-wrap))) - ;; no text properties, thank you very much - (set-text-properties 0 (length string) nil string) - ;; position to search from - (goto-char start) - (condition-case nil - (funcall search-func string) - (search-failed - (goto-char orig) - (error "\"%s\": %s not found" - string (if regexp-p "pattern" "string")))) - (setq isearch-string string) - (isearch-update-ring string regexp-p) - ;; handle opening and closing of invisible area - (when (boundp 'isearch-filter-predicate) - (funcall isearch-filter-predicate - (match-beginning 0) (match-end 0))) - ;; always position point at the beginning of the match - (goto-char (match-beginning 0)) - ;; determine message for echo area - (cond - ((and forward (< (point) start)) - (setq string "Search wrapped around BOTTOM of buffer")) - ((and (not forward) (> (point) start)) - (setq string "Search wrapped around TOP of buffer")) - (t - (setq string (evil-search-message string forward)))) - (evil-flash-search-pattern string t)))) - -(defun evil-search-symbol (forward) - "Search for symbol near point. -If FORWARD is nil, search backward, otherwise forward." - (let ((string (car-safe regexp-search-ring)) - (move (if forward #'forward-char #'backward-char)) - (end (if forward #'eobp #'bobp))) - (setq isearch-forward forward) - (cond - ((and (memq last-command - '(evil-search-symbol-forward - evil-search-symbol-backward)) - (stringp string) - (not (string= string ""))) - (evil-search string forward t)) - (t - (setq string (evil-find-symbol forward)) - (if (null string) - (error "No symbol under point") - (setq string (format "\\_<%s\\_>" (regexp-quote string)))) - (evil-search string forward t))))) - -(defun evil-find-symbol (forward) - "Return symbol near point as a string. -If FORWARD is nil, search backward, otherwise forward. -Returns nil if nothing is found." - (let ((move (if forward #'forward-char #'backward-char)) - (end (if forward #'eobp #'bobp)) - string) - (save-excursion - (setq string (thing-at-point 'symbol)) - ;; if there's nothing under point, go forwards - ;; (or backwards) to find it - (while (and (null string) (not (funcall end))) - (funcall move) - (setq string (thing-at-point 'symbol))) - (when (stringp string) - (set-text-properties 0 (length string) nil string)) - (when (> (length string) 0) - string)))) - -(defun evil-search-prompt (forward) - "Return the search prompt for the given direction." - (if forward "/" "?")) - -(defun evil-search-message (string forward) - "Prefix STRING with the search prompt." - (format "%s%s" (evil-search-prompt forward) string)) - -(defadvice isearch-message-prefix (around evil activate) - "Use `evil-search-prompt'." - (if evil-search-prompt - (setq ad-return-value evil-search-prompt) - ad-do-it)) - -(defadvice isearch-delete-char (around evil activate) - "Exit search if no search string." - (cond - ((and evil-search-prompt (string= isearch-string "")) - (let (search-nonincremental-instead) - (setq isearch-success nil) - (isearch-exit))) - (t - ad-do-it))) - -(defadvice isearch-lazy-highlight-search (around evil activate) - "Never wrap the search in this context." - (let (evil-search-wrap) - ad-do-it)) - -;;; Ex search - -;; a pattern -(defun evil-ex-make-pattern (regexp casefold whole-line) - "Create a new search pattern. -REGEXP is the regular expression to be searched for. -CASEFOLD is the case-fold property of the search, -which can be either `sensitive', `insensitive' or `smart'. -Here `smart' means the pattern is case sensitive if and only if -it contains a capital character. If WHOLE-LINE is non-nil, -all occurrences of the pattern on a line will be highlighted, -otherwise only the first one." - (let ((re (evil-ex-regex-without-case regexp))) - (when evil-ex-search-vim-style-regexp - (setq re (evil-transform-vim-style-regexp re))) - (setq re (evil-transform-regexp re - '((?t . "\t") - (?n . "\n") - (?r . "\r")))) - (list re - (evil-ex-regex-case regexp casefold) - whole-line))) - -(defun evil-ex-pattern-regex (pattern) - "Return the regular expression of a search PATTERN." - (car pattern)) - -(defun evil-ex-pattern-case-fold (pattern) - "Return the case-fold property of a search PATTERN." - (cadr pattern)) - -(defun evil-ex-pattern-whole-line (pattern) - "Return the whole-line property of a search PATTERN." - (nth 2 pattern)) - -(defun evil-ex-regex-without-case (re) - "Return the regular expression without all occurrences of \\c and \\C." - (evil-transform-regexp re '((?c . "") (?C . "")))) - -(defun evil-ex-regex-case (re default-case) - "Return the case as implied by \\c or \\C in regular expression RE. -If \\c appears anywhere in the pattern, the pattern is case -insensitive. If \\C appears, the pattern is case sensitive. -Only the first occurrence of \\c or \\C is used, all others are -ignored. If neither \\c nor \\C appears in the pattern, the case -specified by DEFAULT-CASE is used. DEFAULT-CASE should be either -`sensitive', `insensitive' or `smart'. In the latter case, the pattern -will be case-sensitive if and only if it contains an upper-case -letter, otherwise it will be case-insensitive." - (cond - ((string-match "\\(?:^\\|[^\\\\]\\)\\(?:\\\\\\\\\\)*\\\\\\([cC]\\)" re) - (if (eq (aref (match-string 1 re) 0) ?c) 'insensitive 'sensitive)) - ((eq default-case 'smart) - (if (isearch-no-upper-case-p re t) - 'insensitive - 'sensitive)) - (t default-case))) - -(defun evil-ex-make-hl (name &rest args) - "Create a new highlight object with name NAME and properties ARGS. -The following properties are supported: -:face The face to be used for the highlighting overlays. -:win The window in which the highlighting should be shown. - Note that the highlight will be visible in all windows showing - the corresponding buffer, but only the matches visible in the - specified window will actually be highlighted. If :win is nil, - the matches in all windows will be highlighted. -:min The minimal buffer position for highlighted matches. -:max The maximal buffer position for highlighted matches. -:match-hook A hook to be called once for each highlight. - The hook must take two arguments, the highlight and - the overlay for that highlight. -:update-hook A hook called once after updating the highlighting - with two arguments, the highlight and a message string - describing the current match status." - (unless (symbolp name) - (error "Expected symbol as name of highlight")) - (let ((face 'evil-ex-lazy-highlight) - (win (selected-window)) - min max match-hook update-hook) - (while args - (let ((key (pop args)) - (val (pop args))) - (cond - ((eq key :face) (setq face val)) - ((eq key :win) (setq win val)) - ((eq key :min) (setq min val)) - ((eq key :max) (setq max val)) - ((eq key :match-hook) (setq match-hook val)) - ((eq key :update-hook) (setq update-hook val)) - (t (error "Unexpected keyword: %s" key))))) - (when (assoc name evil-ex-active-highlights-alist) - (evil-ex-delete-hl name)) - (when (null evil-ex-active-highlights-alist) - (add-hook 'window-scroll-functions - #'evil-ex-hl-update-highlights-scroll nil t) - (add-hook 'window-size-change-functions - #'evil-ex-hl-update-highlights-resize nil)) - (push (cons name (vector name - nil - face - win - min - max - match-hook - update-hook - nil)) - evil-ex-active-highlights-alist))) - -(defun evil-ex-hl-name (hl) - "Return the name of the highlight HL." - (aref hl 0)) - -(defun evil-ex-hl-pattern (hl) - "Return the pattern of the highlight HL." - (aref hl 1)) - -(defun evil-ex-hl-set-pattern (hl pattern) - "Set the pattern of the highlight HL to PATTERN." - (aset hl 1 pattern)) - -(defun evil-ex-hl-face (hl) - "Return the face of the highlight HL." - (aref hl 2)) - -(defun evil-ex-hl-window (hl) - "Return the window of the highlight HL." - (aref hl 3)) - -(defun evil-ex-hl-min (hl) - "Return the minimal buffer position of the highlight HL." - (aref hl 4)) - -(defun evil-ex-hl-set-min (hl min) - "Set the minimal buffer position of the highlight HL to MIN." - (aset hl 4 min)) - -(defun evil-ex-hl-max (hl) - "Return the maximal buffer position of the highlight HL." - (aref hl 5)) - -(defun evil-ex-hl-set-max (hl max) - "Set the minimal buffer position of the highlight HL to MAX." - (aset hl 5 max)) - -(defun evil-ex-hl-match-hook (hl) - "Return the match-hook of the highlight HL." - (aref hl 6)) - -(defun evil-ex-hl-update-hook (hl) - "Return the update-hook of the highlight HL." - (aref hl 7)) - -(defun evil-ex-hl-overlays (hl) - "Return the list of active overlays of the highlight HL." - (aref hl 8)) - -(defun evil-ex-hl-set-overlays (hl overlays) - "Set the list of active overlays of the highlight HL to OVERLAYS." - (aset hl 8 overlays)) - -(defun evil-ex-delete-hl (name) - "Remove the highlighting object with a certain NAME." - (let ((hl (cdr-safe (assoc name evil-ex-active-highlights-alist)))) - (when hl - (mapc #'delete-overlay (evil-ex-hl-overlays hl)) - (setq evil-ex-active-highlights-alist - (assq-delete-all name evil-ex-active-highlights-alist)) - (evil-ex-hl-update-highlights)) - (when (null evil-ex-active-highlights-alist) - (remove-hook 'window-scroll-functions - #'evil-ex-hl-update-highlights-scroll t) - (remove-hook 'window-size-change-functions - #'evil-ex-hl-update-highlights-resize)))) - -(defun evil-ex-hl-active-p (name) - "Whether the highlight with a certain NAME is active." - (and (assoc name evil-ex-active-highlights-alist) t)) - -(defun evil-ex-hl-change (name pattern) - "Set the regular expression of highlight NAME to PATTERN." - (let ((hl (cdr-safe (assoc name evil-ex-active-highlights-alist)))) - (when hl - (evil-ex-hl-set-pattern hl - (if (zerop (length pattern)) - nil - pattern)) - (evil-ex-hl-idle-update)))) - -(defun evil-ex-hl-set-region (name beg end &optional type) - "Set minimal and maximal position of highlight NAME to BEG and END." - (let ((hl (cdr-safe (assoc name evil-ex-active-highlights-alist)))) - (when hl - (evil-ex-hl-set-min hl beg) - (evil-ex-hl-set-max hl end) - (evil-ex-hl-idle-update)))) - -(defun evil-ex-hl-get-max (name) - "Return the maximal position of the highlight with name NAME." - (let ((hl (cdr-safe (assoc name evil-ex-active-highlights-alist)))) - (and hl (evil-ex-hl-max hl)))) - -(defun evil-ex-hl-update-highlights () - "Update the overlays of all active highlights." - (dolist (hl (mapcar #'cdr evil-ex-active-highlights-alist)) - (let ((old-ovs (evil-ex-hl-overlays hl)) - new-ovs - (pattern (evil-ex-hl-pattern hl)) - (face (evil-ex-hl-face hl)) - (match-hook (evil-ex-hl-match-hook hl)) - result) - (if pattern - ;; collect all visible ranges - (let (ranges sranges) - (dolist (win (if (eq evil-ex-interactive-search-highlight - 'all-windows) - (get-buffer-window-list (current-buffer) nil t) - (list (evil-ex-hl-window hl)))) - (let ((beg (max (window-start win) - (or (evil-ex-hl-min hl) (point-min)))) - (end (min (window-end win) - (or (evil-ex-hl-max hl) (point-max))))) - (when (< beg end) - (push (cons beg end) ranges)))) - (setq ranges - (sort ranges #'(lambda (r1 r2) (< (car r1) (car r2))))) - (while ranges - (let ((r1 (pop ranges)) - (r2 (pop ranges))) - (cond - ;; last range - ((null r2) - (push r1 sranges)) - ;; ranges overlap, union - ((>= (cdr r1) (car r2)) - (push (cons (car r1) - (max (cdr r1) (cdr r2))) - ranges)) - ;; ranges distinct - (t - (push r1 sranges) - (push r2 ranges))))) - - ;; run through all ranges - (condition-case lossage - (save-match-data - (dolist (r sranges) - (let ((beg (car r)) - (end (cdr r))) - (save-excursion - (goto-char beg) - ;; set the overlays for the current highlight, - ;; reusing old overlays (if possible) - (while (and (not (eobp)) - (evil-ex-search-find-next-pattern pattern) - (<= (match-end 0) end)) - (let ((ov (or (pop old-ovs) (make-overlay 0 0)))) - (move-overlay ov (match-beginning 0) (match-end 0)) - (overlay-put ov 'face face) - (overlay-put ov 'evil-ex-hl (evil-ex-hl-name hl)) - (overlay-put ov 'priority 1000) - (push ov new-ovs) - (when match-hook (funcall match-hook hl ov))) - (cond - ((not (evil-ex-pattern-whole-line pattern)) - (forward-line)) - ((= (match-beginning 0) (match-end 0)) - (forward-char)) - (t (goto-char (match-end 0)))))))) - (mapc #'delete-overlay old-ovs) - (evil-ex-hl-set-overlays hl new-ovs) - (if (or (null pattern) new-ovs) - (setq result t) - ;; Maybe the match could just not be found somewhere else? - (save-excursion - (goto-char (or (evil-ex-hl-min hl) (point-min))) - (if (and (evil-ex-search-find-next-pattern pattern) - (< (match-end 0) (or (evil-ex-hl-max hl) - (point-max)))) - (setq result (format "Match in line %d" - (line-number-at-pos - (match-beginning 0)))) - (setq result "No match"))))) - - (invalid-regexp - (setq result (cadr lossage))) - - (search-failed - (setq result (nth 2 lossage))) - - (error - (setq result (format "%s" lossage))))) - ;; no pattern, remove all highlights - (mapc #'delete-overlay old-ovs) - (evil-ex-hl-set-overlays hl new-ovs)) - (when (evil-ex-hl-update-hook hl) - (funcall (evil-ex-hl-update-hook hl) hl result))))) - -(defun evil-ex-search-find-next-pattern (pattern &optional direction) - "Look for the next occurrence of PATTERN in a certain DIRECTION. -Note that this function ignores the whole-line property of PATTERN." - (setq direction (or direction 'forward)) - (let ((case-fold-search (eq (evil-ex-pattern-case-fold pattern) - 'insensitive))) - (cond - ((eq direction 'forward) - (re-search-forward (evil-ex-pattern-regex pattern) nil t)) - ((eq direction 'backward) - (re-search-backward (evil-ex-pattern-regex pattern) nil t)) - (t - (error "Unknown search direction: %s" direction))))) - -(defun evil-ex-hl-idle-update () - "Triggers the timer to update the highlights in the current buffer." - (when (and evil-ex-interactive-search-highlight - evil-ex-active-highlights-alist) - (when evil-ex-hl-update-timer - (cancel-timer evil-ex-hl-update-timer)) - (setq evil-ex-hl-update-timer - (run-at-time evil-ex-hl-update-delay nil - #'evil-ex-hl-do-update-highlight - (current-buffer))))) - -(defun evil-ex-hl-do-update-highlight (&optional buffer) - "Timer function for updating the highlights." - (with-current-buffer buffer - (evil-ex-hl-update-highlights)) - (setq evil-ex-hl-update-timer nil)) - -(defun evil-ex-hl-update-highlights-scroll (win beg) - "Update highlights after scrolling in some window." - (with-current-buffer (window-buffer win) - (evil-ex-hl-idle-update))) -(put 'evil-ex-hl-update-highlights-scroll 'permanent-local-hook t) - -(defun evil-ex-hl-update-highlights-resize (frame) - "Update highlights after resizing a window." - (let ((buffers (delete-dups (mapcar #'window-buffer (window-list frame))))) - (dolist (buf buffers) - (with-current-buffer buf - (evil-ex-hl-idle-update))))) -(put 'evil-ex-hl-update-highlights-resize 'permanent-local-hook t) - -;; interactive search -(defun evil-ex-search-activate-highlight (pattern) - "Activate highlighting of the search pattern set to PATTERN. -This function does nothing if `evil-ex-search-interactive' or -`evil-ex-search-highlight-all' is nil. " - (when (and evil-ex-search-interactive evil-ex-search-highlight-all) - (with-current-buffer (or evil-ex-current-buffer (current-buffer)) - (unless (evil-ex-hl-active-p 'evil-ex-search) - (evil-ex-make-hl 'evil-ex-search - :win (minibuffer-selected-window))) - (if pattern - (evil-ex-hl-change 'evil-ex-search pattern))))) - -(defun evil-ex-find-next (&optional pattern direction nowrap) - "Search for the next occurrence of the PATTERN in DIRECTION. -PATTERN must be created using `evil-ex-make-pattern', DIRECTION -is either 'forward or 'backward. If NOWRAP is non nil, the search -does not wrap at buffer boundaries. Furthermore this function -only searches invisible text if `search-invisible' is t. If -PATTERN is not specified the current global pattern -`evil-ex-search-pattern' and if DIRECTION is not specified the -current global direction `evil-ex-search-direction' is used. -This function return t if the search was successful, nil if it -was unsuccessful and 'wrapped if the search was successful but -has been wrapped at the buffer boundaries." - (setq pattern (or pattern evil-ex-search-pattern) - direction (or direction evil-ex-search-direction)) - (unless (and pattern (evil-ex-pattern-regex pattern)) - (signal 'search-failed (list "No search pattern"))) - (catch 'done - (let (wrapped) - (while t - (let ((search-result (evil-ex-search-find-next-pattern pattern - direction))) - (cond - ((and search-result - (or (eq search-invisible t) - (not (isearch-range-invisible - (match-beginning 0) (match-end 0))))) - ;; successful search and not invisible - (throw 'done (if wrapped 'wrapped t))) - ((not search-result) - ;; unsuccessful search - (if nowrap - (throw 'done nil) - (setq nowrap t - wrapped t) - (goto-char (if (eq direction 'forward) - (point-min) - (point-max))))))))))) - -(defun evil-ex-search-update (pattern offset beg end message) - "Update the highlighting and info-message for the search pattern. -PATTERN is the search pattern and OFFSET the associated offset. -BEG and END specifiy the current match, MESSAGE is the info -message to be shown. This function does nothing if -`evil-ex-search-interactive' is nil." - (when evil-ex-search-interactive - (cond - ((and beg end) - ;; update overlay - (if evil-ex-search-overlay - (move-overlay evil-ex-search-overlay beg end) - (setq evil-ex-search-overlay - (make-overlay beg end)) - (overlay-put evil-ex-search-overlay 'priority 1001) - (overlay-put evil-ex-search-overlay 'face 'evil-ex-search)) - ;; move point - (goto-char beg) - (evil-ex-search-goto-offset offset) - ;; update highlights - (when evil-ex-search-highlight-all - (evil-ex-hl-change 'evil-ex-search pattern))) - (t - ;; no match - (when evil-ex-search-overlay - ;; remove overlay - (delete-overlay evil-ex-search-overlay) - (setq evil-ex-search-overlay nil)) - ;; no highlights - (when evil-ex-search-highlight-all - (evil-ex-hl-change 'evil-ex-search nil)) - ;; and go to initial position - (goto-char evil-ex-search-start-point))) - (when (stringp message) - (evil-ex-echo "%s" message)))) - -(defun evil-ex-search-start-session () - "Initialize Ex for interactive search." - (remove-hook 'minibuffer-setup-hook #'evil-ex-search-start-session) - (add-hook 'after-change-functions #'evil-ex-search-update-pattern nil t) - (add-hook 'minibuffer-exit-hook #'evil-ex-search-stop-session) - (evil-ex-search-activate-highlight nil)) -(put 'evil-ex-search-start-session 'permanent-local-hook t) - -(defun evil-ex-search-stop-session () - "Stop interactive search." - (with-current-buffer evil-ex-current-buffer - ;; TODO: This is a bad fix to remove duplicates. The duplicates - ;; exist because `isearch-range-invisible' may add a single - ;; overlay multiple times if we are in an unlucky situation - ;; of overlapping overlays. This happens in our case because - ;; of the overlays that are used for (lazy) highlighting. - ;; Perhaps it would be better to disable those overlays - ;; temporarily before calling `isearch-range-invisible'. - (setq isearch-opened-overlays (delete-dups isearch-opened-overlays)) - (isearch-clean-overlays)) - (remove-hook 'minibuffer-exit-hook #'evil-ex-search-stop-session) - (remove-hook 'after-change-functions #'evil-ex-search-update-pattern t) - (when evil-ex-search-overlay - (delete-overlay evil-ex-search-overlay) - (setq evil-ex-search-overlay nil))) -(put 'evil-ex-search-stop-session 'permanent-local-hook t) - -(defun evil-ex-split-search-pattern (pattern direction) - "Split PATTERN in regexp, offset and next-pattern parts. -Returns a triple (regexp offset next-search)." - (save-match-data - (if (or (and (eq direction 'forward) - (string-match "\\(?:^\\|[^\\\\]\\)\\(?:\\\\\\\\\\)*\\(/\\([^;]*\\)\\(?:;\\([/?].*\\)?\\)?\\)?$" - pattern)) - (and (eq direction 'backward) - (string-match "\\(?:^\\|[^\\\\]\\)\\(?:\\\\\\\\\\)*\\(\\?\\([^;]*\\)\\(?:;\\([/?].*\\)?\\)?\\)?$" - pattern))) - (list (substring pattern 0 (match-beginning 1)) - (match-string 2 pattern) - (match-string 3 pattern)) - (list pattern nil nil)))) - -(defun evil-ex-search-full-pattern (pattern-string count direction) - "Search for a full search pattern PATTERN-STRING in DIRECTION. -This function split PATTERN-STRING in -pattern/offset/;next-pattern parts and performs the search in -DIRECTION which must be either 'forward or 'backward. The first -search is repeated COUNT times. If the pattern part of -PATTERN-STRING is empty, the last global pattern stored in -`evil-ex-search-pattern' is used instead if in addition the -offset part is nil (i.e. no pattern/offset separator), the last -global offset stored in `evil-ex-search-offset' is used as -offset. The current match data will correspond to the last -successful match. This function returns a triple (RESULT PATTERN -OFFSET) where RESULT is - - t the search has been successful without wrap - 'wrap the search has been successful with wrap - 'empty-pattern the last pattern has been empty - nil the search has not been successful - -and PATTERN and OFFSET are the last pattern and offset this -function searched for. Note that this function does not handle -any error conditions." - (setq count (or count 1)) - (catch 'done - (while t - (let* ((res (evil-ex-split-search-pattern pattern-string direction)) - (pat (pop res)) - (offset (pop res)) - (next-pat (pop res))) - ;; use last pattern of no new pattern has been specified - (if (not (zerop (length pat))) - (setq pat (evil-ex-make-pattern pat - evil-ex-search-case - t)) - (setq pat evil-ex-search-pattern - offset (or offset evil-ex-search-offset))) - (when (zerop (length pat)) - (throw 'done (list 'empty-pattern pat offset))) - (let (search-result) - (while (> count 0) - (let ((result (evil-ex-find-next pat direction))) - (if (not result) (setq search-result nil count 0) - (setq search-result - (if (or (eq result 'wrap) - (eq search-result 'wrap)) - 'wrap t) - count (1- count))))) - (cond - ;; search failed - ((not search-result) (throw 'done (list nil pat offset))) - ;; no next pattern, search complete - ((zerop (length next-pat)) - (evil-ex-search-goto-offset offset) - (throw 'done (list search-result pat offset))) - ;; next pattern but empty - ((= 1 (length next-pat)) - (evil-ex-search-goto-offset offset) - (throw 'done (list 'empty-pattern pat offset))) - ;; next non-empty pattern, next search iteration - (t - (evil-ex-search-goto-offset offset) - (setq count 1 - pattern-string (substring next-pat 1) - direction (if (= (aref next-pat 0) ?/) - 'forward - 'backward))))))))) - -(defun evil-ex-search-update-pattern (beg end range) - "Update the current search pattern." - (let ((pattern-string (minibuffer-contents))) - (with-current-buffer evil-ex-current-buffer - (with-selected-window (minibuffer-selected-window) - (goto-char (1+ evil-ex-search-start-point)) - (condition-case err - (let* ((result (evil-ex-search-full-pattern pattern-string - (or evil-ex-search-count 1) - evil-ex-search-direction)) - (success (pop result)) - (pattern (pop result)) - (offset (pop result))) - (cond - ((eq success 'wrap) - (evil-ex-search-update pattern offset - (match-beginning 0) (match-end 0) - "Wrapped")) - ((eq success 'empty-pattern) - (evil-ex-search-update nil nil nil nil nil)) - (success - (evil-ex-search-update pattern offset - (match-beginning 0) (match-end 0) - nil)) - (t - (evil-ex-search-update nil nil - nil nil - "search failed")))) - (invalid-regexp - (evil-ex-search-update nil nil nil nil (cadr err))) - (error - (evil-ex-search-update nil nil nil nil (format "%s" err)))))))) -(put 'evil-ex-search-update-pattern 'permanent-local-hook t) - -(defun evil-ex-search-exit () - "Exit interactive search, keeping lazy highlighting active." - (interactive) - (evil-ex-search-stop-session) - (exit-minibuffer)) - -(defun evil-ex-search-abort () - "Abort interactive search, disabling lazy highlighting." - (interactive) - (evil-ex-search-stop-session) - (evil-ex-delete-hl 'evil-ex-search) - (abort-recursive-edit)) - -(defun evil-ex-search-goto-offset (offset) - "Move point according to search OFFSET and set `evil-this-type' accordingly. -This function assumes that the current match data represents the -current search result." - (unless (zerop (length offset)) - (let ((beg (match-beginning 0)) - (end (match-end 0))) - (save-match-data - (unless - (string-match - "^\\([esb]\\)?\\(\\([-+]\\)?\\([0-9]*\\)\\)$" - offset) - (error "Invalid search offset: %s" offset)) - (let ((count (if (= (match-beginning 4) (match-end 4)) - (cond - ((not (match-beginning 3)) 0) - ((= (aref offset (match-beginning 3)) ?+) +1) - (t -1)) - (string-to-number (match-string 2 offset))))) - (cond - ((not (match-beginning 1)) - (setq evil-this-type 'line) - (forward-line count)) - ((= (aref offset (match-beginning 1)) ?e) - (goto-char (+ end count -1)) - (setq evil-this-type 'inclusive)) - ((memq (aref offset (match-beginning 1)) '(?s ?b)) - (goto-char (+ beg count)) - (setq evil-this-type 'inclusive)))))))) - -(defun evil-ex-start-search (direction count) - "Start a new search in a certain DIRECTION." - ;; store buffer and window where the search started - (let ((evil-ex-current-buffer (current-buffer))) - (setq evil-ex-search-count count - evil-ex-search-direction direction - evil-ex-search-start-point (point)) - (progn - ;; ensure minibuffer is initialized accordingly - (add-hook 'minibuffer-setup-hook #'evil-ex-search-start-session) - ;; read the search string - (let* ((minibuffer-local-map evil-ex-search-keymap) - (search-string - (condition-case err - (read-string (if (eq evil-ex-search-direction 'forward) - "/" "?") - nil 'evil-ex-search-history) - (quit - (evil-ex-search-stop-session) - (evil-ex-delete-hl 'evil-ex-search) - (goto-char evil-ex-search-start-point) - (signal (car err) (cdr err)))))) - ;; pattern entered successful - (goto-char (1+ evil-ex-search-start-point)) - (let* ((result - (evil-ex-search-full-pattern search-string - evil-ex-search-count - evil-ex-search-direction)) - (success (pop result)) - (pattern (pop result)) - (offset (pop result))) - (setq evil-ex-search-pattern pattern - evil-ex-search-offset offset) - (cond - ((memq success '(t wrap)) - (goto-char (match-beginning 0)) - (setq evil-ex-search-match-beg (match-beginning 0) - evil-ex-search-match-end (match-end 0)) - (evil-ex-search-goto-offset offset)) - (t - (goto-char evil-ex-search-start-point) - (evil-ex-delete-hl 'evil-ex-search) - (signal 'search-failed (list search-string))))))))) - -(defun evil-ex-start-symbol-search (unbounded direction count) - "Search for the symbol under point. -The search matches the COUNT-th occurrence of the word. -If the UNBOUNDED argument is nil, the search matches only -at symbol boundaries, otherwise it matches anywhere. -The DIRECTION argument should be either `forward' or -`backward', determining the search direction." - (let ((string (evil-find-symbol (eq direction 'forward)))) - (if (null string) - (error "No symbol under point") - (let ((regex (if unbounded - (regexp-quote (match-string 0)) - (format "\\_<%s\\_>" (regexp-quote (match-string 0)))))) - (setq evil-ex-search-count count - evil-ex-search-direction direction - evil-ex-search-pattern - (evil-ex-make-pattern regex evil-ex-search-case t) - evil-ex-search-offset nil) - ;; update search history unless this pattern equals the - ;; previous pattern - (unless (equal (car-safe evil-ex-search-history) regex) - (push regex evil-ex-search-history))) - (evil-ex-delete-hl 'evil-ex-search) - (when (fboundp 'evil-ex-search-next) - (evil-ex-search-next count))))) - -;; substitute -(evil-ex-define-argument-type substitution - "A substitution pattern argument /pattern/replacement/flags. -This handler highlights the pattern of the current substitution." - :runner - (lambda (flag &optional arg) - (with-selected-window (minibuffer-selected-window) - (with-current-buffer evil-ex-current-buffer - (cond - ((eq flag 'start) - (evil-ex-make-hl - 'evil-ex-substitute - :face 'evil-ex-substitute-matches - :update-hook #'evil-ex-pattern-update-ex-info - :match-hook (and evil-ex-substitute-interactive-replace - #'evil-ex-pattern-update-replacement)) - (setq flag 'update)) - - ((eq flag 'stop) - (evil-ex-delete-hl 'evil-ex-substitute)))) - - (when (and (eq flag 'update) - evil-ex-substitute-highlight-all - (not (zerop (length arg)))) - (condition-case lossage - (let* ((result (evil-ex-get-substitute-info arg)) - (pattern (pop result)) - (replacement (pop result)) - (range (or (evil-copy-range evil-ex-range) - (evil-range (line-beginning-position) - (line-end-position) - 'line - :expaned t)))) - (setq evil-ex-substitute-current-replacement replacement) - (evil-expand-range range) - (evil-ex-hl-set-region 'evil-ex-substitute - (evil-range-beginning range) - (evil-range-end range)) - (evil-ex-hl-change 'evil-ex-substitute pattern)) - (end-of-file - (evil-ex-pattern-update-ex-info nil - "incomplete replacement")) - (error - (evil-ex-pattern-update-ex-info nil - (format "%s" lossage)))))))) - -(defun evil-ex-pattern-update-ex-info (hl result) - "Update the Ex info string." - (when (stringp result) - (evil-ex-echo "%s" result))) - -(defun evil-ex-pattern-update-replacement (hl overlay) - "Update the replacement display." - (when (fboundp 'match-substitute-replacement) - (let ((fixedcase (not case-replace)) - repl) - (setq repl (if evil-ex-substitute-current-replacement - (evil-match-substitute-replacement - evil-ex-substitute-current-replacement - fixedcase) - "")) - (put-text-property 0 (length repl) - 'face 'evil-ex-substitute-replacement - repl) - (overlay-put overlay 'after-string repl)))) - -(defun evil-ex-parse-global (string) - "Parse STRING as a global argument." - (evil-delimited-arguments string 2)) - -(defun evil-ex-get-substitute-info (string) - "Returns the substitution info of command line STRING. -This function returns a three-element list \(PATTERN REPLACEMENT -FLAGS) consisting of the substitution parts of STRING. PATTERN is -a ex-pattern (see `evil-ex-make-pattern') and REPLACEMENT in a -compiled replacement expression (see `evil-compile-replacement'). -The information returned is the actual substitution information -w.r.t. to special situations like empty patterns or repetition of -previous substitution commands." - (let (pattern replacement flags) - (cond - ((or (null string) (string-match "^[a-zA-Z]" string)) - ;; starts with letter so there is no pattern because the - ;; separate must not be a letter repeat last substitute - (setq replacement evil-ex-substitute-replacement) - ;; flags are everything that is not a white space - (when (and string (string-match "[^[:space:]]+" string)) - (setq flags (match-string 0 string)))) - (t - (let ((args (evil-delimited-arguments string 3))) - (setq pattern (pop args) - replacement (pop args) - flags (pop args)) - ;; if replacment equals "~" use previous replacement - (if (equal replacement "~") - (setq replacement evil-ex-substitute-replacement) - (setq replacement (evil-compile-replacement replacement)))))) - ;; if flags equals "&" add previous flags - (if (and (not (zerop (length flags))) - (= (aref flags 0) ?&)) - (setq flags (append (substring flags 1) - evil-ex-substitute-flags)) - (setq flags (append flags nil))) - ;; if no pattern, use previous pattern - (when (zerop (length pattern)) - (if (memq ?r flags) - (setq pattern (and evil-ex-search-pattern - (evil-ex-pattern-regex evil-ex-search-pattern)) - flags (remq ?r flags)) - (setq pattern (and evil-ex-substitute-pattern - (evil-ex-pattern-regex evil-ex-substitute-pattern))))) - ;; generate pattern - (when pattern - (setq pattern - (evil-ex-make-pattern - pattern - (or (and (memq ?i flags) 'insensitive) - (and (memq ?I flags) 'sensitive) - evil-ex-substitute-case - evil-ex-search-case) - (memq ?g flags)))) - (list pattern replacement flags))) - -(defun evil-ex-nohighlight () - "Disable the active search highlightings." - (interactive) - (evil-ex-delete-hl 'evil-ex-substitute) - (evil-ex-delete-hl 'evil-ex-search)) - -(provide 'evil-search) - -;;; evil-search.el ends here diff --git a/elpa/evil-1.0.1/evil-states.el b/elpa/evil-1.0.1/evil-states.el deleted file mode 100644 index 071a4136..00000000 --- a/elpa/evil-1.0.1/evil-states.el +++ /dev/null @@ -1,865 +0,0 @@ -;;; evil-states.el --- States - -;; Author: Vegard Ă˜ye -;; Maintainer: Vegard Ă˜ye - -;; Version: 1.0.1 - -;; -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; This file is part of Evil. -;; -;; Evil is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; Evil is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Evil. If not, see . - -(require 'evil-core) - -;;; Code: - -;;; Normal state - -(evil-define-state normal - "Normal state. -AKA \"Command\" state." - :tag " " - :enable (motion) - :exit-hook (evil-repeat-start-hook) - (cond - ((evil-normal-state-p) - (add-hook 'post-command-hook #'evil-normal-post-command nil t)) - (t - (remove-hook 'post-command-hook #'evil-normal-post-command t)))) - -(defun evil-normal-post-command (&optional command) - "Reset command loop variables in Normal state. -Also prevent point from reaching the end of the line. -If the region is activated, enter Visual state." - (unless (evil-initializing-p) - (setq command (or command this-command)) - (when (evil-normal-state-p) - (setq evil-this-type nil - evil-this-operator nil - evil-this-motion nil - evil-this-motion-count nil - evil-inhibit-operator nil - evil-inhibit-operator-value nil) - (unless (memq command '(evil-use-register - digit-argument - negative-argument - universal-argument - universal-argument-minus - universal-argument-more - universal-argument-other-key)) - (setq evil-this-register nil)) - (evil-adjust-cursor)))) -(put 'evil-normal-post-command 'permanent-local-hook t) - -;;; Insert state - -(evil-define-state insert - "Insert state." - :tag " " - :cursor (bar . 2) - :message "-- INSERT --" - :entry-hook (evil-start-track-last-insertion) - :exit-hook (evil-cleanup-insert-state evil-stop-track-last-insertion) - :input-method t - (cond - ((evil-insert-state-p) - (add-hook 'pre-command-hook #'evil-insert-repeat-hook) - (unless evil-want-fine-undo - (evil-start-undo-step t))) - (t - (remove-hook 'pre-command-hook #'evil-insert-repeat-hook) - (setq evil-insert-repeat-info evil-repeat-info) - (evil-set-marker ?^ nil t) - (unless evil-want-fine-undo - (evil-end-undo-step t)) - (when evil-move-cursor-back - (when (or (evil-normal-state-p evil-next-state) - (evil-motion-state-p evil-next-state)) - (evil-move-cursor-back)))))) - -(defun evil-insert-repeat-hook () - "Record insertion keys in `evil-insert-repeat-info'." - (setq evil-insert-repeat-info (last evil-repeat-info)) - (remove-hook 'pre-command-hook #'evil-insert-repeat-hook)) -(put 'evil-insert-repeat-hook 'permanent-local-hook t) - -(defun evil-cleanup-insert-state () - "Called when Insert state is about to be exited. -Handles the repeat-count of the insertion command." - (when evil-insert-count - (dotimes (i (1- evil-insert-count)) - (when evil-insert-lines - (evil-insert-newline-below)) - (when (fboundp 'evil-execute-repeat-info) - (evil-execute-repeat-info - (cdr evil-insert-repeat-info))))) - (when evil-insert-vcount - (let ((buffer-invisibility-spec buffer-invisibility-spec)) - ;; make all lines hidden by hideshow temporarily visible - (when (listp buffer-invisibility-spec) - (setq buffer-invisibility-spec - (evil-filter-list - #'(lambda (x) - (or (eq x 'hs) - (eq (car-safe x) 'hs))) - buffer-invisibility-spec))) - (let ((line (nth 0 evil-insert-vcount)) - (col (nth 1 evil-insert-vcount)) - (vcount (nth 2 evil-insert-vcount))) - (save-excursion - (dotimes (v (1- vcount)) - (goto-char (point-min)) - (forward-line (+ line v)) - (when (or (not evil-insert-skip-empty-lines) - (not (integerp col)) - (save-excursion - (evil-move-end-of-line) - (>= (current-column) col))) - (if (integerp col) - (move-to-column col t) - (funcall col)) - (dotimes (i (or evil-insert-count 1)) - (when (fboundp 'evil-execute-repeat-info) - (evil-execute-repeat-info - (cdr evil-insert-repeat-info))))))))))) - -;;; Visual state - -;; Visual selections are implemented in terms of types, and are -;; compatible with the Emacs region. This is achieved by "translating" -;; the region to the selected text right before a command is executed. -;; If the command is a motion, the translation is postponed until a -;; non-motion command is invoked (distinguished by the :keep-visual -;; command property). -;; -;; Visual state activates the region, enabling Transient Mark mode if -;; not already enabled. This is only temporay: if Transient Mark mode -;; was disabled before entering Visual state, it is disabled when -;; exiting Visual state. This allows Visual state to harness the -;; "transient" behavior of many commands without overriding the user's -;; preferences in other states. - -(defmacro evil-define-visual-selection (selection doc &rest body) - "Define a Visual selection SELECTION. -Creates a command evil-visual-SELECTION for enabling the selection. -DOC is the function's documentation string. The following keywords -may be specified in BODY: - -:message STRING Status message when enabling the selection. -:type TYPE Type to use (defaults to SELECTION). - -Following the keywords is optional code which is executed each time -the selection is enabled. - -\(fn SELECTION DOC [[KEY VAL]...] BODY...)" - (declare (indent defun) - (debug (&define name stringp - [&rest keywordp sexp] - def-body))) - (let* ((name (intern (format "evil-visual-%s" selection))) - (message (intern (format "%s-message" name))) - (type selection) - arg key string) - ;; collect keywords - (while (keywordp (car-safe body)) - (setq key (pop body) - arg (pop body)) - (cond - ((eq key :message) - (setq string arg)) - ((eq key :type) - (setq type arg)))) - ;; macro expansion - `(progn - (add-to-list 'evil-visual-alist (cons ',selection ',name)) - (defvar ,name ',type ,(format "*%s" doc)) - (defvar ,message ,string ,doc) - (evil-define-command ,name (&optional mark point type message) - ,@(when doc `(,doc)) - :keep-visual t - :repeat nil - (interactive - (list nil nil - (if (and (evil-visual-state-p) - (eq evil-visual-selection ',selection)) - 'exit ,name) t)) - (if (eq type 'exit) - (evil-exit-visual-state) - (setq type (or type ,name) - evil-visual-selection ',selection) - (evil-visual-make-region mark point type message) - ,@body)) - ',selection))) - -(evil-define-visual-selection char - "Characterwise selection." - :type inclusive - :message "-- VISUAL --") - -(evil-define-visual-selection line - "Linewise selection." - :message "-- VISUAL LINE --") - -(evil-define-visual-selection block - "Blockwise selection." - :message "-- VISUAL BLOCK --" - (evil-transient-mark -1) - ;; refresh the :corner property - (setq evil-visual-properties - (plist-put evil-visual-properties :corner - (evil-visual-block-corner 'upper-left)))) - -(evil-define-state visual - "Visual state." - :tag " " - :enable (motion normal) - :message 'evil-visual-message - (cond - ((evil-visual-state-p) - (evil-save-transient-mark-mode) - (setq select-active-regions nil) - (cond - ((region-active-p) - (if (< (evil-visual-direction) 0) - (evil-visual-select (region-beginning) (region-end) - evil-visual-char - (evil-visual-direction)) - (evil-visual-make-selection (mark t) (point) - evil-visual-char)) - (evil-visual-highlight)) - (t - (evil-visual-make-region (point) (point) evil-visual-char))) - (add-hook 'pre-command-hook #'evil-visual-pre-command nil t) - (add-hook 'post-command-hook #'evil-visual-post-command nil t) - (add-hook 'deactivate-mark-hook #'evil-visual-deactivate-hook nil t)) - (t - ;; Postpone deactivation of region if next state is Insert. - ;; This gives certain insertion commands (auto-pairing characters, - ;; for example) an opportunity to access the region. - (if (and (eq evil-next-state 'insert) - (eq evil-visual-selection 'char)) - (add-hook 'evil-normal-state-entry-hook - #'evil-visual-deactivate-hook nil t) - (evil-visual-deactivate-hook)) - (setq evil-visual-region-expanded nil) - (remove-hook 'pre-command-hook #'evil-visual-pre-command t) - (remove-hook 'post-command-hook #'evil-visual-post-command t) - (remove-hook 'deactivate-mark-hook #'evil-visual-deactivate-hook t) - (evil-visual-highlight -1)))) - -(defun evil-visual-pre-command (&optional command) - "Run before each COMMAND in Visual state. -Expand the region to the selection unless COMMAND is a motion." - (when (evil-visual-state-p) - (setq command (or command this-command)) - (unless (evil-get-command-property command :keep-visual) - (evil-visual-expand-region - ;; exclude final newline from linewise selection - ;; unless the command has real need of it - (and (eq (evil-visual-type) 'line) - (evil-get-command-property command :exclude-newline)))))) - -(put 'evil-visual-pre-command 'permanent-local-hook t) - -(defun evil-visual-post-command (&optional command) - "Run after each COMMAND in Visual state. -If COMMAND is a motion, refresh the selection; -otherwise exit Visual state." - (when (evil-visual-state-p) - (setq command (or command this-command)) - (when evil-visual-x-select-timer - (cancel-timer evil-visual-x-select-timer)) - (if (or quit-flag - (eq command #'keyboard-quit) - ;; Is `mark-active' nil for an unexpanded region? - deactivate-mark - (and (not evil-visual-region-expanded) - (not (region-active-p)) - (not (eq evil-visual-selection 'block)))) - (progn - (evil-exit-visual-state) - (evil-adjust-cursor)) - (if evil-visual-region-expanded - (evil-visual-contract-region) - (evil-visual-refresh)) - (setq evil-visual-x-select-timer - (run-with-idle-timer evil-visual-x-select-timeout nil - #'evil-visual-update-x-selection - (current-buffer))) - (evil-visual-highlight)))) -(put 'evil-visual-post-command 'permanent-local-hook t) - -(defun evil-visual-update-x-selection (&optional buffer) - "Update the X selection with the current visual region." - (with-current-buffer (or buffer (current-buffer)) - (when (and (evil-visual-state-p) - (fboundp 'x-select-text) - (or (not (boundp 'ns-initialized)) - (with-no-warnings ns-initialized)) - (not (eq evil-visual-selection 'block))) - (x-select-text (buffer-substring-no-properties - evil-visual-beginning - evil-visual-end))))) - -(defun evil-visual-activate-hook (&optional command) - "Enable Visual state if the region is activated." - (unless (evil-visual-state-p) - (evil-delay nil - ;; the activation may only be momentary, so re-check - ;; in `post-command-hook' before entering Visual state - '(unless (or (evil-visual-state-p) - (evil-insert-state-p) - (evil-emacs-state-p)) - (when (and (region-active-p) - (not deactivate-mark)) - (evil-visual-state))) - 'post-command-hook nil t - "evil-activate-visual-state"))) -(put 'evil-visual-activate-hook 'permanent-local-hook t) - -(defun evil-visual-deactivate-hook (&optional command) - "Deactivate the region and restore Transient Mark mode." - (setq command (or command this-command)) - (remove-hook 'deactivate-mark-hook - #'evil-visual-deactivate-hook t) - (remove-hook 'evil-normal-state-entry-hook - #'evil-visual-deactivate-hook t) - (cond - ((and (evil-visual-state-p) command - (not (evil-get-command-property command :keep-visual))) - (setq evil-visual-region-expanded nil) - (evil-exit-visual-state)) - ((not (evil-visual-state-p)) - (evil-active-region -1) - (evil-restore-transient-mark-mode)))) -(put 'evil-visual-deactivate-hook 'permanent-local-hook t) - -(evil-define-command evil-exit-visual-state (&optional later buffer) - "Exit from Visual state to the previous state. -If LATER is non-nil, exit after the current command." - :keep-visual t - :repeat abort - (with-current-buffer (or buffer (current-buffer)) - (when (evil-visual-state-p) - (evil-visual-update-x-selection) - (if later - (setq deactivate-mark t) - (when evil-visual-region-expanded - (evil-visual-contract-region)) - (evil-change-to-previous-state))))) - -(defun evil-visual-message (&optional selection) - "Create an echo area message for SELECTION. -SELECTION is a kind of selection as defined by -`evil-define-visual-selection', such as `char', `line' -or `block'." - (let (message) - (setq selection (or selection evil-visual-selection)) - (when selection - (setq message - (symbol-value (intern (format "evil-visual-%s-message" - selection)))) - (cond - ((functionp message) - (funcall message)) - ((stringp message) - (evil-echo "%s" message)))))) - -(defun evil-visual-select (beg end &optional type dir message) - "Create a Visual selection of type TYPE from BEG to END. -Point and mark are positioned so that the resulting selection -has the specified boundaries. If DIR is negative, point precedes mark, -otherwise it succedes it. To specify point and mark directly, -use `evil-visual-make-selection'." - (let* ((range (evil-contract beg end type)) - (mark (evil-range-beginning range)) - (point (evil-range-end range)) - (dir (or dir 1))) - (when (< dir 0) - (evil-swap mark point)) - (evil-visual-make-selection mark point type message))) - -(defun evil-visual-make-selection (mark point &optional type message) - "Create a Visual selection with point at POINT and mark at MARK. -The boundaries of the selection are inferred from these -and the current TYPE. To specify the boundaries and infer -mark and point, use `evil-visual-select' instead." - (let* ((selection (evil-visual-selection-for-type type)) - (func (evil-visual-selection-function selection)) - (prev (and (evil-visual-state-p) evil-visual-selection)) - (mark (evil-normalize-position mark)) - (point (evil-normalize-position point)) - (state evil-state)) - (unless (evil-visual-state-p) - (evil-visual-state)) - (setq evil-visual-selection selection) - (funcall func mark point type - ;; signal a message when changing the selection - (when (or (not (evil-visual-state-p state)) - (not (eq selection prev))) - message)))) - -(defun evil-visual-make-region (mark point &optional type message) - "Create an active region from MARK to POINT. -If TYPE is given, also set the Visual type. -If MESSAGE is given, display it in the echo area." - (interactive) - (let* ((point (evil-normalize-position - (or point (point)))) - (mark (evil-normalize-position - (or mark - (when (or (evil-visual-state-p) - (region-active-p)) - (mark t)) - point)))) - (unless (evil-visual-state-p) - (evil-visual-state)) - (evil-active-region 1) - (setq evil-visual-region-expanded nil) - (evil-visual-refresh mark point type) - (cond - ((null evil-echo-state)) - ((stringp message) - (evil-echo "%s" message)) - (message - (cond - ((stringp evil-visual-state-message) - (evil-echo "%s" evil-visual-state-message)) - ((functionp evil-visual-state-message) - (funcall evil-visual-state-message))))))) - -(defun evil-visual-expand-region (&optional exclude-newline) - "Expand the region to the Visual selection. -If EXCLUDE-NEWLINE is non-nil and the selection ends with a newline, -exclude that newline from the region." - (when (and (evil-visual-state-p) - (not evil-visual-region-expanded)) - (let ((mark evil-visual-beginning) - (point evil-visual-end)) - (when (< evil-visual-direction 0) - (evil-swap mark point)) - (setq evil-visual-region-expanded t) - (evil-visual-refresh mark point) - (when (and exclude-newline - (save-excursion - (goto-char evil-visual-end) - (and (bolp) (not (bobp))))) - (if (< evil-visual-direction 0) - (evil-move-mark (max point (1- (mark)))) - (goto-char (max mark (1- (point))))))))) - -(defun evil-visual-contract-region () - "The inverse of `evil-visual-expand-region'. -Create a Visual selection that expands to the current region." - (evil-visual-refresh) - (setq evil-visual-region-expanded nil) - (evil-visual-refresh evil-visual-mark evil-visual-point)) - -(defun evil-visual-refresh (&optional mark point type &rest properties) - "Refresh point, mark and Visual variables. -Refreshes `evil-visual-beginning', `evil-visual-end', -`evil-visual-mark', `evil-visual-point', `evil-visual-selection', -`evil-visual-direction', `evil-visual-properties' and `evil-this-type'." - (let* ((point (or point (point))) - (mark (or mark (mark t) point)) - (dir (evil-visual-direction)) - (type (or type (evil-visual-type evil-visual-selection) - (evil-visual-type))) - range) - (evil-move-mark mark) - (goto-char point) - (setq evil-visual-beginning - (or evil-visual-beginning - (let ((marker (make-marker))) - (move-marker marker (min point mark)))) - evil-visual-end - (or evil-visual-end - (let ((marker (make-marker))) - (set-marker-insertion-type marker t) - (move-marker marker (max point mark)))) - evil-visual-mark - (or evil-visual-mark - (let ((marker (make-marker))) - (move-marker marker mark))) - evil-visual-point - (or evil-visual-point - (let ((marker (make-marker))) - (move-marker marker point)))) - (setq evil-visual-properties - (evil-concat-plists evil-visual-properties properties)) - (cond - (evil-visual-region-expanded - (setq type (or (evil-visual-type) type)) - (move-marker evil-visual-beginning (min point mark)) - (move-marker evil-visual-end (max point mark)) - ;; if the type is one-to-one, we can safely refresh - ;; the unexpanded positions as well - (when (evil-type-property type :one-to-one) - (setq range (apply #'evil-contract point mark type - evil-visual-properties) - mark (evil-range-beginning range) - point (evil-range-end range)) - (when (< dir 0) - (evil-swap mark point)) - (move-marker evil-visual-mark mark) - (move-marker evil-visual-point point))) - (t - (setq range (apply #'evil-expand point mark type - evil-visual-properties) - type (evil-type range type)) - (move-marker evil-visual-beginning (evil-range-beginning range)) - (move-marker evil-visual-end (evil-range-end range)) - (move-marker evil-visual-mark mark) - (move-marker evil-visual-point point))) - (setq evil-visual-direction dir - evil-this-type type))) - -(defun evil-visual-highlight (&optional arg) - "Highlight Visual selection, depending on the Visual type. -With negative ARG, disable highlighting." - (cond - ((and (numberp arg) (< arg 1)) - (when evil-visual-overlay - (delete-overlay evil-visual-overlay) - (setq evil-visual-overlay nil)) - (when evil-visual-block-overlays - (mapc #'delete-overlay evil-visual-block-overlays) - (setq evil-visual-block-overlays nil))) - ((eq evil-visual-selection 'block) - (when evil-visual-overlay - (evil-visual-highlight -1)) - (evil-visual-highlight-block - evil-visual-beginning - evil-visual-end)) - (t - (when evil-visual-block-overlays - (evil-visual-highlight -1)) - (if evil-visual-overlay - (move-overlay evil-visual-overlay - evil-visual-beginning evil-visual-end) - (setq evil-visual-overlay - (make-overlay evil-visual-beginning evil-visual-end))) - (overlay-put evil-visual-overlay 'face 'region) - (overlay-put evil-visual-overlay 'priority 99)))) - -(defun evil-visual-highlight-block (beg end &optional overlays) - "Highlight rectangular region from BEG to END. -Do this by putting an overlay on each line within the rectangle. -Each overlay extends across all the columns of the rectangle. -Reuse overlays where possible to prevent flicker." - (let* ((point (point)) - (mark (or (mark t) point)) - (overlays (or overlays 'evil-visual-block-overlays)) - (old (symbol-value overlays)) - (eol-col (and (memq this-command '(next-line previous-line)) - (numberp temporary-goal-column) - (1+ (min (round temporary-goal-column) - (1- most-positive-fixnum))))) - beg-col end-col new nlines overlay window-beg window-end) - (save-excursion - ;; calculate the rectangular region represented by BEG and END, - ;; but put BEG in the upper-left corner and END in the - ;; lower-right if not already there - (setq beg-col (evil-column beg) - end-col (evil-column end)) - (when (>= beg-col end-col) - (if (= beg-col end-col) - (setq end-col (1+ end-col)) - (evil-sort beg-col end-col)) - (setq beg (save-excursion - (goto-char beg) - (evil-move-to-column beg-col)) - end (save-excursion - (goto-char end) - (evil-move-to-column end-col 1)))) - ;; update end column with eol-col (extension to eol). - (when (and eol-col (> eol-col end-col)) - (setq end-col eol-col)) - ;; force a redisplay so we can do reliable window - ;; BEG/END calculations - (sit-for 0) - (setq window-beg (max (window-start) beg) - window-end (min (window-end) (1+ end)) - nlines (count-lines window-beg - (min window-end (point-max)))) - ;; iterate over those lines of the rectangle which are - ;; visible in the currently selected window - (goto-char window-beg) - (dotimes (i nlines) - (let (before after row-beg row-end) - ;; beginning of row - (evil-move-to-column beg-col) - (when (< (current-column) beg-col) - ;; prepend overlay with virtual spaces if unable to - ;; move directly to the first column - (setq before - (propertize - (make-string - (- beg-col (current-column)) ?\ ) - 'face - (or (get-text-property (1- (point)) 'face) - 'default)))) - (setq row-beg (point)) - ;; end of row - (evil-move-to-column end-col) - (when (and (not (eolp)) - (< (current-column) end-col)) - ;; append overlay with virtual spaces if unable to - ;; move directly to the last column - (setq after - (propertize - (make-string - (if (= (point) row-beg) - (- end-col beg-col) - (- end-col (current-column))) - ?\ ) 'face 'region)) - ;; place cursor on one of the virtual spaces - (if (= point row-beg) - (put-text-property - 0 (min (length after) 1) - 'cursor t after) - (put-text-property - (max 0 (1- (length after))) (length after) - 'cursor t after))) - (setq row-end (min (point) (line-end-position))) - ;; trim old leading overlays - (while (and old - (setq overlay (car old)) - (< (overlay-start overlay) row-beg) - (/= (overlay-end overlay) row-end)) - (delete-overlay overlay) - (setq old (cdr old))) - ;; reuse an overlay if possible, otherwise create one - (cond - ((and old (setq overlay (car old)) - (or (= (overlay-start overlay) row-beg) - (= (overlay-end overlay) row-end))) - (move-overlay overlay row-beg row-end) - (overlay-put overlay 'before-string before) - (overlay-put overlay 'after-string after) - (setq new (cons overlay new) - old (cdr old))) - (t - (setq overlay (make-overlay row-beg row-end)) - (overlay-put overlay 'before-string before) - (overlay-put overlay 'after-string after) - (setq new (cons overlay new))))) - (forward-line 1)) - ;; display overlays - (dolist (overlay new) - (overlay-put overlay 'face 'region) - (overlay-put overlay 'priority 99)) - ;; trim old overlays - (dolist (overlay old) - (delete-overlay overlay)) - (set overlays (nreverse new))))) - -(defun evil-visual-range () - "Return the Visual selection as a range. -This is a list (BEG END TYPE PROPERTIES...), where BEG is the -beginning of the selection, END is the end of the selection, -TYPE is the selection's type, and PROPERTIES is a property list -of miscellaneous selection attributes." - (apply #'evil-range - evil-visual-beginning evil-visual-end - (evil-visual-type) - :expanded t - evil-visual-properties)) - -(defun evil-visual-direction () - "Return direction of Visual selection. -The direction is -1 if point precedes mark and 1 otherwise. -See also the variable `evil-visual-direction', which holds -the direction of the last selection." - (let* ((point (point)) - (mark (or (mark t) point))) - (if (< point mark) -1 1))) - -(defun evil-visual-type (&optional selection) - "Return the type of the Visual selection. -If SELECTION is specified, return the type of that instead." - (if (and (null selection) (evil-visual-state-p)) - (or evil-this-type (evil-visual-type evil-visual-selection)) - (setq selection (or selection evil-visual-selection)) - (symbol-value (cdr-safe (assq selection evil-visual-alist))))) - -(defun evil-visual-goto-end () - "Go to the last line of the Visual selection. -This position may differ from `evil-visual-end' depending on -the selection type, and is contained in the selection." - (let ((range (evil-contract-range (evil-visual-range)))) - (goto-char (evil-range-end range)))) - -(defun evil-visual-alist () - "Return an association list from types to selection symbols." - (mapcar #'(lambda (e) - (cons (symbol-value (cdr-safe e)) (cdr-safe e))) - evil-visual-alist)) - -(defun evil-visual-selection-function (selection) - "Return a selection function for TYPE. -Default to `evil-visual-make-region'." - (or (cdr-safe (assq selection evil-visual-alist)) - ;; generic selection function - 'evil-visual-make-region)) - -(defun evil-visual-selection-for-type (type) - "Return a Visual selection for TYPE." - (catch 'done - (dolist (selection evil-visual-alist) - (when (eq (symbol-value (cdr selection)) type) - (throw 'done (car selection)))))) - -(defun evil-visual-block-corner (&optional corner point mark) - "Block corner corresponding to POINT, with MARK in opposite corner. -Depending on POINT and MARK, the return value is `upper-left', -`upper-right', `lower-left' or `lower-right': - - upper-left +---+ upper-right - | | - lower-left +---+ lower-right - -One-column or one-row blocks are ambiguous. In such cases, -the horizontal or vertical component of CORNER is used. -CORNER defaults to `upper-left'." - (let* ((point (or point (point))) - (mark (or mark (mark t))) - (corner (symbol-name - (or corner - (and (overlayp evil-visual-overlay) - (overlay-get evil-visual-overlay - :corner)) - 'upper-left))) - (point-col (evil-column point)) - (mark-col (evil-column mark)) - horizontal vertical) - (cond - ((= point-col mark-col) - (setq horizontal - (or (and (string-match "left\\|right" corner) - (match-string 0 corner)) - "left"))) - ((< point-col mark-col) - (setq horizontal "left")) - ((> point-col mark-col) - (setq horizontal "right"))) - (cond - ((= (line-number-at-pos point) - (line-number-at-pos mark)) - (setq vertical - (or (and (string-match "upper\\|lower" corner) - (match-string 0 corner)) - "upper"))) - ((< point mark) - (setq vertical "upper")) - ((> point mark) - (setq vertical "lower"))) - (intern (format "%s-%s" vertical horizontal)))) - -;;; Operator-Pending state - -(evil-define-state operator - "Operator-Pending state." - :tag " " - :cursor evil-half-cursor - :enable (evil-operator-shortcut-map operator motion normal)) - -(evil-define-keymap evil-operator-shortcut-map - "Keymap for Operator-Pending shortcuts like \"dd\" and \"gqq\"." - :local t - (setq evil-operator-shortcut-map (make-sparse-keymap)) - (evil-initialize-local-keymaps)) - -;; the half-height "Operator-Pending cursor" cannot be specified -;; as a static `cursor-type' value, since its height depends on -;; the current font size -(defun evil-half-cursor () - "Change cursor to a half-height box. -\(This is really just a thick horizontal bar.)" - (let (height) - ;; make `window-line-height' reliable - (redisplay) - (setq height (window-line-height)) - (setq height (+ (nth 0 height) (nth 3 height))) - ;; cut cursor height in half - (setq height (/ height 2)) - (setq cursor-type (cons 'hbar height)) - ;; ensure the cursor is redisplayed - (force-window-update (selected-window)) - (redisplay))) - -;;; Replace state - -(evil-define-state replace - "Replace state." - :tag " " - :cursor hbar - :message "-- REPLACE --" - (cond - ((evil-replace-state-p) - (overwrite-mode 1) - (add-hook 'pre-command-hook #'evil-replace-pre-command nil t)) - (t - (overwrite-mode -1) - (remove-hook 'pre-command-hook #'evil-replace-pre-command t) - (when evil-move-cursor-back - (evil-move-cursor-back)))) - (setq evil-replace-alist nil)) - -(defun evil-replace-pre-command () - "Remember the character under point." - (when (evil-replace-state-p) - (unless (assq (point) evil-replace-alist) - (add-to-list 'evil-replace-alist - (cons (point) - (unless (eolp) - (char-after))))))) -(put 'evil-replace-pre-command 'permanent-local-hook t) - -(defun evil-replace-backspace () - "Restore character under cursor." - (interactive) - (let (char) - (backward-char) - (when (assq (point) evil-replace-alist) - (setq char (cdr (assq (point) evil-replace-alist))) - (save-excursion - (delete-char 1) - (when char - (insert char)))))) - -;;; Motion state - -(evil-define-state motion - "Motion state." - :tag " " - :suppress-keymap t) - -;;; Emacs state - -(evil-define-state emacs - "Emacs state." - :tag " " - :message "-- EMACS --" - :input-method t - :intercept-esc nil) - -(provide 'evil-states) - -;;; evil-states.el ends here diff --git a/elpa/evil-1.0.1/evil-types.el b/elpa/evil-1.0.1/evil-types.el deleted file mode 100644 index ffc08596..00000000 --- a/elpa/evil-1.0.1/evil-types.el +++ /dev/null @@ -1,361 +0,0 @@ -;;; evil-types.el --- Type system - -;; Author: Vegard Ă˜ye -;; Maintainer: Vegard Ă˜ye - -;; Version: 1.0.1 - -;; -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; This file is part of Evil. -;; -;; Evil is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; Evil is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Evil. If not, see . - -;;; Commentary: - -;; A type defines a transformation on a pair of buffer positions. -;; Types are used by Visual state (character/line/block selection) -;; and Operator-Pending state (character/line/block motions). -;; -;; The basic transformation is "expansion". For example, the `line' -;; type "expands" a pair of positions to whole lines by moving the -;; first position to the beginning of the line and the last position -;; to the end of the line. That expanded selection is what the rest -;; of Emacs sees and acts on. -;; -;; An optional transformation is "contraction", which is the opposite -;; of expansion. If the transformation is one-to-one, expansion -;; followed by contraction always returns the original range. -;; (The `line' type is not one-to-one, as it may expand multiple -;; positions to the same lines.) -;; -;; Another optional transformation is "normalization", which takes -;; two unexpanded positions and adjusts them before expansion. -;; This is useful for cleaning up "invalid" positions. -;; -;; Types are defined at the end of this file using the macro -;; `evil-define-type'. - -(require 'evil-common) -(require 'evil-macros) - -;;; Code: - -;;; Type definitions - -(evil-define-type exclusive - "Return the positions unchanged, with some exceptions. -If the end position is at the beginning of a line, then: - -* If the beginning position is at or before the first non-blank - character on the line, return `line' (expanded). - -* Otherwise, move the end position to the end of the previous - line and return `inclusive' (expanded)." - :normalize (lambda (beg end) - (cond - ((progn - (goto-char end) - (and (/= beg end) (bolp))) - (setq end (max beg (1- end))) - (cond - ((progn - (goto-char beg) - (looking-back "^[ \f\t\v]*" (line-beginning-position))) - (evil-expand beg end 'line)) - (t - (unless evil-cross-lines - (setq end (max beg (1- end)))) - (evil-expand beg end 'inclusive)))) - (t - (evil-range beg end)))) - :string (lambda (beg end) - (let ((width (- end beg))) - (format "%s character%s" width - (if (= width 1) "" "s"))))) - -(evil-define-type inclusive - "Include the character under point. -If the end position is at the beginning of a line or the end of a -line and `evil-want-visual-char-semi-exclusive', then: - -* If in visual state return `exclusive' (expanded)." - :expand (lambda (beg end) - (if (and evil-want-visual-char-semi-exclusive - (evil-visual-state-p) - (< beg end) - (save-excursion - (goto-char end) - (or (bolp) (eolp)))) - (evil-range beg end 'exclusive) - (evil-range beg (1+ end)))) - :contract (lambda (beg end) - (evil-range beg (max beg (1- end)))) - :normalize (lambda (beg end) - (goto-char end) - (when (eq (char-after) ?\n) - (setq end (max beg (1- end)))) - (evil-range beg end)) - :string (lambda (beg end) - (let ((width (- end beg))) - (format "%s character%s" width - (if (= width 1) "" "s"))))) - -(evil-define-type line - "Include whole lines." - :one-to-one nil - :expand (lambda (beg end) - (evil-range - (progn - (goto-char beg) - (min (line-beginning-position) - (progn - ;; move to beginning of line as displayed - (evil-move-beginning-of-line) - (line-beginning-position)))) - (progn - (goto-char end) - (max (line-beginning-position 2) - (progn - ;; move to end of line as displayed - (evil-move-end-of-line) - (line-beginning-position 2)))))) - :contract (lambda (beg end) - (evil-range beg (max beg (1- end)))) - :string (lambda (beg end) - (let ((height (count-lines beg end))) - (format "%s line%s" height - (if (= height 1) "" "s"))))) - -(evil-define-type block - "Like `inclusive', but for rectangles: -the last column is included." - :expand (lambda (beg end &rest properties) - (let ((beg-col (evil-column beg)) - (end-col (evil-column end)) - (corner (plist-get properties :corner))) - ;; Since blocks are implemented as a pair of buffer - ;; positions, expansion is restricted to what the buffer - ;; allows. In the case of a one-column block, there are - ;; two ways to expand it (either move the upper corner - ;; beyond the lower corner, or the lower beyond the - ;; upper), so try out both possibilities when - ;; encountering the end of the line. - (cond - ((= beg-col end-col) - (goto-char end) - (cond - ((eolp) - (goto-char beg) - (if (eolp) - (evil-range beg end) - (evil-range (1+ beg) end))) - ((memq corner '(lower-right upper-right right)) - (evil-range (1+ beg) end)) - (t - (evil-range beg (1+ end))))) - ((< beg-col end-col) - (goto-char end) - (if (eolp) - (evil-range beg end) - (evil-range beg (1+ end)))) - (t - (goto-char beg) - (if (eolp) - (evil-range beg end) - (evil-range (1+ beg) end)))))) - :contract (lambda (beg end) - (let ((beg-col (evil-column beg)) - (end-col (evil-column end))) - (if (> beg-col end-col) - (evil-range (1- beg) end) - (evil-range beg (max beg (1- end)))))) - :string (lambda (beg end) - (let ((height (count-lines - beg - (progn - (goto-char end) - (if (and (bolp) (not (eobp))) - (1+ end) - end)))) - (width (abs (- (evil-column beg) - (evil-column end))))) - (format "%s row%s and %s column%s" - height - (if (= height 1) "" "s") - width - (if (= width 1) "" "s")))) - :rotate (lambda (beg end &rest properties) - "Rotate block according to :corner property. -:corner can be one of `upper-left',``upper-right', `lower-left' -and `lower-right'." - (let ((left (evil-column beg)) - (right (evil-column end)) - (corner (or (plist-get properties :corner) - 'upper-left))) - (evil-sort left right) - (goto-char beg) - (if (memq corner '(upper-right lower-left)) - (move-to-column right) - (move-to-column left)) - (setq beg (point)) - (goto-char end) - (if (memq corner '(upper-right lower-left)) - (move-to-column left) - (move-to-column right)) - (setq end (point)) - (setq properties (plist-put properties - :corner corner)) - (apply #'evil-range beg end properties)))) - -(evil-define-type rectangle - "Like `exclusive', but for rectangles: -the last column is excluded." - :expand (lambda (beg end) - ;; select at least one column - (if (= (evil-column beg) (evil-column end)) - (evil-expand beg end 'block) - (evil-range beg end 'block)))) - -;;; Standard interactive codes - -(evil-define-interactive-code "*" - "Signal error if the buffer is read-only." - (when buffer-read-only - (signal 'buffer-read-only nil))) - -(evil-define-interactive-code "b" (prompt) - "Name of existing buffer." - (list (read-buffer prompt (current-buffer) t))) - -(evil-define-interactive-code "c" - "Read character." - (list (read-char))) - -(evil-define-interactive-code "p" - "Prefix argument converted to number." - (list (prefix-numeric-value current-prefix-arg))) - -(evil-define-interactive-code "P" - "Prefix argument in raw form." - (list current-prefix-arg)) - -;;; Custom interactive codes - -(evil-define-interactive-code "" - "Count." - (list (when current-prefix-arg - (prefix-numeric-value - current-prefix-arg)))) - -(evil-define-interactive-code "" - "Count, but only in visual state. -This should be used by an operator taking a count. In normal -state the count should not be handled by the operator but by the -motion that defines the operator's range. In visual state the -range is specified by the visual region and the count is not used -at all. Thus in the case the operator may use the count -directly." - (list (when (and (evil-visual-state-p) current-prefix-arg) - (prefix-numeric-value - current-prefix-arg)))) - -(evil-define-interactive-code "" - "Character read through `evil-read-key'." - (list (evil-read-key))) - -(evil-define-interactive-code "" - "Untyped motion range (BEG END)." - (evil-operator-range)) - -(evil-define-interactive-code "" - "Typed motion range (BEG END TYPE)." - (evil-operator-range t)) - -(evil-define-interactive-code "" - "Typed motion range of visual range(BEG END TYPE). -If visual state is inactive then those values are nil." - (if (evil-visual-state-p) - (let ((range (evil-visual-range))) - (list (car range) - (cadr range) - (evil-type range))) - (list nil nil nil))) - -(evil-define-interactive-code "" - "Current register." - (list evil-this-register)) - -(evil-define-interactive-code "" - "Current yank-handler." - (list (evil-yank-handler))) - -(evil-define-interactive-code "" - "Ex argument." - :ex-arg t - (list (when (evil-ex-p) evil-ex-argument))) - -(evil-define-interactive-code "" - "Ex file argument." - :ex-arg file - (list (when (evil-ex-p) (evil-ex-file-arg)))) - -(evil-define-interactive-code "" - "Ex buffer argument." - :ex-arg buffer - (list (when (evil-ex-p) evil-ex-argument))) - -(evil-define-interactive-code "" - "Ex shell command argument." - :ex-arg shell - (list (when (evil-ex-p) evil-ex-argument))) - -(evil-define-interactive-code "" - "Ex file or shell command argument." - :ex-arg file-or-shell - (list (when (evil-ex-p) evil-ex-argument))) - -(evil-define-interactive-code "" - "Ex symbolic argument." - :ex-arg sym - (list (when (and (evil-ex-p) evil-ex-argument) - (intern evil-ex-argument)))) - -(evil-define-interactive-code "" - "Ex bang argument." - :ex-bang t - (list (when (evil-ex-p) evil-ex-bang))) - -(evil-define-interactive-code "" - "Ex delimited argument." - (when (evil-ex-p) - (evil-delimited-arguments evil-ex-argument))) - -(evil-define-interactive-code "" - "Ex global argument." - (when (evil-ex-p) - (evil-ex-parse-global evil-ex-argument))) - -(evil-define-interactive-code "" - "Ex substitution argument." - :ex-arg substitution - (when (evil-ex-p) - (evil-ex-get-substitute-info evil-ex-argument))) - -(provide 'evil-types) - -;;; evil-types.el ends here diff --git a/elpa/evil-1.0.1/evil-vars.el b/elpa/evil-1.0.1/evil-vars.el deleted file mode 100644 index 69a6f72e..00000000 --- a/elpa/evil-1.0.1/evil-vars.el +++ /dev/null @@ -1,1392 +0,0 @@ -;;; evil-vars.el --- Settings and variables - -;; Author: Vegard Ă˜ye -;; Maintainer: Vegard Ă˜ye - -;; Version: 1.0.1 - -;; -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; This file is part of Evil. -;; -;; Evil is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; Evil is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Evil. If not, see . - -;;; Code: - -;;; Hooks - -(defvar evil-after-load-hook nil - "Functions to be run when loading of evil is finished. -This hook can be used the execute some initialization routines -when evil is completely loaded.") - -;;; Initialization - -(defvar evil-pending-custom-initialize nil - "A list of pending initializations for custom variables. -Each element is a triple (FUNC VAR VALUE). When evil is -completely loaded then the functions (funcall FUNC VAR VALUE) is -called for each element. FUNC should be a function suitable for -the :initialize property of `defcustom'.") - -(defun evil-custom-initialize-pending-reset (var value) - "Add a pending customization with `custom-initialize-reset'." - (push (list 'custom-initialize-reset var value) - evil-pending-custom-initialize)) - -(defun evil-run-pending-custom-initialize () - "Executes the pending initializations. -See `evil-pending-custom-initialize'." - (dolist (init evil-pending-custom-initialize) - (apply (car init) (cdr init))) - (remove-hook 'evil-after-load-hook 'evil-run-pending-custom-initialize)) -(add-hook 'evil-after-load-hook 'evil-run-pending-custom-initialize) - -;;; Setters - -(defun evil-set-toggle-key (key) - "Set `evil-toggle-key' to KEY. -KEY must be readable by `read-kbd-macro'." - (let ((old-key (read-kbd-macro - (if (boundp 'evil-toggle-key) - evil-toggle-key - "C-z"))) - (key (read-kbd-macro key))) - (with-no-warnings - (dolist (pair '((evil-motion-state-map evil-emacs-state) - (evil-insert-state-map evil-emacs-state) - (evil-emacs-state-map evil-exit-emacs-state))) - (when (boundp (car pair)) - (let ((map (symbol-value (car pair))) - (fun (cadr pair))) - (when (keymapp map) - (define-key map key fun) - (define-key map old-key nil)))))))) - -(defun evil-set-custom-state-maps (var pending-var key make newlist) - "Changes the list of special keymaps. -VAR is the variable containing the list of keymaps. -PENDING-VAR is the variable containing the list of the currently pending - keymaps. -KEY the special symbol to be stored in the keymaps. -MAKE the creation function of the special keymaps. -NEWLIST the list of new special keymaps." - (set-default pending-var newlist) - (when (default-boundp var) - (dolist (map (default-value var)) - (when (and (boundp (car map)) - (keymapp (default-value (car map)))) - (define-key (default-value (car map)) (vector key) nil)))) - (set-default var newlist) - (evil-update-pending-maps)) - -(defun evil-update-pending-maps (&optional file) - "Tries to set pending special keymaps. -This function should be called from an `after-load-functions' -hook." - (let ((maps '((evil-make-overriding-map . evil-pending-overriding-maps) - (evil-make-intercept-map . evil-pending-intercept-maps)))) - (while maps - (let* ((map (pop maps)) - (make (car map)) - (pending-var (cdr map)) - (pending (symbol-value pending-var)) - newlist) - (while pending - (let* ((map (pop pending)) - (kmap (and (boundp (car map)) - (keymapp (symbol-value (car map))) - (symbol-value (car map)))) - (state (cdr map))) - (if kmap - (funcall make kmap state) - (push map newlist)))) - (set-default pending-var newlist))))) - -(defun evil-set-visual-newline-commands (var value) - "Set the value of `evil-visual-newline-commands'. -Setting this variable changes the properties of the appropriate -commands." - (with-no-warnings - (when (default-boundp var) - (dolist (cmd (default-value var)) - (evil-set-command-property cmd :exclude-newline nil))) - (set-default var value) - (dolist (cmd (default-value var)) - (evil-set-command-property cmd :exclude-newline t)))) - -(defun evil-set-custom-motions (var values) - "Sets the list of motion commands." - (with-no-warnings - (when (default-boundp var) - (dolist (motion (default-value var)) - (evil-add-command-properties motion :keep-visual nil :repeat nil))) - (set-default var values) - (mapc #'evil-declare-motion (default-value var)))) - -;;; Customization group - -(defgroup evil nil - "Extensible vi layer." - :group 'emulations - :prefix 'evil-) - -(defcustom evil-auto-indent t - "Whether to auto-indent when entering Insert state." - :type 'boolean - :group 'evil) -(make-variable-buffer-local 'evil-auto-indent) - -(defcustom evil-shift-width 4 - "The offset used by \\\\[evil-shift-right] \ -and \\[evil-shift-left]." - :type 'integer - :group 'evil) -(make-variable-buffer-local 'evil-shift-width) - -(defcustom evil-shift-round t - "Whether \\\\[evil-shift-right] \ -and \\[evil-shift-left] round to the nearest multiple \ -of `evil-shift-width'." - :type 'boolean - :group 'evil) -(make-variable-buffer-local 'evil-shift-round) - -(defcustom evil-default-cursor - (list (or (frame-parameter nil 'cursor-color) "black") t) - "The default cursor. -May be a cursor type as per `cursor-type', a color string as passed -to `set-cursor-color', a zero-argument function for changing the -cursor, or a list of the above." - :type '(set symbol (cons symbol symbol) string function) - :group 'evil) - -(defcustom evil-repeat-move-cursor t - "Whether \"\\\\[evil-repeat]\" \ -moves the cursor." - :type 'boolean - :group 'evil) - -(defcustom evil-cross-lines nil - "Whether motions may cross newlines." - :type 'boolean - :group 'evil) - -(defcustom evil-move-cursor-back t - "Whether the cursor is moved backwards when exiting Insert state." - :type 'boolean - :group 'evil) - -(defcustom evil-kbd-macro-suppress-motion-error nil - "Whether left/right motions signal errors during keyboard-macro definition. -If this variable is set to non-nil, then the function -`evil-forward-char' and `evil-backward-char' do not signal -`end-of-line' or `beginning-of-line' errors when a keyboard macro -is being defined and/or it is being executed. This may be desired -because such an error would cause the macro definition/execution -being terminated." - :type '(radio (const :tag "No" :value nil) - (const :tag "Record" :value record) - (const :tag "Replay" :value replay) - (const :tag "Both" :value t)) - :group 'evil) - -(defcustom evil-track-eol t - "If non-nil line moves after a call to `evil-end-of-line' stay at eol. -This is analogous to `track-eol' but deals with the end-of-line -interpretation of evil." - :type 'boolean - :group 'evil) - -(defcustom evil-mode-line-format 'before - "The position of the mode line tag. -Either a symbol or a cons-cell. If it is a symbol it should be -one of 'before, 'after or 'nil. 'before mean the the tag is -placed before the mode-list, 'after means it is placed after the -mode-list, and 'nil means no mode line tag. If it is a cons cell -it should have the form (WHERE . WHICH) where WHERE is either -'before or 'after and WHICH is a symbol in -`mode-line-format'. The tag is then placed right before or after -that symbol." - :type '(radio :value 'before - (const before) - (const after) - (cons :tag "Next to symbol" - (choice :value after - (const before) - (const after)) - symbol)) - :group 'evil) - -(defcustom evil-mouse-word 'evil-move-word - "The (movement) function to be used for double click selection. -The double-click starts visual state in a special word selection -mode. This function is used to determine the words to be -selected. Possible values are 'evil-move-word or -'evil-move-WORD." - :type 'symbol - :group 'evil) - -(defcustom evil-bigword "^ \t\r\n" - "The characters to be considered as a big word. -This should be a regexp set without the enclosing []." - :type 'string - :group 'evil) -(make-variable-buffer-local 'evil-bigword) - -(defcustom evil-want-fine-undo nil - "Whether actions like \"cw\" are undone in several steps." - :type 'boolean - :group 'evil) - -(defcustom evil-regexp-search t - "Whether to use regular expressions for searching." - :type 'boolean - :group 'evil) - -(defcustom evil-search-wrap t - "Whether search wraps around." - :type 'boolean - :group 'evil) - -(defcustom evil-flash-delay 2 - "Time in seconds to flash search matches." - :type 'number - :group 'evil) - -(defcustom evil-fold-level 0 - "Default fold level." - :type 'integer - :group 'evil) - -(defcustom evil-esc-delay 0.01 - "Time in seconds to wait for another key after ESC." - :type 'number - :group 'evil) - -(defcustom evil-show-paren-range 0 - "The minimal distance between point and a parenthesis -which causes the parenthesis to be highlighted." - :type 'integer - :group 'evil) - -(defcustom evil-ex-hl-update-delay 0.02 - "Time in seconds of idle before updating search highlighting. -Setting this to a period shorter than that of keyboard's repeat -rate allows highlights to update while scrolling." - :type 'number - :group 'evil) - -(defcustom evil-highlight-closing-paren-at-point-states - '(not emacs insert replace) - "The states in which the closing parenthesis at point should be highlighted. -All states listed here highlight the closing parenthesis at -point (which is Vim default behavior), all others highlight the -parenthesis before point (which is Emacs default behavior). If -this list contains the symbol 'not then its meaning is inverted, -i.e., all states listed here highlight the closing parenthesis -before point." - :type '(repeat symbol) - :group 'evil) - -(defcustom evil-want-C-i-jump t - "Whether \"C-i\" jumps forward like in Vim." - :type 'boolean - :group 'evil) - -(defcustom evil-want-C-u-scroll nil - "Whether \"C-u\" scrolls like in Vim." - :type 'boolean - :group 'evil) - -(defcustom evil-want-C-w-delete t - "Whether \"C-w\" deletes a word in Insert state." - :type 'boolean - :group 'evil) - -(defcustom evil-want-C-w-in-emacs-state nil - "Whether \"C-w\" prefixes windows commands in Emacs state." - :type 'boolean - :group 'evil) - -(defcustom evil-want-change-word-to-end t - "Whether \"cw\" behaves like \"ce\"." - :type 'boolean - :group 'evil) - -(defcustom evil-echo-state t - "Whether to signal the current state in the echo area." - :type 'boolean - :group 'evil) - -(defcustom evil-complete-all-buffers t - "Whether completion looks for matches in all buffers." - :type 'boolean - :group 'evil) - -(defcustom evil-complete-next-func - #'(lambda (arg) - (require 'dabbrev) - (let ((dabbrev-search-these-buffers-only - (unless evil-complete-all-buffers - (list (current-buffer)))) - dabbrev-case-distinction) - (condition-case nil - (if (eq last-command this-command) - (dabbrev-expand nil) - (dabbrev-expand (- (abs (or arg 1))))) - (error (dabbrev-expand nil))))) - "Completion function used by \ -\\\\[evil-complete-next]." - :type 'function - :group 'evil) - -(defcustom evil-complete-previous-func - #'(lambda (arg) - (require 'dabbrev) - (let ((dabbrev-search-these-buffers-only - (unless evil-complete-all-buffers - (list (current-buffer)))) - dabbrev-case-distinction) - (dabbrev-expand arg))) - "Completion function used by \ -\\\\[evil-complete-previous]." - :type 'function - :group 'evil) - -(defcustom evil-complete-next-minibuffer-func 'minibuffer-complete - "Minibuffer completion function used by \ -\\\\[evil-complete-next]." - :type 'function - :group 'evil) - -(defcustom evil-complete-previous-minibuffer-func 'minibuffer-complete - "Minibuffer completion function used by \ -\\\\[evil-complete-previous]." - :type 'function - :group 'evil) - -(defcustom evil-complete-next-line-func - #'(lambda (arg) - (let ((hippie-expand-try-functions-list - '(try-expand-line - try-expand-line-all-buffers))) - (hippie-expand arg))) - "Minibuffer completion function used by \ -\\\\[evil-complete-next-line]." - :type 'function - :group 'evil) - -(defcustom evil-complete-previous-line-func - evil-complete-next-line-func - "Minibuffer completion function used by \ -\\\\[evil-complete-previous-line]." - :type 'function - :group 'evil) - -(defcustom evil-lookup-func #'woman - "Lookup function used by \ -\"\\\\[evil-lookup]\"." - :type 'function - :group 'evil) - -(defcustom evil-toggle-key "C-z" - "The key used to change to and from Emacs state. -Must be readable by `read-kbd-macro'. For example: \"C-z\"." - :type 'string - :group 'evil - :set #'(lambda (sym value) - (evil-set-toggle-key value) - (set-default sym value))) - -(defcustom evil-default-state 'normal - "The default state. -This is the state a mode comes up in when it is not listed -in `evil-emacs-state-modes', `evil-insert-state-modes' or -`evil-motion-state-modes'. The value may be one of `normal', -`insert', `visual', `replace', `operator', `motion' and -`emacs'." - :type 'symbol - :group 'evil) - -(defcustom evil-buffer-regexps - '(("^ \\*load\\*" . nil)) - "Regular expression determining the initial state for a buffer. -Entries have the form (REGEXP . STATE), where REGEXP is a regular -expression matching the buffer's name and STATE is one of `normal', -`insert', `visual', `replace', `operator', `motion', `emacs' and nil. -If STATE is nil, Evil is disabled in the buffer." - :type '(alist :key-type string :value-type symbol) - :group 'evil) - -(defcustom evil-emacs-state-modes - '(archive-mode - bbdb-mode - bookmark-bmenu-mode - bookmark-edit-annotation-mode - browse-kill-ring-mode - bzr-annotate-mode - calc-mode - cfw:calendar-mode - completion-list-mode - Custom-mode - debugger-mode - delicious-search-mode - desktop-menu-blist-mode - desktop-menu-mode - doc-view-mode - dvc-bookmarks-mode - dvc-diff-mode - dvc-info-buffer-mode - dvc-log-buffer-mode - dvc-revlist-mode - dvc-revlog-mode - dvc-status-mode - dvc-tips-mode - ediff-mode - ediff-meta-mode - efs-mode - Electric-buffer-menu-mode - emms-browser-mode - emms-mark-mode - emms-metaplaylist-mode - emms-playlist-mode - etags-select-mode - fj-mode - gc-issues-mode - gdb-breakpoints-mode - gdb-disassembly-mode - gdb-frames-mode - gdb-locals-mode - gdb-memory-mode - gdb-registers-mode - gdb-threads-mode - gist-list-mode - gnus-article-mode - gnus-browse-mode - gnus-group-mode - gnus-server-mode - gnus-summary-mode - google-maps-static-mode - ibuffer-mode - jde-javadoc-checker-report-mode - magit-commit-mode - magit-diff-mode - magit-key-mode - magit-log-mode - magit-mode - magit-reflog-mode - magit-show-branches-mode - magit-stash-mode - magit-status-mode - magit-wazzup-mode - mh-folder-mode - monky-mode - notmuch-hello-mode - notmuch-search-mode - notmuch-show-mode - occur-mode - org-agenda-mode - package-menu-mode - proced-mode - rcirc-mode - rebase-mode - recentf-dialog-mode - reftex-select-bib-mode - reftex-toc-mode - sldb-mode - slime-inspector-mode - slime-thread-control-mode - slime-xref-mode - sr-buttons-mode - sr-mode - sr-tree-mode - sr-virtual-mode - tar-mode - tetris-mode - tla-annotate-mode - tla-archive-list-mode - tla-bconfig-mode - tla-bookmarks-mode - tla-branch-list-mode - tla-browse-mode - tla-category-list-mode - tla-changelog-mode - tla-follow-symlinks-mode - tla-inventory-file-mode - tla-inventory-mode - tla-lint-mode - tla-logs-mode - tla-revision-list-mode - tla-revlog-mode - tla-tree-lint-mode - tla-version-list-mode - twittering-mode - urlview-mode - vc-annotate-mode - vc-dir-mode - vc-git-log-view-mode - vc-svn-log-view-mode - vm-mode - vm-summary-mode - w3m-mode - wab-compilation-mode - xgit-annotate-mode - xgit-changelog-mode - xgit-diff-mode - xgit-revlog-mode - xhg-annotate-mode - xhg-log-mode - xhg-mode - xhg-mq-mode - xhg-mq-sub-mode - xhg-status-extra-mode) - "Modes that should come up in Emacs state." - :type '(repeat symbol) - :group 'evil) - -(defcustom evil-insert-state-modes - '(comint-mode - erc-mode - eshell-mode - geiser-repl-mode - gud-mode - inferior-apl-mode - inferior-caml-mode - inferior-emacs-lisp-mode - inferior-j-mode - inferior-python-mode - inferior-scheme-mode - inferior-sml-mode - internal-ange-ftp-mode - prolog-inferior-mode - reb-mode - shell-mode - slime-repl-mode - term-mode - wdired-mode) - "Modes that should come up in Insert state." - :type '(repeat symbol) - :group 'evil) - -(defcustom evil-motion-state-modes - '(apropos-mode - Buffer-menu-mode - calendar-mode - color-theme-mode - command-history-mode - compilation-mode - dictionary-mode - ert-results-mode - help-mode - Info-mode - speedbar-mode - undo-tree-visualizer-mode - view-mode) - "Modes that should come up in Motion state." - :type '(repeat symbol) - :group 'evil) - -(defvar evil-pending-overriding-maps nil - "An alist of pending overriding maps.") - -(defvar evil-pending-intercept-maps nil - "An alist of pending intercept maps.") - -(defcustom evil-overriding-maps - '((Buffer-menu-mode-map . nil) - (color-theme-mode-map . nil) - (comint-mode-map . nil) - (compilation-mode-map . nil) - (dictionary-mode-map . nil) - (ert-results-mode-map . motion) - (Info-mode-map . motion) - (speedbar-key-map . nil) - (speedbar-file-key-map . nil) - (speedbar-buffers-key-map . nil)) - "Keymaps that should override Evil maps. -Entries have the form (MAP-VAR . STATE), where MAP-VAR is -a keymap variable and STATE is the state whose bindings -should be overridden. If STATE is nil, all states are -overridden." - :type '(alist :key-type symbol :value-type symbol) - :group 'evil - :set #'(lambda (var values) - (evil-set-custom-state-maps 'evil-overriding-maps - 'evil-pending-overriding-maps - 'override-state - 'evil-make-overriding-map - values)) - :initialize 'evil-custom-initialize-pending-reset) - -(add-hook 'after-load-functions #'evil-update-pending-maps) - -(defcustom evil-intercept-maps - '((edebug-mode-map . nil)) - "Keymaps that should intercept Evil maps. -Entries have the form (MAP-VAR . STATE), where MAP-VAR is -a keymap variable and STATE is the state whose bindings -should be intercepted. If STATE is nil, all states are -intercepted." - :type '(alist :key-type symbol :value-type symbol) - :group 'evil - :set #'(lambda (var values) - (evil-set-custom-state-maps 'evil-intercept-maps - 'evil-pending-intercept-maps - 'intercept-state - 'evil-make-intercept-map - values)) - :initialize 'evil-custom-initialize-pending-reset) - -(defcustom evil-motions - '(back-to-indentation - backward-char - backward-list - backward-paragraph - backward-sentence - backward-sexp - backward-up-list - backward-word - beginning-of-buffer - beginning-of-defun - beginning-of-line - beginning-of-visual-line - c-beginning-of-defun - c-end-of-defun - down-list - end-of-buffer - end-of-defun - end-of-line - end-of-visual-line - exchange-point-and-mark - forward-char - forward-list - forward-paragraph - forward-sentence - forward-sexp - forward-word - goto-last-change - ibuffer-backward-line - ibuffer-forward-line - isearch-abort - isearch-cancel - isearch-complete - isearch-del-char - isearch-delete-char - isearch-edit-string - isearch-exit - isearch-highlight-regexp - isearch-occur - isearch-other-control-char - isearch-other-meta-char - isearch-printing-char - isearch-query-replace - isearch-query-replace-regexp - isearch-quote-char - isearch-repeat-backward - isearch-repeat-forward - isearch-ring-advance - isearch-ring-retreat - isearch-toggle-case-fold - isearch-toggle-input-method - isearch-toggle-regexp - isearch-toggle-specified-input-method - isearch-toggle-word - isearch-yank-char - isearch-yank-kill - isearch-yank-line - isearch-yank-word-or-char - keyboard-quit - left-char - left-word - mouse-drag-region - mouse-save-then-kill - mouse-set-point - mouse-set-region - mwheel-scroll - move-beginning-of-line - move-end-of-line - next-error - next-line - paredit-backward - paredit-backward-down - paredit-backward-up - paredit-forward - paredit-forward-down - paredit-forward-up - pop-global-mark - pop-tag-mark - pop-to-mark-command - previous-error - previous-line - redo - right-char - right-word - scroll-down - scroll-up - undo - undo-tree-redo - undo-tree-undo - up-list) - "Non-Evil commands to initialize to motions." - :type '(repeat symbol) - :group 'evil - :set 'evil-set-custom-motions - :initialize 'evil-custom-initialize-pending-reset) - -(defcustom evil-visual-newline-commands - '(LaTeX-section - TeX-font) - "Commands excluding the trailing newline of a Visual Line selection. -These commands work better without this newline." - :type '(repeat symbol) - :group 'evil - :set 'evil-set-visual-newline-commands - :initialize 'evil-custom-initialize-pending-reset) - -(defcustom evil-want-visual-char-semi-exclusive nil - "Visual character selection to beginning/end of line is exclusive. -If non nil then an inclusive visual character selection which -ends at the beginning or end of a line is turned into an -exclusive selection. Thus if the selected (inclusive) range ends -at the beginning of a line it is changed to not include the first -character of that line, and if the selected range ends at the end -of a line it is changed to not include the newline character of -that line." - :type 'boolean - :group 'evil) - -(defgroup evil-cjk nil - "CJK support" - :prefix "evil-cjk-" - :group 'evil) - -(defcustom evil-cjk-emacs-word-boundary nil - "Determine word boundary exactly the same way as Emacs does." - :type 'boolean - :group 'evil-cjk) - -(defcustom evil-cjk-word-separating-categories - '(;; Kanji - (?C . ?H) (?C . ?K) (?C . ?k) (?C . ?A) (?C . ?G) - ;; Hiragana - (?H . ?C) (?H . ?K) (?H . ?k) (?H . ?A) (?H . ?G) - ;; Katakana - (?K . ?C) (?K . ?H) (?K . ?k) (?K . ?A) (?K . ?G) - ;; half-width Katakana - (?k . ?C) (?k . ?H) (?k . ?K) ; (?k . ?A) (?k . ?G) - ;; full-width alphanumeric - (?A . ?C) (?A . ?H) (?A . ?K) ; (?A . ?k) (?A . ?G) - ;; full-width Greek - (?G . ?C) (?G . ?H) (?G . ?K) ; (?G . ?k) (?G . ?A) - ) - "List of pair (cons) of categories to determine word boundary -used in `evil-cjk-word-boundary-p'. See the documentation of -`word-separating-categories'. Use `describe-categories' to see -the list of categories." - :type '((character . character)) - :group 'evil-cjk) - -(defcustom evil-cjk-word-combining-categories - '(;; default value in word-combining-categories - (nil . ?^) (?^ . nil) - ;; Roman - (?r . ?k) (?r . ?A) (?r . ?G) - ;; half-width Katakana - (?k . ?r) (?k . ?A) (?k . ?G) - ;; full-width alphanumeric - (?A . ?r) (?A . ?k) (?A . ?G) - ;; full-width Greek - (?G . ?r) (?G . ?k) (?G . ?A) - ) - "List of pair (cons) of categories to determine word boundary -used in `evil-cjk-word-boundary-p'. See the documentation of -`word-combining-categories'. Use `describe-categories' to see the -list of categories." - :type '((character . character)) - :group 'evil-cjk) - -(defface evil-ex-info '(( ((supports :slant)) - :slant italic - :foreground "red")) - "Face for the info message in ex mode." - :group 'evil) - -;; Searching -(defcustom evil-magic t - "Meaning which characters in a pattern are magic. -The meaning of those values is the same as in Vim. Note that it -only has influence if the evil search module is chosen in -`evil-search-module'." - :group 'evil - :type '(radio (const :tag "Very magic." :value very-magic) - (const :tag "Magic" :value t) - (const :tag "Nomagic" :value nil) - (const :tag "Very nomagic" :value very-nomagic))) - -(defcustom evil-ex-search-vim-style-regexp nil - "If non-nil Vim-style backslash codes are supported in search patterns. -See `evil-transform-vim-style-regexp' for the supported backslash -codes. Note that this only affects the search command if -`evil-search-module' is set to 'evil. The isearch module always -uses plain Emacs regular expressions." - :type 'boolean - :group 'evil) - -(defcustom evil-ex-interactive-search-highlight 'all-windows - "Determine in which windows the interactive highlighting should be shown." - :type '(radio (const :tag "All windows." all-windows) - (const :tag "Selected window." selected-window) - (const :tag "Disable highlighting." nil)) - :group 'evil) - -(defcustom evil-ex-search-case 'smart - "The case behaviour of the search command. -Smart case means that the pattern is case sensitive if and only -if it contains an upper case letter, otherwise it is case -insensitive." - :type '(radio (const :tag "Case sensitive." sensitive) - (const :tag "Case insensitive." insensitive) - (const :tag "Smart case." smart)) - :group 'evil) - -(defcustom evil-ex-substitute-case nil - "The case behaviour of the search command. -Smart case means that the pattern is case sensitive if and only -if it contains an upper case letter, otherwise it is case -insensitive. If nil then the setting of `evil-ex-search-case' is -used." - :type '(radio (const :tag "Same as interactive search." nil) - (const :tag "Case sensitive." sensitive) - (const :tag "Case insensitive." insensitive) - (const :tag "Smart case." smart)) - :group 'evil) - -(defcustom evil-ex-search-interactive t - "If t search is interactive." - :type 'boolean - :group 'evil) - -(defcustom evil-ex-search-highlight-all t - "If t and interactive search is enabled, all matches are -highlighted." - :type 'boolean - :group 'evil) - -(defcustom evil-ex-substitute-highlight-all t - "If t all matches for the substitute pattern are highlighted." - :type 'boolean - :group 'evil) - -(defcustom evil-ex-substitute-interactive-replace t - "If t and substitute patterns are highlighted, -the replacement is shown interactively." - :type 'boolean - :group 'evil) - -(defface evil-ex-search '((t :inherit isearch)) - "Face for interactive search." - :group 'evil) - -(defface evil-ex-lazy-highlight '((t :inherit lazy-highlight)) - "Face for highlighting all matches in interactive search." - :group 'evil) - -(defface evil-ex-substitute-matches '((t :inherit lazy-highlight)) - "Face for interactive substitute matches." - :group 'evil) - -(defface evil-ex-substitute-replacement '((((supports :underline)) - :underline t - :foreground "red")) - "Face for interactive replacement text." - :group 'evil) - -;;; Variables - -(defmacro evil-define-local-var (symbol &optional initvalue docstring) - "Define SYMBOL as permanent buffer local variable, and return SYMBOL. -The parameters are the same as for `defvar', but the variable -SYMBOL is made permanent buffer local." - (declare (indent defun) - (debug (symbolp &optional form stringp))) - `(progn - (defvar ,symbol ,initvalue ,docstring) - (make-variable-buffer-local ',symbol) - (put ',symbol 'permanent-local t))) - -(evil-define-local-var evil-state nil - "The current Evil state. -To change the state, use `evil-change-state' -or call the state function (e.g., `evil-normal-state').") - -;; these may be used inside `evil-define-state' -(evil-define-local-var evil-next-state nil - "The Evil state being switched to.") - -(evil-define-local-var evil-previous-state-alist nil - "For Each evil state the Evil state being switched from.") - -(evil-define-local-var evil-previous-state nil - "The Evil state being switched from.") - -(defvar evil-execute-in-emacs-state-buffer nil - "The buffer of the latest `evil-execute-in-emacs-state'. -When this command is being executed the current buffer is stored -in this variable. This is necessary in case the Emacs-command to -be called changes the current buffer.") - -(evil-define-local-var evil-mode-line-tag nil - "Mode-Line indicator for the current state.") -(put 'evil-mode-line-tag 'risky-local-variable t) - -(defvar evil-global-keymaps-alist nil - "Association list of keymap variables. -Entries have the form (MODE . KEYMAP), where KEYMAP -is the variable containing the keymap for MODE.") - -(defvar evil-local-keymaps-alist nil - "Association list of keymap variables that must be -reinitialized in each buffer. Entries have the form -\(MODE . KEYMAP), where KEYMAP is the variable containing -the keymap for MODE.") - -(defvar evil-state-properties nil - "Specifications made by `evil-define-state'. -Entries have the form (STATE . PLIST), where PLIST is a property -list specifying various aspects of the state. To access a property, -use `evil-state-property'.") - -(evil-define-local-var evil-mode-map-alist nil - "Association list of keymaps to use for Evil modes. -Elements have the form (MODE . KEYMAP), with the first keymaps -having higher priority.") - -(defvar evil-command-properties nil - "Specifications made by `evil-define-command'.") - -(defvar evil-transient-vars '(cua-mode transient-mark-mode select-active-regions) - "List of variables pertaining to Transient Mark mode.") - -(defvar evil-transient-vals nil - "Association list of old values for Transient Mark mode variables. -Entries have the form (VARIABLE VALUE LOCAL), where LOCAL is -whether the variable was previously buffer-local.") - -(evil-define-local-var evil-no-display nil - "If non-nil, various Evil displays are inhibited. -Use the macro `evil-without-display' to set this variable.") - -(defvar evil-type-properties nil - "Specifications made by `evil-define-type'. -Entries have the form (TYPE . PLIST), where PLIST is a property -list specifying functions for handling the type: expanding it, -describing it, etc.") - -(defvar evil-interactive-alist nil - "Association list of Evil-specific interactive codes.") - -(evil-define-local-var evil-motion-marker nil - "Marker for storing the starting position of a motion.") - -(evil-define-local-var evil-this-type nil - "Current motion type.") - -(evil-define-local-var evil-this-register nil - "Current register.") - -(evil-define-local-var evil-this-macro nil - "Current macro register.") - -(evil-define-local-var evil-this-operator nil - "Current operator.") - -(evil-define-local-var evil-this-motion nil - "Current motion.") - -(evil-define-local-var evil-this-motion-count nil - "Current motion count.") - -(defvar evil-inhibit-operator nil - "Inhibit current operator. -If an operator calls a motion and the motion sets this variable -to t, the operator code is not executed.") - -(defvar evil-inhibit-operator-value nil - "This variable is used to transfer the value -of `evil-inhibit-operator' from one local scope to another.") - -;; used by `evil-define-operator' -(defvar evil-operator-range-beginning nil - "Beginning of `evil-operator-range'.") - -(defvar evil-operator-range-end nil - "End of `evil-operator-range'.") - -(defvar evil-operator-range-type nil - "Type of `evil-operator-range'.") - -(defvar evil-operator-range-motion nil - "Motion of `evil-operator-range'.") - -(evil-define-local-var evil-markers-alist - '((?\( . evil-backward-sentence) - (?\) . evil-forward-sentence) - (?{ . evil-backward-paragraph) - (?} . evil-forward-paragraph) - (?' . evil-jump-backward) - (?` . evil-jump-backward) - (?< . evil-visual-beginning) - (?> . evil-visual-goto-end) - (?. . (lambda () - (let (last-command) - (goto-last-change nil))))) - "Association list for markers. -Entries have the form (CHAR . DATA), where CHAR is the marker's -name and DATA is either a marker object as returned by `make-marker', -a variable, a movement function, or a cons cell (STRING NUMBER), -where STRING is a file path and NUMBER is a buffer position. -The global value of this variable holds markers available from -every buffer, while the buffer-local value holds markers available -only in the current buffer.") - -(evil-define-local-var evil-jump-list nil - "Jump list.") - -(defconst evil-suppress-map (make-keymap) - "Full keymap disabling default bindings to `self-insert-command'.") -(suppress-keymap evil-suppress-map t) - -(defvar evil-read-key-map (make-sparse-keymap) - "Keymap active during `evil-read-key'. -This keymap can be used to bind some commands during the -execution of `evil-read-key' which is usually used to read a -character argument for some commands, e.g. `evil-replace'.") - -;; TODO: customize size of ring -(defvar evil-repeat-ring (make-ring 10) - "A ring of repeat-informations to repeat the last command.") - -(defvar evil-repeat-types - '((t . evil-repeat-keystrokes) - (change . evil-repeat-changes) - (motion . evil-repeat-motion) - (insert-at-point . evil-repeat-insert-at-point) - (ignore . nil)) - "An alist of defined repeat-types.") - -(defvar evil-recording-repeat nil - "Whether we are recording a repeat.") - -(defvar evil-recording-current-command nil - "Whether we are recording the current command for repeat.") - -(defvar evil-repeat-changes nil - "Accumulated buffer changes for changed-based commands.") - -(defvar evil-repeat-info nil - "Information accumulated during current repeat.") - -(defvar evil-repeat-buffer nil - "The buffer in which the repeat started. -If the buffer is changed, the repeat is cancelled.") - -(defvar evil-repeat-pos nil - "The position of point at the beginning of an change-tracking - editing command.") - -(defvar evil-repeat-keys nil - "The keys that invoked the current command.") - -(defvar evil-last-repeat nil - "Information about the latest repeat command. -This is a list of three elements (POINT COUNT UNDO-POINTER), -where POINT is the position of point before the latest repeat, -COUNT the count-argument of the latest repeat command and -UNDO-POINTER the head of the undo-list before the last command -has been repeated.") - -(defvar evil-repeat-count nil - "The explicit count when repeating a command.") - -(evil-define-local-var evil-insert-count nil - "The explicit count passed to an command starting Insert state.") - -(evil-define-local-var evil-insert-vcount nil - "The information about the number of following lines the -insertion should be repeated. This is list (LINE COLUMN COUNT) -where LINE is the line-number where the original insertion -started and COLUMN is either a number of function determining the -column where the repeated insertions should take place. COUNT is -number of repeats (including the original insertion).") - -(defvar evil-insert-skip-empty-lines nil - "Non-nil of the current insertion should not take place on - lines at which the insertion point is behind the end of the - line.") - -(evil-define-local-var evil-insert-lines nil - "Non-nil if the current insertion command is a line-insertion -command o or O.") - -(evil-define-local-var evil-insert-repeat-info nil - "Repeat information accumulated during an insertion.") - -(evil-define-local-var evil-replace-alist nil - "Association list of characters overwritten in Replace state. -The format is (POS . CHAR).") - -(evil-define-local-var evil-echo-area-message nil - "Previous value of `current-message'.") - -(defvar evil-write-echo-area nil - "If set to t inside `evil-save-echo-area', then the echo area -is not restored.") - -(defvar evil-last-find nil - "A pair (FUNCTION . CHAR) describing the lastest character - search command.") - -(defvar evil-last-paste nil - "Information about the latest paste. -This should be a list (CMD POINT BEG END) where CMD is the last -paste-command (either `evil-paste-before' or `evil-paste-after'), -POINT is the position of point before the paste, -BEG end END are the region of the inserted text.") - -(evil-define-local-var evil-last-undo-entry nil - "Information about the latest undo entry in the buffer. -This should be a pair (OBJ . CONS) where OBJ is the entry as an -object, and CONS is a copy of the entry.") - -(evil-define-local-var evil-current-insertion nil - "Information about the latest insertion in insert state. -This should be a pair (BEG . END) that describes the -buffer-region of the newly inserted text.") - -(defvar evil-last-insertion nil - "The last piece of inserted text.") - -(defvar evil-last-small-deletion nil - "The last piece of deleted text. -The text should be less than a line.") - -(defvar evil-paste-count nil - "The count argument of the current paste command.") - -(defvar evil-temporary-undo nil - "When undo is disabled in current buffer. -Certain commands depending on undo use this variable -instead of `buffer-undo-list'.") - -(evil-define-local-var evil-undo-list-pointer nil - "Everything up to this mark is united in the undo-list.") - -(defvar evil-in-single-undo nil - "Set to non-nil if the current undo steps are connected.") - -(defvar evil-flash-timer nil - "Timer for flashing search results.") - -(defvar evil-search-prompt nil - "String to use for search prompt.") - -(defvar evil-inner-text-objects-map (make-sparse-keymap) - "Keymap for inner text objects.") - -(defvar evil-outer-text-objects-map (make-sparse-keymap) - "Keymap for outer text objects.") - -(defvar evil-window-map (make-sparse-keymap) - "Keymap for window-related commands.") - -(evil-define-local-var evil-input-method nil - "Input method used in Insert state and Emacs state.") - -;;; Visual state - -(evil-define-local-var evil-visual-beginning nil - "The beginning of the Visual selection, a marker.") - -(evil-define-local-var evil-visual-end nil - "The end of the Visual selection, a marker.") - -(evil-define-local-var evil-visual-point nil - "The position of point in Visual state, a marker.") - -(evil-define-local-var evil-visual-mark nil - "The position of mark in Visual state, a marker.") - -(evil-define-local-var evil-visual-previous-mark nil - "The position of mark before Visual state, a marker.") - -(evil-define-local-var evil-visual-selection nil - "The kind of Visual selection. -This is a selection as defined by `evil-define-visual-selection'.") - -;; we could infer the direction by comparing `evil-visual-mark' -;; and `evil-visual-point', but destructive operations may -;; displace the markers -(evil-define-local-var evil-visual-direction 0 - "Whether point follows mark in Visual state. -Negative if point precedes mark, otherwise positive. -See also the function `evil-visual-direction'.") - -(evil-define-local-var evil-visual-properties nil - "Property list of miscellaneous Visual properties.") - -(evil-define-local-var evil-visual-region-expanded nil - "Whether the region matches the Visual selection. -That is, whether the positions of point and mark have been -expanded to coincide with the selection's boundaries. -This makes the selection available to functions acting -on Emacs' region.") - -(evil-define-local-var evil-visual-overlay nil - "Overlay for highlighting the Visual selection. -Not used for blockwise selections, in which case -see `evil-visual-block-overlays'.") - -(evil-define-local-var evil-visual-block-overlays nil - "Overlays for Visual Block selection, one for each line. -They are reused to minimize flicker.") - -(defvar evil-visual-alist nil - "Association list of Visual selection functions. -Elements have the form (NAME . FUNCTION).") - -(evil-define-local-var evil-visual-x-select-timer nil - "Timer for updating the X selection in visual state.") - -(defvar evil-visual-x-select-timeout 0.1 - "Time in seconds for the update of the X selection.") - -;;; Ex - -(defvar evil-ex-map (make-sparse-keymap) - "Keymap for Ex. -Key sequences bound in this map are immediately executed.") - -(defvar evil-ex-completion-map (make-sparse-keymap) - "Completion keymap for Ex.") -(set-keymap-parent evil-ex-completion-map minibuffer-local-completion-map) -(define-key evil-ex-completion-map (kbd "SPC") #'self-insert-command) - -(defvar evil-ex-shell-argument-initialized nil - "This variable is set to t if shell command completion has been initialized. -See `evil-ex-init-shell-argument-completion'.") - -(defvar evil-ex-commands nil - "Association list of command bindings and functions.") - -(defvar evil-ex-history nil - "History of Ex commands.") - -(defvar evil-ex-current-buffer nil - "The buffer from which Ex was started.") - -(defvar evil-ex-expression nil - "The evaluation tree.") - -(defvar evil-ex-tree nil - "The syntax tree.") - -(defvar evil-ex-command nil - "The current Ex command.") - -(defvar evil-ex-previous-command nil - "The previously executed Ex command.") - -(defvar evil-ex-range nil - "The current range of the Ex command.") - -(defvar evil-ex-bang nil - "The \"!\" argument of the current Ex command.") - -(defvar evil-ex-argument nil - "The current argument of the Ex command.") - -(defvar evil-ex-argument-handler nil - "The argument handler for the current Ex command.") - -(defvar evil-ex-argument-types nil - "Association list of argument handlers.") - -(defvar evil-previous-shell-command nil - "The last shell command.") - -;; Searching -(defvar evil-ex-search-history nil - "The history for the search command.") - -(defvar evil-ex-search-direction nil - "The direction of the current search, either 'forward or 'backward.") - -(defvar evil-ex-search-count nil - "The count if the current search.") - -(defvar evil-ex-search-start-point nil - "The point where the search started.") - -(defvar evil-ex-search-overlay nil - "The overlay for the current search result.") - -(defvar evil-ex-search-pattern nil - "The last search pattern.") - -(defvar evil-ex-search-offset nil - "The last search offset.") - -(defvar evil-ex-search-match-beg nil - "The beginning position of the last match.") - -(defvar evil-ex-search-match-end nil - "The end position of the last match.") - -(defvar evil-ex-substitute-pattern nil - "The last substitute pattern.") - -(defvar evil-ex-substitute-replacement nil - "The last substitute replacement.") - -(defvar evil-ex-substitute-flags nil - "The last substitute flags.") - -(defvar evil-ex-substitute-current-replacement nil - "The actual replacement.") - -;; The lazy-highlighting framework. -(evil-define-local-var evil-ex-active-highlights-alist nil - "An alist of currently active highlights.") - -(evil-define-local-var evil-ex-hl-update-timer nil - "Time used for updating highlights.") - -(defvar evil-ex-search-keymap (make-sparse-keymap) - "Keymap used in ex-search-mode.") -(set-keymap-parent evil-ex-search-keymap minibuffer-local-map) - -(defconst evil-version "1.0.1" - "The current version of Evil") - -(defun evil-version () - (interactive) - (message "Evil version %s" evil-version)) - -(provide 'evil-vars) - -;;; evil-vars.el ends here diff --git a/elpa/evil-1.0.1/evil.el b/elpa/evil-1.0.1/evil.el deleted file mode 100644 index ba0a8a85..00000000 --- a/elpa/evil-1.0.1/evil.el +++ /dev/null @@ -1,114 +0,0 @@ -;;; evil.el --- extensible vi layer - -;; Author: Vegard Ă˜ye -;; Antono Vasiljev -;; Barry O'Reilly -;; Christoph Lange -;; Frank Fischer -;; Frank Terbeck -;; Jonathan Claggett -;; Marian Schubert -;; Michael Markert -;; Nikolai Weibull -;; Sanel Zukan -;; Simon Hafner -;; Sune Simonsen -;; Thomas Hisch -;; Ulrich MĂ¼ller -;; Winfred Lu -;; Wolfgang Jenkner -;; York Zhao -;; Lintaro Ina - -;; Maintainer: Vegard Ă˜ye -;; To get in touch, please use the bug tracker or the -;; mailing list (see below). -;; Created: 2011-03-01 -;; Version: 1.0.1 -;; Keywords: emulation, vim -;; URL: http://gitorious.org/evil -;; Repository: git://gitorious.org/evil/evil.git -;; EmacsWiki: http://www.emacswiki.org/emacs/Evil -;; Bug tracker: https://bitbucket.org/lyro/evil/issues -;; If you have bug reports, suggestions or patches, please -;; create an issue at the bug tracker (open for everyone). -;; Other discussions (tips, extensions) go to the mailing list. -;; Mailing list: -;; Subscribe: http://tinyurl.com/implementations-list -;; Newsgroup: nntp://news.gmane.org/gmane.emacs.vim-emulation -;; Archives: http://dir.gmane.org/gmane.emacs.vim-emulation -;; You don't have to subscribe to post; we usually reply -;; within a few days and CC our replies back to you. -;; -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; This file is part of Evil. -;; -;; Evil is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; Evil is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Evil. If not, see . - -;;; Commentary: - -;; Evil is an extensible vi layer for Emacs. It emulates the main -;; features of Vim, and provides facilities for writing custom -;; extensions. -;; -;; Evil lives in a Git repository. To obtain Evil, do -;; -;; git clone git://gitorious.org/evil/evil.git -;; -;; Move Evil to ~/.emacs.d/evil (or somewhere else in the `load-path'). -;; Then add the following lines to ~/.emacs: -;; -;; (add-to-list 'load-path "~/.emacs.d/evil") -;; (require 'evil) -;; (evil-mode 1) -;; -;; Evil requires undo-tree.el for linear undo and undo branches: -;; -;; http://www.emacswiki.org/emacs/UndoTree -;; -;; Otherwise, Evil uses regular Emacs undo. -;; -;; Evil requires `goto-last-change' and `goto-last-change-reverse' -;; function for the corresponding motions g; g, as well as the -;; last-change-register `.'. One package providing these functions is -;; goto-chg.el: -;; -;; http://www.emacswiki.org/emacs/GotoChg -;; -;; Without this package the corresponding motions will raise an error. - -;;; Code: - -(require 'evil-vars) -(require 'evil-common) -(require 'evil-core) -(require 'evil-states) -(require 'evil-repeat) -(require 'evil-macros) -(require 'evil-search) -(require 'evil-ex) -(require 'evil-digraphs) -(require 'evil-types) -(require 'evil-commands) -(require 'evil-maps) -(require 'evil-integration) - -(run-hooks 'evil-after-load-hook) - -(provide 'evil) - -;;; evil.el ends here diff --git a/elpa/find-file-in-project-3.2/find-file-in-project-autoloads.el b/elpa/find-file-in-project-3.2/find-file-in-project-autoloads.el deleted file mode 100644 index 1df47723..00000000 --- a/elpa/find-file-in-project-3.2/find-file-in-project-autoloads.el +++ /dev/null @@ -1,47 +0,0 @@ -;;; find-file-in-project-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads (find-file-in-project) "find-file-in-project" "find-file-in-project.el" -;;;;;; (20815 21543 0 0)) -;;; Generated autoloads from find-file-in-project.el - -(autoload 'find-file-in-project "find-file-in-project" "\ -Prompt with a completing list of all files in the project to find one. - -The project's scope is defined as the first directory containing -an `.emacs-project' file. You can override this by locally -setting the variable `ffip-project-root'. - -\(fn)" t nil) - -(defalias 'ffip 'find-file-in-project) - -(put 'ffip-patterns 'safe-local-variable 'listp) - -(put 'ffip-find-options 'safe-local-variable 'stringp) - -(put 'ffip-project-file 'safe-local-variable 'stringp) - -(put 'ffip-project-root 'safe-local-variable 'stringp) - -(put 'ffip-project-root-function 'safe-local-variable 'functionp) - -(put 'ffip-limit 'safe-local-variable 'integerp) - -;;;*** - -;;;### (autoloads nil nil ("find-file-in-project-pkg.el") (20815 -;;;;;; 21543 166996 0)) - -;;;*** - -(provide 'find-file-in-project-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; find-file-in-project-autoloads.el ends here diff --git a/elpa/find-file-in-project-3.2/find-file-in-project-pkg.el b/elpa/find-file-in-project-3.2/find-file-in-project-pkg.el deleted file mode 100644 index 35a311fe..00000000 --- a/elpa/find-file-in-project-3.2/find-file-in-project-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "find-file-in-project" "3.2" "Find files in a project quickly." (quote nil)) diff --git a/elpa/find-file-in-project-3.2/find-file-in-project.el b/elpa/find-file-in-project-3.2/find-file-in-project.el deleted file mode 100644 index 82ed8658..00000000 --- a/elpa/find-file-in-project-3.2/find-file-in-project.el +++ /dev/null @@ -1,183 +0,0 @@ -;;; find-file-in-project.el --- Find files in a project quickly. - -;; Copyright (C) 2006-2009, 2011-2012 -;; Phil Hagelberg, Doug Alcorn, and Will Farrington - -;; Author: Phil Hagelberg, Doug Alcorn, and Will Farrington -;; URL: http://www.emacswiki.org/cgi-bin/wiki/FindFileInProject -;; Git: git://github.com/technomancy/find-file-in-project.git -;; Version: 3.2 -;; Created: 2008-03-18 -;; Keywords: project, convenience -;; EmacsWiki: FindFileInProject - -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. -;; -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. - -;;; Commentary: - -;; This library provides a couple methods for quickly finding any file -;; in a given project. It depends on GNU find. - -;; A project is found by searching up the directory tree until a file -;; is found that matches `ffip-project-file'. (".git" by default.) -;; You can set `ffip-project-root-function' to provide an alternate -;; function to search for the project root. By default, it looks only -;; for files whose names match `ffip-patterns', - -;; If you have so many files that it becomes unwieldy, you can set -;; `ffip-find-options' to a string which will be passed to the `find' -;; invocation in order to exclude irrelevant subdirectories. For -;; instance, in a Ruby on Rails project, you may be interested in all -;; .rb files that don't exist in the "vendor" directory. In that case -;; you could set `ffip-find-options' to "-not -regex \".*vendor.*\"". - -;; All these variables may be overridden on a per-directory basis in -;; your .dir-locals.el. See (info "(Emacs) Directory Variables") for -;; details. - -;; Recommended binding: (global-set-key (kbd "C-x f") 'find-file-in-project) - -;;; TODO: - -;; Add compatibility with BSD find (PDI; I can't virtualize OS X) - -;;; Code: - -(defvar ffip-project-file ".git" - "The file that should be used to define a project root. - -May be set using .dir-locals.el. Checks each entry if set to a list.") - -(defvar ffip-patterns - '("*.html" "*.el" "*.clj" "*.py" "*.rb" "*.js" - "*.sh" "*.erl" "*.hs" "*.ml" "*.sql" "*.c" "*.erb") - "List of patterns to look for with `find-file-in-project'.") - -(defvar ffip-find-options "" - "Extra options to pass to `find' when using `find-file-in-project'. - -Use this to exclude portions of your project: \"-not -regex \\\".*svn.*\\\"\".") - -(defvar ffip-project-root nil - "If non-nil, overrides the project root directory location.") - -(defvar ffip-project-root-function nil - "If non-nil, this function is called to determine the project root. - -This overrides variable `ffip-project-root' when set.") - -(defvar ffip-limit 512 - "Limit results to this many files.") - -(defvar ffip-full-paths nil - "If non-nil, show fully project-relative paths.") - -(defun ffip-project-root () - "Return the root of the project." - (let ((project-root (or ffip-project-root - (if (functionp ffip-project-root-function) - (funcall ffip-project-root-function) - (if (listp ffip-project-file) - (some (apply-partially 'locate-dominating-file - default-directory) - ffip-project-file) - (locate-dominating-file default-directory - ffip-project-file)))))) - (or project-root - (progn (message "No project was defined for the current file.") - nil)))) - -(defun ffip-uniqueify (file-cons) - "Set the car of FILE-CONS to include the directory name plus the file name." - (setcar file-cons - (concat (cadr (reverse (split-string (cdr file-cons) "/"))) "/" - (car file-cons)))) - -(defun ffip-join-patterns () - "Turn `ffip-paterns' into a string that `find' can use." - (mapconcat (lambda (pat) (format "-name \"%s\"" pat)) - ffip-patterns " -or ")) - -(defun ffip-project-files () - "Return an alist of all filenames in the project and their path. - -Files with duplicate filenames are suffixed with the name of the -directory they are found in so that they are unique." - (let ((file-alist nil) - (root (expand-file-name (or ffip-project-root (ffip-project-root) - (error "No project root found"))))) - (mapcar (lambda (file) - (if ffip-full-paths - (cons (substring (expand-file-name file) (length root)) - (expand-file-name file)) - (let ((file-cons (cons (file-name-nondirectory file) - (expand-file-name file)))) - (when (assoc (car file-cons) file-alist) - (ffip-uniqueify (assoc (car file-cons) file-alist)) - (ffip-uniqueify file-cons)) - (add-to-list 'file-alist file-cons) - file-cons))) - (split-string (shell-command-to-string - (format "find %s -type f \\( %s \\) %s | head -n %s" - root (ffip-join-patterns) - ffip-find-options ffip-limit)))))) - -(defvar ffip-project-files-cache '()) - -(defun ffip-bust-cache () - (interactive) - (setq ffip-project-files-cache '())) - - -(defun ffip-get-project-files () - (when (equal (assoc (ffip-project-root) ffip-project-files-cache) nil) - (add-to-list 'ffip-project-files-cache `(,(ffip-project-root) ,(ffip-project-files)))) - (car (cdr (assoc (ffip-project-root) ffip-project-files-cache)))) - -;;;###autoload -(defun find-file-in-project () - "Prompt with a completing list of all files in the project to find one. - -The project's scope is defined as the first directory containing -an `.emacs-project' file. You can override this by locally -setting the variable `ffip-project-root'." - (interactive) - (let* ((project-files (ffip-get-project-files)) - (files (mapcar 'car project-files)) - (file (if (and (boundp 'ido-mode) ido-mode) - (ido-completing-read "Find file in project: " files) - (completing-read "Find file in project: " files)))) - (find-file (cdr (assoc file project-files))))) - -;;;###autoload -(defalias 'ffip 'find-file-in-project) - -;; safe locals -;;;###autoload -(progn - (put 'ffip-patterns 'safe-local-variable 'listp) - (put 'ffip-find-options 'safe-local-variable 'stringp) - (put 'ffip-project-file 'safe-local-variable 'stringp) - (put 'ffip-project-root 'safe-local-variable 'stringp) - (put 'ffip-project-root-function 'safe-local-variable 'functionp) - (put 'ffip-limit 'safe-local-variable 'integerp)) - -(provide 'find-file-in-project) -;;; find-file-in-project.el ends here diff --git a/elpa/flymake-0.4.12/flymake-autoloads.el b/elpa/flymake-0.4.12/flymake-autoloads.el deleted file mode 100644 index 8e784cfd..00000000 --- a/elpa/flymake-0.4.12/flymake-autoloads.el +++ /dev/null @@ -1,46 +0,0 @@ -;;; flymake-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads (flymake-find-file-hook flymake-mode-off flymake-mode-on -;;;;;; flymake-mode) "flymake" "flymake.el" (20685 13733)) -;;; Generated autoloads from flymake.el - -(autoload 'flymake-mode "flymake" "\ -Toggle on-the-fly syntax checking. -With a prefix argument ARG, enable the mode if ARG is positive, -and disable it otherwise. If called from Lisp, enable the mode -if ARG is omitted or nil. - -\(fn &optional ARG)" t nil) - -(autoload 'flymake-mode-on "flymake" "\ -Turn flymake mode on. - -\(fn)" nil nil) - -(autoload 'flymake-mode-off "flymake" "\ -Turn flymake mode off. - -\(fn)" nil nil) - -(autoload 'flymake-find-file-hook "flymake" "\ - - -\(fn)" nil nil) - -;;;*** - -;;;### (autoloads nil nil ("flymake-pkg.el") (20685 13733 601582)) - -;;;*** - -(provide 'flymake-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; flymake-autoloads.el ends here diff --git a/elpa/flymake-0.4.12/flymake-pkg.el b/elpa/flymake-0.4.12/flymake-pkg.el deleted file mode 100644 index 44beca66..00000000 --- a/elpa/flymake-0.4.12/flymake-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "flymake" "0.4.12" "a universal on-the-fly syntax checker" (quote nil)) diff --git a/elpa/flymake-0.4.12/flymake.el b/elpa/flymake-0.4.12/flymake.el deleted file mode 100644 index fd171cfc..00000000 --- a/elpa/flymake-0.4.12/flymake.el +++ /dev/null @@ -1,2170 +0,0 @@ -;;; flymake.el --- a universal on-the-fly syntax checker - -;; Copyright (C) 2003-2012 Free Software Foundation, Inc. - -;; Author: Pavel Kobyakov -;; Maintainer: Sam Graham -;; Version: 0.4.12 -;; Keywords: c languages tools - -;; This file is part of GNU Emacs. - -;; GNU Emacs is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; GNU Emacs is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs. If not, see . - -;;; Commentary: -;; -;; Flymake is a minor Emacs mode performing on-the-fly syntax -;; checks using the external syntax check tool (for C/C++ this -;; is usually the compiler) - -;;; Bugs/todo: - -;; - Only uses "Makefile", not "makefile" or "GNUmakefile" -;; (from http://bugs.debian.org/337339). - -;;; Code: - -(require 'cc-defs) -(eval-when-compile (require 'cl)) -(eval-when-compile (require 'tramp)) -(if (featurep 'xemacs) (require 'overlay)) - -(defvar flymake-is-running nil - "If t, flymake syntax check process is running for the current buffer.") -(make-variable-buffer-local 'flymake-is-running) - -(defvar flymake-buffers 0 - "Refcount of number of buffers in Flymake mode, when zero the last-change timer is disabled.") - -(defvar flymake-timer nil - "Timer for starting syntax check.") - -(defvar flymake-last-change-time nil - "Time of last buffer change.") -(make-variable-buffer-local 'flymake-last-change-time) - -(defvar flymake-check-start-time nil - "Time at which syntax check was started.") -(make-variable-buffer-local 'flymake-check-start-time) - -(defvar flymake-check-was-interrupted nil - "Non-nil if syntax check was killed by `flymake-compile'.") -(make-variable-buffer-local 'flymake-check-was-interrupted) - -(defvar flymake-check-should-restart nil - "Non-nil if syntax check should restart after terminating.") -(make-variable-buffer-local 'flymake-check-should-restart) - -(defvar flymake-err-info nil - "Sorted list of line numbers and lists of err info in the form (file, err-text).") -(make-variable-buffer-local 'flymake-err-info) - -(defvar flymake-new-err-info nil - "Same as `flymake-err-info', effective when a syntax check is in progress.") -(make-variable-buffer-local 'flymake-new-err-info) - -(defcustom flymake-start-syntax-check-on-find-file t - "Start syntax check on find file." - :group 'flymake - :type 'boolean) - -(defcustom flymake-run-in-place t - "If nil, flymake will run on copies in `temporary-file-directory' rather -than the same directory as the original file. - -If the file makes use of relative include paths it's quite possible that -setting this to nil will cause compilation errors. On the other hand, leaving -it set to t will trigger any automated file creation detection that is -watching your project directory. YMMV. - -When editing a remote file via Tramp, this flag also has the side-effect of -determining whether the syntax check is run in the same place as the original -file (and thus on the remote machine), or in the same place as -`temporary-file-directory' (usually the local machine)." - :group 'flymake - :type 'boolean) - -;;;###autoload -(define-minor-mode flymake-mode - "Toggle on-the-fly syntax checking. -With a prefix argument ARG, enable the mode if ARG is positive, -and disable it otherwise. If called from Lisp, enable the mode -if ARG is omitted or nil." - :group 'flymake :lighter flymake-mode-line - (cond - - ;; Turning the mode ON. - (flymake-mode - (cond - ((not buffer-file-name) - (message "Flymake unable to run without a buffer file name")) - ((not (flymake-can-syntax-check-file buffer-file-name)) - (flymake-log 2 "flymake cannot check syntax in buffer %s" (buffer-name))) - (t - (setq flymake-buffers (1+ flymake-buffers)) - (add-hook 'after-change-functions 'flymake-after-change-function nil t) - (add-hook 'after-save-hook 'flymake-after-save-hook nil t) - (add-hook 'kill-buffer-hook 'flymake-kill-buffer-hook nil t) - ;;+(add-hook 'find-file-hook 'flymake-find-file-hook) - - (flymake-report-status "" "") - - (when (and (> flymake-buffers 0) - (not flymake-timer)) - (setq flymake-timer (run-at-time nil 1 'flymake-on-timer-event))) - - (when flymake-start-syntax-check-on-find-file - (flymake-start-syntax-check))))) - - ;; Turning the mode OFF. - (t - (remove-hook 'after-change-functions 'flymake-after-change-function t) - (remove-hook 'after-save-hook 'flymake-after-save-hook t) - (remove-hook 'kill-buffer-hook 'flymake-kill-buffer-hook t) - ;;+(remove-hook 'find-file-hook (function flymake-find-file-hook) t) - - (flymake-delete-own-overlays) - - (setq flymake-buffers (1- flymake-buffers)) - - (when (and (<= flymake-buffers 0) - flymake-timer) - (cancel-timer flymake-timer) - (setq flymake-timer nil)) - - (setq flymake-is-running nil)))) - -;;;; [[ cross-emacs compatibility routines -(defsubst flymake-makehash (&optional test) - (if (fboundp 'make-hash-table) - (if test (make-hash-table :test test) (make-hash-table)) - (with-no-warnings - (makehash test)))) - -(defalias 'flymake-float-time - (if (fboundp 'float-time) - 'float-time - (if (featurep 'xemacs) - (lambda () - (multiple-value-bind (s0 s1 s2) (values-list (current-time)) - (+ (* (float (ash 1 16)) s0) (float s1) (* 0.0000001 s2))))))) - -(defalias 'flymake-replace-regexp-in-string - (if (eval-when-compile (fboundp 'replace-regexp-in-string)) - 'replace-regexp-in-string - (lambda (regexp rep str) - (replace-in-string str regexp rep)))) - -(defalias 'flymake-split-string - (if (condition-case nil (equal (split-string " bc " " " t) '("bc")) - (error nil)) - (lambda (str pattern) (split-string str pattern t)) - (lambda (str pattern) - "Split STR into a list of substrings bounded by PATTERN. -Zero-length substrings at the beginning and end of the list are omitted." - (let ((split (split-string str pattern))) - (while (equal (car split) "") (setq split (cdr split))) - (setq split (nreverse split)) - (while (equal (car split) "") (setq split (cdr split))) - (nreverse split))))) - -(defalias 'flymake-get-temp-dir - (if (fboundp 'temp-directory) - 'temp-directory - (lambda () temporary-file-directory))) - -(defun flymake-posn-at-point-as-event (&optional position window dx dy) - "Return pixel position of top left corner of glyph at POSITION, -relative to top left corner of WINDOW, as a mouse-1 click -event (identical to the event that would be triggered by clicking -mouse button 1 at the top left corner of the glyph). - -POSITION and WINDOW default to the position of point in the -selected window. - -DX and DY specify optional offsets from the top left of the glyph." - (unless window (setq window (selected-window))) - (unless position (setq position (window-point window))) - (unless dx (setq dx 0)) - (unless dy (setq dy 0)) - - (let* ((pos (posn-at-point position window)) - (x-y (posn-x-y pos)) - (edges (window-inside-pixel-edges window)) - (win-x-y (window-pixel-edges window))) - ;; adjust for window edges - (setcar (nthcdr 2 pos) - (cons (+ (car x-y) (car edges) (- (car win-x-y)) dx) - (+ (cdr x-y) (cadr edges) (- (cadr win-x-y)) dy))) - (list 'mouse-1 pos))) - -(defun flymake-popup-menu (menu-data) - "Pop up the flymake menu at point, using the data MENU-DATA. -POS is a list of the form ((X Y) WINDOW), where X and Y are -pixels positions from the top left corner of WINDOW's frame. -MENU-DATA is a list of error and warning messages returned by -`flymake-make-err-menu-data'." - (if (featurep 'xemacs) - (let* ((pos (flymake-get-point-pixel-pos)) - (x-pos (nth 0 pos)) - (y-pos (nth 1 pos)) - (fake-event-props '(button 1 x 1 y 1))) - (setq fake-event-props (plist-put fake-event-props 'x x-pos)) - (setq fake-event-props (plist-put fake-event-props 'y y-pos)) - (popup-menu (flymake-make-xemacs-menu menu-data) - (make-event 'button-press fake-event-props))) - (x-popup-menu (if (eval-when-compile (fboundp 'posn-at-point)) - (flymake-posn-at-point-as-event) - (list (flymake-get-point-pixel-pos) (selected-window))) - (flymake-make-emacs-menu menu-data)))) - -(defun flymake-make-emacs-menu (menu-data) - "Return a menu specifier using MENU-DATA. -MENU-DATA is a list of error and warning messages returned by -`flymake-make-err-menu-data'. -See `x-popup-menu' for the menu specifier format." - (let* ((menu-title (nth 0 menu-data)) - (menu-items (nth 1 menu-data)) - (menu-commands (mapcar (lambda (foo) - (cons (nth 0 foo) (nth 1 foo))) - menu-items))) - (list menu-title (cons "" menu-commands)))) - -(if (featurep 'xemacs) (progn - -(defun flymake-nop ()) - -(defun flymake-make-xemacs-menu (menu-data) - "Return a menu specifier using MENU-DATA." - (let* ((menu-title (nth 0 menu-data)) - (menu-items (nth 1 menu-data)) - (menu-commands nil)) - (setq menu-commands (mapcar (lambda (foo) - (vector (nth 0 foo) (or (nth 1 foo) '(flymake-nop)) t)) - menu-items)) - (cons menu-title menu-commands))) - -)) ;; xemacs - -(unless (eval-when-compile (fboundp 'posn-at-point)) - -(defun flymake-current-row () - "Return current row number in current frame." - (if (fboundp 'window-edges) - (+ (car (cdr (window-edges))) (count-lines (window-start) (point))) - (count-lines (window-start) (point)))) - -(defun flymake-selected-frame () - (if (fboundp 'window-edges) - (selected-frame) - (selected-window))) - -(defun flymake-get-point-pixel-pos () - "Return point position in pixels: (x, y)." - (let ((mouse-pos (mouse-position)) - (pixel-pos nil) - (ret nil)) - (if (car (cdr mouse-pos)) - (progn - (set-mouse-position (flymake-selected-frame) (current-column) (flymake-current-row)) - (setq pixel-pos (mouse-pixel-position)) - (set-mouse-position (car mouse-pos) (car (cdr mouse-pos)) (cdr (cdr mouse-pos))) - (setq ret (list (car (cdr pixel-pos)) (cdr (cdr pixel-pos))))) - (progn - (setq ret '(0 0)))) - (flymake-log 3 "mouse pos is %s" ret) - ret)) - -) ;; End of (unless (fboundp 'posn-at-point) - -;;;; ]] - -(defcustom flymake-log-level -1 - "Logging level, only messages with level lower or equal will be logged. --1 = NONE, 0 = ERROR, 1 = WARNING, 2 = INFO, 3 = DEBUG - - See `flymake-log-file-name' if you want to control where the log is created." - :group 'flymake - :type 'integer) - -;; Yes, this is an awful default. -(defcustom flymake-log-file-name "~/flymake.log" - "Where to put the flymake log if logging is enabled. - - See `flymake-log-level' if you want to control what is logged." - :group 'flymake - :type 'string) - -(defun flymake-enquote-log-string (string) - "Prepends > on each line of STRING." - (concat "\n > " (flymake-replace-regexp-in-string "\n" "\n > " string t t))) - -(defun flymake-log (level text &rest args) - "Log a message at level LEVEL. -If LEVEL is higher than `flymake-log-level', the message is -ignored. Otherwise, it is printed using `message'. -TEXT is a format control string, and the remaining arguments ARGS -are the string substitutions (see `format')." - (if (<= level flymake-log-level) - (let* ((msg (apply 'format text args)) - ;; Surely there's a better way to do this? - (time (current-time)) - (timestamp (concat (format-time-string "%Y-%m-%d %T" time) - "." - (format "%06d" (third time))))) - (message "%s" msg) - (make-directory (file-name-directory flymake-log-file-name) 1) - (write-region (concat "[" timestamp "] " msg "\n") nil flymake-log-file-name t 566)))) - -(defun flymake-ins-after (list pos val) - "Insert VAL into LIST after position POS." - (let ((tmp (copy-sequence list))) ; (???) - (setcdr (nthcdr pos tmp) (cons val (nthcdr (1+ pos) tmp))) - tmp)) - -(defun flymake-set-at (list pos val) - "Set VAL at position POS in LIST." - (let ((tmp (copy-sequence list))) ; (???) - (setcar (nthcdr pos tmp) val) - tmp)) - -(defvar flymake-processes nil - "List of currently active flymake processes.") - -(defvar flymake-output-residual nil) - -(make-variable-buffer-local 'flymake-output-residual) - -(defgroup flymake nil - "A universal on-the-fly syntax checker." - :version "23.1" - :group 'tools) - -(defcustom flymake-allowed-file-name-masks - '(("\\.\\(?:c\\(?:pp\\|xx\\|\\+\\+\\)?\\|CC\\)\\'" flymake-simple-make-init) - ("\\.xml\\'" flymake-xml-init) - ("\\.html?\\'" flymake-xml-init) - ("\\.cs\\'" flymake-simple-make-init) - ("\\.p[ml]\\'" flymake-perl-init) - ("\\.php[345]?\\'" flymake-php-init) - ("\\.js\\'" flymake-javascript-init) - ("\\.css\\'" flymake-css-init) - ("\\.h\\'" flymake-master-make-header-init flymake-master-cleanup) - ("\\.java\\'" flymake-simple-make-java-init flymake-simple-java-cleanup) - ("[0-9]+\\.tex\\'" flymake-master-tex-init flymake-master-cleanup) - ("\\.tex\\'" flymake-simple-tex-init) - ("\\.idl\\'" flymake-simple-make-init) - ("\\.spec\\'" flymake-specfile-init) - ("\\.po\\'" flymake-pofile-init) - ;; ("\\.cpp\\'" 1) - ;; ("\\.java\\'" 3) - ;; ("\\.h\\'" 2 ("\\.cpp\\'" "\\.c\\'") - ;; ("[ \t]*#[ \t]*include[ \t]*\"\\([\w0-9/\\_\.]*[/\\]*\\)\\(%s\\)\"" 1 2)) - ;; ("\\.idl\\'" 1) - ;; ("\\.odl\\'" 1) - ;; ("[0-9]+\\.tex\\'" 2 ("\\.tex\\'") - ;; ("[ \t]*\\input[ \t]*{\\(.*\\)\\(%s\\)}" 1 2 )) - ;; ("\\.tex\\'" 1) - ) - "Files syntax checking is allowed for." - :group 'flymake - :type '(repeat (string symbol symbol symbol))) - -(defun flymake-get-file-name-mode-and-masks (file-name) - "Return the corresponding entry from `flymake-allowed-file-name-masks'." - (unless (stringp file-name) - (error "Invalid file-name")) - (let ((fnm flymake-allowed-file-name-masks) - (mode-and-masks nil)) - (while (and (not mode-and-masks) fnm) - (if (string-match (car (car fnm)) file-name) - (setq mode-and-masks (cdr (car fnm)))) - (setq fnm (cdr fnm))) - (flymake-log 3 "file %s, init=%s" file-name (car mode-and-masks)) - mode-and-masks)) - -(defun flymake-can-syntax-check-file (file-name) - "Determine whether we can syntax check FILE-NAME. -Return nil if we cannot, non-nil if we can." - (if (flymake-get-init-function file-name) t nil)) - -(defun flymake-get-init-function (file-name) - "Return init function to be used for the file." - (let* ((init-f (nth 0 (flymake-get-file-name-mode-and-masks file-name)))) - ;;(flymake-log 0 "calling %s" init-f) - ;;(funcall init-f (current-buffer)) - init-f)) - -(defun flymake-get-cleanup-function (file-name) - "Return cleanup function to be used for the file." - (or (nth 1 (flymake-get-file-name-mode-and-masks file-name)) - 'flymake-simple-cleanup)) - -(defun flymake-get-real-file-name-function (file-name) - (or (nth 2 (flymake-get-file-name-mode-and-masks file-name)) - 'flymake-get-real-file-name)) - -(defvar flymake-find-buildfile-cache (flymake-makehash 'equal)) - -(defun flymake-get-buildfile-from-cache (dir-name) - (gethash dir-name flymake-find-buildfile-cache)) - -(defun flymake-add-buildfile-to-cache (dir-name buildfile) - (puthash dir-name buildfile flymake-find-buildfile-cache)) - -(defun flymake-clear-buildfile-cache () - (clrhash flymake-find-buildfile-cache)) - -(defun flymake-find-buildfile (buildfile-name source-dir-name) - "Find buildfile starting from current directory. -Buildfile includes Makefile, build.xml etc. -Return its file name if found, or nil if not found." - (or (flymake-get-buildfile-from-cache source-dir-name) - (let* ((file (locate-dominating-file source-dir-name buildfile-name))) - (if file - (progn - (flymake-log 3 "found buildfile at %s" file) - (flymake-add-buildfile-to-cache source-dir-name file) - file) - (progn - (flymake-log 3 "buildfile for %s not found" source-dir-name) - nil))))) - -(defun flymake-fix-file-name (name) - "Replace all occurrences of '\' with '/'." - (when name - (setq name (expand-file-name name)) - (setq name (abbreviate-file-name name)) - (setq name (directory-file-name name)) - name)) - -(defun flymake-same-files (file-name-one file-name-two) - "Check if FILE-NAME-ONE and FILE-NAME-TWO point to same file. -Return t if so, nil if not." - (equal (flymake-fix-file-name file-name-one) - (flymake-fix-file-name file-name-two))) - -(defcustom flymake-master-file-dirs '("." "./src" "./UnitTest") - "Dirs where to look for master files." - :group 'flymake - :type '(repeat (string))) - -(defcustom flymake-master-file-count-limit 32 - "Max number of master files to check." - :group 'flymake - :type 'integer) - -;; This is bound dynamically to pass a parameter to a sort predicate below -(defvar flymake-included-file-name) - -(defun flymake-find-possible-master-files (file-name master-file-dirs masks) - "Find (by name and location) all possible master files. -Master files include .cpp and .c for .h. Files are searched for -starting from the .h directory and max max-level parent dirs. -File contents are not checked." - (let* ((dirs master-file-dirs) - (files nil) - (done nil)) - - (while (and (not done) dirs) - (let* ((dir (expand-file-name (car dirs) (file-name-directory file-name))) - (masks masks)) - (while (and (file-exists-p dir) (not done) masks) - (let* ((mask (car masks)) - (dir-files (directory-files dir t mask))) - - (flymake-log 3 "dir %s, %d file(s) for mask %s" - dir (length dir-files) mask) - (while (and (not done) dir-files) - (when (not (file-directory-p (car dir-files))) - (setq files (cons (car dir-files) files)) - (when (>= (length files) flymake-master-file-count-limit) - (flymake-log 3 "master file count limit (%d) reached" flymake-master-file-count-limit) - (setq done t))) - (setq dir-files (cdr dir-files)))) - (setq masks (cdr masks)))) - (setq dirs (cdr dirs))) - (when files - (let ((flymake-included-file-name (file-name-nondirectory file-name))) - (setq files (sort files 'flymake-master-file-compare)))) - (flymake-log 3 "found %d possible master file(s)" (length files)) - files)) - -(defun flymake-master-file-compare (file-one file-two) - "Compare two files specified by FILE-ONE and FILE-TWO. -This function is used in sort to move most possible file names -to the beginning of the list (File.h -> File.cpp moved to top)." - (and (equal (file-name-sans-extension flymake-included-file-name) - (file-name-sans-extension (file-name-nondirectory file-one))) - (not (equal file-one file-two)))) - -(defcustom flymake-check-file-limit 8192 - "Max number of chars to look at when checking possible master file. -Nil means search the entire file." - :group 'flymake - :type '(choice (const :tag "No limit" nil) - (integer :tag "Characters"))) - -(defun flymake-check-patch-master-file-buffer - (master-file-temp-buffer - master-file-name patched-master-file-name - source-file-name patched-source-file-name - include-dirs regexp) - "Check if MASTER-FILE-NAME is a master file for SOURCE-FILE-NAME. -If yes, patch a copy of MASTER-FILE-NAME to include PATCHED-SOURCE-FILE-NAME -instead of SOURCE-FILE-NAME. - -For example, foo.cpp is a master file if it includes foo.h. - -Whether a buffer for MATER-FILE-NAME exists, use it as a source -instead of reading master file from disk." - (let* ((source-file-nondir (file-name-nondirectory source-file-name)) - (source-file-extension (file-name-extension source-file-nondir)) - (source-file-nonext (file-name-sans-extension source-file-nondir)) - (found nil) - (inc-name nil) - (search-limit flymake-check-file-limit)) - (setq regexp - (format regexp ; "[ \t]*#[ \t]*include[ \t]*\"\\(.*%s\\)\"" - ;; Hack for tex files, where \include often excludes .tex. - ;; Maybe this is safe generally. - (if (and (> (length source-file-extension) 1) - (string-equal source-file-extension "tex")) - (format "%s\\(?:\\.%s\\)?" - (regexp-quote source-file-nonext) - (regexp-quote source-file-extension)) - (regexp-quote source-file-nondir)))) - (unwind-protect - (with-current-buffer master-file-temp-buffer - (when (or (not search-limit) - (> search-limit (point-max))) - (setq search-limit (point-max))) - (flymake-log 3 "checking %s against regexp %s" - master-file-name regexp) - (goto-char (point-min)) - (while (and (< (point) search-limit) - (re-search-forward regexp search-limit t)) - (let ((match-beg (match-beginning 1)) - (match-end (match-end 1))) - - (flymake-log 3 "found possible match for %s" source-file-nondir) - (setq inc-name (match-string 1)) - (and (> (length source-file-extension) 1) - (string-equal source-file-extension "tex") - (not (string-match (format "\\.%s\\'" source-file-extension) - inc-name)) - (setq inc-name (concat inc-name "." source-file-extension))) - (when (eq t (compare-strings - source-file-nondir nil nil - inc-name (- (length inc-name) - (length source-file-nondir)) nil)) - (flymake-log 3 "inc-name=%s" inc-name) - (when (flymake-check-include source-file-name inc-name - include-dirs) - (setq found t) - ;; replace-match is not used here as it fails in - ;; XEmacs with 'last match not a buffer' error as - ;; check-includes calls replace-in-string - (flymake-replace-region - match-beg match-end - (file-name-nondirectory patched-source-file-name)))) - (forward-line 1))) - (when found - (flymake-save-buffer-in-file patched-master-file-name))) - ;;+(flymake-log 3 "killing buffer %s" - ;; (buffer-name master-file-temp-buffer)) - (kill-buffer master-file-temp-buffer)) - ;;+(flymake-log 3 "check-patch master file %s: %s" master-file-name found) - (when found - (flymake-log 2 "found master file %s" master-file-name)) - found)) - -(defun flymake-replace-region (beg end rep) - "Replace text in BUFFER in region (BEG END) with REP." - (save-excursion - (goto-char end) - ;; Insert before deleting, so as to better preserve markers's positions. - (insert rep) - (delete-region beg end))) - -(defun flymake-read-file-to-temp-buffer (file-name) - "Insert contents of FILE-NAME into newly created temp buffer." - (let* ((temp-buffer (get-buffer-create (generate-new-buffer-name (concat "flymake:" (file-name-nondirectory file-name)))))) - (with-current-buffer temp-buffer - (insert-file-contents file-name)) - temp-buffer)) - -(defun flymake-copy-buffer-to-temp-buffer (buffer) - "Copy contents of BUFFER into newly created temp buffer." - (with-current-buffer - (get-buffer-create (generate-new-buffer-name - (concat "flymake:" (buffer-name buffer)))) - (insert-buffer-substring buffer) - (current-buffer))) - -(defun flymake-check-include (source-file-name inc-name include-dirs) - "Check if SOURCE-FILE-NAME can be found in include path. -Return t if it can be found via include path using INC-NAME." - (if (file-name-absolute-p inc-name) - (flymake-same-files source-file-name inc-name) - (while (and include-dirs - (not (flymake-same-files - source-file-name - (concat (file-name-directory source-file-name) - "/" (car include-dirs) - "/" inc-name)))) - (setq include-dirs (cdr include-dirs))) - include-dirs)) - -(defun flymake-find-buffer-for-file (file-name) - "Check if there exists a buffer visiting FILE-NAME. -Return t if so, nil if not." - (let ((buffer-name (get-file-buffer file-name))) - (if buffer-name - (get-buffer buffer-name)))) - -(defun flymake-create-master-file (source-file-name patched-source-file-name get-incl-dirs-f create-temp-f masks include-regexp) - "Save SOURCE-FILE-NAME with a different name. -Find master file, patch and save it." - (let* ((possible-master-files (flymake-find-possible-master-files source-file-name flymake-master-file-dirs masks)) - (master-file-count (length possible-master-files)) - (idx 0) - (temp-buffer nil) - (master-file-name nil) - (patched-master-file-name nil) - (found nil)) - - (while (and (not found) (< idx master-file-count)) - (setq master-file-name (nth idx possible-master-files)) - (setq patched-master-file-name (funcall create-temp-f master-file-name "flymake_master")) - (if (flymake-find-buffer-for-file master-file-name) - (setq temp-buffer (flymake-copy-buffer-to-temp-buffer (flymake-find-buffer-for-file master-file-name))) - (setq temp-buffer (flymake-read-file-to-temp-buffer master-file-name))) - (setq found - (flymake-check-patch-master-file-buffer - temp-buffer - master-file-name - patched-master-file-name - source-file-name - patched-source-file-name - (funcall get-incl-dirs-f (file-name-directory master-file-name)) - include-regexp)) - (setq idx (1+ idx))) - (if found - (list master-file-name patched-master-file-name) - (progn - (flymake-log 3 "none of %d master file(s) checked includes %s" master-file-count - (file-name-nondirectory source-file-name)) - nil)))) - -(defun flymake-save-buffer-in-file (file-name) - (make-directory (file-name-directory file-name) 1) - (write-region nil nil file-name nil 566) - (flymake-log 3 "saved buffer %s in file %s" (buffer-name) file-name)) - -(defun flymake-save-string-to-file (file-name data) - "Save string DATA to file FILE-NAME." - (write-region data nil file-name nil 566)) - -(defun flymake-read-file-to-string (file-name) - "Read contents of file FILE-NAME and return as a string." - (with-temp-buffer - (insert-file-contents file-name) - (buffer-substring (point-min) (point-max)))) - -(defun flymake-process-filter (process output) - "Parse OUTPUT and highlight error lines. -It's flymake process filter." - (let ((source-buffer (process-buffer process))) - - (flymake-log 3 "received %d byte(s) of output from process %d" - (length output) (process-id process)) - (when (buffer-live-p source-buffer) - (with-current-buffer source-buffer - (flymake-parse-output-and-residual output))))) - -(defun flymake-process-sentinel (process _event) - "Sentinel for syntax check buffers." - (when (memq (process-status process) '(signal exit)) - (let* ((exit-status (process-exit-status process)) - (command (process-command process)) - (source-buffer (process-buffer process)) - (tramp-verbose -1) - (cleanup-f (flymake-get-cleanup-function (buffer-file-name source-buffer)))) - - (flymake-log 2 "process %d exited with code %d" - (process-id process) exit-status) - (condition-case err - (progn - (flymake-log 3 "cleaning up using %s" cleanup-f) - (when (buffer-live-p source-buffer) - (with-current-buffer source-buffer - (funcall cleanup-f))) - - (delete-process process) - (setq flymake-processes (delq process flymake-processes)) - - (when (buffer-live-p source-buffer) - (with-current-buffer source-buffer - - (flymake-parse-residual) - (flymake-post-syntax-check exit-status command) - (setq flymake-is-running nil) - (when flymake-check-should-restart - (flymake-log 2 "restarting syntax check") - (flymake-start-syntax-check))))) - (error - (let ((err-str (format "Error in process sentinel for buffer %s: %s" - source-buffer (error-message-string err)))) - (flymake-log 0 err-str) - (with-current-buffer source-buffer - (setq flymake-is-running nil)))))) - (flymake-run-next-queued-syntax-check))) - -(defcustom flymake-after-syntax-check-hook '() - "Hook run each time Flymake completes a syntax check and updates its list of errors." - :type 'hook - :group 'flymake) - -(defun flymake-post-syntax-check (exit-status command) - (setq flymake-err-info flymake-new-err-info) - (setq flymake-new-err-info nil) - (setq flymake-err-info - (flymake-fix-line-numbers - flymake-err-info 1 (flymake-count-lines))) - (flymake-delete-own-overlays) - (flymake-highlight-err-lines flymake-err-info) - (let (err-count warn-count info-count) - (setq err-count (flymake-get-err-count flymake-err-info "e")) - (setq warn-count (flymake-get-err-count flymake-err-info "w")) - (setq info-count (flymake-get-err-count flymake-err-info "i")) - (flymake-log 2 "%s: %d error(s), %d warning(s), %d info in %.2f second(s)" - (buffer-name) err-count warn-count info-count - (- (flymake-float-time) flymake-check-start-time)) - (setq flymake-check-start-time nil) - - (if (and (equal 0 err-count) (equal 0 warn-count) (equal 0 info-count)) - (if (equal 0 exit-status) - (flymake-report-status "" "") ; PASSED - (if (not flymake-check-was-interrupted) - (flymake-report-fatal-status "CFGERR" - (format "Configuration error has occurred while running %s" command)) - (flymake-report-status nil ""))) ; "STOPPED" - (flymake-report-status (format "%d/%d/%d" err-count warn-count info-count) ""))) - (run-hooks 'flymake-after-syntax-check-hook)) - -(defun flymake-parse-output-and-residual (output) - "Split OUTPUT into lines, merge in residual if necessary." - (flymake-log 3 "received process output: %s" (flymake-enquote-log-string output)) - (let* ((buffer-residual flymake-output-residual) - (total-output (if buffer-residual (concat buffer-residual output) output)) - (lines-and-residual (flymake-split-output total-output)) - (lines (nth 0 lines-and-residual)) - (new-residual (nth 1 lines-and-residual))) - (setq flymake-output-residual new-residual) - (setq flymake-new-err-info - (flymake-parse-err-lines - flymake-new-err-info lines)))) - -(defun flymake-parse-residual () - "Parse residual if it's non empty." - (when flymake-output-residual - (setq flymake-new-err-info - (flymake-parse-err-lines - flymake-new-err-info - (list flymake-output-residual))) - (setq flymake-output-residual nil))) - -(defun flymake-er-make-er (line-no line-err-info-list) - (list line-no line-err-info-list)) - -(defun flymake-er-get-line (err-info) - (nth 0 err-info)) - -(defun flymake-er-get-line-err-info-list (err-info) - (nth 1 err-info)) - -(defstruct (flymake-ler - (:constructor nil) - (:constructor flymake-ler-make-ler (file line type text &optional full-file))) - file line type text full-file) - -(defun flymake-ler-set-file (line-err-info file) - (flymake-ler-make-ler file - (flymake-ler-line line-err-info) - (flymake-ler-type line-err-info) - (flymake-ler-text line-err-info) - (flymake-ler-full-file line-err-info))) - -(defun flymake-ler-set-full-file (line-err-info full-file) - (flymake-ler-make-ler (flymake-ler-file line-err-info) - (flymake-ler-line line-err-info) - (flymake-ler-type line-err-info) - (flymake-ler-text line-err-info) - full-file)) - -(defun flymake-ler-set-line (line-err-info line) - (flymake-ler-make-ler (flymake-ler-file line-err-info) - line - (flymake-ler-type line-err-info) - (flymake-ler-text line-err-info) - (flymake-ler-full-file line-err-info))) - -(defun flymake-get-line-err-count (line-err-info-list type) - "Return number of errors of specified TYPE. -Value of TYPE is either \"e\", \"w\" or \"i\"." - (let* ((idx 0) - (count (length line-err-info-list)) - (err-count 0)) - - (while (< idx count) - (when (equal type (flymake-ler-type (nth idx line-err-info-list))) - (setq err-count (1+ err-count))) - (setq idx (1+ idx))) - err-count)) - -(defun flymake-get-err-count (err-info-list type) - "Return number of errors of specified TYPE for ERR-INFO-LIST." - (let* ((idx 0) - (count (length err-info-list)) - (err-count 0)) - (while (< idx count) - (setq err-count (+ err-count (flymake-get-line-err-count (nth 1 (nth idx err-info-list)) type))) - (setq idx (1+ idx))) - err-count)) - -(defun flymake-fix-line-numbers (err-info-list min-line max-line) - "Replace line numbers with fixed value. -If line-numbers is less than MIN-LINE, set line numbers to MIN-LINE. -If line numbers is greater than MAX-LINE, set line numbers to MAX-LINE. -The reason for this fix is because some compilers might report -line number outside the file being compiled." - (let* ((count (length err-info-list)) - (err-info nil) - (line 0)) - (while (> count 0) - (setq err-info (nth (1- count) err-info-list)) - (setq line (flymake-er-get-line err-info)) - (when (or (< line min-line) (> line max-line)) - (setq line (if (< line min-line) min-line max-line)) - (setq err-info-list (flymake-set-at err-info-list (1- count) - (flymake-er-make-er line - (flymake-er-get-line-err-info-list err-info))))) - (setq count (1- count)))) - err-info-list) - -(defun flymake-highlight-err-lines (err-info-list) - "Highlight error lines in BUFFER using info from ERR-INFO-LIST." - (save-excursion - (dolist (err err-info-list) - (flymake-highlight-line (car err) (nth 1 err))))) - -(defun flymake-overlay-p (ov) - "Determine whether overlay OV was created by flymake." - (and (overlayp ov) (overlay-get ov 'flymake-overlay))) - -(defun flymake-make-overlay (beg end tooltip-text face mouse-face) - "Allocate a flymake overlay in range BEG and END." - (when (not (flymake-region-has-flymake-overlays beg end)) - (let ((ov (make-overlay beg end nil t t))) - (overlay-put ov 'face face) - (overlay-put ov 'mouse-face mouse-face) - (overlay-put ov 'help-echo tooltip-text) - (overlay-put ov 'flymake-overlay t) - (overlay-put ov 'priority 100) - ;;+(flymake-log 3 "created overlay %s" ov) - ov) - (flymake-log 3 "created an overlay at (%d-%d) with face %s" beg end face))) - -(defun flymake-delete-own-overlays () - "Delete all flymake overlays in BUFFER." - (dolist (ol (overlays-in (point-min) (point-max))) - (when (flymake-overlay-p ol) - (delete-overlay ol) - ;;+(flymake-log 3 "deleted overlay %s" ol) - ))) - -(defun flymake-region-has-flymake-overlays (beg end) - "Check if region specified by BEG and END has overlay. -Return t if it has at least one flymake overlay, nil if no overlay." - (let ((ov (overlays-in beg end)) - (has-flymake-overlays nil)) - (while (consp ov) - (when (flymake-overlay-p (car ov)) - (setq has-flymake-overlays t)) - (setq ov (cdr ov))) - has-flymake-overlays)) - -(defface flymake-errline - '((((class color) (background dark)) (:background "Firebrick4")) - (((class color) (background light)) (:background "LightPink")) - (t (:bold t))) - "Face used for marking error lines." - :group 'flymake) - -(defface flymake-warnline - '((((class color) (background dark)) (:background "DarkBlue")) - (((class color) (background light)) (:background "LightBlue2")) - (t (:bold t))) - "Face used for marking warning lines." - :group 'flymake) - -(defface flymake-infoline - '((((class color) (background dark)) (:background "DarkGreen")) - (((class color) (background light)) (:background "LightGreen")) - (t (:bold t))) - "Face used for marking info lines." - :group 'flymake) - -(defcustom flymake-number-of-errors-to-display 1 - "Number of flymake errors to display in the tooltip if there are more than one. - -If set to nil, all errors for the line will be displayed." - :group 'flymake - :type '(choice integer (const nil))) - -(defun flymake-highlight-line (line-no line-err-info-list) - "Highlight line LINE-NO in current buffer. -Perhaps use text from LINE-ERR-INFO-LIST to enhance highlighting." - (goto-char (point-min)) - (forward-line (1- line-no)) - (when (and flymake-number-of-errors-to-display - (> (length line-err-info-list) flymake-number-of-errors-to-display)) - (setq line-err-info-list (butlast line-err-info-list (- (length line-err-info-list) flymake-number-of-errors-to-display)))) - (let* ((line-beg (point-at-bol)) - (line-end (point-at-eol)) - (beg line-beg) - (end line-end) - (tooltip-text (mapconcat 'flymake-ler-text line-err-info-list "\n")) - (face nil)) - - (goto-char line-beg) - (while (looking-at "[ \t]") - (forward-char)) - - (setq beg (point)) - - (goto-char line-end) - (while (and (looking-at "[ \t\r\n]") (> (point) 1)) - (backward-char)) - - (setq end (1+ (point))) - - (when (<= end beg) - (setq beg line-beg) - (setq end line-end)) - - (when (= end beg) - (goto-char end) - (forward-line) - (setq end (point))) - - (if (> (flymake-get-line-err-count line-err-info-list "e") 0) - (setq face 'flymake-errline) - (if (> (flymake-get-line-err-count line-err-info-list "w") 0) - (setq face 'flymake-warnline) - (setq face 'flymake-infoline))) - - (flymake-make-overlay beg end tooltip-text face nil))) - -(defun flymake-parse-err-lines (err-info-list lines) - "Parse err LINES, store info in ERR-INFO-LIST." - (let* ((count (length lines)) - (idx 0) - (line-err-info nil) - (real-file-name nil) - (source-file-name buffer-file-name) - (get-real-file-name-f (flymake-get-real-file-name-function source-file-name))) - - (while (< idx count) - (setq line-err-info (flymake-parse-line (nth idx lines))) - (when line-err-info - (setq real-file-name (funcall get-real-file-name-f - (flymake-ler-file line-err-info))) - (setq line-err-info (flymake-ler-set-full-file line-err-info real-file-name)) - - (when (flymake-same-files real-file-name source-file-name) - (setq line-err-info (flymake-ler-set-file line-err-info nil)) - (setq err-info-list (flymake-add-err-info err-info-list line-err-info)))) - (flymake-log 3 "parsed '%s', %s line-err-info" (nth idx lines) (if line-err-info "got" "no")) - (setq idx (1+ idx))) - err-info-list)) - -(defun flymake-split-output (output) - "Split OUTPUT into lines. -Return last one as residual if it does not end with newline char. -Returns ((LINES) RESIDUAL)." - (when (and output (> (length output) 0)) - (let* ((lines (flymake-split-string output "[\n\r]+")) - (complete (equal "\n" (char-to-string (aref output (1- (length output)))))) - (residual nil)) - (when (not complete) - (setq residual (car (last lines))) - (setq lines (butlast lines))) - (list lines residual)))) - -(defun flymake-reformat-err-line-patterns-from-compile-el (original-list) - "Grab error line patterns from ORIGINAL-LIST in compile.el format. -Convert it to flymake internal format." - (let* ((converted-list '())) - (dolist (item original-list) - (setq item (cdr item)) - (let ((regexp (nth 0 item)) - (file (nth 1 item)) - (line (nth 2 item)) - (col (nth 3 item))) - (if (consp file) (setq file (car file))) - (if (consp line) (setq line (car line))) - (if (consp col) (setq col (car col))) - - (when (not (functionp line)) - (setq converted-list (cons (list regexp file line col) converted-list))))) - converted-list)) - -(require 'compile) - -(defvar flymake-err-line-patterns ; regexp file-idx line-idx col-idx (optional) text-idx(optional), match-end to end of string is error text - (append - '( - ;; MS Visual C++ 6.0 - ("\\(\\([a-zA-Z]:\\)?[^:(\t\n]+\\)(\\([0-9]+\\)) \: \\(\\(error\\|warning\\|fatal error\\) \\(C[0-9]+\\):[ \t\n]*\\(.+\\)\\)" - 1 3 nil 4) - ;; jikes - ("\\(\\([a-zA-Z]:\\)?[^:(\t\n]+\\)\:\\([0-9]+\\)\:[0-9]+\:[0-9]+\:[0-9]+\: \\(\\(Error\\|Warning\\|Caution\\|Semantic Error\\):[ \t\n]*\\(.+\\)\\)" - 1 3 nil 4) - ;; MS midl - ("midl[ ]*:[ ]*\\(command line error .*\\)" - nil nil nil 1) - ;; MS C# - ("\\(\\([a-zA-Z]:\\)?[^:(\t\n]+\\)(\\([0-9]+\\),[0-9]+)\: \\(\\(error\\|warning\\|fatal error\\) \\(CS[0-9]+\\):[ \t\n]*\\(.+\\)\\)" - 1 3 nil 4) - ;; perl - ("\\(.*\\) at \\([^ \n]+\\) line \\([0-9]+\\)[,.\n]" 2 3 nil 1) - ;; PHP - ("\\(?:Parse\\|Fatal\\) error: \\(.*\\) in \\(.*\\) on line \\([0-9]+\\)" 2 3 nil 1) - ;; JSHint/CSSLint - ("\\(.+\\): line \\([0-9]+\\), col \\([0-9]+\\), \\(.+\\)" 1 2 3 4) - ;; LaTeX warnings (fileless) ("\\(LaTeX \\(Warning\\|Error\\): .*\\) on input line \\([0-9]+\\)" 20 3 nil 1) - ;; gcc after 4.5 (includes column number) - (" *\\(\\([a-zA-Z]:\\)?[^:(\t\n]+\\)\:\\([0-9]+\\)\:\\([0-9]+\\)\:[ \t\n]*\\(.+\\)" - 1 3 4 5) - ;; ant/javac, also matches gcc prior to 4.5 - (" *\\(\\[javac\\] *\\)?\\(\\([a-zA-Z]:\\)?[^:(\t\n]+\\)\:\\([0-9]+\\)\:[ \t\n]*\\(.+\\)" - 2 4 nil 5)) - ;; compilation-error-regexp-alist) - (flymake-reformat-err-line-patterns-from-compile-el compilation-error-regexp-alist-alist)) - "Patterns for matching error/warning lines. Each pattern has the form -\(REGEXP FILE-IDX LINE-IDX COL-IDX ERR-TEXT-IDX). -Use `flymake-reformat-err-line-patterns-from-compile-el' to add patterns -from compile.el") - -;;(defcustom flymake-err-line-patterns -;; '( -;; ; MS Visual C++ 6.0 -;; ("\\(\\([a-zA-Z]:\\)?[^:(\t\n]+\\)(\\([0-9]+\\)) \: \\(\\(error\\|warning\\|fatal error\\) \\(C[0-9]+\\):[ \t\n]*\\(.+\\)\\)" -;; 1 3 4) -;; ; jikes -;; ("\\(\\([a-zA-Z]:\\)?[^:(\t\n]+\\)\:\\([0-9]+\\)\:[0-9]+\:[0-9]+\:[0-9]+\: \\(\\(Error\\|Warning\\|Caution\\):[ \t\n]*\\(.+\\)\\)" -;; 1 3 4)) -;; "patterns for matching error/warning lines, (regexp file-idx line-idx err-text-idx)" -;; :group 'flymake -;; :type '(repeat (string number number number)) -;;) - -(defcustom flymake-warn-line-regexp "^[wW]arning" - "Regexp pattern for detecting if an error line is of class \"warning\" rather than \"error\"." - :group 'flymake - :type 'string) - -(defcustom flymake-info-line-regexp "^[iI]nfo" - "Regexp pattern for detecting if an error line is of class \"info\" rather than \"error\"." - :group 'flymake - :type 'string) - -(defun flymake-parse-line (line) - "Parse LINE to see if it is an error or warning. -Return its components if so, nil otherwise." - (let ((raw-file-name nil) - (line-no 0) - (err-type "e") - (err-text nil) - (patterns flymake-err-line-patterns) - (matched nil)) - (while (and patterns (not matched)) - (when (string-match (car (car patterns)) line) - (let* ((file-idx (nth 1 (car patterns))) - (line-idx (nth 2 (car patterns)))) - - (setq raw-file-name (if file-idx (match-string file-idx line) nil)) - (setq line-no (if line-idx (string-to-number (match-string line-idx line)) 0)) - (setq err-text (if (> (length (car patterns)) 4) - (match-string (nth 4 (car patterns)) line) - (flymake-patch-err-text (substring line (match-end 0))))) - (or err-text (setq err-text "")) - (if (and err-text (string-match flymake-warn-line-regexp err-text)) - (setq err-type "w")) - (if (and err-text (string-match flymake-info-line-regexp err-text)) - (setq err-type "i")) - (flymake-log 3 "parse line: type=%s file-idx=%s line-idx=%s file=%s line=%s text=%s" - err-type file-idx line-idx raw-file-name line-no err-text) - (setq matched t))) - (setq patterns (cdr patterns))) - (if matched - (flymake-ler-make-ler raw-file-name line-no err-type err-text) - ()))) - -(defun flymake-find-err-info (err-info-list line-no) - "Find (line-err-info-list pos) for specified LINE-NO." - (if err-info-list - (let* ((line-err-info-list nil) - (pos 0) - (count (length err-info-list))) - - (while (and (< pos count) (< (car (nth pos err-info-list)) line-no)) - (setq pos (1+ pos))) - (when (and (< pos count) (equal (car (nth pos err-info-list)) line-no)) - (setq line-err-info-list (flymake-er-get-line-err-info-list (nth pos err-info-list)))) - (list line-err-info-list pos)) - '(nil 0))) - -(defun flymake-line-err-info-is-less-or-equal (line-one line-two) - (or (string< (flymake-ler-type line-one) (flymake-ler-type line-two)) - (and (string= (flymake-ler-type line-one) (flymake-ler-type line-two)) - (not (flymake-ler-file line-one)) (flymake-ler-file line-two)) - (and (string= (flymake-ler-type line-one) (flymake-ler-type line-two)) - (or (and (flymake-ler-file line-one) (flymake-ler-file line-two)) - (and (not (flymake-ler-file line-one)) (not (flymake-ler-file line-two))))))) - -(defun flymake-add-line-err-info (line-err-info-list line-err-info) - "Update LINE-ERR-INFO-LIST with the error LINE-ERR-INFO. -For the format of LINE-ERR-INFO, see `flymake-ler-make-ler'. -The new element is inserted in the proper position, according to -the predicate `flymake-line-err-info-is-less-or-equal'. -The updated value of LINE-ERR-INFO-LIST is returned." - (if (not line-err-info-list) - (list line-err-info) - (let* ((count (length line-err-info-list)) - (idx 0)) - (while (and (< idx count) (flymake-line-err-info-is-less-or-equal (nth idx line-err-info-list) line-err-info)) - (setq idx (1+ idx))) - (cond ((equal 0 idx) (setq line-err-info-list (cons line-err-info line-err-info-list))) - (t (setq line-err-info-list (flymake-ins-after line-err-info-list (1- idx) line-err-info)))) - line-err-info-list))) - -(defun flymake-add-err-info (err-info-list line-err-info) - "Update ERR-INFO-LIST with the error LINE-ERR-INFO, preserving sort order. -Returns the updated value of ERR-INFO-LIST. -For the format of ERR-INFO-LIST, see `flymake-err-info'. -For the format of LINE-ERR-INFO, see `flymake-ler-make-ler'." - (let* ((line-no (if (flymake-ler-file line-err-info) 1 (flymake-ler-line line-err-info))) - (info-and-pos (flymake-find-err-info err-info-list line-no)) - (exists (car info-and-pos)) - (pos (nth 1 info-and-pos)) - (line-err-info-list nil) - (err-info nil)) - - (if exists - (setq line-err-info-list (flymake-er-get-line-err-info-list (car (nthcdr pos err-info-list))))) - (setq line-err-info-list (flymake-add-line-err-info line-err-info-list line-err-info)) - - (setq err-info (flymake-er-make-er line-no line-err-info-list)) - (cond (exists (setq err-info-list (flymake-set-at err-info-list pos err-info))) - ((equal 0 pos) (setq err-info-list (cons err-info err-info-list))) - (t (setq err-info-list (flymake-ins-after err-info-list (1- pos) err-info)))) - err-info-list)) - -(defun flymake-get-project-include-dirs-imp (basedir) - "Include dirs for the project current file belongs to." - (if (flymake-get-project-include-dirs-from-cache basedir) - (progn - (flymake-get-project-include-dirs-from-cache basedir)) - ;;else - (let* ((command-line (concat "make -C " - (shell-quote-argument basedir) - " DUMPVARS=INCLUDE_DIRS dumpvars")) - (output (shell-command-to-string command-line)) - (lines (flymake-split-string output "\n")) - (count (length lines)) - (idx 0) - (inc-dirs nil)) - (while (and (< idx count) (not (string-match "^INCLUDE_DIRS=.*" (nth idx lines)))) - (setq idx (1+ idx))) - (when (< idx count) - (let* ((inc-lines (flymake-split-string (nth idx lines) " *-I")) - (inc-count (length inc-lines))) - (while (> inc-count 0) - (when (not (string-match "^INCLUDE_DIRS=.*" (nth (1- inc-count) inc-lines))) - (push (flymake-replace-regexp-in-string "\"" "" (nth (1- inc-count) inc-lines)) inc-dirs)) - (setq inc-count (1- inc-count))))) - (flymake-add-project-include-dirs-to-cache basedir inc-dirs) - inc-dirs))) - -(defcustom flymake-get-project-include-dirs-function 'flymake-get-project-include-dirs-imp - "Function used to get project include dirs, one parameter: basedir name." - :group 'flymake - :type 'function) - -(defun flymake-get-project-include-dirs (basedir) - (funcall flymake-get-project-include-dirs-function basedir)) - -(defun flymake-get-system-include-dirs () - "System include dirs - from the 'INCLUDE' env setting." - (let* ((includes (getenv "INCLUDE"))) - (if includes (flymake-split-string includes path-separator) nil))) - -(defvar flymake-project-include-dirs-cache (flymake-makehash 'equal)) - -(defun flymake-get-project-include-dirs-from-cache (base-dir) - (gethash base-dir flymake-project-include-dirs-cache)) - -(defun flymake-add-project-include-dirs-to-cache (base-dir include-dirs) - (puthash base-dir include-dirs flymake-project-include-dirs-cache)) - -(defun flymake-clear-project-include-dirs-cache () - (clrhash flymake-project-include-dirs-cache)) - -(defun flymake-get-include-dirs (base-dir) - "Get dirs to use when resolving local file names." - (let* ((include-dirs (append '(".") (flymake-get-project-include-dirs base-dir) (flymake-get-system-include-dirs)))) - include-dirs)) - -;; (defun flymake-restore-formatting () -;; "Remove any formatting made by flymake." -;; ) - -;; (defun flymake-get-program-dir (buffer) -;; "Get dir to start program in." -;; (unless (bufferp buffer) -;; (error "Invalid buffer")) -;; (with-current-buffer buffer -;; default-directory)) - -(defun flymake-safe-delete-file (file-name) - (when (and file-name (file-exists-p file-name)) - (delete-file file-name) - (flymake-log 1 "deleted file %s" file-name))) - -(defun flymake-safe-delete-directory (dir-name) - (condition-case nil - (progn - (delete-directory dir-name) - (flymake-log 1 "deleted dir %s" dir-name)) - (error - (flymake-log 1 "Failed to delete dir %s, error ignored" dir-name)))) - -(defcustom flymake-compilation-prevents-syntax-check t - "If non-nil, don't start syntax check if compilation is running." - :group 'flymake - :type 'boolean) - -(defcustom flymake-max-parallel-syntax-checks 4 - "If non-nil, the maximum number of syntax checks to run in parallel before queuing." - :group 'flymake - :type 'integer) - -(defvar flymake-syntax-check-queue () - "Queue of pending buffers to run flymake on if flymake-max-parallel-syntax-checks is exceeded.") - -(defun flymake-ready-for-next-syntax-check () - "Returns t if flymake is running less than flymake-max-parallel-syntax-checks checks, nil otherwise." - (or (not flymake-max-parallel-syntax-checks) - (< (length flymake-processes) flymake-max-parallel-syntax-checks))) - -(defun flymake-queue-syntax-check (buffer) - "Queue a syntax check on BUFFER to run later once number of parallel runs is low enough." - (flymake-log 3 "flymake syntax check queued for buffer: %s" buffer) - ;; For responsiveness to current activity we run as a LIFO stack rather than FIFO pipe - (setq flymake-syntax-check-queue (delete buffer flymake-syntax-check-queue)) - (push buffer flymake-syntax-check-queue) - (when (buffer-live-p buffer) - (with-current-buffer buffer - (flymake-report-status nil ":Queued"))) - (flymake-log 3 "flymake syntax check queue is now: %s" flymake-syntax-check-queue)) - -(defun flymake-remove-queued-syntax-check (buffer) - "Remove a syntax check for BUFFER from the queue." - (flymake-log 3 "flymake syntax check removed from queue for buffer: %s" buffer) - (setq flymake-syntax-check-queue (delete buffer flymake-syntax-check-queue)) - (when (buffer-live-p buffer) - (with-current-buffer buffer - (flymake-report-status nil nil))) - (flymake-log 3 "flymake syntax check queue is now: %s" flymake-syntax-check-queue)) - -(defun flymake-pop-next-live-buffer-in-queue () - "Pop the next still-existing buffer from the queue of pending syntax checks." - (while (and flymake-syntax-check-queue - (not (buffer-live-p (car flymake-syntax-check-queue)))) - (pop flymake-syntax-check-queue)) - (let ((buffer (pop flymake-syntax-check-queue))) - (flymake-log 3 "flymake syntax check popped for buffer: %s" buffer) - (flymake-log 3 "flymake syntax check queue is now: %s" flymake-syntax-check-queue) - buffer)) - -(defun flymake-run-next-queued-syntax-check () - "Run the next queued syntax check to run later once number of parallel runs is low enough." - (interactive) - (when (flymake-ready-for-next-syntax-check) - (let ((buffer (flymake-pop-next-live-buffer-in-queue))) - (when buffer - (with-current-buffer buffer - (flymake-start-syntax-check)))))) - -(defun flymake-start-syntax-check () - "Start syntax checking for current buffer. Once the syntax checking is -complete the `flymake-after-syntax-check-hook' hook will be run." - (interactive) - (flymake-log 3 "flymake is running: %s" flymake-is-running) - (when (and (not flymake-is-running) - (flymake-can-syntax-check-file buffer-file-name)) - (if (flymake-ready-for-next-syntax-check) - (when (or (not flymake-compilation-prevents-syntax-check) - (not (flymake-compilation-is-running))) ;+ (flymake-rep-ort-status buffer "COMP") - (flymake-clear-buildfile-cache) - (flymake-clear-project-include-dirs-cache) - - (setq flymake-check-was-interrupted nil) - (setq flymake-check-should-restart nil) - - (let* ((source-file-name buffer-file-name) - (init-f (flymake-get-init-function source-file-name)) - (cleanup-f (flymake-get-cleanup-function source-file-name)) - (tramp-verbose -1) - (cmd-and-args (funcall init-f)) - (cmd (nth 0 cmd-and-args)) - (args (nth 1 cmd-and-args)) - (dir (nth 2 cmd-and-args))) - (if (not cmd-and-args) - (progn - (flymake-log 0 "init function %s for %s failed, cleaning up" init-f source-file-name) - (funcall cleanup-f)) - (progn - (setq flymake-last-change-time nil) - (flymake-start-syntax-check-process cmd args dir))))) - (flymake-queue-syntax-check (current-buffer))))) - -(defun flymake-syntax-check-directory (dir) - "Try to determine least-broken directory to use as the working directory -to run the syntax check command from. - -If DIR is supplied from the init function for the file type then that will -be used. - -Otherwise if `flymake-run-in-place' is nil and `default-directory' appears -to be a tramp file, we use `temporary-file-directory' as a least-worst -compromise to ensure the tempoary flymake copy of the buffer is on the same -machine as where the syntax check command is being run. - -Otherwise we fall through to using `default-directory'." - (or dir (if (and (not flymake-run-in-place) - (featurep 'tramp) - tramp-mode - (tramp-tramp-file-p default-directory)) - temporary-file-directory - default-directory))) - -(defun flymake-start-syntax-check-process (cmd args dir) - "Start syntax check process." - (condition-case err - ;; Attempt to preserve the buffer against output leaking before the - ;; process-filter is set up, this can occur when the process is - ;; started over a remote tramp connection. - ;; I'm fairly certain this is a bug in `tramp-handle-start-file-process' - ;; but I'm damned if I can figure out what, so this is a workaround. - (c-save-buffer-state () - (save-excursion - (save-restriction - (narrow-to-region (point-max) (point-max)) - ;; For some reason this insert is needed to prevent - ;; tramp-mode from inserting any MOTD on the remote - ;; machine outside the narrowed region. - ;; With this insert it puts the MOTD in the narrowed - ;; region and we can delete it safely. - ;; Beats me, and I'm not entirely comfortable with it. - (insert "\n") - (let* ((tramp-verbose -1) - (process - (let ((default-directory (flymake-syntax-check-directory dir))) - (flymake-log 3 "starting process on dir %s" default-directory) - (apply 'start-file-process "flymake-proc" (current-buffer) cmd args)))) - (set-process-query-on-exit-flag process nil) - (set-process-sentinel process 'flymake-process-sentinel) - (set-process-filter process 'flymake-process-filter) - (push process flymake-processes) - ;; Clean up any output that has leaked. Fixes issues with Tramp. - ;;(flymake-log 3 "buffer-string %s" (flymake-enquote-log-string (buffer-string))) - (delete-region (point-min) (point-max)) - - (setq flymake-is-running t) - (setq flymake-last-change-time nil) - (setq flymake-check-start-time (flymake-float-time)) - - (flymake-report-status nil "*") - (flymake-log 2 "started process %d, command=%s" - (process-id process) (process-command process)) - process)))) - (error - (let* ((err-str (format "Failed to launch syntax check process '%s' with args %s: %s" - cmd args (error-message-string err))) - (source-file-name buffer-file-name) - (cleanup-f (flymake-get-cleanup-function source-file-name)) - (tramp-verbose -1)) - (flymake-log 0 err-str) - (funcall cleanup-f) - (flymake-report-fatal-status "PROCERR" err-str))))) - -(defun flymake-kill-process (proc) - "Kill process PROC." - (kill-process proc) - (let* ((buf (process-buffer proc))) - (when (buffer-live-p buf) - (with-current-buffer buf - (setq flymake-check-was-interrupted t)))) - (flymake-log 1 "killed process %d" (process-id proc))) - -(defun flymake-stop-syntax-check (&optional buffer) - "Kill any queued or running syntax check for BUFFER. -Defaults to `current-buffer' if not supplied. - -NOTE: Stopping a syntax check will not complete until the spawned process has -been terminated, this happens asynchronously and it is highly likely that -immediately after calling `flymake-stop-syntax-check' the process will still -be running. Among other things, this will prevent starting a new syntax check -in the buffer until the process terminates. If you want to queue up a new -syntax check, you should look at `flymake-restart-syntax-check' which handles -this async delay correctly for you." - (interactive) - (let ((buffer (or buffer (current-buffer)))) - (flymake-remove-queued-syntax-check buffer) - (dolist (proc flymake-processes) - (if (equal (process-buffer proc) buffer) (flymake-kill-process proc))))) - -(defun flymake-stop-all-syntax-checks () - "Kill all syntax check processes." - (interactive) - (while flymake-syntax-check-queue - (flymake-remove-queued-syntax-check (car flymake-syntax-check-queue))) - (while flymake-processes - (flymake-kill-process (pop flymake-processes)))) - -(defun flymake-restart-syntax-check (&optional buffer) - "Kill any queued or running syntax check for BUFFER and start a new one. -Defaults to `current-buffer' if not supplied." - (interactive) - (let ((buffer (or buffer (current-buffer)))) - (flymake-remove-queued-syntax-check buffer) - (dolist (proc flymake-processes) - (when (equal (process-buffer proc) buffer) - (with-current-buffer buffer - (setq flymake-check-should-restart t)) - (flymake-kill-process proc))))) - -(defun flymake-compilation-is-running () - (and (boundp 'compilation-in-progress) - compilation-in-progress)) - -(defun flymake-compile () - "Kill all flymake syntax checks, start compilation." - (interactive) - (flymake-stop-all-syntax-checks) - (call-interactively 'compile)) - -(defcustom flymake-no-changes-timeout 0.5 - "Time to wait after last change before starting compilation." - :group 'flymake - :type 'number) - -(defun flymake-on-timer-event () - "Start a syntax check for current buffer if necessary." - (when (and flymake-mode - (not flymake-is-running) - flymake-last-change-time - (> (- (flymake-float-time) flymake-last-change-time) - flymake-no-changes-timeout)) - - (setq flymake-last-change-time nil) - (flymake-log 3 "starting syntax check as more than %f second(s) passed since last change" - flymake-no-changes-timeout) - (flymake-start-syntax-check))) - -(defun flymake-current-line-no () - "Return number of current line in current buffer." - (count-lines (point-min) (if (eobp) (point) (1+ (point))))) - -(defun flymake-count-lines () - "Return number of lines in buffer BUFFER." - (count-lines (point-min) (point-max))) - -(defun flymake-display-err-menu-for-current-line () - "Display a menu with errors/warnings for current line if it has errors and/or warnings." - (interactive) - (let* ((line-no (flymake-current-line-no)) - (line-err-info-list (nth 0 (flymake-find-err-info flymake-err-info line-no))) - (menu-data (flymake-make-err-menu-data line-no line-err-info-list)) - (choice nil)) - (if menu-data - (progn - (setq choice (flymake-popup-menu menu-data)) - (flymake-log 3 "choice=%s" choice) - (when choice - (eval choice))) - (flymake-log 1 "no errors for line %d" line-no)))) - -(defun flymake-make-err-menu-data (line-no line-err-info-list) - "Make a (menu-title (item-title item-action)*) list with errors/warnings from LINE-ERR-INFO-LIST." - (let* ((menu-items nil)) - (when line-err-info-list - (let* ((count (length line-err-info-list)) - (menu-item-text nil)) - (while (> count 0) - (setq menu-item-text (flymake-ler-text (nth (1- count) line-err-info-list))) - (let* ((file (flymake-ler-file (nth (1- count) line-err-info-list))) - (full-file (flymake-ler-full-file (nth (1- count) line-err-info-list))) - (line (flymake-ler-line (nth (1- count) line-err-info-list)))) - (if file - (setq menu-item-text (concat menu-item-text " - " file "(" (format "%d" line) ")"))) - (setq menu-items (cons (list menu-item-text - (if file (list 'flymake-goto-file-and-line full-file line) nil)) - menu-items))) - (setq count (1- count))) - (flymake-log 3 "created menu-items with %d item(s)" (length menu-items)))) - (if menu-items - (let* ((menu-title (format "Line %d: %d error(s), %d warning(s), %d info" line-no - (flymake-get-line-err-count line-err-info-list "e") - (flymake-get-line-err-count line-err-info-list "w") - (flymake-get-line-err-count line-err-info-list "i")))) - (list menu-title menu-items)) - nil))) - -(defun flymake-goto-file-and-line (file line) - "Try to get buffer for FILE and goto line LINE in it." - (if (not (file-exists-p file)) - (flymake-log 1 "File %s does not exist" file) - (find-file file) - (goto-char (point-min)) - (forward-line (1- line)))) - -;; flymake minor mode declarations -(defvar flymake-mode-line nil) - -(make-variable-buffer-local 'flymake-mode-line) - -(defvar flymake-mode-line-e-w nil) - -(make-variable-buffer-local 'flymake-mode-line-e-w) - -(defvar flymake-mode-line-status nil) - -(make-variable-buffer-local 'flymake-mode-line-status) - -(defun flymake-report-status (e-w &optional status) - "Show status in mode line." - (when e-w - (setq flymake-mode-line-e-w e-w)) - (when status - (setq flymake-mode-line-status status)) - (let* ((mode-line " Flymake")) - (when (> (length flymake-mode-line-e-w) 0) - (setq mode-line (concat mode-line ":" flymake-mode-line-e-w))) - (setq mode-line (concat mode-line flymake-mode-line-status)) - (setq flymake-mode-line mode-line) - (force-mode-line-update))) - -(defun flymake-display-warning (warning) - "Display a warning to user." - (message-box warning)) - -(defcustom flymake-gui-warnings-enabled t - "Enables/disables GUI warnings." - :group 'flymake - :type 'boolean) - -(defun flymake-report-fatal-status (status warning) - "Display a warning and switch flymake mode off." - (when flymake-gui-warnings-enabled - (flymake-display-warning (format "Flymake: %s. Flymake will be switched OFF" warning))) - (flymake-mode 0) - (flymake-log 0 "switched OFF Flymake mode for buffer %s due to fatal status %s, warning %s" - (buffer-name) status warning)) - -;;;###autoload -(defun flymake-mode-on () - "Turn flymake mode on." - (flymake-mode 1) - (flymake-log 1 "flymake mode turned ON for buffer %s" (buffer-name))) - -;;;###autoload -(defun flymake-mode-off () - "Turn flymake mode off." - (flymake-mode 0) - (flymake-log 1 "flymake mode turned OFF for buffer %s" (buffer-name))) - -(defcustom flymake-start-syntax-check-on-newline t - "Start syntax check if newline char was added/removed from the buffer." - :group 'flymake - :type 'boolean) - -(defun flymake-after-change-function (start stop _len) - "Start syntax check for current buffer if it isn't already running." - ;;+(flymake-log 0 "setting change time to %s" (flymake-float-time)) - (let((new-text (buffer-substring start stop))) - (when (and flymake-start-syntax-check-on-newline (equal new-text "\n")) - (flymake-log 3 "starting syntax check as new-line has been seen") - (flymake-start-syntax-check)) - (setq flymake-last-change-time (flymake-float-time)))) - -(defun flymake-after-save-hook () - (if (local-variable-p 'flymake-mode (current-buffer)) ; (???) other way to determine whether flymake is active in buffer being saved? - (progn - (flymake-log 3 "starting syntax check as buffer was saved") - (flymake-start-syntax-check)))) ; no more mode 3. cannot start check if mode 3 (to temp copies) is active - (???) - -(defun flymake-kill-buffer-hook () - (when flymake-timer - (cancel-timer flymake-timer) - (setq flymake-timer nil))) - -;;;###autoload -(defun flymake-find-file-hook () - ;;+(when flymake-start-syntax-check-on-find-file - ;;+ (flymake-log 3 "starting syntax check on file open") - ;;+ (flymake-start-syntax-check) - ;;+) - (when (and (not (local-variable-p 'flymake-mode (current-buffer))) - (flymake-can-syntax-check-file buffer-file-name)) - (flymake-mode) - (flymake-log 3 "automatically turned ON flymake mode"))) - -(defun flymake-get-first-err-line-no (err-info-list) - "Return first line with error." - (when err-info-list - (flymake-er-get-line (car err-info-list)))) - -(defun flymake-get-last-err-line-no (err-info-list) - "Return last line with error." - (when err-info-list - (flymake-er-get-line (nth (1- (length err-info-list)) err-info-list)))) - -(defun flymake-get-next-err-line-no (err-info-list line-no) - "Return next line with error." - (when err-info-list - (let* ((count (length err-info-list)) - (idx 0)) - (while (and (< idx count) (>= line-no (flymake-er-get-line (nth idx err-info-list)))) - (setq idx (1+ idx))) - (if (< idx count) - (flymake-er-get-line (nth idx err-info-list)))))) - -(defun flymake-get-prev-err-line-no (err-info-list line-no) - "Return previous line with error." - (when err-info-list - (let* ((count (length err-info-list))) - (while (and (> count 0) (<= line-no (flymake-er-get-line (nth (1- count) err-info-list)))) - (setq count (1- count))) - (if (> count 0) - (flymake-er-get-line (nth (1- count) err-info-list)))))) - -(defun flymake-skip-whitespace () - "Move forward until non-whitespace is reached." - (while (looking-at "[ \t]") - (forward-char))) - -(defcustom flymake-goto-error-hook '() - "Hook run each time `flymake-goto-next-error' and `flymake-goto-prev-error' -are called." - :type 'hook - :group 'flymake) - -(defcustom flymake-goto-error-skip-whitespace t - "Whether to skip leading whitespace on the line when using -`flymake-goto-next-error' and `flymake-goto-prev-error'." - :type 'boolean - :group 'flymake) - -(defun flymake-goto-line (line-no) - "Go to line LINE-NO. -If `flymake-goto-error-skip-whitespace' is t also move past leading whitespace -on the line. -The hook `flymake-goto-error-hook' is run after moving to the new position." - (goto-char (point-min)) - (forward-line (1- line-no)) - (if flymake-goto-error-skip-whitespace - (flymake-skip-whitespace)) - (run-hooks 'flymake-goto-error-hook)) - -(defun flymake-goto-next-error () - "Go to next error in error ring. -The hook `flymake-goto-error-hook' is run after moving to the new position." - (interactive) - (let ((line-no (flymake-get-next-err-line-no flymake-err-info (flymake-current-line-no)))) - (when (not line-no) - (setq line-no (flymake-get-first-err-line-no flymake-err-info)) - (flymake-log 1 "passed end of file")) - (if line-no - (flymake-goto-line line-no) - (flymake-log 1 "no errors in current buffer")))) - -(defun flymake-goto-prev-error () - "Go to previous error in errror ring. -The hook `flymake-goto-error-hook' is run after moving to the new position." - (interactive) - (let ((line-no (flymake-get-prev-err-line-no flymake-err-info (flymake-current-line-no)))) - (when (not line-no) - (setq line-no (flymake-get-last-err-line-no flymake-err-info)) - (flymake-log 1 "passed beginning of file")) - (if line-no - (flymake-goto-line line-no) - (flymake-log 1 "no errors in current buffer")))) - -(defun flymake-patch-err-text (string) - (if (string-match "^[\n\t :0-9]*\\(.*\\)$" string) - (match-string 1 string) - string)) - -;;;; general init-cleanup and helper routines -;; TODO: rename these to something sane and deprecate the current names. -(defun flymake-create-temp-copy (file-name prefix) - "Make filename for a temporary copy of FILE-NAME. - -If `flymake-run-in-place' is true it will use `flymake-create-temp-inplace', -otherwise it will use `flymake-create-temp-intemp'. - -Note that this function, despite its name, does not actually create a -copy of the file: it only choses and returns a filename for the temp -copy." - (if flymake-run-in-place - (flymake-create-temp-inplace file-name prefix) - (flymake-create-temp-intemp file-name prefix))) - -(defun flymake-create-temp-inplace (file-name prefix) - "Return filename in the same directory as FILE-NAME for a -temporary copy of the buffer editing FILE-NAME. - -Despite the name of the argument, PREFIX will be appended to the -filename as a suffix to ensure we don't overwrite the original. -This usually defaults to \"flymake\". - -Note that this function, despite its name, does not actually create a -copy of the file: it only choses and returns a filename for the temp -copy." - (unless (stringp file-name) - (error "Invalid file-name")) - (or prefix - (setq prefix "flymake")) - (let* ((temp-name (file-truename (concat (file-name-sans-extension file-name) - "_" prefix - (and (file-name-extension file-name) - (concat "." (file-name-extension file-name))))))) - (flymake-log 3 "create-temp-inplace: file=%s temp=%s" file-name temp-name) - temp-name)) - -;; This was lifted from various blogs, I'm not sure who the original -;; author was - whoever it was: thank you! -;; I got it from http://blog.urth.org/2011/06/flymake-versus-the-catalyst-restarter.html -;; but Dave Rolsky indicates he got it from elsewhere. -(defun flymake-create-temp-intemp (file-name prefix) - "Return filename in temporary directory for a temporary -copy of the buffer editing FILE-NAME. This is a replacement for -`flymake-create-temp-inplace'. The difference is that it gives -a file name in `temporary-file-directory' instead of the same -directory as FILE-NAME. - -For the use of PREFIX see that function. - -Note that not making the temporary file in another directory -\(like here) will not work if the file you are checking depends -relative paths to other files \(for the type of checks flymake -makes). - -Note that this function, despite its name, does not actually create a -copy of the file: it only choses and returns a filename for the temp -copy." - (unless (stringp file-name) - (error "Invalid file-name")) - (or prefix - (setq prefix "flymake")) - (let* ((name (concat - (file-name-nondirectory (file-name-sans-extension file-name)) - "_" prefix)) - (ext (concat "." (file-name-extension file-name))) - (temp-name (file-truename (make-temp-file name nil ext)))) - (flymake-log 3 "create-temp-intemp: file=%s temp=%s" file-name temp-name) - temp-name)) - -(defun flymake-create-temp-with-folder-structure (file-name prefix) - (unless (stringp file-name) - (error "Invalid file-name")) - - (let* ((dir (file-name-directory file-name)) - ;; Not sure what this slash-pos is all about, but I guess it's just - ;; trying to remove the leading / of absolute file names. - (slash-pos (string-match "/" dir)) - (temp-dir (expand-file-name (substring dir (1+ slash-pos)) - (flymake-get-temp-dir)))) - - (file-truename (expand-file-name (file-name-nondirectory file-name) - temp-dir)))) - -(defun flymake-delete-temp-directory (dir-name) - "Attempt to delete temp dir created by `flymake-create-temp-with-folder-structure', do not fail on error." - (let* ((dir-name (file-truename dir-name)) - (temp-dir (file-truename (flymake-get-temp-dir))) - (suffix (substring dir-name (length temp-dir)))) - - (while (> (length suffix) 0) - (setq suffix (directory-file-name suffix)) - ;;(flymake-log 0 "suffix=%s" suffix) - ;;(flymake-log 0 "delete=%s" (file-truename (expand-file-name suffix temp-dir))) - (flymake-safe-delete-directory - (file-truename (expand-file-name suffix temp-dir))) - (setq suffix (file-name-directory suffix))))) - -(defvar flymake-temp-source-file-name nil) -(make-variable-buffer-local 'flymake-temp-source-file-name) - -(defvar flymake-master-file-name nil) -(make-variable-buffer-local 'flymake-master-file-name) - -(defvar flymake-temp-master-file-name nil) -(make-variable-buffer-local 'flymake-temp-master-file-name) - -(defvar flymake-base-dir nil) -(make-variable-buffer-local 'flymake-base-dir) - -(defun flymake-init-create-temp-buffer-copy (create-temp-f) - "Make a temporary copy of the current buffer, save its name in buffer data and return the name." - (let* ((source-file-name buffer-file-name) - (temp-source-file-name (funcall create-temp-f source-file-name "flymake"))) - - (flymake-save-buffer-in-file temp-source-file-name) - (setq flymake-temp-source-file-name temp-source-file-name) - temp-source-file-name)) - -(defun flymake-simple-cleanup () - "Do cleanup after `flymake-init-create-temp-buffer-copy'. -Delete temp file." - (flymake-safe-delete-file flymake-temp-source-file-name) - (setq flymake-last-change-time nil)) - -(defun flymake-get-real-file-name (file-name-from-err-msg) - "Translate file name from error message to \"real\" file name. -Return full-name. Names are real, not patched." - (let* ((real-name nil) - (source-file-name buffer-file-name) - (master-file-name flymake-master-file-name) - (temp-source-file-name flymake-temp-source-file-name) - (temp-master-file-name flymake-temp-master-file-name) - (base-dirs - (list flymake-base-dir - (file-name-directory source-file-name) - (if master-file-name (file-name-directory master-file-name)))) - (files (list (list source-file-name source-file-name) - (list temp-source-file-name source-file-name) - (list master-file-name master-file-name) - (list temp-master-file-name master-file-name)))) - - (when (equal 0 (length file-name-from-err-msg)) - (setq file-name-from-err-msg source-file-name)) - - (setq real-name (flymake-get-full-patched-file-name file-name-from-err-msg base-dirs files)) - ;; if real-name is nil, than file name from err msg is none of the files we've patched - (if (not real-name) - (setq real-name (flymake-get-full-nonpatched-file-name file-name-from-err-msg base-dirs))) - (if (not real-name) - (setq real-name file-name-from-err-msg)) - (setq real-name (flymake-fix-file-name real-name)) - (flymake-log 3 "get-real-file-name: file-name=%s real-name=%s" file-name-from-err-msg real-name) - real-name)) - -(defun flymake-get-full-patched-file-name (file-name-from-err-msg base-dirs files) - (let* ((base-dirs-count (length base-dirs)) - (file-count (length files)) - (real-name nil)) - - (while (and (not real-name) (> base-dirs-count 0)) - (setq file-count (length files)) - (while (and (not real-name) (> file-count 0)) - (let* ((this-dir (nth (1- base-dirs-count) base-dirs)) - (this-file (nth 0 (nth (1- file-count) files))) - (this-real-name (nth 1 (nth (1- file-count) files)))) - ;;+(flymake-log 0 "this-dir=%s this-file=%s this-real=%s msg-file=%s" this-dir this-file this-real-name file-name-from-err-msg) - (when (and this-dir this-file (flymake-same-files - (expand-file-name file-name-from-err-msg this-dir) - this-file)) - (setq real-name this-real-name))) - (setq file-count (1- file-count))) - (setq base-dirs-count (1- base-dirs-count))) - real-name)) - -(defun flymake-get-full-nonpatched-file-name (file-name-from-err-msg base-dirs) - (let* ((real-name nil)) - (if (file-name-absolute-p file-name-from-err-msg) - (setq real-name file-name-from-err-msg) - (let* ((base-dirs-count (length base-dirs))) - (while (and (not real-name) (> base-dirs-count 0)) - (let* ((full-name (expand-file-name file-name-from-err-msg - (nth (1- base-dirs-count) base-dirs)))) - (if (file-exists-p full-name) - (setq real-name full-name)) - (setq base-dirs-count (1- base-dirs-count)))))) - real-name)) - -(defun flymake-init-find-buildfile-dir (source-file-name buildfile-name) - "Find buildfile, store its dir in buffer data and return its dir, if found." - (let* ((buildfile-dir - (flymake-find-buildfile buildfile-name - (file-name-directory source-file-name)))) - (if buildfile-dir - (setq flymake-base-dir buildfile-dir) - (flymake-log 1 "no buildfile (%s) for %s" buildfile-name source-file-name) - (flymake-report-fatal-status - "NOMK" (format "No buildfile (%s) found for %s" - buildfile-name source-file-name))))) - -(defun flymake-init-create-temp-source-and-master-buffer-copy (get-incl-dirs-f create-temp-f master-file-masks include-regexp) - "Find master file (or buffer), create its copy along with a copy of the source file." - (let* ((source-file-name buffer-file-name) - (temp-source-file-name (flymake-init-create-temp-buffer-copy create-temp-f)) - (master-and-temp-master (flymake-create-master-file - source-file-name temp-source-file-name - get-incl-dirs-f create-temp-f - master-file-masks include-regexp))) - - (if (not master-and-temp-master) - (progn - (flymake-log 1 "cannot find master file for %s" source-file-name) - (flymake-report-status "!" "") ; NOMASTER - nil) - (setq flymake-master-file-name (nth 0 master-and-temp-master)) - (setq flymake-temp-master-file-name (nth 1 master-and-temp-master))))) - -(defun flymake-master-cleanup () - (flymake-simple-cleanup) - (flymake-safe-delete-file flymake-temp-master-file-name)) - -;;;; make-specific init-cleanup routines -(defun flymake-get-syntax-check-program-args (source-file-name base-dir use-relative-base-dir use-relative-source get-cmd-line-f) - "Create a command line for syntax check using GET-CMD-LINE-F." - (funcall get-cmd-line-f - (if use-relative-source - (file-relative-name source-file-name base-dir) - source-file-name) - (if use-relative-base-dir - (file-relative-name base-dir - (file-name-directory source-file-name)) - base-dir))) - -(defun flymake-get-make-cmdline (source base-dir) - (list "make" - (list "-s" - "-C" - base-dir - (concat "CHK_SOURCES=" source) - "SYNTAX_CHECK_MODE=1" - "check-syntax"))) - -(defun flymake-get-ant-cmdline (source base-dir) - (list "ant" - (list "-buildfile" - (concat base-dir "/" "build.xml") - (concat "-DCHK_SOURCES=" source) - "check-syntax"))) - -(defun flymake-simple-make-init-impl (create-temp-f use-relative-base-dir use-relative-source build-file-name get-cmdline-f) - "Create syntax check command line for a directly checked source file. -Use CREATE-TEMP-F for creating temp copy." - (let* ((args nil) - (source-file-name buffer-file-name) - (buildfile-dir (flymake-init-find-buildfile-dir source-file-name build-file-name))) - (if buildfile-dir - (let* ((temp-source-file-name (flymake-init-create-temp-buffer-copy create-temp-f))) - (setq args (flymake-get-syntax-check-program-args temp-source-file-name buildfile-dir - use-relative-base-dir use-relative-source - get-cmdline-f)))) - args)) - -(defun flymake-simple-make-init () - (flymake-simple-make-init-impl 'flymake-create-temp-copy - flymake-run-in-place t "Makefile" 'flymake-get-make-cmdline)) - -(defun flymake-master-make-init (get-incl-dirs-f master-file-masks include-regexp) - "Create make command line for a source file checked via master file compilation." - (let* ((make-args nil) - (temp-master-file-name (flymake-init-create-temp-source-and-master-buffer-copy - get-incl-dirs-f 'flymake-create-temp-copy - master-file-masks include-regexp))) - (when temp-master-file-name - (let* ((buildfile-dir (flymake-init-find-buildfile-dir temp-master-file-name "Makefile"))) - (if buildfile-dir - (setq make-args (flymake-get-syntax-check-program-args - temp-master-file-name buildfile-dir nil nil 'flymake-get-make-cmdline))))) - make-args)) - -(defun flymake-find-make-buildfile (source-dir) - (flymake-find-buildfile "Makefile" source-dir)) - -;;;; .h/make specific -(defun flymake-master-make-header-init () - (flymake-master-make-init - 'flymake-get-include-dirs - '("\\.\\(?:c\\(?:pp\\|xx\\|\\+\\+\\)?\\|CC\\)\\'") - "[ \t]*#[ \t]*include[ \t]*\"\\([[:word:]0-9/\\_.]*%s\\)\"")) - -;;;; .java/make specific -(defun flymake-simple-make-java-init () - (flymake-simple-make-init-impl 'flymake-create-temp-with-folder-structure nil nil "Makefile" 'flymake-get-make-cmdline)) - -(defun flymake-simple-ant-java-init () - (flymake-simple-make-init-impl 'flymake-create-temp-with-folder-structure nil nil "build.xml" 'flymake-get-ant-cmdline)) - -(defun flymake-simple-java-cleanup () - "Cleanup after `flymake-simple-make-java-init' -- delete temp file and dirs." - (flymake-safe-delete-file flymake-temp-source-file-name) - (when flymake-temp-source-file-name - (flymake-delete-temp-directory - (file-name-directory flymake-temp-source-file-name)))) - -;;;; perl-specific init-cleanup routines -(defun flymake-perlbrew-path-sync () - "Sync $PATH in the environment of the current Emacs process with modifications -made by perlbrew in other shell processes. - -Detection of perlbrew relies on $PERLBREW_ROOT being set in the environment, if -you're using a GUI-launched Emacs such as Emacs.app then you may need to take -steps to set this manually." - (when (getenv "PERLBREW_ROOT") - ;; This is pretty ugly, we need to run a bash intepreter, source - ;; the perlbrew path hacking, then echo the modified path. - ;; The antics with PATH=... is to try to make sure we don't trash - ;; $PATH in the event that the command errors for some reason - don't - ;; want our path set to the error message. - (let ((raw-modified-path (shell-command-to-string (concat "bash -c '. " (getenv "PERLBREW_ROOT") "/etc/bashrc;echo \"PATH=$PATH\"'")))) - (string-match "PATH=\\(.+\\)$" raw-modified-path) - (let ((modified-path (match-string 1 raw-modified-path))) - (if modified-path - (progn - (flymake-log 2 "Updating $PATH to match perlbrew $PATH: \"%s\"" modified-path) - (setenv "PATH" modified-path)) - (flymake-log 1 "Unable to parse perlbrew $PATH output \"%s\"" raw-modified-path)))))) - -(defcustom flymake-perl-lib-dir nil - "Path to override Flymake's attempt to find the Perl include dir -for a project with `flymake-find-perl-lib-dir`." - :group 'flymake - :type 'string) - -(defun flymake-find-perl-lib-dir (source-dir) - "Look for a directory to push onto the Perl include directories with -the -I option. - -Looks up the directory tree from the source file for a directory containing -either a \"Makefile.PL\" or a \"Build.PL\" file, or a directory named \"lib\", -then uses the \"lib\" subdirectory of that project directory. - -Alternatively you may override this behaviour by customizing the -`flymake-perl-lib-dir` variable to give the exact directory name you -wish to have supplied to Perl -I." - (or - (if flymake-perl-lib-dir (expand-file-name flymake-perl-lib-dir)) - (let ((project-root-dir - (or (flymake-find-buildfile "Makefile.PL" source-dir) - (flymake-find-buildfile "Build.PL" source-dir) - (flymake-find-buildfile "lib" source-dir)))) - (when project-root-dir - (expand-file-name (concat project-root-dir "lib")))))) - -(defun flymake-perl-init () - (let* ((temp-file (flymake-init-create-temp-buffer-copy - 'flymake-create-temp-copy)) - (local-file (file-relative-name - temp-file - (file-name-directory buffer-file-name))) - (include-dir (flymake-find-perl-lib-dir buffer-file-name))) - (flymake-perlbrew-path-sync) - (list "perl" (append - (list "-wc") - (if include-dir (list "-I" include-dir)) - (list local-file))))) - -;;;; php-specific init-cleanup routines -(defun flymake-php-init () - (let* ((temp-file (flymake-init-create-temp-buffer-copy - 'flymake-create-temp-copy)) - (local-file (file-relative-name - temp-file - (file-name-directory buffer-file-name)))) - (list "php" (list "-f" local-file "-l")))) - -;;;; javascript-specific init-cleanup routines -(defun flymake-javascript-init () - (let* ((temp-file (flymake-init-create-temp-buffer-copy - 'flymake-create-temp-copy)) - (local-file (file-relative-name - temp-file - (file-name-directory buffer-file-name)))) - (list "jshint" (list local-file)))) - -;;;; css-specific init-cleanup routines -(defun flymake-css-init () - (let* ((temp-file (flymake-init-create-temp-buffer-copy - 'flymake-create-temp-copy)) - (local-file (file-relative-name - temp-file - (file-name-directory buffer-file-name)))) - (list "csslint" (list "--format=compact" local-file)))) - -;; rpm spec files with rpmlint -(defun flymake-specfile-init () - (let* ((temp-file (flymake-init-create-temp-buffer-copy - 'flymake-create-temp-copy)) - (local-file (file-relative-name - temp-file - (file-name-directory buffer-file-name)))) - (list "rpmlint" (list local-file)))) - -;; check po files with msgfmt -c -(defun flymake-pofile-init () - (let* ((temp-file (flymake-init-create-temp-buffer-copy - 'flymake-create-temp-copy)) - (local-file (file-relative-name - temp-file - (file-name-directory buffer-file-name)))) - (list "msgfmt" (list "-c" local-file)))) - - -;;;; tex-specific init-cleanup routines -(defun flymake-get-tex-args (file-name) - ;;(list "latex" (list "-c-style-errors" file-name)) - (list "texify" (list "--pdf" "--tex-option=-c-style-errors" file-name))) - -(defun flymake-simple-tex-init () - (flymake-get-tex-args (flymake-init-create-temp-buffer-copy 'flymake-create-temp-copy))) - -(defun flymake-master-tex-init () - (let* ((temp-master-file-name (flymake-init-create-temp-source-and-master-buffer-copy - 'flymake-get-include-dirs-dot 'flymake-create-temp-copy - '("\\.tex\\'") - "[ \t]*\\in\\(?:put\\|clude\\)[ \t]*{\\(.*%s\\)}"))) - (when temp-master-file-name - (flymake-get-tex-args temp-master-file-name)))) - -(defun flymake-get-include-dirs-dot (_base-dir) - '(".")) - -;;;; xml-specific init-cleanup routines -(defun flymake-xml-init () - (list "xmlstarlet" (list "val" (flymake-init-create-temp-buffer-copy 'flymake-create-temp-copy)))) - -(provide 'flymake) - -;;; flymake.el ends here diff --git a/elpa/idle-highlight-mode-1.1.2/idle-highlight-mode-autoloads.el b/elpa/idle-highlight-mode-1.1.2/idle-highlight-mode-autoloads.el deleted file mode 100644 index 9ae75a98..00000000 --- a/elpa/idle-highlight-mode-1.1.2/idle-highlight-mode-autoloads.el +++ /dev/null @@ -1,29 +0,0 @@ -;;; idle-highlight-mode-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads (idle-highlight-mode) "idle-highlight-mode" "idle-highlight-mode.el" -;;;;;; (20815 21543 0 0)) -;;; Generated autoloads from idle-highlight-mode.el - -(autoload 'idle-highlight-mode "idle-highlight-mode" "\ -Idle-Highlight Minor Mode - -\(fn &optional ARG)" t nil) - -;;;*** - -;;;### (autoloads nil nil ("idle-highlight-mode-pkg.el") (20815 21543 -;;;;;; 721828 0)) - -;;;*** - -(provide 'idle-highlight-mode-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; idle-highlight-mode-autoloads.el ends here diff --git a/elpa/idle-highlight-mode-1.1.2/idle-highlight-mode-pkg.el b/elpa/idle-highlight-mode-1.1.2/idle-highlight-mode-pkg.el deleted file mode 100644 index f699b608..00000000 --- a/elpa/idle-highlight-mode-1.1.2/idle-highlight-mode-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "idle-highlight-mode" "1.1.2" "highlight the word the point is on" (quote nil)) diff --git a/elpa/idle-highlight-mode-1.1.2/idle-highlight-mode.el b/elpa/idle-highlight-mode-1.1.2/idle-highlight-mode.el deleted file mode 100644 index 9738834a..00000000 --- a/elpa/idle-highlight-mode-1.1.2/idle-highlight-mode.el +++ /dev/null @@ -1,104 +0,0 @@ -;;; idle-highlight-mode.el --- highlight the word the point is on - -;; Copyright (C) 2008-2011 Phil Hagelberg, Cornelius Mika - -;; Author: Phil Hagelberg, Cornelius Mika -;; URL: http://www.emacswiki.org/cgi-bin/wiki/IdleHighlight -;; Version: 1.1.2 -;; Created: 2008-05-13 -;; Keywords: convenience -;; EmacsWiki: IdleHighlight - -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. -;; -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. - -;;; Commentary: - -;; Based on some snippets by fledermaus from the #emacs channel. - -;; M-x idle-highlight-mode sets an idle timer that highlights all -;; occurences in the buffer of the word under the point. - -;; Enabling it in a hook is recommended. But you don't want it enabled -;; for all buffers, just programming ones. -;; -;; Example: -;; -;; (defun my-coding-hook () -;; (make-local-variable 'column-number-mode) -;; (column-number-mode t) -;; (if window-system (hl-line-mode t)) -;; (idle-highlight t)) -;; -;; (add-hook 'emacs-lisp-mode-hook 'my-coding-hook) -;; (add-hook 'ruby-mode-hook 'my-coding-hook) -;; (add-hook 'js2-mode-hook 'my-coding-hook) - -;;; Code: - -(require 'thingatpt) - - -(defgroup idle-highlight nil - "Highlight other occurrences of the word at point." - :group 'faces) - -(defface idle-highlight - '((t (:inherit region))) - "Face used to highlight other occurrences of the word at point." - :group 'idle-highlight) - -(defvar idle-highlight-regexp nil - "Buffer-local regexp to be idle-highlighted.") - -(defvar idle-highlight-global-timer nil - "Timer to trigger highlighting.") - -(defun idle-highlight-word-at-point () - "Highlight the word under the point." - (if idle-highlight-mode - (let* ((target-symbol (symbol-at-point)) - (target (symbol-name target-symbol))) - (if (and target-symbol - (not (in-string-p)) - (looking-at-p "\\s_\\|\\sw") ;; Symbol characters - ;; TODO: no need to highlight keywords like if - (not (equal target "end"))) - (progn (idle-highlight-unhighlight) - (setq idle-highlight-regexp (concat "\\<" (regexp-quote target) "\\>")) - (highlight-regexp idle-highlight-regexp 'idle-highlight)) - (idle-highlight-unhighlight) - (setq idle-highlight-regexp nil))))) - -(defsubst idle-highlight-unhighlight () - (if idle-highlight-regexp (unhighlight-regexp idle-highlight-regexp))) - -;;;###autoload -(define-minor-mode idle-highlight-mode - "Idle-Highlight Minor Mode" - :group 'idle-highlight - (if idle-highlight-mode - (progn (unless idle-highlight-global-timer - (setq idle-highlight-global-timer - (run-with-idle-timer 0.5 :repeat 'idle-highlight-word-at-point))) - (set (make-local-variable 'idle-highlight-regexp) nil)) - (idle-highlight-unhighlight))) - -(provide 'idle-highlight-mode) -;;; idle-highlight-mode.el ends here diff --git a/elpa/ido-ubiquitous-1.6/ido-ubiquitous-autoloads.el b/elpa/ido-ubiquitous-1.6/ido-ubiquitous-autoloads.el deleted file mode 100644 index 1d0fd409..00000000 --- a/elpa/ido-ubiquitous-1.6/ido-ubiquitous-autoloads.el +++ /dev/null @@ -1,118 +0,0 @@ -;;; ido-ubiquitous-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads (ido-ubiquitous-function-compatibility-exceptions -;;;;;; ido-ubiquitous-command-compatibility-exceptions ido-ubiquitous-function-exceptions -;;;;;; ido-ubiquitous-command-exceptions ido-ubiquitous-mode ido-ubiquitous) -;;;;;; "ido-ubiquitous" "ido-ubiquitous.el" (20815 21541 0 0)) -;;; Generated autoloads from ido-ubiquitous.el - -(let ((loads (get 'ido-ubiquitous 'custom-loads))) (if (member '"ido-ubiquitous" loads) nil (put 'ido-ubiquitous 'custom-loads (cons '"ido-ubiquitous" loads)))) - -(defvar ido-ubiquitous-mode nil "\ -Non-nil if Ido-Ubiquitous mode is enabled. -See the command `ido-ubiquitous-mode' for a description of this minor mode. -Setting this variable directly does not take effect; -either customize it (see the info node `Easy Customization') -or call the function `ido-ubiquitous-mode'.") - -(custom-autoload 'ido-ubiquitous-mode "ido-ubiquitous" nil) - -(autoload 'ido-ubiquitous-mode "ido-ubiquitous" "\ -Use `ido-completing-read' instead of `completing-read' almost everywhere. - - This mode has no effect unles `ido-mode' is also enabled. - - If this mode causes problems for a function, you can force the - function to use the original completing read by using the macro - `ido-ubiquitous-disable-in'. For example, if a - function `foo' cannot work with ido-style completion, evaluate - the following (for example by putting it in your .emacs file): - - (ido-ubiquitous-disable-in foo) - -\(fn &optional ARG)" t nil) - -(define-obsolete-variable-alias 'ido-ubiquitous 'ido-ubiquitous-mode "0.8") - -(define-obsolete-function-alias 'ido-ubiquitous 'ido-ubiquitous-mode "0.8") - -(defvar ido-ubiquitous-command-exceptions 'nil "\ -List of commands that should not be affected by `ido-ubiquitous'. - -Even when `ido-ubiquitous' mode is enabled, these commands will -continue to use `completing-read' instead of -`ido-completing-read'. - -Only *interactive* commands should go here. To disable -ido-ubiquitous in non-interactive functions, customize -`ido-ubiquitous-function-exceptions'. - -Note: this feature depends on the variable `this-command' being -properly set to the name of the currently executing command. -Depending on how the command is onvoked, this may or may not -happen, so this feature may simply not work in some cases.") - -(custom-autoload 'ido-ubiquitous-command-exceptions "ido-ubiquitous" t) - -(define-obsolete-variable-alias 'ido-ubiquitous-exceptions 'ido-ubiquitous-command-exceptions "0.4") - -(defvar ido-ubiquitous-function-exceptions '(grep-read-files) "\ -List of functions in which to disable ido-ubiquitous. - -If you need to add a function to this list, please also file a -bug report at -https://github.com/DarwinAwardWinner/ido-ubiquitous/issues - -Note that certain functions, such as `read-file-name', must -always have ido-ubiquitous disabled, and cannot be added -here. (They are effectively a permanent part of this list -already.)") - -(custom-autoload 'ido-ubiquitous-function-exceptions "ido-ubiquitous" nil) - -(defvar ido-ubiquitous-command-compatibility-exceptions 'nil "\ -List of commands in which to disable compatibility. - -See `ido-ubiquitous-enable-compatibility' for a description of -the compatibility behavior. If this behavior causes a command to -break, add that command to this list to disable compatibility -mode for just that command. - -Only *interactive* commands should go here. To disable -compatibility mode in non-interactive functions, customize -`ido-ubiquitous-function-compatibility-exceptions'.") - -(custom-autoload 'ido-ubiquitous-command-compatibility-exceptions "ido-ubiquitous" t) - -(defvar ido-ubiquitous-function-compatibility-exceptions 'nil "\ -List of functions in which to disable ido-ubiquitous compatibility mode. - -See `ido-ubiquitous-enable-compatibility' for a description of -the compatibility behavior. If this behavior causes a function to -break, add that function to this list to disable compatibility -mode for just that command. - -If you need to add a function to this list, please also file a -bug report at -https://github.com/DarwinAwardWinner/ido-ubiquitous/issues") - -(custom-autoload 'ido-ubiquitous-function-compatibility-exceptions "ido-ubiquitous" nil) - -;;;*** - -;;;### (autoloads nil nil ("ido-ubiquitous-pkg.el") (20815 21541 -;;;;;; 802909 0)) - -;;;*** - -(provide 'ido-ubiquitous-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; ido-ubiquitous-autoloads.el ends here diff --git a/elpa/ido-ubiquitous-1.6/ido-ubiquitous-pkg.el b/elpa/ido-ubiquitous-1.6/ido-ubiquitous-pkg.el deleted file mode 100644 index f0b2b161..00000000 --- a/elpa/ido-ubiquitous-1.6/ido-ubiquitous-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "ido-ubiquitous" "1.6" "Use ido (nearly) everywhere." (quote nil)) diff --git a/elpa/ido-ubiquitous-1.6/ido-ubiquitous.el b/elpa/ido-ubiquitous-1.6/ido-ubiquitous.el deleted file mode 100644 index 8f9b4d89..00000000 --- a/elpa/ido-ubiquitous-1.6/ido-ubiquitous.el +++ /dev/null @@ -1,466 +0,0 @@ - -;;; ido-ubiquitous.el --- Use ido (nearly) everywhere. - -;; Author: Ryan C. Thompson -;; URL: https://github.com/DarwinAwardWinner/ido-ubiquitous -;; Version: 1.6 -;; Created: 2011-09-01 -;; Keywords: convenience -;; EmacsWiki: InteractivelyDoThings - -;; This file is NOT part of GNU Emacs. - -;;; Commentary: - -;; You may have seen the `ido-everywhere' variable in ido.el and got -;; excited that you could use ido completion for everything. Then you -;; were probably disappointed when you realized that it only applied -;; to *file names* and nothing else. Well, ido-ubiquitous is here to -;; fulfill the original promise and let you use ido completion for -;; (almost) any command that uses `completing-read' to offer you a -;; choice of several alternatives. - -;; This even works in M-x, but for that, you might prefer the "smex" -;; package instead. - -;; As of version 0.7, this package also makes a small modification to -;; ido's behavior so as to support a strange corner case of -;; `completing-read' that some functions rely on. Since the goal of -;; this package is to replace `completing-read' everywhere instead of -;; just selectively (as ido itself does), compatibility with all the -;; quriks of `completing-read' is important here. - -;; If you find a case where enabling ido-ubiquitous causes a command -;; not to work correctly, please report it by creating an issue on -;; GitHub: https://github.com/DarwinAwardWinner/ido-ubiquitous/issues - -;;; License: - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. -;; -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. - -;;; Code: - -(require 'ido) -(require 'advice) - - -(defvar ido-ubiquitous-orig-completing-read-function - (bound-and-true-p completing-read-function) - "The value of `completing-read-function' before ido-ubiquitous-mode was enabled. - -This value will be restored when `ido-ubiquitous-mode' is -deactivated. It will also be used as a fallback if ido-ubiquitous -detects something that ido cannot handle.") - -;;;###autoload -(defgroup ido-ubiquitous nil - "Use ido for (almost) all completion." - :group 'ido) - -;;;###autoload -(define-minor-mode ido-ubiquitous-mode - "Use `ido-completing-read' instead of `completing-read' almost everywhere. - - This mode has no effect unles `ido-mode' is also enabled. - - If this mode causes problems for a function, you can force the - function to use the original completing read by using the macro - `ido-ubiquitous-disable-in'. For example, if a - function `foo' cannot work with ido-style completion, evaluate - the following (for example by putting it in your .emacs file): - - (ido-ubiquitous-disable-in foo)" - - nil - :global t - :group 'ido-ubiquitous - (when ido-ubiquitous-mode - (unless (bound-and-true-p ido-mode) - (warn "Ido-ubiquitous-mode enabled without ido mode."))) - (if (and (boundp 'completing-read-function) - ido-ubiquitous-orig-completing-read-function) - ;; Emacs 24 and later - (progn - ;; Ensure emacs 23 code disabled - (ad-disable-advice 'completing-read 'around 'ido-ubiquitous-legacy) - (ad-activate 'completing-read) - (setq completing-read-function - (if ido-ubiquitous-mode - 'completing-read-ido - ido-ubiquitous-orig-completing-read-function))) - ;; Emacs 23 and earlier - (funcall (if ido-ubiquitous-mode 'ad-enable-advice 'ad-disable-advice) - 'completing-read 'around 'ido-ubiquitous-legacy) - (ad-activate 'completing-read))) - -;;;###autoload -(define-obsolete-variable-alias 'ido-ubiquitous - 'ido-ubiquitous-mode "0.8") -;;;###autoload -(define-obsolete-function-alias 'ido-ubiquitous - 'ido-ubiquitous-mode "0.8") - -;;;###autoload -(defcustom ido-ubiquitous-command-exceptions '() - "List of commands that should not be affected by `ido-ubiquitous'. - -Even when `ido-ubiquitous' mode is enabled, these commands will -continue to use `completing-read' instead of -`ido-completing-read'. - -Only *interactive* commands should go here. To disable -ido-ubiquitous in non-interactive functions, customize -`ido-ubiquitous-function-exceptions'. - -Note: this feature depends on the variable `this-command' being -properly set to the name of the currently executing command. -Depending on how the command is onvoked, this may or may not -happen, so this feature may simply not work in some cases." - :type '(repeat (symbol :tag "Command")) - :group 'ido-ubiquitous) - -;;;###autoload -(define-obsolete-variable-alias 'ido-ubiquitous-exceptions - 'ido-ubiquitous-command-exceptions "0.4") - -(defvar ido-next-call-replaces-completing-read nil) -(defvar ido-this-call-replaces-completing-read nil) - -;; Emacs 23- -(defadvice completing-read (around ido-ubiquitous-legacy activate) - "Ido-based method for reading from the minibuffer with completion. - See `completing-read' for the meaning of the arguments." - (if (or inherit-input-method ; Can't handle this arg - (not ido-mode) - (not ido-ubiquitous-mode) - ;; Avoid infinite recursion from ido calling completing-read - (boundp 'ido-cur-item) - (memq this-command ido-ubiquitous-command-exceptions)) - ad-do-it - (let ((allcomp (all-completions "" collection predicate))) - ;; Only use ido completion if there are actually any completions - ;; to offer. - (if allcomp - (let ((ido-next-call-replaces-completing-read t)) - (setq ad-return-value - (ido-completing-read prompt allcomp - nil require-match initial-input hist def))) - ad-do-it)))) - -(ad-disable-advice 'completing-read 'around 'ido-ubiquitous-legacy) -(ad-activate 'completing-read) - -;; Emacs 24+ -(defun completing-read-ido (prompt collection &optional predicate - require-match initial-input - hist def inherit-input-method) - "Ido-based method for reading from the minibuffer with completion. -See `completing-read' for the meaning of the arguments. - -This function is a wrapper for `ido-completing-read' designed to -be used as the value of `completing-read-function'." - (if (or inherit-input-method ; Can't handle this arg - (not ido-mode) - (not ido-ubiquitous-mode) - (memq this-command ido-ubiquitous-command-exceptions)) - (funcall ido-ubiquitous-orig-completing-read-function - prompt collection predicate - require-match initial-input - hist def inherit-input-method) - (let ((allcomp (all-completions "" collection predicate))) - ;; Only use ido completion if there are actually any completions - ;; to offer. - (if allcomp - (let ((ido-next-call-replaces-completing-read t)) - (ido-completing-read prompt allcomp - nil require-match initial-input hist def)) - (funcall ido-ubiquitous-orig-completing-read-function - prompt collection predicate - require-match initial-input - hist def inherit-input-method))))) - -(defadvice ido-completing-read (around detect-replacing-cr activate) - "Detect whether this call was done through `completing-read-ido'." - (let* ((ido-this-call-replaces-completing-read ido-next-call-replaces-completing-read) - (ido-next-call-replaces-completing-read nil)) - (when ido-this-call-replaces-completing-read - ;; If DEF is a list, prepend it to CHOICES and set DEF to just the - ;; car of the default list. - (when (and def (listp def)) - (setq choices (delete-dups (append def choices)) - def (car def))) ;; Work around a bug in ido when both INITIAL-INPUT and DEF are provided - ;; More info: https://github.com/technomancy/ido-ubiquitous/issues/18 - (let ((initial (cond ((null initial-input) "") - ((stringp initial-input) initial-input) - ((consp initial-input) (car initial-input)) - (t initial-input))) - (deflist (if (listp def) - def - (list def)))) - (when (and deflist initial - (stringp initial) - (not (string= initial ""))) - ;; Both default and initial input were provided. So keep the - ;; initial input and preprocess the choices list to put the - ;; default at the head, then proceed with default = nil. - (setq choices (delete-dups (append deflist (remove def choices))) - def nil)))) - ad-do-it)) - -(defmacro ido-ubiquitous-disable-in (func) - "Disable ido-ubiquitous in FUNC." - (let ((docstring - (format "Disable ido-ubiquitous in %s" func))) - `(defadvice ,func (around disable-ido-ubiquitous activate) - ,docstring - (let (ido-ubiquitous-mode) ad-do-it)))) - -(define-obsolete-function-alias - 'disable-ido-ubiquitous-in - 'ido-ubiquitous-disable-in - "0.4") - -(defmacro ido-ubiquitous-enable-in (func) - "Re-enable ido-ubiquitous in FUNC. - - This reverses the effect of a previous call to - `ido-ubiquitous-disable-in'." - `(when (ad-find-advice ',func 'around 'disable-ido-ubiquitous) - (ad-disable-advice ',func 'around 'disable-ido-ubiquitous) - (ad-activate ',func))) - -(define-obsolete-function-alias - 'enable-ido-ubiquitous-in - 'ido-ubiquitous-enable-in - "0.4") - -;; Always disable ido-ubiquitous in `find-file' and similar functions, -;; because they are not supposed to use ido. -(defvar ido-ubiquitous-permanent-function-exceptions - '(read-file-name - read-file-name-internal - read-buffer - gnus-emacs-completing-read - gnus-iswitchb-completing-read - man) - "Functions in which ido-ubiquitous should always be disabled. - -If you want to disable ido in a specific function or command, do -not modify this variable. Instead, try `M-x customize-group -ido-ubiquitous.") - -(dolist (func ido-ubiquitous-permanent-function-exceptions) - (eval `(ido-ubiquitous-disable-in ,func))) - -(defun ido-ubiquitous--set-difference (list1 list2) - "Replacement for `set-difference' from `cl'." - (apply #'nconc - (mapcar (lambda (elt) (unless (memq elt list2) (list elt))) - list1))) - -(defun ido-ubiquitous-set-function-exceptions (sym newval) - (let* ((oldval (when (boundp sym) (eval sym)))) - ;; Filter out the permanent exceptions so we never act on them. - (setq oldval (ido-ubiquitous--set-difference oldval ido-ubiquitous-permanent-function-exceptions)) - (setq newval (ido-ubiquitous--set-difference newval ido-ubiquitous-permanent-function-exceptions)) - ;; Re-enable ido-ubiquitous on all old functions, in case they - ;; were removed from the list. - (dolist (oldfun oldval) - (eval `(ido-ubiquitous-enable-in ,oldfun))) - ;; Set the new value - (set-default sym newval) - ;; Disable ido-ubiquitous on all new functions - (dolist (newfun newval) - (eval `(ido-ubiquitous-disable-in ,newfun))))) - -;;;###autoload -(defcustom ido-ubiquitous-function-exceptions - '(grep-read-files) - "List of functions in which to disable ido-ubiquitous. - -If you need to add a function to this list, please also file a -bug report at -https://github.com/DarwinAwardWinner/ido-ubiquitous/issues - -Note that certain functions, such as `read-file-name', must -always have ido-ubiquitous disabled, and cannot be added -here. (They are effectively a permanent part of this list -already.)" - :group 'ido-ubiquitous - :type '(repeat :tag "Functions" - (symbol :tag "Function")) - :set 'ido-ubiquitous-set-function-exceptions) - -(defcustom ido-ubiquitous-enable-compatibility t - "Allow ido to emulate a quirk of `completing-read'. - -From the `completing-read' docstring: - -> If the input is null, `completing-read' returns DEF, or the -> first element of the list of default values, or an empty string -> if DEF is nil, regardless of the value of REQUIRE-MATCH. - -If this variable is non-nil, then ido-ubiquitous will attempt to -emulate this behavior. Specifically, if RET is pressed -immediately upon entering completion, an empty string will be -returned instead of the first element in the list. This behavior -is only enabled when ido is being used as a substitute for -`completing-read', and not when it is used directly. - -This odd behavior is required for compatibility with an old-style -usage pattern whereby the default was requested by returning an -empty string. In this mode, the caller receives the empty string -and handles the default case manually, while `completing-read' -never has any knowledge of the default. This is a problem for -ido, which always returns the first element in the list when the -input is empty. Without knowledge of the default, it cannot -ensure that the default is first on the list, so returning the -first item is not the correct behavior. Instead, it must return -an empty string like `completing-read'. - -When this mode is enabled, you can still select the first item on -the list by prefixing \"RET\" with \"C-u\"." - :type 'boolean - :group 'ido-ubiquitous) - -;;;###autoload -(defcustom ido-ubiquitous-command-compatibility-exceptions '() - "List of commands in which to disable compatibility. - -See `ido-ubiquitous-enable-compatibility' for a description of -the compatibility behavior. If this behavior causes a command to -break, add that command to this list to disable compatibility -mode for just that command. - -Only *interactive* commands should go here. To disable -compatibility mode in non-interactive functions, customize -`ido-ubiquitous-function-compatibility-exceptions'." - :type '(repeat (symbol :tag "Command")) - :group 'ido-ubiquitous) - -(defvar ido-ubiquitous-initial-item nil - "The first item selected when ido starts.") - -(defadvice ido-read-internal (before clear-initial-item activate) - (setq ido-ubiquitous-initial-item nil)) - -(defadvice ido-make-choice-list (after set-initial-item activate) - (when (and ad-return-value (listp ad-return-value)) - (setq ido-ubiquitous-initial-item (car ad-return-value)))) - -(defadvice ido-next-match (after clear-initial-item activate) - (setq ido-ubiquitous-initial-item nil)) - -(defadvice ido-prev-match (after clear-initial-item activate) - (setq ido-ubiquitous-initial-item nil)) - -(defadvice ido-exit-minibuffer (around compatibility activate) - "Emulate a quirk of `completing-read'. - -> If the input is null, `completing-read' returns DEF, or the -> first element of the list of default values, or an empty string -> if DEF is nil, regardless of the value of REQUIRE-MATCH. - -See `ido-ubiquitous-enable-compatibility', which controls whether -this advice has any effect." - (if (and (eq ido-cur-item 'list) - ido-ubiquitous-enable-compatibility - ;; Only enable if we are replacing `completing-read' - ido-this-call-replaces-completing-read - ;; Disable in command exceptions - (not (memq this-command ido-ubiquitous-command-compatibility-exceptions)) - ;; Input is empty - (string= ido-text "") - ;; Default is nil - (null ido-default-item) - ;; Prefix disables compatibility - (not current-prefix-arg) - (string= (car ido-cur-list) - ido-ubiquitous-initial-item)) - (ido-select-text) - ad-do-it) - (setq ido-ubiquitous-initial-item nil)) - -(defmacro ido-ubiquitous-disable-compatibility-in (func) - "Disable ido-ubiquitous compatibility mode in FUNC." - (let ((docstring - (format "Disable ido-ubiquitous in %s" func))) - `(defadvice ,func (around disable-ido-ubiquitous-compatibility activate) - ,docstring - (let (ido-ubiquitous-enable-compatibility) ad-do-it)))) - -(defmacro ido-ubiquitous-enable-compatibility-in (func) - "Re-enable ido-ubiquitous comaptibility mode in FUNC. - - This reverses the effect of a previous call to - `ido-ubiquitous-disable-compatibility-in'." - `(when (ad-find-advice ',func 'around 'disable-ido-ubiquitous-compatibility) - (ad-disable-advice ',func 'around 'disable-ido-ubiquitous-compatibility) - (ad-activate ',func))) - -(defun ido-ubiquitous-set-function-compatibility-exceptions (sym newval) - (let* ((oldval (when (boundp sym) (eval sym)))) - ;; Re-enable compatibility on all old functions, in case they - ;; were removed from the list. - (dolist (oldfun oldval) - (eval `(ido-ubiquitous-enable-compatibility-in ,oldfun))) - ;; Set the new value - (set-default sym newval) - ;; Disable compatibility on all new functions - (dolist (newfun newval) - (eval `(ido-ubiquitous-disable-compatibility-in ,newfun))))) - -;;;###autoload -(defcustom ido-ubiquitous-function-compatibility-exceptions - '() - "List of functions in which to disable ido-ubiquitous compatibility mode. - -See `ido-ubiquitous-enable-compatibility' for a description of -the compatibility behavior. If this behavior causes a function to -break, add that function to this list to disable compatibility -mode for just that command. - -If you need to add a function to this list, please also file a -bug report at -https://github.com/DarwinAwardWinner/ido-ubiquitous/issues" - :group 'ido-ubiquitous - :type '(repeat :tag "Functions" - (symbol :tag "Function")) - :set 'ido-ubiquitous-set-function-exceptions) - -(defun ido-ubiquitous-initialize () - "Do initial setup for ido-ubiquitous. - -This only needs to be called once when the file is first loaded." - ;; Clean up old versions of ido-ubiquitous (1.3 and earlier) that - ;; defined advice on `completing-read' instead of modifying - ;; `completing-read-function'. - (when (ad-find-advice 'completing-read 'around 'ido-ubiquitous) - (ad-remove-advice 'completing-read 'around 'ido-ubiquitous) - (ad-activate 'completing-read)) - ;; Make sure all exceptions are activated - (ido-ubiquitous-set-function-exceptions - 'ido-ubiquitous-function-exceptions - ido-ubiquitous-function-exceptions) - (ido-ubiquitous-set-function-compatibility-exceptions - 'ido-ubiquitous-function-compatibility-exceptions - ido-ubiquitous-function-compatibility-exceptions) - ;; Make sure the mode is turned on/off as specified by the value of - ;; the mode variable - (ido-ubiquitous-mode (if ido-ubiquitous-mode 1 0))) -(ido-ubiquitous-initialize) - -(provide 'ido-ubiquitous) ;;; ido-ubiquitous.el ends here diff --git a/elpa/inf-ruby-2.2.4/inf-ruby-autoloads.el b/elpa/inf-ruby-2.2.4/inf-ruby-autoloads.el deleted file mode 100644 index 2427dc73..00000000 --- a/elpa/inf-ruby-2.2.4/inf-ruby-autoloads.el +++ /dev/null @@ -1,50 +0,0 @@ -;;; inf-ruby-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads (run-ruby inf-ruby inf-ruby-setup-keybindings) -;;;;;; "inf-ruby" "inf-ruby.el" (20815 21577 0 0)) -;;; Generated autoloads from inf-ruby.el - -(autoload 'inf-ruby-setup-keybindings "inf-ruby" "\ -Set local key defs to invoke inf-ruby from ruby-mode. - -\(fn)" nil nil) - -(autoload 'inf-ruby "inf-ruby" "\ -Run an inferior Ruby process in a buffer. -With prefix argument, prompts for which Ruby implementation -\(from the list `inf-ruby-implementations') to use. Runs the -hooks `inf-ruby-mode-hook' (after the `comint-mode-hook' is -run). - -\(fn &optional IMPL)" t nil) - -(autoload 'run-ruby "inf-ruby" "\ -Run an inferior Ruby process, input and output via buffer *ruby*. -If there is a process already running in `*ruby*', switch to that buffer. -With argument, allows you to edit the command line (default is value -of `ruby-program-name'). Runs the hooks `inferior-ruby-mode-hook' -\(after the `comint-mode-hook' is run). -\(Type \\[describe-mode] in the process buffer for a list of commands.) - -\(fn &optional COMMAND NAME)" t nil) - -(eval-after-load 'ruby-mode '(inf-ruby-setup-keybindings)) - -;;;*** - -;;;### (autoloads nil nil ("inf-ruby-pkg.el") (20815 21577 72596 -;;;;;; 0)) - -;;;*** - -(provide 'inf-ruby-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; inf-ruby-autoloads.el ends here diff --git a/elpa/inf-ruby-2.2.4/inf-ruby-pkg.el b/elpa/inf-ruby-2.2.4/inf-ruby-pkg.el deleted file mode 100644 index d216e283..00000000 --- a/elpa/inf-ruby-2.2.4/inf-ruby-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "inf-ruby" "2.2.4" "Run a ruby process in a buffer" (quote nil)) diff --git a/elpa/inf-ruby-2.2.4/inf-ruby.el b/elpa/inf-ruby-2.2.4/inf-ruby.el deleted file mode 100644 index 687f9329..00000000 --- a/elpa/inf-ruby-2.2.4/inf-ruby.el +++ /dev/null @@ -1,387 +0,0 @@ -;;; inf-ruby.el --- Run a ruby process in a buffer - -;; Copyright (C) 1999-2008 Yukihiro Matsumoto, Nobuyoshi Nakada - -;; Author: Yukihiro Matsumoto, Nobuyoshi Nakada -;; URL: http://github.com/nonsequitur/inf-ruby -;; Created: 8 April 1998 -;; Keywords: languages ruby -;; Version: 2.2.4 - -;;; Commentary: -;; -;; inf-ruby.el provides a REPL buffer connected to an IRB subprocess. -;; -;; If you're installing manually, you'll need to: -;; * drop the file somewhere on your load path (perhaps ~/.emacs.d) -;; * Add the following lines to your .emacs file: -;; (autoload 'inf-ruby "inf-ruby" "Run an inferior Ruby process" t) -;; (autoload 'inf-ruby-setup-keybindings "inf-ruby" "" t) -;; (eval-after-load 'ruby-mode -;; '(add-hook 'ruby-mode-hook 'inf-ruby-setup-keybindings)) - -;;; TODO: -;; -;; inferior-ruby-error-regexp-alist doesn't match this example -;; SyntaxError: /home/eschulte/united/org/work/arf/arf/lib/cluster.rb:35: syntax error, unexpected '~', expecting kEND -;; similarity = comparison_cache[m][n] ||= clusters[m] ~ clusters[n] -;; -;; M-p skips the first entry in the input ring. -;; - -(require 'comint) -(require 'compile) -(require 'ruby-mode) - -(defvar inf-ruby-default-implementation "ruby" - "Which ruby implementation to use if none is specified.") - -(defvar inf-ruby-first-prompt-pattern "^irb(.*)[0-9:]+0> *" - "First prompt regex pattern of ruby interpreter.") - -(defvar inf-ruby-prompt-pattern "^\\(irb(.*)[0-9:]+[>*\"'] *\\)+" - "Prompt regex pattern of ruby interpreter.") - -(defvar inf-ruby-mode-hook nil - "*Hook for customising inf-ruby mode.") - -(defvar inf-ruby-mode-map - (let ((map (copy-keymap comint-mode-map))) - (define-key map (kbd "C-c C-l") 'inf-ruby-load-file) - (define-key map (kbd "C-x C-e") 'ruby-send-last-sexp) - (define-key map (kbd "TAB") 'inf-ruby-complete) - map) - "*Mode map for inf-ruby-mode") - -(defvar inf-ruby-implementations - '(("ruby" . "irb --inf-ruby-mode -r irb/completion") - ("jruby" . "jruby -S irb -r irb/completion") - ("rubinius" . "rbx -r irb/completion") - ("yarv" . "irb1.9 --inf-ruby-mode -r irb/completion")) ;; TODO: ironruby? - "An alist of ruby implementations to irb executable names.") - -;; TODO: do we need these two defvars? -(defvar ruby-source-modes '(ruby-mode) - "*Used to determine if a buffer contains Ruby source code. -If it's loaded into a buffer that is in one of these major modes, it's -considered a ruby source file by ruby-load-file. -Used by these commands to determine defaults.") - -(defvar ruby-prev-l/c-dir/file nil - "Caches the last (directory . file) pair. -Caches the last pair used in the last ruby-load-file command. -Used for determining the default in the -next one.") - -(defvar inf-ruby-at-top-level-prompt-p t) - -(defconst inf-ruby-error-regexp-alist - '(("SyntaxError: compile error\n^\\([^\(].*\\):\\([1-9][0-9]*\\):" 1 2) - ("^\tfrom \\([^\(].*\\):\\([1-9][0-9]*\\)\\(:in `.*'\\)?$" 1 2))) - -;;;###autoload -(defun inf-ruby-setup-keybindings () - "Set local key defs to invoke inf-ruby from ruby-mode." - (define-key ruby-mode-map "\M-\C-x" 'ruby-send-definition) - (define-key ruby-mode-map "\C-x\C-e" 'ruby-send-last-sexp) - (define-key ruby-mode-map "\C-c\C-b" 'ruby-send-block) - (define-key ruby-mode-map "\C-c\M-b" 'ruby-send-block-and-go) - (define-key ruby-mode-map "\C-c\C-x" 'ruby-send-definition) - (define-key ruby-mode-map "\C-c\M-x" 'ruby-send-definition-and-go) - (define-key ruby-mode-map "\C-c\C-r" 'ruby-send-region) - (define-key ruby-mode-map "\C-c\M-r" 'ruby-send-region-and-go) - (define-key ruby-mode-map "\C-c\C-z" 'ruby-switch-to-inf) - (define-key ruby-mode-map "\C-c\C-l" 'ruby-load-file) - (define-key ruby-mode-map "\C-c\C-s" 'inf-ruby)) - -(defvar inf-ruby-buffer nil "Current irb process buffer.") - -(defun inf-ruby-mode () - "Major mode for interacting with an inferior ruby (irb) process. - -The following commands are available: -\\{inf-ruby-mode-map} - -A ruby process can be fired up with M-x inf-ruby. - -Customisation: Entry to this mode runs the hooks on comint-mode-hook and -inf-ruby-mode-hook (in that order). - -You can send text to the inferior ruby process from other buffers containing -Ruby source. - ruby-switch-to-inf switches the current buffer to the ruby process buffer. - ruby-send-definition sends the current definition to the ruby process. - ruby-send-region sends the current region to the ruby process. - - ruby-send-definition-and-go, ruby-send-region-and-go, - switch to the ruby process buffer after sending their text. - -Commands: -Return after the end of the process' output sends the text from the - end of process to point. -Return before the end of the process' output copies the sexp ending at point - to the end of the process' output, and sends it. -Delete converts tabs to spaces as it moves back. -Tab indents for ruby; with arugment, shifts rest - of expression rigidly with the current line. -C-M-q does Tab on each line starting within following expression. -Paragraphs are separated only by blank lines. # start comments. -If you accidentally suspend your process, use \\[comint-continue-subjob] -to continue it." - (interactive) - (comint-mode) - (setq comint-prompt-regexp inf-ruby-prompt-pattern) - (ruby-mode-variables) - (setq major-mode 'inf-ruby-mode) - (setq mode-name "Inf-Ruby") - (setq mode-line-process '(":%s")) - (use-local-map inf-ruby-mode-map) - (setq comint-input-filter (function inf-ruby-input-filter)) - (add-to-list 'comint-output-filter-functions 'inf-ruby-output-filter) - (setq comint-get-old-input (function inf-ruby-get-old-input)) - (make-local-variable 'compilation-error-regexp-alist) - (setq compilation-error-regexp-alist inf-ruby-error-regexp-alist) - (compilation-shell-minor-mode t) - (run-hooks 'inf-ruby-mode-hook)) - -(defvar inf-ruby-filter-regexp "\\`\\s *\\S ?\\S ?\\s *\\'" - "*Input matching this regexp are not saved on the history list. -Defaults to a regexp ignoring all inputs of 0, 1, or 2 letters.") - -(defun inf-ruby-input-filter (str) - "Don't save anything matching inf-ruby-filter-regexp" - (not (string-match inf-ruby-filter-regexp str))) - -(defun inf-ruby-output-filter (output) - "Check if the current prompt is a top-level prompt" - (setq inf-ruby-at-top-level-prompt-p - (string-match inf-ruby-prompt-pattern - (car (last (split-string output "\n")))))) - -;; adapted from replace-in-string in XEmacs (subr.el) -(defun inf-ruby-remove-in-string (str regexp) - "Remove all matches in STR for REGEXP and returns the new string." - (let ((rtn-str "") (start 0) match prev-start) - (while (setq match (string-match regexp str start)) - (setq prev-start start - start (match-end 0) - rtn-str (concat rtn-str (substring str prev-start match)))) - (concat rtn-str (substring str start)))) - -(defun inf-ruby-get-old-input () - "Snarf the sexp ending at point" - (save-excursion - (let ((end (point))) - (re-search-backward inf-ruby-first-prompt-pattern) - (inf-ruby-remove-in-string (buffer-substring (point) end) - inf-ruby-prompt-pattern)))) - -;;;###autoload -(defun inf-ruby (&optional impl) - "Run an inferior Ruby process in a buffer. -With prefix argument, prompts for which Ruby implementation -\(from the list `inf-ruby-implementations') to use. Runs the -hooks `inf-ruby-mode-hook' \(after the `comint-mode-hook' is -run)." - - (interactive (list (if current-prefix-arg - (completing-read "Ruby Implementation: " - (mapc #'car inf-ruby-implementations)) - inf-ruby-default-implementation))) - (setq impl (or impl "ruby")) - - (let ((command (cdr (assoc impl inf-ruby-implementations)))) - (run-ruby command impl))) - -;;;###autoload -(defun run-ruby (&optional command name) - "Run an inferior Ruby process, input and output via buffer *ruby*. -If there is a process already running in `*ruby*', switch to that buffer. -With argument, allows you to edit the command line (default is value -of `ruby-program-name'). Runs the hooks `inferior-ruby-mode-hook' -\(after the `comint-mode-hook' is run). -\(Type \\[describe-mode] in the process buffer for a list of commands.)" - - (interactive) - (setq command (or command (cdr (assoc inf-ruby-default-implementation - inf-ruby-implementations)))) - (setq name (or name "ruby")) - - (if (not (comint-check-proc inf-ruby-buffer)) - (let ((commandlist (split-string-and-unquote command))) - (set-buffer (apply 'make-comint name (car commandlist) - nil (cdr commandlist))) - (inf-ruby-mode))) - (pop-to-buffer (setq inf-ruby-buffer (format "*%s*" name)))) - -(defun inf-ruby-proc () - "Returns the current IRB process. See variable inf-ruby-buffer." - (or (get-buffer-process (if (eq major-mode 'inf-ruby-mode) - (current-buffer) - inf-ruby-buffer)) - (error "No current process. See variable inf-ruby-buffer"))) - -;; These commands are added to the ruby-mode keymap: - -(defconst ruby-send-terminator "--inf-ruby-%x-%d-%d-%d--" - "Template for irb here document terminator. -Must not contain ruby meta characters.") - -(defconst inf-ruby-eval-binding "IRB.conf[:MAIN_CONTEXT].workspace.binding") - -(defconst ruby-eval-separator "") - -(defun ruby-send-region (start end) - "Send the current region to the inferior Ruby process." - (interactive "r") - (let (term (file (or buffer-file-name (buffer-name))) line) - (save-excursion - (save-restriction - (widen) - (goto-char start) - (setq line (+ start (forward-line (- start)) 1)) - (goto-char start) - (while (progn - (setq term (apply 'format ruby-send-terminator (random) (current-time))) - (re-search-forward (concat "^" (regexp-quote term) "$") end t))))) - ;; compilation-parse-errors parses from second line. - (save-excursion - (let ((m (process-mark (inf-ruby-proc)))) - (set-buffer (marker-buffer m)) - (goto-char m) - (insert ruby-eval-separator "\n") - (set-marker m (point)))) - (comint-send-string (inf-ruby-proc) (format "eval <<'%s', %s, %S, %d\n" - term inf-ruby-eval-binding - file line)) - (comint-send-region (inf-ruby-proc) start end) - (comint-send-string (inf-ruby-proc) (concat "\n" term "\n")))) - -(defun ruby-send-definition () - "Send the current definition to the inferior Ruby process." - (interactive) - (save-excursion - (ruby-end-of-defun) - (let ((end (point))) - (ruby-beginning-of-defun) - (ruby-send-region (point) end)))) - -(defun ruby-send-last-sexp () - "Send the previous sexp to the inferior Ruby process." - (interactive) - (ruby-send-region (save-excursion (backward-sexp) (point)) (point))) - -(defun ruby-send-block () - "Send the current block to the inferior Ruby process." - (interactive) - (save-excursion - (ruby-end-of-block) - (end-of-line) - (let ((end (point))) - (ruby-beginning-of-block) - (ruby-send-region (point) end)))) - -(defun ruby-switch-to-inf (eob-p) - "Switch to the ruby process buffer. -With argument, positions cursor at end of buffer." - (interactive "P") - (if (get-buffer inf-ruby-buffer) - (pop-to-buffer inf-ruby-buffer) - (error "No current process buffer. See variable inf-ruby-buffer.")) - (cond (eob-p - (push-mark) - (goto-char (point-max))))) - -(defun ruby-send-region-and-go (start end) - "Send the current region to the inferior Ruby process. -Then switch to the process buffer." - (interactive "r") - (ruby-send-region start end) - (ruby-switch-to-inf t)) - -(defun ruby-send-definition-and-go () - "Send the current definition to the inferior Ruby. -Then switch to the process buffer." - (interactive) - (ruby-send-definition) - (ruby-switch-to-inf t)) - -(defun ruby-send-block-and-go () - "Send the current block to the inferior Ruby. -Then switch to the process buffer." - (interactive) - (ruby-send-block) - (ruby-switch-to-inf t)) - -(defun ruby-load-file (file-name) - "Load a Ruby file into the inferior Ruby process." - (interactive (comint-get-source "Load Ruby file: " ruby-prev-l/c-dir/file - ruby-source-modes t)) ;; T because LOAD needs an exact name - (comint-check-source file-name) ; Check to see if buffer needs saved. - (setq ruby-prev-l/c-dir/file (cons (file-name-directory file-name) - (file-name-nondirectory file-name))) - (comint-send-string (inf-ruby-proc) (concat "(load \"" - file-name - "\"\)\n"))) - -(defun ruby-escape-single-quoted (str) - (replace-regexp-in-string "'" "\\\\'" - (replace-regexp-in-string "\n" "\\\\n" - (replace-regexp-in-string "\\\\" "\\\\\\\\" str)))) - -(defun inf-ruby-fix-completions-on-windows () - "On Windows, the string received by `accept-process-output' -starts with the last line that was sent to the Ruby process. -The reason for this is unknown. Remove this line from `completions'." - (if (eq system-type 'windows-nt) - (setq completions (cdr completions)))) - -(defun inf-ruby-completions (seed) - "Return a list of completions for the line of ruby code starting with SEED." - (let* ((proc (get-buffer-process inf-ruby-buffer)) - (comint-filt (process-filter proc)) - (kept "") completions) - (set-process-filter proc (lambda (proc string) (setq kept (concat kept string)))) - (process-send-string proc (format "puts IRB::InputCompletor::CompletionProc.call('%s').compact\n" - (ruby-escape-single-quoted seed))) - (while (and (not (string-match inf-ruby-prompt-pattern kept)) - (accept-process-output proc 2))) - (setq completions (butlast (split-string kept "\r?\n") 2)) - (inf-ruby-fix-completions-on-windows) - (set-process-filter proc comint-filt) - completions)) - -(defun inf-ruby-completion-at-point () - (if inf-ruby-at-top-level-prompt-p - (let* ((curr (replace-regexp-in-string "\n$" "" (thing-at-point 'line))) - (completions (inf-ruby-completions curr))) - (if completions - (if (= (length completions) 1) - (car completions) - (completing-read "possible completions: " - completions nil t curr)))) - (message "Completion aborted: Not at a top-level prompt") - nil)) - -(defun inf-ruby-complete (command) - "Complete the ruby code at point. Relies on the irb/completion -Module used by readline when running irb through a terminal" - (interactive (list (inf-ruby-completion-at-point))) - (when command - (kill-whole-line 0) - (insert command))) - -(defun inf-ruby-complete-or-tab (&optional command) - "Either complete the ruby code at point or call -`indent-for-tab-command' if no completion is available." - (interactive (list (inf-ruby-completion-at-point))) - (if (not command) - (call-interactively 'indent-for-tab-command) - (inf-ruby-complete command))) - -;;;###autoload -(eval-after-load 'ruby-mode - '(inf-ruby-setup-keybindings)) - -(provide 'inf-ruby) -;;; inf-ruby.el ends here diff --git a/elpa/magit-1.1.1/magit-autoloads.el b/elpa/magit-1.1.1/magit-autoloads.el deleted file mode 100644 index 757f7ba8..00000000 --- a/elpa/magit-1.1.1/magit-autoloads.el +++ /dev/null @@ -1,83 +0,0 @@ -;;; magit-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads (magit-status) "magit" "magit.el" (20540 8920)) -;;; Generated autoloads from magit.el - -(autoload 'magit-status "magit" "\ -Open a Magit status buffer for the Git repository containing -DIR. If DIR is not within a Git repository, offer to create a -Git repository in DIR. - -Interactively, a prefix argument means to ask the user which Git -repository to use even if `default-directory' is under Git control. -Two prefix arguments means to ignore `magit-repo-dirs' when asking for -user input. - -\(fn DIR)" t nil) - -;;;*** - -;;;### (autoloads (turn-on-magit-stgit magit-stgit-mode) "magit-stgit" -;;;;;; "magit-stgit.el" (20540 8920)) -;;; Generated autoloads from magit-stgit.el - -(autoload 'magit-stgit-mode "magit-stgit" "\ -StGit support for Magit - -\(fn &optional ARG)" t nil) - -(autoload 'turn-on-magit-stgit "magit-stgit" "\ -Unconditionally turn on `magit-stgit-mode'. - -\(fn)" nil nil) - -;;;*** - -;;;### (autoloads (turn-on-magit-svn magit-svn-mode) "magit-svn" -;;;;;; "magit-svn.el" (20540 8920)) -;;; Generated autoloads from magit-svn.el - -(autoload 'magit-svn-mode "magit-svn" "\ -SVN support for Magit - -\(fn &optional ARG)" t nil) - -(autoload 'turn-on-magit-svn "magit-svn" "\ -Unconditionally turn on `magit-svn-mode'. - -\(fn)" nil nil) - -;;;*** - -;;;### (autoloads (turn-on-magit-topgit magit-topgit-mode) "magit-topgit" -;;;;;; "magit-topgit.el" (20540 8920)) -;;; Generated autoloads from magit-topgit.el - -(autoload 'magit-topgit-mode "magit-topgit" "\ -Topgit support for Magit - -\(fn &optional ARG)" t nil) - -(autoload 'turn-on-magit-topgit "magit-topgit" "\ -Unconditionally turn on `magit-topgit-mode'. - -\(fn)" nil nil) - -;;;*** - -;;;### (autoloads nil nil ("magit-bisect.el" "magit-key-mode.el" -;;;;;; "magit-pkg.el") (20540 8920 881666)) - -;;;*** - -(provide 'magit-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; magit-autoloads.el ends here diff --git a/elpa/magit-1.1.1/magit-bisect.el b/elpa/magit-1.1.1/magit-bisect.el deleted file mode 100644 index fbbfa95a..00000000 --- a/elpa/magit-1.1.1/magit-bisect.el +++ /dev/null @@ -1,196 +0,0 @@ -(require 'magit) - -(defvar magit--bisect-last-pos) -(defvar magit--bisect-tmp-file) -(defvar magit--bisect-info nil) -(make-variable-buffer-local 'magit--bisect-info) -(put 'magit--bisect-info 'permanent-local t) - -(defun magit--bisecting-p (&optional required-status) - "Return t if a bisect session is running. -If REQUIRED-STATUS is not nil then the current status must also -match REQUIRED-STATUS." - (and (file-exists-p (concat (magit-get-top-dir default-directory) - ".git/BISECT_LOG")) - (or (not required-status) - (eq (plist-get (magit--bisect-info) :status) - required-status)))) - -(defun magit--bisect-info () - (with-current-buffer (magit-find-status-buffer) - (or (if (local-variable-p 'magit--bisect-info) magit--bisect-info) - (list :status (if (magit--bisecting-p) 'running 'not-running))))) - -(defun magit--bisect-cmd (&rest args) - "Run `git bisect ...' and update the status buffer" - (with-current-buffer (magit-find-status-buffer) - (let* ((output (apply 'magit-git-lines (append '("bisect") args))) - (cmd (car args)) - (first-line (car output))) - (save-match-data - (setq magit--bisect-info - (cond ((string= cmd "reset") - (list :status 'not-running)) - ;; Bisecting: 78 revisions left to test after this (roughly 6 steps) - ((string-match "^Bisecting:\\s-+\\([0-9]+\\).+roughly\\s-+\\([0-9]+\\)" first-line) - (list :status 'running - :revs (match-string 1 first-line) - :steps (match-string 2 first-line))) - ;; e2596955d9253a80aec9071c18079705597fa102 is the first bad commit - ((string-match "^\\([a-f0-9]+\\)\\s-.*first bad commit" first-line) - (list :status 'finished - :bad (match-string 1 first-line))) - (t - (list :status 'error))))))) - (magit-refresh)) - -(defun magit--bisect-info-for-status (branch) - "Return bisect info suitable for display in the status buffer" - (let* ((info (magit--bisect-info)) - (status (plist-get info :status))) - (cond ((eq status 'not-running) - (or branch "(detached)")) - ((eq status 'running) - (format "(bisecting; %s revisions & %s steps left)" - (or (plist-get info :revs) "unknown number of") - (or (plist-get info :steps) "unknown number of"))) - ((eq status 'finished) - (format "(bisected: first bad revision is %s)" (plist-get info :bad))) - (t - "(bisecting; unknown error occured)")))) - -(defun magit-bisect-start () - "Start a bisect session" - (interactive) - (if (magit--bisecting-p) - (error "Already bisecting")) - (let ((bad (magit-read-rev "Start bisect with known bad revision" "HEAD")) - (good (magit-read-rev "Good revision" (magit-default-rev)))) - (magit--bisect-cmd "start" bad good))) - -(defun magit-bisect-reset () - "Quit a bisect session" - (interactive) - (unless (magit--bisecting-p) - (error "Not bisecting")) - (magit--bisect-cmd "reset")) - -(defun magit-bisect-good () - "Tell git that the current revision is good during a bisect session" - (interactive) - (unless (magit--bisecting-p 'running) - (error "Not bisecting")) - (magit--bisect-cmd "good")) - -(defun magit-bisect-bad () - "Tell git that the current revision is bad during a bisect session" - (interactive) - (unless (magit--bisecting-p 'running) - (error "Not bisecting")) - (magit--bisect-cmd "bad")) - -(defun magit-bisect-skip () - "Tell git to skip the current revision during a bisect session." - (interactive) - (unless (magit--bisecting-p 'running) - (error "Not bisecting")) - (magit--bisect-cmd "skip")) - -(defun magit-bisect-log () - "Show the bisect log" - (interactive) - (unless (magit--bisecting-p) - (error "Not bisecting")) - (magit-run-git "bisect" "log") - (magit-display-process)) - -(defun magit-bisect-visualize () - "Show the remaining suspects with gitk" - (interactive) - (unless (magit--bisecting-p) - (error "Not bisecting")) - (magit-run-git "bisect" "visualize") - (unless (getenv "DISPLAY") - (magit-display-process))) - -(easy-mmode-defmap magit-bisect-minibuffer-local-map - '(("\C-i" . comint-dynamic-complete-filename)) - "Keymap for minibuffer prompting of rebase command." - :inherit minibuffer-local-map) - -(defvar magit-bisect-mode-history nil - "Previously run bisect commands.") - -(defun magit-bisect-run (command) - "Bisect automatically by running commands after each step" - (interactive - (list - (read-from-minibuffer "Run command (like this): " - "" - magit-bisect-minibuffer-local-map - nil - 'magit-bisect-mode-history))) - (unless (magit--bisecting-p) - (error "Not bisecting")) - (let ((file (make-temp-file "magit-bisect-run")) - buffer) - (with-temp-buffer - (insert "#!/bin/sh\n" command "\n") - (write-region (point-min) (point-max) file)) - (chmod file #o755) - (magit-run-git-async "bisect" "run" file) - (magit-display-process) - (setq buffer (get-buffer magit-process-buffer-name)) - (with-current-buffer buffer - (set (make-local-variable 'magit--bisect-last-pos) 0) - (set (make-local-variable 'magit--bisect-tmp-file) file)) - (set-process-filter (get-buffer-process buffer) 'magit--bisect-run-filter) - (set-process-sentinel (get-buffer-process buffer) 'magit--bisect-run-sentinel))) - -(defun magit--bisect-run-filter (process output) - (with-current-buffer (process-buffer process) - (save-match-data - (let ((inhibit-read-only t) - line new-info) - (insert output) - (goto-char magit--bisect-last-pos) - (beginning-of-line) - (while (< (point) (point-max)) - (cond ( ;; Bisecting: 78 revisions left to test after this (roughly 6 steps) - (looking-at "^Bisecting:\\s-+\\([0-9]+\\).+roughly\\s-+\\([0-9]+\\)") - (setq new-info (list :status 'running - :revs (match-string 1) - :steps (match-string 2)))) - ( ;; e2596955d9253a80aec9071c18079705597fa102 is the first bad commit - (looking-at "^\\([a-f0-9]+\\)\\s-.*first bad commit") - (setq new-info (list :status 'finished - :bad (match-string 1))))) - (forward-line 1)) - (goto-char (point-max)) - (setq magit--bisect-last-pos (point)) - (if new-info - (with-current-buffer (magit-find-status-buffer) - (setq magit--bisect-info new-info) - (magit--bisect-update-status-buffer))))))) - -(defun magit--bisect-run-sentinel (process event) - (if (string-match-p "^finish" event) - (with-current-buffer (process-buffer process) - (delete-file magit--bisect-tmp-file))) - (magit-process-sentinel process event)) - -(defun magit--bisect-update-status-buffer () - (with-current-buffer (magit-find-status-buffer) - (save-excursion - (save-match-data - (let ((inhibit-read-only t)) - (goto-char (point-min)) - (when (search-forward-regexp "Local:" nil t) - (beginning-of-line) - (kill-line) - (insert (format "Local: %s %s" - (propertize (magit--bisect-info-for-status (magit-get-current-branch)) - 'face 'magit-branch) - (abbreviate-file-name default-directory))))))))) - -(provide 'magit-bisect) diff --git a/elpa/magit-1.1.1/magit-key-mode.el b/elpa/magit-1.1.1/magit-key-mode.el deleted file mode 100644 index 3252a61d..00000000 --- a/elpa/magit-1.1.1/magit-key-mode.el +++ /dev/null @@ -1,508 +0,0 @@ -(require 'magit) - -(require 'assoc) -(eval-when-compile (require 'cl)) - -(defvar magit-key-mode-key-maps '() - "This will be filled lazily with proper `define-key' built - keymaps as they're requested.") - -(defvar magit-key-mode-buf-name "*magit-key*" - "Name of the buffer.") - -(defvar magit-key-mode-current-args '() - "Will contain the arguments to be passed to git.") - -(defvar magit-key-mode-current-options '() - "Will contain the arguments to be passed to git.") - -(defvar magit-log-mode-window-conf nil - "Will hold the pre-menu configuration of magit.") - -(defvar magit-key-mode-groups - '((logging - (man-page "git-log") - (actions - ("l" "Short" magit-log) - ("L" "Long" magit-log-long) - ("h" "Reflog" magit-reflog) - ("rl" "Ranged short" magit-log-ranged) - ("rL" "Ranged long" magit-log-long-ranged) - ("rh" "Ranged reflog" magit-reflog-ranged)) - (switches - ("-m" "Only merge commits" "--merges") - ("-f" "First parent" "--first-parent") - ("-i" "Case insensitive patterns" "-i") - ("-pr" "Pickaxe regex" "--pickaxe-regex") - ("-n" "Name only" "--name-only") - ("-am" "All match" "--all-match") - ("-al" "All" "--all")) - (arguments - ("=r" "Relative" "--relative=" read-directory-name) - ("=c" "Committer" "--committer=" read-from-minibuffer) - ("=>" "Since" "--since=" read-from-minibuffer) - ("=<" "Before" "--before=" read-from-minibuffer) - ("=s" "Pickaxe search" "-S" read-from-minibuffer) - ("=a" "Author" "--author=" read-from-minibuffer) - ("=g" "Grep" "--grep=" read-from-minibuffer))) - - (running - (actions - ("!" "Command from root" magit-shell-command) - (":" "Git command" magit-git-command) - ("g" "git gui" magit-run-git-gui) - ("k" "gitk" magit-run-gitk))) - - (fetching - (man-page "git-fetch") - (actions - ("f" "Current" magit-fetch-current) - ("a" "All" magit-remote-update) - ("o" "Other" magit-fetch)) - (switches - ("-p" "Prune" "--prune"))) - - (pushing - (man-page "git-push") - (actions - ("P" "Push" magit-push) - ("t" "Push tags" magit-push-tags)) - (switches - ("-f" "Force" "--force") - ("-d" "Dry run" "-n") - ("-u" "Set upstream" "-u"))) - - (pulling - (man-page "git-pull") - (actions - ("F" "Pull" magit-pull)) - (switches - ("-r" "Rebase" "--rebase"))) - - (branching - (man-page "git-branch") - (actions - ("v" "Branch manager" magit-show-branches) - ("n" "New" magit-create-branch) - ("m" "Move" magit-move-branch) - ("d" "Delete" magit-delete-branch) - ("D" "Force Delete" magit-delete-branch-forced) - ("b" "Checkout" magit-checkout))) - - (tagging - (man-page "git-tag") - (actions - ("t" "Lightweight" magit-tag) - ("a" "Annotated" magit-annotated-tag)) - (switches - ("-f" "Force" "-f"))) - - (stashing - (man-page "git-stash") - (actions - ("z" "Save" magit-stash) - ("s" "Snapshot" magit-stash-snapshot)) - (switches - ("-k" "Keep index" "--keep-index"))) - - (merging - (man-page "git-merge") - (actions - ("m" "Merge" magit-merge)) - (switches - ("-ff" "Fast-forward only" "--ff-only") - ("-nf" "No fast-forward" "--no-ff") - ("-nc" "No commit" "--no-commit") - ("-sq" "Squash" "--squash")) - (arguments - ("-st" "Strategy" "--strategy=" read-from-minibuffer))) - - (rewriting - (actions - ("b" "Begin" magit-rewrite-start) - ("s" "Stop" magit-rewrite-stop) - ("a" "Abort" magit-rewrite-abort) - ("f" "Finish" magit-rewrite-finish) - ("*" "Set unused" magit-rewrite-set-unused) - ("." "Set used" magit-rewrite-set-used))) - - (submodule - (man-page "git-submodule") - (actions - ("u" "Update" magit-submodule-update) - ("b" "Both update and init" magit-submodule-update-init) - ("i" "Init" magit-submodule-init) - ("s" "Sync" magit-submodule-sync))) - - (bisecting - (man-page "git-bisect") - (actions - ("b" "Bad" magit-bisect-bad) - ("g" "Good" magit-bisect-good) - ("k" "Skip" magit-bisect-skip) - ("l" "Log" magit-bisect-log) - ("r" "Reset" magit-bisect-reset) - ("s" "Start" magit-bisect-start) - ("u" "Run" magit-bisect-run) - ("v" "Visualize" magit-bisect-visualize)))) - "Holds the key, help, function mapping for the log-mode. If you - modify this make sure you reset `magit-key-mode-key-maps' to - nil.") - -(defun magit-key-mode-delete-group (group) - "Delete a group from `magit-key-mode-key-maps'." - (let ((items (assoc group magit-key-mode-groups))) - (when items - ;; reset the cache - (setq magit-key-mode-key-maps nil) - ;; delete the whole group - (setq magit-key-mode-groups - (delq items magit-key-mode-groups)) - ;; unbind the defun - (magit-key-mode-de-generate group)) - magit-key-mode-groups)) - -(defun magit-key-mode-add-group (group) - "Add a new group to `magit-key-mode-key-maps'. If there's -already a group of that name then this will completely remove it -and put in its place an empty one of the same name." - (when (assoc group magit-key-mode-groups) - (magit-key-mode-delete-group group)) - (setq magit-key-mode-groups - (cons (list group '(actions)) magit-key-mode-groups))) - -(defun magit-key-mode-key-defined-p (for-group key) - "If KEY is defined as any of switch, argument or action within -FOR-GROUP then return t" - (catch 'result - (let ((options (magit-key-mode-options-for-group for-group))) - (dolist (type '(actions switches arguments)) - (when (assoc key (assoc type options)) - (throw 'result t)))))) - -(defun magit-key-mode-update-group (for-group thing &rest args) - "Abstraction for setting values in `magit-key-mode-key-maps'." - (let* ((options (magit-key-mode-options-for-group for-group)) - (things (assoc thing options)) - (key (car args))) - (if (cdr things) - (if (magit-key-mode-key-defined-p for-group key) - (error "%s is already defined in the %s group." key for-group) - (setcdr (cdr things) (cons args (cddr things)))) - (setcdr things (list args))) - (setq magit-key-mode-key-maps nil) - things)) - -(defun magit-key-mode-insert-argument (for-group key desc arg read-func) - "Add a new binding (KEY) in FOR-GROUP which will use READ-FUNC -to receive input to apply to argument ARG git is run. DESC should -be a brief description of the binding." - (magit-key-mode-update-group for-group 'arguments key desc arg read-func)) - -(defun magit-key-mode-insert-switch (for-group key desc switch) - "Add a new binding (KEY) in FOR-GROUP which will add SWITCH to git's -command line when it runs. DESC should be a brief description of -the binding." - (magit-key-mode-update-group for-group 'switches key desc switch)) - -(defun magit-key-mode-insert-action (for-group key desc func) - "Add a new binding (KEY) in FOR-GROUP which will run command -FUNC. DESC should be a brief description of the binding." - (magit-key-mode-update-group for-group 'actions key desc func)) - -(defun magit-key-mode-options-for-group (for-group) - "Retrieve the options (switches, commands and arguments) for -the group FOR-GROUP." - (or (cdr (assoc for-group magit-key-mode-groups)) - (error "Unknown group '%s'" for-group))) - -(defun magit-key-mode-help (for-group) - "Provide help for a key (which the user is prompted for) within -FOR-GROUP." - (let* ((opts (magit-key-mode-options-for-group for-group)) - (man-page (cadr (assoc 'man-page opts))) - (seq (read-key-sequence - (format "Enter command prefix%s: " - (if man-page - (format ", `?' for man `%s'" man-page) - "")))) - (actions (cdr (assoc 'actions opts)))) - (cond - ;; if it is an action popup the help for the to-be-run function - ((assoc seq actions) (describe-function (nth 2 (assoc seq actions)))) - ;; if there is "?" show a man page if there is one - ((equal seq "?") - (if man-page - (man man-page) - (error "No man page associated with `%s'" for-group))) - (t (error "No help associated with `%s'" seq))))) - -(defun magit-key-mode-exec-at-point () - "Run action/args/option at point." - (interactive) - (let* ((key (or (get-text-property (point) 'key-group-executor) - (error "Nothing at point to do."))) - (def (lookup-key (current-local-map) key))) - (call-interactively def))) - -(defun magit-key-mode-build-keymap (for-group) - "Construct a normal looking keymap for the key mode to use and -put it in magit-key-mode-key-maps for fast lookup." - (let* ((options (magit-key-mode-options-for-group for-group)) - (actions (cdr (assoc 'actions options))) - (switches (cdr (assoc 'switches options))) - (arguments (cdr (assoc 'arguments options))) - (map (make-sparse-keymap))) - (suppress-keymap map 'nodigits) - ;; ret dwim - (define-key map (kbd "RET") 'magit-key-mode-exec-at-point) - - ;; all maps should `quit' with `C-g' or `q' - (define-key map (kbd "C-g") `(lambda () - (interactive) - (magit-key-mode-command nil))) - (define-key map (kbd "q") `(lambda () - (interactive) - (magit-key-mode-command nil))) - ;; run help - (define-key map (kbd "?") `(lambda () - (interactive) - (magit-key-mode-help ',for-group))) - - (flet ((defkey (k action) - (when (and (lookup-key map (car k)) - (not (numberp (lookup-key map (car k))))) - (message "Warning: overriding binding for `%s' in %S" - (car k) for-group) - (ding) - (sit-for 2)) - (define-key map (car k) - `(lambda () (interactive) ,action)))) - (when actions - (dolist (k actions) - (defkey k `(magit-key-mode-command ',(nth 2 k))))) - (when switches - (dolist (k switches) - (defkey k `(magit-key-mode-add-option ',for-group ,(nth 2 k))))) - (when arguments - (dolist (k arguments) - (defkey k `(magit-key-mode-add-argument - ',for-group ,(nth 2 k) ',(nth 3 k)))))) - - (aput 'magit-key-mode-key-maps for-group map) - map)) - -(defvar magit-key-mode-prefix nil - "For internal use. Holds the prefix argument to the command -that brought up the key-mode window, so it can be used by the -command that's eventually invoked.") - -(defun magit-key-mode-command (func) - (let ((args '())) - ;; why can't maphash return a list?! - (maphash (lambda (k v) - (push (concat k (shell-quote-argument v)) args)) - magit-key-mode-current-args) - (let ((magit-custom-options (append args magit-key-mode-current-options)) - (current-prefix-arg (or current-prefix-arg magit-key-mode-prefix))) - (set-window-configuration magit-log-mode-window-conf) - (when func - (call-interactively func)) - (magit-key-mode-kill-buffer)))) - -(defvar magit-key-mode-current-args nil - "A hash-table of current argument set (which will eventually - make it to the git command-line).") - -(defun magit-key-mode-add-argument (for-group arg-name input-func) - (let ((input (funcall input-func (concat arg-name ": ")))) - (puthash arg-name input magit-key-mode-current-args) - (magit-key-mode-redraw for-group))) - -(defvar magit-key-mode-current-options '() - "Current option set (which will eventually make it to the git - command-line).") - -(defun magit-key-mode-add-option (for-group option-name) - "Toggles the appearance of OPTION-NAME in -`magit-key-mode-current-options'." - (if (not (member option-name magit-key-mode-current-options)) - (add-to-list 'magit-key-mode-current-options option-name) - (setq magit-key-mode-current-options - (delete option-name magit-key-mode-current-options))) - (magit-key-mode-redraw for-group)) - -(defun magit-key-mode-kill-buffer () - (interactive) - (kill-buffer magit-key-mode-buf-name)) - -(defvar magit-log-mode-window-conf nil - "Pre-popup window configuration.") - -(defun magit-key-mode (for-group &optional original-opts) - "Mode for magit key selection. All commands, switches and -options can be toggled/actioned with the key combination -highlighted before the description." - (interactive) - ;; save the window config to restore it as was (no need to make this - ;; buffer local) - (setq magit-log-mode-window-conf - (current-window-configuration)) - ;; setup the mode, draw the buffer - (let ((buf (get-buffer-create magit-key-mode-buf-name))) - (delete-other-windows) - (split-window-vertically) - (other-window 1) - (switch-to-buffer buf) - (kill-all-local-variables) - (set (make-local-variable - 'magit-key-mode-current-options) - original-opts) - (set (make-local-variable - 'magit-key-mode-current-args) - (make-hash-table)) - (set (make-local-variable 'magit-key-mode-prefix) current-prefix-arg) - (magit-key-mode-redraw for-group)) - (message - (concat - "Type a prefix key to toggle it. Run 'actions' with their prefixes. " - "'?' for more help."))) - -(defun magit-key-mode-get-key-map (for-group) - "Get or build the keymap for FOR-GROUP." - (or (cdr (assoc for-group magit-key-mode-key-maps)) - (magit-key-mode-build-keymap for-group))) - -(defun magit-key-mode-redraw (for-group) - "(re)draw the magit key buffer." - (let ((buffer-read-only nil) - (old-point (point))) - (erase-buffer) - (make-local-variable 'font-lock-defaults) - (use-local-map (magit-key-mode-get-key-map for-group)) - (magit-key-mode-draw for-group) - (delete-trailing-whitespace) - (setq mode-name "magit-key-mode" major-mode 'magit-key-mode) - (goto-char old-point)) - (setq buffer-read-only t) - (fit-window-to-buffer)) - -(defun magit-key-mode-draw-header (header) - "Draw a header with the correct face." - (insert (propertize header 'face 'font-lock-keyword-face))) - -(defvar magit-key-mode-args-in-cols nil - "When true, draw arguments in columns as with switches and - options.") - -(defun magit-key-mode-draw-args (args) - "Draw the args part of the menu." - (when args - (let ((strs (mapcar - (lambda (argument) - (propertize - (format " %s: %s (%s) %s" - (propertize - (car argument) - 'face 'font-lock-builtin-face) - (nth 1 argument) - (nth 2 argument) - (propertize - (gethash (nth 2 argument) - magit-key-mode-current-args - "") - 'face 'widget-field)) - 'key-group-executor (car argument))) - args))) - (magit-key-mode-draw-header "Args\n") - (magit-key-mode-draw-in-cols strs (not magit-key-mode-args-in-cols))))) - -(defun magit-key-mode-draw-switches (switches) - "Draw the switches part of the menu." - (when switches - (let ((switch-strs (mapcar - (lambda (s) - (let ((option (nth 2 s))) - (propertize - (format " %s: %s (%s)" - (propertize (car s) - 'face 'font-lock-builtin-face) - (nth 1 s) - (if (member option magit-key-mode-current-options) - (propertize - option - 'face 'font-lock-warning-face) - option)) - 'key-group-executor (car s)))) - switches))) - (magit-key-mode-draw-header "Switches\n") - (magit-key-mode-draw-in-cols switch-strs)))) - -(defun magit-key-mode-draw-actions (actions) - "Draw the actions part of the menu." - (when actions - (let ((action-strs (mapcar - (lambda (a) - (propertize - (format - " %s: %s" - (propertize (car a) - 'face 'font-lock-builtin-face) - (nth 1 a)) - 'key-group-executor (car a))) - actions))) - (magit-key-mode-draw-header "Actions\n") - (magit-key-mode-draw-in-cols action-strs)))) - -(defun magit-key-mode-draw-in-cols (strings &optional one-col-each) - "Given a list of strings, print in columns (using `insert'). If -ONE-COL-EACH is true then don't columify, but rather, draw each -item on one line." - (let ((longest-act (apply 'max (mapcar 'length strings)))) - (while strings - (let ((str (car strings))) - (let ((padding (make-string (- (+ longest-act 3) (length str)) ? ))) - (insert str) - (if (or one-col-each - (and (> (+ (length padding) ; - (current-column) - longest-act) - (window-width)) - (cdr strings))) - (insert "\n") - (insert padding)))) - (setq strings (cdr strings)))) - (insert "\n")) - -(defun magit-key-mode-draw (for-group) - "Function used to draw actions, switches and parameters." - (let* ((options (magit-key-mode-options-for-group for-group)) - (switches (cdr (assoc 'switches options))) - (arguments (cdr (assoc 'arguments options))) - (actions (cdr (assoc 'actions options)))) - (magit-key-mode-draw-switches switches) - (magit-key-mode-draw-args arguments) - (magit-key-mode-draw-actions actions) - (insert "\n"))) - -(defun magit-key-mode-de-generate (group) - "Unbind the function for GROUP." - (fmakunbound - (intern (concat "magit-key-mode-popup-" (symbol-name group))))) - -(defun magit-key-mode-generate (group) - "Generate the key-group menu for GROUP" - (let ((opts (magit-key-mode-options-for-group group))) - (eval - `(defun ,(intern (concat "magit-key-mode-popup-" (symbol-name group))) nil - ,(concat "Key menu for " (symbol-name group)) - (interactive) - (magit-key-mode (quote ,group)))))) - -;; create the interactive functions for the key mode popups (which are -;; applied in the top-level key maps) -(mapc (lambda (g) - (magit-key-mode-generate (car g))) - magit-key-mode-groups) - -(provide 'magit-key-mode) diff --git a/elpa/magit-1.1.1/magit-pkg.el b/elpa/magit-1.1.1/magit-pkg.el deleted file mode 100644 index a00ffb20..00000000 --- a/elpa/magit-1.1.1/magit-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "magit" "1.1.1" "Control Git from Emacs.") diff --git a/elpa/magit-1.1.1/magit-stgit.el b/elpa/magit-1.1.1/magit-stgit.el deleted file mode 100644 index b105b71f..00000000 --- a/elpa/magit-1.1.1/magit-stgit.el +++ /dev/null @@ -1,288 +0,0 @@ -;;; magit-stgit.el --- StGit plug-in for Magit - -;; Copyright (C) 2011 Lluis Vilanova -;; -;; Magit is free software; you can redistribute it and/or modify it -;; under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. -;; -;; Magit is distributed in the hope that it will be useful, but WITHOUT -;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -;; License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Magit. If not, see . - -;;; Commentary: - -;; This plug-in provides StGit functionality as a separate component of Magit. - -;; Available actions: -;; - visit: Shows the patch at point in the series (stg show) -;; - apply: Goes to the patch at point in the series (stg goto) -;; - discard: Deletes the marked/at point patch in the series (stg delete) - -;; Available commands: -;; - `magit-stgit-refresh': Refresh the marked/at point patch in the series -;; (stg refresh) -;; - `magit-stgit-repair': Repair the StGit metadata (stg repair) -;; - `magit-stgit-rebase': Rebase the whole series (stg rebase) - -;; TODO: -;; - Let the user select which files must be included in a refresh. -;; - Missing actions for `magit-show-item-or-scroll-up' and -;; `magit-show-item-or-scroll-down'. -;; - Marking a patch is slow and refreshes all buffers, which resets their -;; position (i.e., the buffer is shown from its first line). - -;;; Code: - -(require 'magit) -(eval-when-compile - (require 'cl)) - -;;; Customizables: - -(defcustom magit-stgit-executable "stg" - "The name of the StGit executable." - :group 'magit - :type 'string) - -(defface magit-stgit-applied - '((t :inherit magit-diff-add)) - "Face for an applied stgit patch." - :group 'magit-faces) - -(defface magit-stgit-current - '((t :inherit magit-item-highlight)) - "Face for the current stgit patch." - :group 'magit-faces) - -(defface magit-stgit-other - '((t :inherit magit-diff-del)) - "Face for a non-applied stgit patch." - :group 'magit-faces) - -(defface magit-stgit-marked - '((t :inherit magit-item-mark)) - "Face for a marked stgit patch." - :group 'magit-faces) - -(defface magit-stgit-empty - '((t :inherit magit-item-mark)) - "Face for an empty stgit patch." - :group 'magit-faces) - -;;; Common code: - -(defvar magit-stgit--enabled nil - "Whether this buffer has StGit support.") -(make-variable-buffer-local 'magit-stgit--enabled) - -(defvar magit-stgit-mode) - -(defun magit-stgit--enabled () - "Whether this buffer has StGit support enabled." - (if (assoc 'magit-stgit--enabled (buffer-local-variables)) - magit-stgit--enabled - (setq magit-stgit--enabled - (and magit-stgit-mode - (not (null - (member (concat (magit-get-current-branch) ".stgit") - (mapcar #'(lambda (line) - (string-match "^\\*?\s*\\([^\s]*\\)" - line) - (match-string 1 line)) - (magit-git-lines "branch"))))))))) - -(defun magit-stgit--enabled-reset () - "Reset the StGit enabled state." - (kill-local-variable 'magit-stgit--enabled)) - -(defvar magit-stgit--marked-patch nil - "The (per-buffer) currently marked patch in an StGit series.") -(make-variable-buffer-local 'magit-stgit--marked-patch) - -;;; Menu: - -(easy-menu-define magit-stgit-extension-menu - nil - "StGit extension menu" - '("StGit" - :active (magit-stgit--enabled) - - ["Refresh patch" magit-stgit-refresh - :help "Refresh the contents of a patch in an StGit series"] - ["Repair" magit-stgit-repair - :help "Repair StGit metadata if branch was modified with git commands"] - ["Rebase series" magit-stgit-rebase - :help "Rebase an StGit patch series"] - )) - -(easy-menu-add-item 'magit-mode-menu - '("Extensions") - magit-stgit-extension-menu) - -;;; Series section: - -(defun magit-stgit--wash-patch () - (if (search-forward-regexp "^\\(.\\)\\(.\\) \\([^\s]*\\)\\(\s*# ?\\)\\(.*\\)" - (line-end-position) t) - (let* ((empty-str "[empty] ") - (indent-str (make-string (string-bytes empty-str) ?\ )) - (empty (match-string 1)) - (state (match-string 2)) - (patch (match-string 3)) - (descr (match-string 5))) - (delete-region (line-beginning-position) (line-end-position)) - (insert - (cond ((string= empty "0") - (propertize (concat empty-str " " state " " descr) 'face 'magit-stgit-empty)) - ((string= magit-stgit--marked-patch patch) - (propertize (concat indent-str " " state " " descr) 'face 'magit-stgit-marked)) - ((string= state "+") - (concat indent-str " " (propertize state 'face 'magit-stgit-applied) " " descr)) - ((string= state ">") - (propertize (concat indent-str " " state " " descr) 'face 'magit-stgit-current)) - ((string= state "-") - (concat indent-str " " (propertize state 'face 'magit-stgit-other) " " descr)))) - (goto-char (line-beginning-position)) - (magit-with-section patch 'series - (magit-set-section-info patch) - (goto-char (line-end-position))) - (forward-line)) - (delete-region (line-beginning-position) (1+ (line-end-position)))) - t) - -(defun magit-stgit--wash-series () - (let ((magit-old-top-section nil)) - (magit-wash-sequence #'magit-stgit--wash-patch))) - -(magit-define-inserter series () - (when (executable-find magit-stgit-executable) - (magit-insert-section 'series - "Series:" 'magit-stgit--wash-series - magit-stgit-executable "series" "-a" "-d" "-e"))) - -;;; Actions: - -;; Copy of `magit-refresh-commit-buffer' (version 1.0.0) -(defun magit-stgit--refresh-patch-buffer (patch) - (magit-create-buffer-sections - (magit-insert-section nil nil - 'magit-wash-commit - magit-stgit-executable - "show" - patch))) - -;; Copy of `magit-show-commit' (version 1.0.0) -(defun magit-stgit--show-patch (patch &optional scroll) - (when (magit-section-p patch) - (setq patch (magit-section-info patch))) - (let ((dir default-directory) - (buf (get-buffer-create magit-commit-buffer-name))) - (cond ((and (equal magit-currently-shown-commit patch) - ;; if it's empty then the buffer was killed - (with-current-buffer buf - (> (length (buffer-string)) 1))) - (let ((win (get-buffer-window buf))) - (cond ((not win) - (display-buffer buf)) - (scroll - (with-selected-window win - (funcall scroll)))))) - (t - (setq magit-currently-shown-commit patch) - (display-buffer buf) - (with-current-buffer buf - (set-buffer buf) - (goto-char (point-min)) - (magit-mode-init dir 'magit-commit-mode - #'magit-stgit--refresh-patch-buffer patch)))))) - -(magit-add-action (item info "visit") - ((series) - (magit-stgit--show-patch info) - (pop-to-buffer magit-commit-buffer-name))) - -(magit-add-action (item info "apply") - ((series) - (magit-run magit-stgit-executable "goto" info))) - -(magit-add-action (item info "discard") - ((series) - (let ((patch (or magit-stgit--marked-patch info))) - (if (yes-or-no-p (format "Delete patch '%s' in series? " patch)) - (progn - (if (string= magit-stgit--marked-patch patch) - (setq magit-stgit--marked-patch nil)) - (magit-run magit-stgit-executable "delete" patch)))))) - -(defun magit-stgit--set-marked-patch (patch) - (setq magit-stgit--marked-patch - (if (string= magit-stgit--marked-patch patch) - nil - patch))) - -(magit-add-action (item info "mark") - ((series) - (magit-stgit--set-marked-patch info) - (magit-refresh-all))) - -;;; Commands: - -(defun magit-stgit-refresh () - "Refresh the contents of a patch in an StGit series. -If there is no marked patch in the series, refreshes the current -patch. -Otherwise, refreshes the marked patch." - (interactive) - (if magit-stgit--marked-patch - (magit-run magit-stgit-executable "refresh" "-p" magit-stgit--marked-patch) - (magit-run magit-stgit-executable "refresh"))) - -(defun magit-stgit-repair () - "Repair StGit metadata if branch was modified with git commands. -In the case of Git commits these will be imported as new patches -into the series." - (interactive) - (message "Repairing series...") - (magit-run magit-stgit-executable "repair") - (message "")) - -(defun magit-stgit-rebase () - "Rebase an StGit patch series." - (interactive) - (if (magit-get-current-remote) - (progn - (if (yes-or-no-p "Update remotes? ") - (progn - (message "Updating remotes...") - (magit-run-git-async "remote" "update"))) - (magit-run magit-stgit-executable "rebase" - (format "remotes/%s/%s" - (magit-get-current-remote) - (magit-get-current-branch)))))) - -;;;###autoload -(define-minor-mode magit-stgit-mode "StGit support for Magit" - :lighter " Stg" :require 'magit-stgit - (or (derived-mode-p 'magit-mode) - (error "This mode only makes sense with magit")) - (if magit-stgit-mode - (progn - (add-hook 'magit-after-insert-stashes-hook 'magit-insert-series nil t)) - (progn - (remove-hook 'magit-after-insert-stashes-hook 'magit-insert-series t))) - (when (called-interactively-p 'any) - (magit-refresh))) - -;;;###autoload -(defun turn-on-magit-stgit () - "Unconditionally turn on `magit-stgit-mode'." - (magit-stgit-mode 1)) - -(provide 'magit-stgit) -;;; magit-stgit.el ends here diff --git a/elpa/magit-1.1.1/magit-svn.el b/elpa/magit-1.1.1/magit-svn.el deleted file mode 100644 index d08c048d..00000000 --- a/elpa/magit-1.1.1/magit-svn.el +++ /dev/null @@ -1,240 +0,0 @@ -;;; magit-svn.el --- git-svn plug-in for Magit - -;; Copyright (C) 2008 Alex Ott -;; Copyright (C) 2009 Alexey Voinov -;; Copyright (C) 2009 John Wiegley -;; Copyright (C) 2008 Linh Dang -;; Copyright (C) 2008 Marcin Bachry -;; Copyright (C) 2008, 2009 Marius Vollmer -;; Copyright (C) 2010 Yann Hodique -;; -;; Magit is free software; you can redistribute it and/or modify it -;; under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. -;; -;; Magit is distributed in the hope that it will be useful, but WITHOUT -;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -;; License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Magit. If not, see . - -;;; Commentary: - -;; This plug-in provides git-svn functionality as a separate component of Magit - -;;; Code: - -(require 'magit) -(eval-when-compile - (require 'cl)) - -;; git svn commands - -(defun magit-svn-find-rev (rev &optional branch) - (interactive - (list (read-string "SVN revision: ") - (if current-prefix-arg - (read-string "In branch: ")))) - (let* ((sha (apply 'magit-git-string - `("svn" - "find-rev" - ,(concat "r" rev) - ,@(when branch (list branch)))))) - (if sha - (magit-show-commit - (magit-with-section sha 'commit - (magit-set-section-info sha) - sha)) - (error "Revision %s could not be mapped to a commit" rev)))) - -(defun magit-svn-create-branch (name) - (interactive "sBranch name: ") - (magit-run-git "svn" "branch" name)) - -(defun magit-svn-rebase () - (interactive) - (magit-run-git-async "svn" "rebase")) - -(defun magit-svn-dcommit () - (interactive) - (magit-run-git-async "svn" "dcommit")) - -(defun magit-svn-enabled () - (not (null (magit-svn-get-ref-info t)))) - -(defun magit-svn-expand-braces-in-branches (branch) - (if (not (string-match "\\(.+\\){\\(.+,.+\\)}\\(.*\\):\\(.*\\)\\\*" branch)) - (list branch) - (let ((prefix (match-string 1 branch)) - (suffix (match-string 3 branch)) - (rhs (match-string 4 branch)) - (pieces (split-string (match-string 2 branch) ","))) - (mapcar (lambda (p) (concat prefix p suffix ":" rhs p)) pieces)))) - -(defun magit-svn-get-local-ref (url) - (let* ((branches (cons (magit-get "svn-remote" "svn" "fetch") - (magit-get-all "svn-remote" "svn" "branches"))) - (branches (apply 'nconc - (mapcar 'magit-svn-expand-braces-in-branches - branches))) - (base-url (magit-get "svn-remote" "svn" "url")) - (result nil)) - (while branches - (let* ((pats (split-string (pop branches) ":")) - (src (replace-regexp-in-string "\\*" "\\\\(.*\\\\)" (car pats))) - (dst (replace-regexp-in-string "\\*" "\\\\1" (cadr pats))) - (base-url (replace-regexp-in-string "\\+" "\\\\+" base-url)) - (base-url (replace-regexp-in-string "//.+@" "//" base-url)) - (pat1 (concat "^" src "$")) - (pat2 (cond ((equal src "") (concat "^" base-url "$")) - (t (concat "^" base-url "/" src "$"))))) - (cond ((string-match pat1 url) - (setq result (replace-match dst nil nil url)) - (setq branches nil)) - ((string-match pat2 url) - (setq result (replace-match dst nil nil url)) - (setq branches nil))))) - result)) - -(defvar magit-svn-get-ref-info-cache nil - "A cache for svn-ref-info. -As `magit-get-svn-ref-info' might be considered a quite -expensive operation a cache is taken so that `magit-status' -doesn't repeatedly call it.") - -(defun magit-svn-get-ref-info (&optional use-cache) - "Gather details about the current git-svn repository. -Return nil if there isn't one. Keys of the alist are ref-path, -trunk-ref-name and local-ref-name. -If USE-CACHE is non-nil then return the value of `magit-get-svn-ref-info-cache'." - (if (and use-cache magit-svn-get-ref-info-cache) - magit-svn-get-ref-info-cache - (let* ((fetch (magit-get "svn-remote" "svn" "fetch")) - (url) - (revision)) - (when fetch - (let* ((ref (cadr (split-string fetch ":"))) - (ref-path (file-name-directory ref)) - (trunk-ref-name (file-name-nondirectory ref))) - (set (make-local-variable - 'magit-svn-get-ref-info-cache) - (list - (cons 'ref-path ref-path) - (cons 'trunk-ref-name trunk-ref-name) - ;; get the local ref from the log. This is actually - ;; the way that git-svn does it. - (cons 'local-ref - (with-temp-buffer - (insert (or (magit-git-string "log" "--first-parent" - "--grep" "git-svn" "-1") - "")) - (goto-char (point-min)) - (cond ((re-search-forward "git-svn-id: \\(.+/.+?\\)@\\([0-9]+\\)" nil t) - (setq url (match-string 1) - revision (match-string 2)) - (magit-svn-get-local-ref url)) - (t - (setq url (magit-get "svn-remote" "svn" "url")) - nil)))) - (cons 'revision revision) - (cons 'url url)))))))) - -(defun magit-svn-get-ref (&optional use-cache) - "Get the best guess remote ref for the current git-svn based branch. -If USE-CACHE is non nil, use the cached information." - (let ((info (magit-svn-get-ref-info use-cache))) - (cdr (assoc 'local-ref info)))) - -(magit-define-inserter svn-unpulled (&optional use-cache) - (when (magit-svn-enabled) - (apply #'magit-git-section - 'svn-unpulled "Unpulled commits (SVN):" 'magit-wash-log "log" - (append magit-git-log-options - (list - (format "HEAD..%s" (magit-svn-get-ref use-cache))))))) - -(magit-define-inserter svn-unpushed (&optional use-cache) - (when (magit-svn-enabled) - (apply #'magit-git-section - 'svn-unpushed "Unpushed commits (SVN):" 'magit-wash-log "log" - (append magit-git-log-options - (list - (format "%s..HEAD" (magit-svn-get-ref use-cache))))))) - -(magit-define-section-jumper svn-unpushed "Unpushed commits (SVN)") - -(defun magit-svn-remote-string () - (let ((svn-info (magit-svn-get-ref-info))) - (when svn-info - (concat (cdr (assoc 'url svn-info)) - " @ " - (cdr (assoc 'revision svn-info)))))) - -(defun magit-svn-remote-update () - (interactive) - (when (magit-svn-enabled) - (magit-run-git-async "svn" "fetch"))) - -(easy-menu-define magit-svn-extension-menu - nil - "Git SVN extension menu" - '("Git SVN" - :visible magit-svn-mode - ["Create branch" magit-svn-create-branch (magit-svn-enabled)] - ["Rebase" magit-svn-rebase (magit-svn-enabled)] - ["Fetch" magit-svn-remote-update (magit-svn-enabled)] - ["Commit" magit-svn-dcommit (magit-svn-enabled)])) - -(easy-menu-add-item 'magit-mode-menu - '("Extensions") - magit-svn-extension-menu) - -;; add the group and its keys -(progn - ;; (re-)create the group - (magit-key-mode-add-group 'svn) - - (magit-key-mode-insert-action 'svn "r" "Rebase" 'magit-svn-rebase) - (magit-key-mode-insert-action 'svn "c" "DCommit" 'magit-svn-dcommit) - (magit-key-mode-insert-action 'svn "f" "Fetch" 'magit-svn-remote-update) - (magit-key-mode-insert-action 'svn "s" "Find rev" 'magit-svn-find-rev) - (magit-key-mode-insert-action 'svn "B" "Create branch" 'magit-svn-create-branch) - - ;; generate and bind the menu popup function - (magit-key-mode-generate 'svn)) - -(defvar magit-svn-mode-map - (let ((map (make-sparse-keymap))) - (define-key map (kbd "N") 'magit-key-mode-popup-svn) - map)) - -;;;###autoload -(define-minor-mode magit-svn-mode "SVN support for Magit" - :lighter " SVN" :require 'magit-svn :keymap 'magit-svn-mode-map - (or (derived-mode-p 'magit-mode) - (error "This mode only makes sense with magit")) - (let ((unpulled-hook (lambda () (magit-insert-svn-unpulled t))) - (unpushed-hook (lambda () (magit-insert-svn-unpushed t))) - (remote-hook 'magit-svn-remote-string)) - (if magit-svn-mode - (progn - (add-hook 'magit-after-insert-unpulled-commits-hook unpulled-hook nil t) - (add-hook 'magit-after-insert-unpushed-commits-hook unpushed-hook nil t) - (add-hook 'magit-remote-string-hook remote-hook nil t)) - (progn - (remove-hook 'magit-after-insert-unpulled-commits-hook unpulled-hook t) - (remove-hook 'magit-after-insert-unpushed-commits-hook unpushed-hook t) - (remove-hook 'magit-remote-string-hook remote-hook t))) - (when (called-interactively-p 'any) - (magit-refresh)))) - -;;;###autoload -(defun turn-on-magit-svn () - "Unconditionally turn on `magit-svn-mode'." - (magit-svn-mode 1)) - -(provide 'magit-svn) -;;; magit-svn.el ends here diff --git a/elpa/magit-1.1.1/magit-topgit.el b/elpa/magit-1.1.1/magit-topgit.el deleted file mode 100644 index 6f0080cc..00000000 --- a/elpa/magit-1.1.1/magit-topgit.el +++ /dev/null @@ -1,191 +0,0 @@ -;;; magit-topgit.el --- topgit plug-in for Magit - -;; Copyright (C) 2010 Nathan Weizenbaum -;; Copyright (C) 2010 Yann Hodique -;; -;; Magit is free software; you can redistribute it and/or modify it -;; under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. -;; -;; Magit is distributed in the hope that it will be useful, but WITHOUT -;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -;; License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Magit. If not, see . - -;;; Commentary: - -;; This plug-in provides topgit functionality as a separate component of Magit - -;;; Code: - -(require 'magit) -(eval-when-compile - (require 'cl)) - -(defcustom magit-topgit-executable "tg" - "The name of the TopGit executable." - :group 'magit - :type 'string) - -(defcustom magit-topgit-branch-prefix "t/" - "Convention prefix for topic branch creation." - :group 'magit - :type 'string) - -(defface magit-topgit-current - '((t :weight bold :inherit magit-branch)) - "Face for section titles." - :group 'magit-faces) - -;;; Topic branches (using topgit) - -(defun magit-topgit-in-topic-p () - (and (file-exists-p ".topdeps") - (executable-find magit-topgit-executable))) - -(defun magit-topgit-create-branch (branch parent) - (when (zerop (or (string-match magit-topgit-branch-prefix branch) -1)) - (magit-run* (list magit-topgit-executable "create" - branch (magit-rev-to-git parent)) - nil nil nil t) - t)) - -(defun magit-topgit-pull () - (when (magit-topgit-in-topic-p) - (magit-run* (list magit-topgit-executable "update") - nil nil nil t) - t)) - -(defun magit-topgit-push () - (when (magit-topgit-in-topic-p) - (let* ((branch (or (magit-get-current-branch) - (error "Don't push a detached head. That's gross"))) - (remote (magit-get "topgit" "remote")) - (push-remote (if (or current-prefix-arg (not remote)) - (magit-read-remote (format "Push %s to" branch)) - remote))) - (when (and (not remote) - (not current-prefix-arg)) - (magit-set push-remote "topgit" "remote")) - (magit-run magit-topgit-executable "push" "-r" push-remote)) - t)) - -(defun magit-topgit-remote-update (&optional remote) - (when (magit-topgit-in-topic-p) - (let* ((remote (magit-get "topgit" "remote")) - (remote-update (if (or current-prefix-arg (not remote)) - (magit-read-remote) - remote))) - (if (and (not remote) - (not current-prefix-arg)) - (progn - (magit-set remote-update "topgit" "remote") - (magit-run magit-topgit-executable "remote" - "--populate" remote-update))) - (magit-run magit-topgit-executable "remote" remote-update)) - ;; We return nil anyway, as we also want regular "git remote update" to - ;; happen - nil)) - -(defun magit-topgit-parse-flags (flags-string) - (let ((flags (string-to-list flags-string)) - (void-flag ?\ )) - (list :current (not (eq (nth 0 flags) void-flag)) - :empty (not (eq (nth 1 flags) void-flag))))) - -(defun magit-topgit-wash-topic () - (let ((fmt "^\\(.\\{7\\}\\)\\s-\\(\\S-+\\)\\s-+\\(.*\\)")) - (if (search-forward-regexp fmt (line-end-position) t) - (let ((flags (magit-topgit-parse-flags (match-string 1))) - (topic (match-string 2))) - (goto-char (line-beginning-position)) - (delete-char 8) - (insert "\t") - (goto-char (line-beginning-position)) - (magit-with-section topic 'topic - (magit-set-section-info topic) - (let ((beg (1+ (line-beginning-position))) - (end (line-end-position))) - (when (plist-get flags :current) - (put-text-property beg end 'face 'magit-topgit-current)) - (when (plist-get flags :empty) - (put-text-property beg end 'face `(:strike-through t :inherit ,(get-text-property beg 'face))))) - (forward-line))) - (delete-region (line-beginning-position) (1+ (line-end-position)))) - t)) - -(defun magit-topgit-wash-topics () - (let ((magit-old-top-section nil)) - (magit-wash-sequence #'magit-topgit-wash-topic))) - -(defun magit-topgit-section (section title washer &rest args) - (when (executable-find magit-topgit-executable) - (let ((magit-git-executable magit-topgit-executable) - (magit-git-standard-options nil)) - (apply 'magit-git-section section title washer args)))) - -(magit-define-inserter topics () - (magit-topgit-section 'topics - "Topics:" 'magit-topgit-wash-topics - "summary")) - -(magit-add-action (item info "discard") - ((topic) - (when (yes-or-no-p "Discard topic? ") - (magit-run* (list magit-topgit-executable "delete" "-f" info) - nil nil nil t)))) - -(magit-add-action (item info "visit") - ((topic) - (magit-checkout info))) - -(defun magit-topgit-get-top-bases-color (suffix) - (list nil nil)) - -(defun magit-topgit-get-remote-top-bases-color (suffix) - (when (string-match "^\\(?:[^/]+\\)/top-bases" suffix) - (list nil nil))) - -(defconst magit-topgit-ignored-namespace - '("top-bases" magit-topgit-get-top-bases-color)) - -;;;###autoload -(define-minor-mode magit-topgit-mode "Topgit support for Magit" - :lighter " Topgit" :require 'magit-topgit - (or (derived-mode-p 'magit-mode) - (error "This mode only makes sense with magit")) - (if magit-topgit-mode - (progn - (add-hook 'magit-after-insert-stashes-hook 'magit-insert-topics nil t) - (add-hook 'magit-create-branch-command-hook 'magit-topgit-create-branch nil t) - (add-hook 'magit-pull-command-hook 'magit-topgit-pull nil t) - (add-hook 'magit-remote-update-command-hook 'magit-topgit-remote-update nil t) - (add-hook 'magit-push-command-hook 'magit-topgit-push nil t) - ;; hide refs for top-bases namespace in any remote - (add-hook 'magit-log-remotes-color-hook - 'magit-topgit-get-remote-top-bases-color) - ;; hide refs in the top-bases namespace, as they're not meant for the user - (add-to-list 'magit-refs-namespaces magit-topgit-ignored-namespace)) - (progn - (remove-hook 'magit-after-insert-stashes-hook 'magit-insert-topics t) - (remove-hook 'magit-create-branch-command-hook 'magit-topgit-create-branch t) - (remove-hook 'magit-pull-command-hook 'magit-topgit-pull t) - (remove-hook 'magit-remote-update-command-hook 'magit-topgit-remote-update t) - (remove-hook 'magit-push-command-hook 'magit-topgit-push t) - (remove-hook 'magit-log-remotes-color-hook - 'magit-topgit-get-remote-top-bases-color) - (delete magit-topgit-ignored-namespace magit-refs-namespaces))) - (when (called-interactively-p 'any) - (magit-refresh))) - -;;;###autoload -(defun turn-on-magit-topgit () - "Unconditionally turn on `magit-topgit-mode'." - (magit-topgit-mode 1)) - -(provide 'magit-topgit) -;;; magit-topgit.el ends here diff --git a/elpa/magit-1.1.1/magit.el b/elpa/magit-1.1.1/magit.el deleted file mode 100644 index de0e9438..00000000 --- a/elpa/magit-1.1.1/magit.el +++ /dev/null @@ -1,5445 +0,0 @@ -;;; magit.el -- control Git from Emacs. - -;; Copyright (C) 2010 Aaron Culich. -;; Copyright (C) 2010 Alan Falloon. -;; Copyright (C) 2008, 2010 Alex Ott. -;; Copyright (C) 2008, 2009, 2010 Alexey Voinov. -;; Copyright (C) 2010 Ben Walton. -;; Copyright (C) 2010 Chris Bernard. -;; Copyright (C) 2010 Christian Kluge. -;; Copyright (C) 2008 Daniel Farina. -;; Copyright (C) 2010 David Abrahams. -;; Copyright (C) 2009 David Wallin. -;; Copyright (C) 2009, 2010 Hannu Koivisto. -;; Copyright (C) 2009 Ian Eure. -;; Copyright (C) 2009 Jesse Alama. -;; Copyright (C) 2009 John Wiegley. -;; Copyright (C) 2010 Leo. -;; Copyright (C) 2008, 2009 Marcin Bachry. -;; Copyright (C) 2008, 2009 Marius Vollmer. -;; Copyright (C) 2010 Mark Hepburn. -;; Copyright (C) 2010 Moritz Bunkus. -;; Copyright (C) 2010 Nathan Weizenbaum. -;; Copyright (C) 2010 Oscar Fuentes. -;; Copyright (C) 2009 Pavel Holejsovsky. -;; Copyright (C) 2011 Peter J Weisberg -;; Copyright (C) 2009, 2010 Phil Jackson. -;; Copyright (C) 2010 Philip Weaver. -;; Copyright (C) 2010 Ramkumar Ramachandra. -;; Copyright (C) 2010 Remco van 't Veer. -;; Copyright (C) 2009 RenĂ© Stadler. -;; Copyright (C) 2010 Robin Green. -;; Copyright (C) 2010 Roger Crew. -;; Copyright (C) 2009, 2010, 2011 RĂ©mi Vanicat. -;; Copyright (C) 2010 Sean Bryant. -;; Copyright (C) 2009, 2011 Steve Purcell. -;; Copyright (C) 2010 Timo Juhani Lindfors. -;; Copyright (C) 2010, 2011 Yann Hodique. -;; Copyright (C) 2010 Ævar ArnfjörĂ° Bjarmason. -;; Copyright (C) 2010 Ă“scar Fuentes. - -;; Original Author: Marius Vollmer -;; Former Maintainer: Phil Jackson -;; Maintenance Group: https://github.com/organizations/magit/teams/53130 -;; Currently composed of: -;; - Phil Jackson -;; - Peter J Weisberg -;; - Yann Hodique -;; - RĂ©mi Vanicat -;; Version: 1.1.1 -;; Keywords: tools - -;; -;; Magit is free software; you can redistribute it and/or modify it -;; under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. -;; -;; Magit is distributed in the hope that it will be useful, but WITHOUT -;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -;; License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with Magit. If not, see . - -;;; Commentary: - -;; Invoking the magit-status function will show a buffer with the -;; status of the current git repository and its working tree. That -;; buffer offers key bindings for manipulating the status in simple -;; ways. -;; -;; The status buffer mainly shows the difference between the working -;; tree and the index, and the difference between the index and the -;; current HEAD. You can add individual hunks from the working tree -;; to the index, and you can commit the index. -;; -;; See the Magit User Manual for more information. - -;;; Code: - -(eval-when-compile (require 'cl)) -(require 'log-edit) -(require 'easymenu) -(require 'diff-mode) - -;; Silences byte-compiler warnings -(eval-when-compile (require 'view)) -(declare-function view-mode 'view) -(eval-when-compile (require 'iswitchb)) -(eval-when-compile (require 'ido)) -(eval-when-compile (require 'ediff)) - -;; Dummy to be used by the defcustoms when first loading the file. -(eval-when (load eval) - (defalias 'magit-set-variable-and-refresh 'set-default)) - -;;; Code: -(defgroup magit nil - "Controlling Git from Emacs." - :prefix "magit-" - :group 'tools) - -(defcustom magit-git-executable "git" - "The name of the Git executable." - :group 'magit - :type 'string) - -(defcustom magit-gitk-executable (concat (file-name-directory magit-git-executable) - "gitk") - "The name of the Gitk executable." - :group 'magit - :type 'string) - -(defcustom magit-git-standard-options '("--no-pager") - "Standard options when running Git." - :group 'magit - :type '(repeat string)) - -(defcustom magit-repo-dirs nil - "Directories containing Git repositories. -Magit will look into these directories for Git repositories and -offer them as choices for `magit-status'." - :group 'magit - :type '(repeat string)) - -(defcustom magit-repo-dirs-depth 3 - "The maximum depth to look for Git repos. -When looking for a Git repository below the directories in `magit-repo-dirs', -Magit will only descend this many levels deep." - :group 'magit - :type 'integer) - -(defcustom magit-set-upstream-on-push nil - "Non-nil means that \\[magit-push] will use --set-upstream when pushing a branch. -Setting this to t will ask if --set-upstream should be used. -Setting it to 'dontask will always use --set-upstream. -Setting it to 'refuse will refuse to push unless a remote branch has already been set. - ---set-upstream is supported with git > 1.7.0" - :group 'magit - :type '(choice (const :tag "Never" nil) - (const :tag "Ask" t) - (const :tag "Refuse" refuse) - (const :tag "Always" dontask))) - -(defcustom magit-save-some-buffers t - "Non-nil means that \\[magit-status] will save modified buffers before running. -Setting this to t will ask which buffers to save, setting it to 'dontask will -save all modified buffers without asking." - :group 'magit - :type '(choice (const :tag "Never" nil) - (const :tag "Ask" t) - (const :tag "Save without asking" dontask))) - -(defcustom magit-save-some-buffers-predicate - 'magit-save-buffers-predicate-tree-only - "Specifies a predicate function on \\[magit-save-some-buffers] to determine which - unsaved buffers should be prompted for saving." - - :group 'magit - :type '(radio (function-item magit-save-buffers-predicate-tree-only) - (function-item magit-save-buffers-predicate-all) - (function :tag "Other"))) - -(defcustom magit-default-tracking-name-function - 'magit-default-tracking-name-remote-plus-branch - "Specifies the function to use to generate default tracking branch names -when doing a \\[magit-checkout]. - -The default is magit-default-tracking-name-remote-plus-branch, -which generates a tracking name of the form 'REMOTE-BRANCHNAME'." - :group 'magit - :type '(radio (function-item magit-default-tracking-name-remote-plus-branch) - (function-item magit-default-tracking-name-branch-only) - (function :tag "Other"))) - -(defcustom magit-commit-all-when-nothing-staged 'ask - "Determines what \\[magit-log-edit] does when nothing is staged. -Setting this to nil will make it do nothing, setting it to t will -arrange things so that the actual commit command will use the \"--all\" option, -setting it to 'ask will first ask for confirmation whether to do this, -and setting it to 'ask-stage will cause all changes to be staged, -after a confirmation." - :group 'magit - :type '(choice (const :tag "No" nil) - (const :tag "Always" t) - (const :tag "Ask" ask) - (const :tag "Ask to stage everything" ask-stage))) - -(defcustom magit-commit-signoff nil - "Add the \"Signed-off-by:\" line when committing." - :group 'magit - :type 'boolean) - -(defcustom magit-log-cutoff-length 100 - "The maximum number of commits to show in the log and whazzup buffers." - :group 'magit - :type 'integer) - -(defcustom magit-log-infinite-length 99999 - "Number of log used to show as maximum for `magit-log-cutoff-length'." - :group 'magit - :type 'integer) - -(defcustom magit-log-auto-more nil - "Insert more log entries automatically when moving past the last entry. - -Only considered when moving past the last entry with -`magit-goto-*-section' commands." - :group 'magit - :type 'boolean) - -(defcustom magit-process-popup-time -1 - "Popup the process buffer if a command takes longer than this many seconds." - :group 'magit - :type '(choice (const :tag "Never" -1) - (const :tag "Immediately" 0) - (integer :tag "After this many seconds"))) - -(defcustom magit-revert-item-confirm t - "Require acknowledgment before reverting an item." - :group 'magit - :type 'boolean) - -(defcustom magit-log-edit-confirm-cancellation nil - "Require acknowledgment before canceling the log edit buffer." - :group 'magit - :type 'boolean) - -(defcustom magit-remote-ref-format 'branch-then-remote - "What format to use for autocompleting refs, in pariticular for remotes. - -Autocompletion is used by functions like `magit-checkout', -`magit-interactive-rebase' and others which offer branch name -completion. - -The value 'name-then-remote means remotes will be of the -form \"name (remote)\", while the value 'remote-slash-name -means that they'll be of the form \"remote/name\". I.e. something that's -listed as \"remotes/upstream/next\" by \"git branch -l -a\" -will be \"upstream/next\"." - :group 'magit - :type '(choice (const :tag "name (remote)" branch-then-remote) - (const :tag "remote/name" remote-slash-branch))) - -(defcustom magit-process-connection-type (not (eq system-type 'cygwin)) - "Connection type used for the git process. - -nil mean pipe, it is usually faster and more efficient, and work on cygwin. -t mean pty, it enable magit to prompt for passphrase when needed." - :group 'magit - :type 'boolean) - -(defcustom magit-completing-read-function 'magit-builtin-completing-read - "Function to be called when requesting input from the user." - :group 'magit - :type '(radio (function-item magit-iswitchb-completing-read) - (function-item magit-ido-completing-read) - (function-item magit-builtin-completing-read) - (function :tag "Other"))) - -(defcustom magit-create-branch-behaviour 'at-head - "Where magit will create a new branch if not supplied a branchname or ref. - -The value 'at-head means a new branch will be created at the tip -of your current branch, while the value 'at-point means magit -will try to find a valid reference at point..." - :group 'magit - :type '(choice (const :tag "at HEAD" at-head) - (const :tag "at point" at-point))) - -(defcustom magit-status-buffer-switch-function 'pop-to-buffer - "Function for `magit-status' to use for switching to the status buffer. - -The function is given one argument, the status buffer." - :group 'magit - :type '(radio (function-item switch-to-buffer) - (function-item pop-to-buffer) - (function :tag "Other"))) - -(defcustom magit-rewrite-inclusive t - "Whether magit includes the selected base commit in a rewrite operation. - -t means both the selected commit as well as any subsequent -commits will be rewritten. This is magit's default behaviour, -equivalent to 'git rebase -i ${REV}~1' - - A'---B'---C'---D' - ^ - -nil means the selected commit will be literally used as 'base', -so only subsequent commits will be rewritten. This is consistent -with git-rebase, equivalent to 'git rebase -i ${REV}', yet more -cumbersome to use from the status buffer. - - A---B'---C'---D' - ^ -" - :group 'magit - :type '(choice (const :tag "Always" t) - (const :tag "Never" nil) - (const :tag "Ask" ask))) - -(defcustom magit-highlight-whitespace t - "Specifies where to highlight whitespace errors. See -`magit-highlight-trailing-whitespace', -`magit-highlight-indentation'. `t' means in all diffs, the -symbol `status' means only in the status buffer, and `nil' means -nowhere." - :group 'magit - :type '(choice (const :tag "Always" t) - (const :tag "Never" nil) - (const :tag "In status buffer" status)) - :set 'magit-set-variable-and-refresh) - -(defcustom magit-highlight-trailing-whitespace t - "If `magit-highlight-whitespace' is enabled, highlight -whitespace at the end of a line in diffs." - :group 'magit - :type 'boolean - :set 'magit-set-variable-and-refresh) - -(defcustom magit-highlight-indentation nil - "If `magit-highlight-whitespace' is enabled, highlight the -\"wrong\" indentation style. - -The value is a list of cons cells. The car is a regular -expression, and the cdr is the value that applies to repositories -whose directory matches the regular expression. If more than one -item matches, then the *last* item in the list applies. So, the -default value should come first in the list. - -If the value is `tabs', highlight indentation with tabs. If the -value is an integer, highlight indentation with at least that -many spaces. Otherwise, highlight neither." - :group 'magit - :type `(repeat (cons (string :tag "Directory regexp") - (choice (const :tag "Tabs" tabs) - (integer :tag "Spaces" :value ,tab-width) - (const :tag "Neither" nil)))) - :set 'magit-set-variable-and-refresh) - -(defvar magit-current-indentation nil - "Indentation highlight used in the current buffer, as specified -in `magit-highlight-indentation'.") -(make-variable-buffer-local 'magit-current-indentation) - -(defgroup magit-faces nil - "Customize the appearance of Magit." - :prefix "magit-" - :group 'faces - :group 'magit) - -(defface magit-header - '((t :inherit header-line)) - "Face for generic header lines. - -Many Magit faces inherit from this one by default." - :group 'magit-faces) - -(defface magit-section-title - '((t :inherit magit-header)) - "Face for section titles." - :group 'magit-faces) - -(defface magit-branch - '((t :inherit magit-header)) - "Face for the current branch." - :group 'magit-faces) - -(defface magit-diff-file-header - '((t :inherit diff-file-header)) - "Face for diff file header lines." - :group 'magit-faces) - -(defface magit-diff-hunk-header - '((t :inherit diff-hunk-header)) - "Face for diff hunk header lines." - :group 'magit-faces) - -(defface magit-diff-add - '((t :inherit diff-added)) - "Face for lines in a diff that have been added." - :group 'magit-faces) - -(defface magit-diff-none - '((t :inherit diff-context)) - "Face for lines in a diff that are unchanged." - :group 'magit-faces) - -(defface magit-diff-del - '((t :inherit diff-removed)) - "Face for lines in a diff that have been deleted." - :group 'magit-faces) - -(defface magit-log-graph - '((((class color) (background light)) - :foreground "grey11") - (((class color) (background dark)) - :foreground "grey80")) - "Face for the graph element of the log output." - :group 'magit-faces) - -(defface magit-log-sha1 - '((((class color) (background light)) - :foreground "firebrick") - (((class color) (background dark)) - :foreground "tomato")) - "Face for the sha1 element of the log output." - :group 'magit-faces) - -(defface magit-log-message - '((t)) - "Face for the message element of the log output." - :group 'magit-faces) - -(defface magit-item-highlight - '((t :inherit highlight)) - "Face for highlighting the current item." - :group 'magit-faces) - -(defface magit-item-mark - '((t :inherit secondary-selection)) - "Face for highlighting marked item." - :group 'magit-faces) - -(defface magit-log-head-label-bisect-good - '((((class color) (background light)) - :box t - :background "light green" - :foreground "dark olive green") - (((class color) (background dark)) - :box t - :background "light green" - :foreground "dark olive green")) - "Face for good bisect refs." - :group 'magit-faces) - -(defface magit-log-head-label-bisect-bad - '((((class color) (background light)) - :box t - :background "IndianRed1" - :foreground "IndianRed4") - (((class color) (background dark)) - :box t - :background "IndianRed1" - :foreground "IndianRed4")) - "Face for bad bisect refs." - :group 'magit-faces) - -(defface magit-log-head-label-remote - '((((class color) (background light)) - :box t - :background "Grey85" - :foreground "OliveDrab4") - (((class color) (background dark)) - :box t - :background "Grey11" - :foreground "DarkSeaGreen2")) - "Face for remote branch head labels shown in log buffer." - :group 'magit-faces) - -(defface magit-log-head-label-tags - '((((class color) (background light)) - :box t - :background "LemonChiffon1" - :foreground "goldenrod4") - (((class color) (background dark)) - :box t - :background "LemonChiffon1" - :foreground "goldenrod4")) - "Face for tag labels shown in log buffer." - :group 'magit-faces) - -(defface magit-log-head-label-patches - '((((class color) (background light)) - :box t - :background "IndianRed1" - :foreground "IndianRed4") - (((class color) (background dark)) - :box t - :background "IndianRed1" - :foreground "IndianRed4")) - "Face for Stacked Git patches." - :group 'magit-faces) - -(defface magit-whitespace-warning-face - '((t :inherit trailing-whitespace)) - "Face for highlighting whitespace errors in Magit diffs." - :group 'magit-faces) - -(defvar magit-custom-options '() - "List of custom options to pass to Git. -Do not customize this (used in the `magit-key-mode' implementation).") - -(defvar magit-read-rev-history nil - "The history of inputs to `magit-read-rev'.") - -(defvar magit-back-navigation-history nil - "History items that will be visited by successively going \"back\".") -(make-variable-buffer-local 'magit-back-navigation-history) -(put 'magit-back-navigation-history 'permanent-local t) - -(defvar magit-forward-navigation-history nil - "History items that will be visited by successively going \"forward\".") -(make-variable-buffer-local 'magit-forward-navigation-history) -(put 'magit-forward-navigation-history 'permanent-local t) - -(defvar magit-omit-untracked-dir-contents nil - "When non-nil magit will only list an untracked directory, not its contents.") - -(defvar magit-tmp-buffer-name " *magit-tmp*") - -(defface magit-log-head-label-local - '((((class color) (background light)) - :box t - :background "Grey85" - :foreground "LightSkyBlue4") - (((class color) (background dark)) - :box t - :background "Grey13" - :foreground "LightSkyBlue1")) - "Face for local branch head labels shown in log buffer." - :group 'magit-faces) - -(defface magit-log-head-label-default - '((((class color) (background light)) - :box t - :background "Grey50") - (((class color) (background dark)) - :box t - :background "Grey50")) - "Face for unknown ref labels shown in log buffer." - :group 'magit-faces) - -(defvar magit-mode-map - (let ((map (make-keymap))) - (suppress-keymap map t) - (define-key map (kbd "n") 'magit-goto-next-section) - (define-key map (kbd "p") 'magit-goto-previous-section) - (define-key map (kbd "TAB") 'magit-toggle-section) - (define-key map (kbd "") 'magit-expand-collapse-section) - (define-key map (kbd "1") 'magit-show-level-1) - (define-key map (kbd "2") 'magit-show-level-2) - (define-key map (kbd "3") 'magit-show-level-3) - (define-key map (kbd "4") 'magit-show-level-4) - (define-key map (kbd "M-1") 'magit-show-level-1-all) - (define-key map (kbd "M-2") 'magit-show-level-2-all) - (define-key map (kbd "M-3") 'magit-show-level-3-all) - (define-key map (kbd "M-4") 'magit-show-level-4-all) - (define-key map (kbd "M-h") 'magit-show-only-files) - (define-key map (kbd "M-H") 'magit-show-only-files-all) - (define-key map (kbd "M-s") 'magit-show-level-4) - (define-key map (kbd "M-S") 'magit-show-level-4-all) - (define-key map (kbd "g") 'magit-refresh) - (define-key map (kbd "G") 'magit-refresh-all) - (define-key map (kbd "?") 'magit-describe-item) - (define-key map (kbd "!") 'magit-key-mode-popup-running) - (define-key map (kbd ":") 'magit-git-command) - (define-key map (kbd "C-x 4 a") 'magit-add-change-log-entry-other-window) - (define-key map (kbd "RET") 'magit-visit-item) - (define-key map (kbd "SPC") 'magit-show-item-or-scroll-up) - (define-key map (kbd "DEL") 'magit-show-item-or-scroll-down) - (define-key map (kbd "C-w") 'magit-copy-item-as-kill) - (define-key map (kbd "R") 'magit-rebase-step) - (define-key map (kbd "t") 'magit-key-mode-popup-tagging) - (define-key map (kbd "r") 'magit-key-mode-popup-rewriting) - (define-key map (kbd "P") 'magit-key-mode-popup-pushing) - (define-key map (kbd "f") 'magit-key-mode-popup-fetching) - (define-key map (kbd "b") 'magit-key-mode-popup-branching) - (define-key map (kbd "B") 'magit-key-mode-popup-bisecting) - (define-key map (kbd "F") 'magit-key-mode-popup-pulling) - (define-key map (kbd "l") 'magit-key-mode-popup-logging) - (define-key map (kbd "$") 'magit-display-process) - (define-key map (kbd "c") 'magit-log-edit) - (define-key map (kbd "E") 'magit-interactive-rebase) - (define-key map (kbd "e") 'magit-ediff) - (define-key map (kbd "w") 'magit-wazzup) - (define-key map (kbd "q") 'magit-quit-window) - (define-key map (kbd "m") 'magit-key-mode-popup-merging) - (define-key map (kbd "x") 'magit-reset-head) - (define-key map (kbd "v") 'magit-revert-item) - (define-key map (kbd "a") 'magit-apply-item) - (define-key map (kbd "A") 'magit-cherry-pick-item) - (define-key map (kbd "d") 'magit-diff-working-tree) - (define-key map (kbd "D") 'magit-diff) - (define-key map (kbd "-") 'magit-diff-smaller-hunks) - (define-key map (kbd "+") 'magit-diff-larger-hunks) - (define-key map (kbd "0") 'magit-diff-default-hunks) - map)) - -(defvar magit-commit-mode-map - (let ((map (make-sparse-keymap))) - (define-key map (kbd "C-c C-b") 'magit-show-commit-backward) - (define-key map (kbd "C-c C-f") 'magit-show-commit-forward) - map)) - -(defvar magit-status-mode-map - (let ((map (make-sparse-keymap))) - (define-key map (kbd "s") 'magit-stage-item) - (define-key map (kbd "S") 'magit-stage-all) - (define-key map (kbd "u") 'magit-unstage-item) - (define-key map (kbd "U") 'magit-unstage-all) - (define-key map (kbd "i") 'magit-ignore-item) - (define-key map (kbd "I") 'magit-ignore-item-locally) - (define-key map (kbd ".") 'magit-mark-item) - (define-key map (kbd "=") 'magit-diff-with-mark) - (define-key map (kbd "k") 'magit-discard-item) - (define-key map (kbd "C") 'magit-add-log) - (define-key map (kbd "X") 'magit-reset-working-tree) - (define-key map (kbd "z") 'magit-key-mode-popup-stashing) - map)) - -(defvar magit-log-mode-map - (let ((map (make-sparse-keymap))) - (define-key map (kbd ".") 'magit-mark-item) - (define-key map (kbd "=") 'magit-diff-with-mark) - (define-key map (kbd "e") 'magit-log-show-more-entries) - map)) - -(defvar magit-wazzup-mode-map - (let ((map (make-sparse-keymap))) - (define-key map (kbd ".") 'magit-mark-item) - (define-key map (kbd "=") 'magit-diff-with-mark) - (define-key map (kbd "i") 'magit-ignore-item) - map)) - -(defvar magit-show-branches-mode-map - (let ((map (make-sparse-keymap))) - (define-key map (kbd "k") 'magit-remove-branch) - (define-key map (kbd "K") 'magit-remove-branch-in-remote-repo) - (define-key map (kbd "v") 'magit-show-branches) - (define-key map (kbd "T") 'magit-change-what-branch-tracks) - map)) - -(defvar magit-bug-report-url - "http://github.com/magit/magit/issues") - -(defconst magit-version "1.1.1" - "The version of Magit that you're using.") - -(defun magit-bug-report (str) - (message (concat - "Unknown error: %s\n" - "Please, with as much information as possible, file a bug at\n" - "%s\n" - "You are using Magit version %s.") - str magit-bug-report-url magit-version)) - -(defun magit-buffer-switch (buf) - (if (string-match "magit" (buffer-name)) - (switch-to-buffer buf) - (pop-to-buffer buf))) - -;;; Macros - -(defmacro magit-with-refresh (&rest body) - (declare (indent 0)) - `(magit-refresh-wrapper (lambda () ,@body))) - -;;; Git features - -(defvar magit-have-graph 'unset) -(defvar magit-have-decorate 'unset) -(defvar magit-have-abbrev 'unset) -(make-variable-buffer-local 'magit-have-graph) -(put 'magit-have-graph 'permanent-local t) -(make-variable-buffer-local 'magit-have-decorate) -(put 'magit-have-decorate 'permanent-local t) -(make-variable-buffer-local 'magit-have-abbrev) -(put 'magit-have-abbrev 'permanent-local t) - -(defun magit-configure-have-graph () - (if (eq magit-have-graph 'unset) - (let ((res (magit-git-exit-code "log" "--graph" "--max-count=0"))) - (setq magit-have-graph (eq res 0))))) - -(defun magit-configure-have-decorate () - (if (eq magit-have-decorate 'unset) - (let ((res (magit-git-exit-code "log" "--decorate=full" "--max-count=0"))) - (setq magit-have-decorate (eq res 0))))) - -(defun magit-configure-have-abbrev () - (if (eq magit-have-abbrev 'unset) - (let ((res (magit-git-exit-code "log" "--no-abbrev-commit" "--max-count=0"))) - (setq magit-have-abbrev (eq res 0))))) - -;;; Compatibilities - -(eval-and-compile - (defun magit-max-args-internal (function) - "Returns the maximum number of arguments accepted by FUNCTION." - (if (symbolp function) - (setq function (symbol-function function))) - (if (subrp function) - (let ((max (cdr (subr-arity function)))) - (if (eq 'many max) - most-positive-fixnum - max)) - (if (eq 'macro (car-safe function)) - (setq function (cdr function))) - (let ((arglist (if (byte-code-function-p function) - (aref function 0) - (second function)))) - (if (memq '&rest arglist) - most-positive-fixnum - (length (remq '&optional arglist)))))) - - (if (functionp 'start-file-process) - (defalias 'magit-start-process 'start-file-process) - (defalias 'magit-start-process 'start-process)) - - (unless (fboundp 'string-match-p) - (defun string-match-p (regexp string &optional start) - "Same as `string-match' except this function does not -change the match data." - (let ((inhibit-changing-match-data t)) - (string-match regexp string start)))) - - (if (fboundp 'with-silent-modifications) - (defalias 'magit-with-silent-modifications 'with-silent-modifications) - (defmacro magit-with-silent-modifications (&rest body) - "Execute body without changing `buffer-modified-p'. Also, do not -record undo information." - `(set-buffer-modified-p - (prog1 (buffer-modified-p) - (let ((buffer-undo-list t) - before-change-functions - after-change-functions) - ,@body))))) - - (if (>= (magit-max-args-internal 'delete-directory) 2) - (defalias 'magit-delete-directory 'delete-directory) - (defun magit-delete-directory (directory &optional recursive) - "Deletes a directory named DIRECTORY. If RECURSIVE is non-nil, -recursively delete all of DIRECTORY's contents as well. - -Does not follow symlinks." - (if (or (file-symlink-p directory) - (not (file-directory-p directory))) - (delete-file directory) - (if recursive - ;; `directory-files-no-dot-files-regex' borrowed from Emacs 23 - (dolist (file (directory-files directory 'full "\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")) - (magit-delete-directory file recursive))) - (delete-directory directory))))) - -;;; Utilities - -(defun magit-set-variable-and-refresh (symbol value) - "Set SYMBOL to VALUE and call `magit-refresh-all'" - (set-default symbol value) - (magit-refresh-all)) - -(defun magit-iswitchb-completing-read (prompt choices &optional predicate require-match - initial-input hist def) - "iswitchb-based completing-read almost-replacement." - (require 'iswitchb) - (let ((iswitchb-make-buflist-hook - (lambda () - (setq iswitchb-temp-buflist (if (consp (first choices)) - (mapcar #'car choices) - choices))))) - (iswitchb-read-buffer prompt (or initial-input def) require-match))) - -(defun magit-ido-completing-read (prompt choices &optional predicate require-match initial-input hist def) - "ido-based completing-read almost-replacement." - (require 'ido) - (let ((selected (ido-completing-read prompt (if (consp (first choices)) - (mapcar #'car choices) - choices) - predicate require-match initial-input hist def))) - (if (consp (first choices)) - (or (cdr (assoc selected choices)) - selected) - selected))) - -(defun magit-builtin-completing-read (prompt choices &optional predicate require-match - initial-input hist def) - "Magit wrapper for standard `completing-read' function." - (completing-read (if (and def (> (length prompt) 2) - (string-equal ": " (substring prompt -2))) - (format "%s (default %s): " (substring prompt 0 -2) def) - prompt) - choices predicate require-match initial-input hist def)) - -(defun magit-completing-read (prompt choices &optional predicate require-match - initial-input hist def) - (funcall magit-completing-read-function prompt choices predicate require-match - initial-input hist def)) - -(defun magit-use-region-p () - (if (fboundp 'use-region-p) - (use-region-p) - (and transient-mark-mode mark-active))) - -(defun magit-goto-line (line) - "Like `goto-line' but doesn't set the mark." - (save-restriction - (widen) - (goto-char 1) - (forward-line (1- line)))) - -(defun magit-trim-line (str) - (if (string= str "") - nil - (if (equal (elt str (- (length str) 1)) ?\n) - (substring str 0 (- (length str) 1)) - str))) - -(defun magit-split-lines (str) - (if (string= str "") - nil - (let ((lines (nreverse (split-string str "\n")))) - (if (string= (car lines) "") - (setq lines (cdr lines))) - (nreverse lines)))) - -(defun magit-git-insert (args) - (insert (magit-git-output args))) - -(defun magit-git-output (args) - (magit-cmd-output magit-git-executable (append magit-git-standard-options args))) - -(defun magit-cmd-insert (cmd args) - (insert (magit-cmd-output cmd args))) - -(defun magit-cmd-output (cmd args) - (let ((cmd-output (with-output-to-string - (with-current-buffer standard-output - (apply #'process-file - cmd - nil (list t nil) nil - args))))) - (replace-regexp-in-string "\e\\[.*?m" "" cmd-output))) - -(defun magit-git-string (&rest args) - (magit-trim-line (magit-git-output args))) - -(defun magit-git-lines (&rest args) - (magit-split-lines (magit-git-output args))) - -(defun magit-git-exit-code (&rest args) - (apply #'process-file magit-git-executable nil nil nil - (append magit-git-standard-options args))) - -(defun magit-file-lines (file) - (when (file-exists-p file) - (with-temp-buffer - (insert-file-contents file) - (let ((rev (nreverse (split-string (buffer-string) "\n")))) - (nreverse (if (equal (car rev) "") - (cdr rev) - rev)))))) - -(defun magit-write-file-lines (file lines) - (with-temp-buffer - (dolist (l lines) - (insert l "\n")) - (write-file file))) - -(defun magit-get (&rest keys) - "Return the value of Git config entry specified by KEYS." - (magit-git-string "config" (mapconcat 'identity keys "."))) - -(defun magit-get-all (&rest keys) - "Return all values of the Git config entry specified by KEYS." - (magit-git-lines "config" "--get-all" (mapconcat 'identity keys "."))) - -(defun magit-set (val &rest keys) - "Set Git config settings specified by KEYS to VAL." - (if val - (magit-git-string "config" (mapconcat 'identity keys ".") val) - (magit-git-string "config" "--unset" (mapconcat 'identity keys ".")))) - -(defun magit-remove-conflicts (alist) - (let ((dict (make-hash-table :test 'equal)) - (result nil)) - (dolist (a alist) - (puthash (car a) (cons (cdr a) (gethash (car a) dict)) - dict)) - (maphash (lambda (key value) - (if (= (length value) 1) - (push (cons key (car value)) result) - (let ((sub (magit-remove-conflicts - (mapcar (lambda (entry) - (let ((dir (directory-file-name - (substring entry 0 (- (length key)))))) - (cons (concat (file-name-nondirectory dir) "/" key) - entry))) - value)))) - (setq result (append result sub))))) - dict) - result)) - -(defun magit-git-repo-p (dir) - (file-exists-p (expand-file-name ".git" dir))) - -(defun magit-no-commit-p () - "Return non-nil if there is no commit in the current git repository." - (not (magit-git-string - "rev-list" "HEAD" "--max-count=1"))) - -(defun magit-list-repos* (dir level) - (if (magit-git-repo-p dir) - (list dir) - (apply #'append - (mapcar (lambda (entry) - (unless (or (string= (substring entry -3) "/..") - (string= (substring entry -2) "/.")) - (magit-list-repos* entry (+ level 1)))) - (and (file-directory-p dir) - (< level magit-repo-dirs-depth) - (directory-files dir t nil t)))))) - -(defun magit-list-repos (dirs) - (magit-remove-conflicts - (apply #'append - (mapcar (lambda (dir) - (mapcar #'(lambda (repo) - (cons (file-name-nondirectory repo) - repo)) - (magit-list-repos* dir 0))) - dirs)))) - -(defun magit-get-top-dir (cwd) - (let ((cwd (expand-file-name (file-truename cwd)))) - (when (file-directory-p cwd) - (let* ((default-directory (file-name-as-directory cwd)) - (cdup (magit-git-string "rev-parse" "--show-cdup"))) - (when cdup - (file-name-as-directory (expand-file-name cdup cwd))))))) - -(defun magit-get-ref (ref) - (magit-git-string "symbolic-ref" "-q" ref)) - -(defun magit-get-current-branch () - (let* ((head (magit-get-ref "HEAD")) - (pos (and head (string-match "^refs/heads/" head)))) - (if pos - (substring head 11) - nil))) - -(defun magit-get-remote (branch) - "Return the name of the remote for BRANCH. -If branch is nil or it has no remote, but a remote named -\"origin\" exists, return that. Otherwise, return nil." - (let ((remote (or (and branch (magit-get "branch" branch "remote")) - (and (magit-get "remote" "origin" "url") "origin")))) - (if (string= remote "") nil remote))) - -(defun magit-get-current-remote () - "Return the name of the remote for the current branch. -If there is no current branch, or no remote for that branch, -but a remote named \"origin\" is configured, return that. -Otherwise, return nil." - (magit-get-remote (magit-get-current-branch))) - -(defun magit-ref-exists-p (ref) - (= (magit-git-exit-code "show-ref" "--verify" ref) 0)) - -(defun magit-read-top-dir (dir) - "Ask the user for a Git repository. The choices offered by -auto-completion will be the repositories under `magit-repo-dirs'. -If `magit-repo-dirs' is nil or DIR is non-nill, then -autocompletion will offer directory names." - (if (and (not dir) magit-repo-dirs) - (let* ((repos (magit-list-repos magit-repo-dirs)) - (reply (magit-completing-read "Git repository: " repos))) - (file-name-as-directory - (or (cdr (assoc reply repos)) - (if (file-directory-p reply) - (expand-file-name reply) - (error "Not a repository or a directory: %s" reply))))) - (file-name-as-directory - (read-directory-name "Git repository: " - (or (magit-get-top-dir default-directory) - default-directory))))) - -(defun magit-rev-parse (ref) - "Return the SHA hash for REF." - (magit-git-string "rev-parse" ref)) - -(defun magit-ref-ambiguous-p (ref) - "Return whether or not REF is ambiguous." - ;; If REF is ambiguous, rev-parse just prints errors, - ;; so magit-git-string returns nil. - (not (magit-git-string "rev-parse" "--abbrev-ref" ref))) - -(defun magit-name-rev (rev) - "Return a human-readable name for REV. -Unlike git name-rev, this will remove tags/ and remotes/ prefixes -if that can be done unambiguously. In addition, it will filter -out revs involving HEAD." - (when rev - (let ((name (magit-git-string "name-rev" "--no-undefined" "--name-only" rev))) - ;; There doesn't seem to be a way of filtering HEAD out from name-rev, - ;; so we have to do it manually. - ;; HEAD-based names are too transient to allow. - (when (and (stringp name) - (string-match "^\\(.*\\" name)) - (setq name (magit-rev-parse rev))))) - (setq rev (or name rev)) - (when (string-match "^\\(?:tags\\|remotes\\)/\\(.*\\)" rev) - (let ((plain-name (match-string 1 rev))) - (unless (magit-ref-ambiguous-p plain-name) - (setq rev plain-name)))) - rev))) - -(defun magit-highlight-line-whitespace () - (when (and magit-highlight-whitespace - (or (derived-mode-p 'magit-status-mode) - (not (eq magit-highlight-whitespace 'status)))) - (if (and magit-highlight-trailing-whitespace - (looking-at "^[-+].*?\\([ \t]+\\)$")) - (overlay-put (make-overlay (match-beginning 1) (match-end 1)) - 'face 'magit-whitespace-warning-face)) - (if (or (and (eq magit-current-indentation 'tabs) - (looking-at "^[-+]\\( *\t[ \t]*\\)")) - (and (integerp magit-current-indentation) - (looking-at (format "^[-+]\\([ \t]* \\{%s,\\}[ \t]*\\)" - magit-current-indentation)))) - (overlay-put (make-overlay (match-beginning 1) (match-end 1)) - 'face 'magit-whitespace-warning-face)))) - -(defun magit-put-line-property (prop val) - (put-text-property (line-beginning-position) (line-beginning-position 2) - prop val)) - -(defun magit-format-commit (commit format) - (magit-git-string "log" "--max-count=1" - (concat "--pretty=format:" format) - commit)) - -(defun magit-current-line () - (buffer-substring-no-properties (line-beginning-position) - (line-end-position))) - -(defun magit-insert-region (beg end buf) - (let ((text (buffer-substring-no-properties beg end))) - (with-current-buffer buf - (insert text)))) - -(defun magit-insert-current-line (buf) - (let ((text (buffer-substring-no-properties - (line-beginning-position) (line-beginning-position 2)))) - (with-current-buffer buf - (insert text)))) - -(defun magit-file-uptodate-p (file) - (eq (magit-git-exit-code "diff" "--quiet" "--" file) 0)) - -(defun magit-anything-staged-p () - (not (eq (magit-git-exit-code "diff" "--quiet" "--cached") 0))) - -(defun magit-everything-clean-p () - (and (not (magit-anything-staged-p)) - (eq (magit-git-exit-code "diff" "--quiet") 0))) - -(defun magit-commit-parents (commit) - (cdr (split-string (magit-git-string "rev-list" "-1" "--parents" commit)))) - -;; XXX - let the user choose the parent - -(defun magit-choose-parent-id (commit op) - (let* ((parents (magit-commit-parents commit))) - (if (> (length parents) 1) - (error "Can't %s merge commits" op) - nil))) - -;;; Revisions and ranges - -(defvar magit-current-range nil - "The range described by the current buffer. -This is only non-nil in diff and log buffers. - -This has three possible (non-nil) forms. If it's a string REF or -a singleton list (REF), then the range is from REF to the current -working directory state (or HEAD in a log buffer). If it's a -pair (START . END), then the range is START..END.") -(make-variable-buffer-local 'magit-current-range) - -(defun magit-list-interesting-refs (&optional uninteresting) - "Return interesting references as given by `git show-ref'. -Removes references matching UNINTERESTING from the -results. UNINTERESTING can be either a function taking a single -argument or a list of strings used as regexps." - (let ((refs ())) - (dolist (line (magit-git-lines "show-ref")) - (if (string-match "[^ ]+ +\\(.*\\)" line) - (let ((ref (match-string 1 line))) - (cond ((and (functionp uninteresting) - (funcall uninteresting ref))) - ((and (not (functionp uninteresting)) - (loop for i in uninteresting thereis (string-match i ref)))) - ((string-match "refs/heads/\\(.*\\)" ref) - (let ((branch (match-string 1 ref))) - (push (cons branch branch) refs))) - ((string-match "refs/tags/\\(.*\\)" ref) - (push (cons (format - (if (eq magit-remote-ref-format 'branch-then-remote) - "%s (tag)" "%s") - (match-string 1 ref)) - ref) - refs)) - ((string-match "refs/remotes/\\([^/]+\\)/\\(.+\\)" ref) - (push (cons (if (eq magit-remote-ref-format 'branch-then-remote) - (format "%s (%s)" - (match-string 2 ref) - (match-string 1 ref)) - (format "%s/%s" - (match-string 1 ref) - (match-string 2 ref))) - ref) - refs)))))) - (nreverse refs))) - -(defun magit-tree-contents (treeish) - "Returns a list of all files under TREEISH. TREEISH can be a tree, -a commit, or any reference to one of those." - (let ((return-value nil)) - (with-temp-buffer - (magit-git-insert (list "ls-tree" "-r" treeish)) - (if (eql 0 (buffer-size)) - (error "%s is not a commit or tree." treeish)) - (goto-char (point-min)) - (while (search-forward-regexp "\t\\(.*\\)" nil 'noerror) - (push (match-string 1) return-value))) - return-value)) - -(defvar magit-uninteresting-refs '("refs/remotes/\\([^/]+\\)/HEAD$")) - -(defun magit-read-file-from-rev (revision) - (magit-completing-read (format "Retrieve file from %s: " revision) - (magit-tree-contents revision) - nil - 'require-match - nil - 'magit-read-file-hist - (if buffer-file-name - (let ((topdir-length (length (magit-get-top-dir default-directory)))) - (substring (buffer-file-name) topdir-length))))) - -;; TODO: fix this so that def can (must?) be git rev instead of, say, "master (origin)" -;; which involves a particular display strategy and shouldn't be visible to callers -;; of magit-read-rev -(defun magit-read-rev (prompt &optional def uninteresting) - (let* ((interesting-refs (magit-list-interesting-refs - (or uninteresting magit-uninteresting-refs))) - (reply (magit-completing-read (concat prompt ": ") interesting-refs - nil nil nil 'magit-read-rev-history def)) - (rev (or (cdr (assoc reply interesting-refs)) reply))) - (if (string= rev "") - nil - rev))) - -(defun magit-read-rev-range (op &optional def-beg def-end) - (let ((beg (magit-read-rev (format "%s start" op) - def-beg))) - (if (not beg) - nil - (save-match-data - (if (string-match "^\\(.+\\)\\.\\.\\(.+\\)$" beg) - (cons (match-string 1 beg) (match-string 2 beg)) - (let ((end (magit-read-rev (format "%s end" op) def-end))) - (cons beg end))))))) - -(defun magit-rev-to-git (rev) - (or rev - (error "No revision specified")) - (if (string= rev ".") - (magit-marked-commit) - rev)) - -(defun magit-rev-range-to-git (range) - (or range - (error "No revision range specified")) - (if (stringp range) - range - (if (cdr range) - (format "%s..%s" - (magit-rev-to-git (car range)) - (magit-rev-to-git (cdr range))) - (format "%s" (magit-rev-to-git (car range)))))) - -(defun magit-rev-describe (rev) - (or rev - (error "No revision specified")) - (if (string= rev ".") - "mark" - (magit-name-rev rev))) - -(defun magit-rev-range-describe (range things) - (or range - (error "No revision range specified")) - (if (stringp range) - (format "%s in %s" things range) - (if (cdr range) - (format "%s from %s to %s" things - (magit-rev-describe (car range)) - (magit-rev-describe (cdr range))) - (format "%s at %s" things (magit-rev-describe (car range)))))) - -(defun magit-default-rev () - (or (magit-name-rev (magit-commit-at-point t)) - (let ((branch (magit-guess-branch))) - (if branch - (if (string-match "^refs/\\(.*\\)" branch) - (match-string 1 branch) - branch))))) - -(defun magit-read-remote (&optional prompt def) - "Read the name of a remote. -PROMPT is used as the prompt, and defaults to \"Remote\". -DEF is the default value, and defaults to the value of `magit-get-current-branch'." - (let* ((prompt (or prompt "Remote: ")) - (def (or def (magit-get-current-remote))) - (remotes (magit-git-lines "remote")) - (reply (magit-completing-read prompt remotes - nil nil nil nil def))) - (if (string= reply "") nil reply))) - -(defun magit-read-remote-branch (remote &optional prompt default) - (let* ((prompt (or prompt (format "Remote branch (in %s): " remote))) - (branches (delete nil - (mapcar - (lambda (b) - (and (not (string-match " -> " b)) - (string-match (format "^ *%s/\\(.*\\)$" - remote) b) - (match-string 1 b))) - (magit-git-lines "branch" "-r")))) - (reply (magit-completing-read prompt branches - nil nil nil nil default))) - (if (string= reply "") nil reply))) - -;;; Sections - -;; A buffer in magit-mode is organized into hierarchical sections. -;; These sections are used for navigation and for hiding parts of the -;; buffer. -;; -;; Most sections also represent the objects that Magit works with, -;; such as files, diffs, hunks, commits, etc. The 'type' of a section -;; identifies what kind of object it represents (if any), and the -;; parent and grand-parent, etc provide the context. - -(defstruct magit-section - parent title beginning end children hidden type info - needs-refresh-on-show) - -(defvar magit-top-section nil - "The top section of the current buffer.") -(make-variable-buffer-local 'magit-top-section) -(put 'magit-top-section 'permanent-local t) - -(defvar magit-old-top-section nil) - -(defvar magit-section-hidden-default nil) - -(defun magit-new-section (title type) - "Create a new section with title TITLE and type TYPE in current buffer. - -If not `magit-top-section' exist, the new section will be the new top-section -otherwise, the new-section will be a child of the current top-section. - -If TYPE is nil, the section won't be highlighted." - (let* ((s (make-magit-section :parent magit-top-section - :title title - :type type - :hidden magit-section-hidden-default)) - (old (and magit-old-top-section - (magit-find-section (magit-section-path s) - magit-old-top-section)))) - (if magit-top-section - (push s (magit-section-children magit-top-section)) - (setq magit-top-section s)) - (if old - (setf (magit-section-hidden s) (magit-section-hidden old))) - s)) - -(defun magit-cancel-section (section) - "Delete the section SECTION." - (delete-region (magit-section-beginning section) - (magit-section-end section)) - (let ((parent (magit-section-parent section))) - (if parent - (setf (magit-section-children parent) - (delq section (magit-section-children parent))) - (setq magit-top-section nil)))) - -(defmacro magit-with-section (title type &rest body) - "Create a new section of title TITLE and type TYPE and evaluate BODY there. - -Sections created inside BODY will become children of the new -section. BODY must leave point at the end of the created section. - -If TYPE is nil, the section won't be highlighted." - (declare (indent 2)) - (let ((s (make-symbol "*section*"))) - `(let* ((,s (magit-new-section ,title ,type)) - (magit-top-section ,s)) - (setf (magit-section-beginning ,s) (point)) - ,@body - (setf (magit-section-end ,s) (point)) - (setf (magit-section-children ,s) - (nreverse (magit-section-children ,s))) - ,s))) - -(defun magit-set-section (title type start end) - "Create a new section of title TITLE and type TYPE with specified start and -end positions." - (let ((section (magit-new-section title type))) - (setf (magit-section-beginning section) start) - (setf (magit-section-end section) end) - section)) - -(defun magit-set-section-info (info &optional section) - (setf (magit-section-info (or section magit-top-section)) info)) - -(defun magit-set-section-needs-refresh-on-show (flag &optional section) - (setf (magit-section-needs-refresh-on-show - (or section magit-top-section)) - flag)) - -(defmacro magit-create-buffer-sections (&rest body) - "Empty current buffer of text and Magit's sections, and then evaluate BODY." - (declare (indent 0)) - `(let ((inhibit-read-only t)) - (erase-buffer) - (let ((magit-old-top-section magit-top-section)) - (setq magit-top-section nil) - ,@body - (when (null magit-top-section) - (magit-with-section 'top nil - (insert "(empty)\n"))) - (magit-propertize-section magit-top-section) - (magit-section-set-hidden magit-top-section - (magit-section-hidden magit-top-section))))) - -(defun magit-propertize-section (section) - "Add text-property needed for SECTION." - (put-text-property (magit-section-beginning section) - (magit-section-end section) - 'magit-section section) - (dolist (s (magit-section-children section)) - (magit-propertize-section s))) - -(defun magit-find-section (path top) - "Find the section at the path PATH in subsection of section TOP." - (if (null path) - top - (let ((secs (magit-section-children top))) - (while (and secs (not (equal (car path) - (magit-section-title (car secs))))) - (setq secs (cdr secs))) - (and (car secs) - (magit-find-section (cdr path) (car secs)))))) - -(defun magit-section-path (section) - "Return the path of SECTION." - (if (not (magit-section-parent section)) - '() - (append (magit-section-path (magit-section-parent section)) - (list (magit-section-title section))))) - -(defun magit-find-section-after (pos) - "Find the first section that begins after POS." - (magit-find-section-after* pos (list magit-top-section))) - -(defun magit-find-section-after* (pos secs) - "Find the first section that begins after POS in the list SECS -\(including children of sections in SECS)." - (while (and secs - (<= (magit-section-beginning (car secs)) pos)) - (setq secs (if (magit-section-hidden (car secs)) - (cdr secs) - (append (magit-section-children (car secs)) - (cdr secs))))) - (car secs)) - -(defun magit-find-section-before (pos) - "Return the last section that begins before POS." - (let ((section (magit-find-section-at pos))) - (do* ((current (or (magit-section-parent section) - section) - next) - (next (if (not (magit-section-hidden current)) - (magit-find-section-before* pos (magit-section-children current))) - (if (not (magit-section-hidden current)) - (magit-find-section-before* pos (magit-section-children current))))) - ((null next) current)))) - -(defun magit-find-section-before* (pos secs) - "Find the last section that begins before POS in the list SECS." - (let ((prev nil)) - (while (and secs - (< (magit-section-beginning (car secs)) pos)) - (setq prev (car secs)) - (setq secs (cdr secs))) - prev)) - -(defun magit-current-section () - "Return the Magit section at point." - (magit-find-section-at (point))) - -(defun magit-find-section-at (pos) - "Return the Magit section at POS." - (or (get-text-property pos 'magit-section) - magit-top-section)) - -(defun magit-insert-section (section-title-and-type - buffer-title washer cmd &rest args) - "Run CMD and put its result in a new section. - -SECTION-TITLE-AND-TYPE is either a string that is the title of the section -or (TITLE . TYPE) where TITLE is the title of the section and TYPE is its type. - -If there is no type, or if type is nil, the section won't be highlighted. - -BUFFER-TITLE is the inserted title of the section - -WASHER is a function that will be run after CMD. -The buffer will be narrowed to the inserted text. -It should add sectioning as needed for Magit interaction. - -CMD is an external command that will be run with ARGS as arguments." - (let* ((body-beg nil) - (section-title (if (consp section-title-and-type) - (car section-title-and-type) - section-title-and-type)) - (section-type (if (consp section-title-and-type) - (cdr section-title-and-type) - nil)) - (section - (magit-with-section section-title section-type - (if buffer-title - (insert (propertize buffer-title 'face 'magit-section-title) - "\n")) - (setq body-beg (point)) - (magit-cmd-insert cmd args) - (if (not (eq (char-before) ?\n)) - (insert "\n")) - (if washer - (save-restriction - (narrow-to-region body-beg (point)) - (goto-char (point-min)) - (funcall washer) - (goto-char (point-max))))))) - (if (= body-beg (point)) - (magit-cancel-section section) - (insert "\n")) - section)) - -(defun magit-git-section (section-title-and-type - buffer-title washer &rest args) - "Run git and put its result in a new section. - -see `magit-insert-section' for meaning of the arguments" - (apply #'magit-insert-section - section-title-and-type - buffer-title - washer - magit-git-executable - (append magit-git-standard-options args))) - -(defun magit-goto-next-section () - "Go to the next Magit section." - (interactive) - (let ((next (magit-find-section-after (point)))) - (if next - (magit-goto-section next) - (message "No next section")))) - -(defun magit-goto-previous-section () - "Go to the previous Magit section." - (interactive) - (if (eq (point) 1) - (message "No previous section") - (magit-goto-section (magit-find-section-before (point))))) - -(defun magit-goto-parent-section () - "Go to the parent section." - (interactive) - (let ((parent (magit-section-parent (magit-current-section)))) - (when parent - (goto-char (magit-section-beginning parent))))) - -(defun magit-goto-section (section) - (goto-char (magit-section-beginning section)) - (cond - ((and magit-log-auto-more - (eq (magit-section-type section) 'longer)) - (magit-log-show-more-entries) - (forward-line -1) - (magit-goto-next-section)) - ((and (eq (magit-section-type section) 'commit) - (derived-mode-p 'magit-log-mode)) - (magit-show-commit section)))) - -(defun magit-goto-section-at-path (path) - "Go to the section described by PATH." - (let ((sec (magit-find-section path magit-top-section))) - (if sec - (goto-char (magit-section-beginning sec)) - (message "No such section")))) - -(defun magit-for-all-sections (func &optional top) - "Run FUNC on TOP and recursively on all its children. - -Default value for TOP is `magit-top-section'" - (let ((section (or top magit-top-section))) - (when section - (funcall func section) - (dolist (c (magit-section-children section)) - (magit-for-all-sections func c))))) - -(defun magit-section-set-hidden (section hidden) - "Hide SECTION if HIDDEN is not nil, show it otherwise." - (setf (magit-section-hidden section) hidden) - (if (and (not hidden) - (magit-section-needs-refresh-on-show section)) - (magit-refresh) - (let ((inhibit-read-only t) - (beg (save-excursion - (goto-char (magit-section-beginning section)) - (forward-line) - (point))) - (end (magit-section-end section))) - (if (< beg end) - (put-text-property beg end 'invisible hidden))) - (if (not hidden) - (dolist (c (magit-section-children section)) - (magit-section-set-hidden c (magit-section-hidden c)))))) - -(defun magit-section-any-hidden (section) - "Return true if SECTION or any of its children is hidden." - (or (magit-section-hidden section) - (let ((kids (magit-section-children section))) - (while (and kids (not (magit-section-any-hidden (car kids)))) - (setq kids (cdr kids))) - kids))) - -(defun magit-section-collapse (section) - "Show SECTION and hide all its children." - (dolist (c (magit-section-children section)) - (setf (magit-section-hidden c) t)) - (magit-section-set-hidden section nil)) - -(defun magit-section-expand (section) - "Show SECTION and all its children." - (dolist (c (magit-section-children section)) - (setf (magit-section-hidden c) nil)) - (magit-section-set-hidden section nil)) - -(defun magit-section-expand-all-aux (section) - "Show recursively all SECTION's children." - (dolist (c (magit-section-children section)) - (setf (magit-section-hidden c) nil) - (magit-section-expand-all-aux c))) - -(defun magit-section-expand-all (section) - "Show SECTION and all its children." - (magit-section-expand-all-aux section) - (magit-section-set-hidden section nil)) - -(defun magit-section-hideshow (flag-or-func) - "Show or hide current section depending on FLAG-OR-FUNC. - -If FLAG-OR-FUNC is a function, it will be ran on current section -IF FLAG-OR-FUNC is a Boolean value, the section will be hidden if its true, shown otherwise" - (let ((section (magit-current-section))) - (when (magit-section-parent section) - (goto-char (magit-section-beginning section)) - (if (functionp flag-or-func) - (funcall flag-or-func section) - (magit-section-set-hidden section flag-or-func))))) - -(defun magit-show-section () - "Show current section." - (interactive) - (magit-section-hideshow nil)) - -(defun magit-hide-section () - "Hide current section." - (interactive) - (magit-section-hideshow t)) - -(defun magit-collapse-section () - "Hide all subsection of current section." - (interactive) - (magit-section-hideshow #'magit-section-collapse)) - -(defun magit-expand-section () - "Show all subsection of current section." - (interactive) - (magit-section-hideshow #'magit-section-expand)) - -(defun magit-toggle-file-section () - "Like `magit-toggle-section' but toggle at file granularity." - (interactive) - (when (eq 'hunk (first (magit-section-context-type (magit-current-section)))) - (magit-goto-parent-section)) - (magit-toggle-section)) - -(defun magit-toggle-section () - "Toggle hidden status of current section." - (interactive) - (magit-section-hideshow - (lambda (s) - (magit-section-set-hidden s (not (magit-section-hidden s)))))) - -(defun magit-expand-collapse-section () - "Toggle hidden status of subsections of current section." - (interactive) - (magit-section-hideshow - (lambda (s) - (cond ((magit-section-any-hidden s) - (magit-section-expand-all s)) - (t - (magit-section-collapse s)))))) - -(defun magit-cycle-section () - "Cycle between expanded, hidden and collapsed state for current section. - -Hidden: only the first line of the section is shown -Collapsed: only the first line of the subsection is shown -Expanded: everything is shown." - (interactive) - (magit-section-hideshow - (lambda (s) - (cond ((magit-section-hidden s) - (magit-section-collapse s)) - ((notany #'magit-section-hidden (magit-section-children s)) - (magit-section-set-hidden s t)) - (t - (magit-section-expand s)))))) - -(defun magit-section-lineage (s) - "Return list of parent, grand-parents... for section S." - (when s - (cons s (magit-section-lineage (magit-section-parent s))))) - -(defun magit-section-show-level (section level threshold path) - (magit-section-set-hidden section (>= level threshold)) - (when (and (< level threshold) - (not (magit-no-commit-p))) - (if path - (magit-section-show-level (car path) (1+ level) threshold (cdr path)) - (dolist (c (magit-section-children section)) - (magit-section-show-level c (1+ level) threshold nil))))) - -(defun magit-show-level (level all) - "Show section whose level is less than LEVEL, hide the others. -If ALL is non nil, do this in all sections, -otherwise do it only on ancestors and descendants of current section." - (magit-with-refresh - (if all - (magit-section-show-level magit-top-section 0 level nil) - (let ((path (reverse (magit-section-lineage (magit-current-section))))) - (magit-section-show-level (car path) 0 level (cdr path)))))) - -(defun magit-show-only-files () - "Show section that are files, but not there subsection. - -Do this in on ancestors and descendants of current section." - (interactive) - (if (derived-mode-p 'magit-status-mode) - (call-interactively 'magit-show-level-2) - (call-interactively 'magit-show-level-1))) - -(defun magit-show-only-files-all () - "Show section that are files, but not there subsection. - -Do this for all sections" - (interactive) - (if (derived-mode-p 'magit-status-mode) - (call-interactively 'magit-show-level-2-all) - (call-interactively 'magit-show-level-1-all))) - -(defmacro magit-define-level-shower-1 (level all) - "Define an interactive function to show function of level LEVEL. - -If ALL is non nil, this function will affect all section, -otherwise it will affect only ancestors and descendants of current section." - (let ((fun (intern (format "magit-show-level-%s%s" - level (if all "-all" "")))) - (doc (format "Show sections on level %s." level))) - `(defun ,fun () - ,doc - (interactive) - (magit-show-level ,level ,all)))) - -(defmacro magit-define-level-shower (level) - "Define two interactive function to show function of level LEVEL. -one for all, one for current lineage." - `(progn - (magit-define-level-shower-1 ,level nil) - (magit-define-level-shower-1 ,level t))) - -(defmacro magit-define-section-jumper (sym title) - "Define an interactive function to go to section SYM. - -TITLE is the displayed title of the section." - (let ((fun (intern (format "magit-jump-to-%s" sym))) - (doc (format "Jump to section `%s'." title))) - `(defun ,fun () - ,doc - (interactive) - (magit-goto-section-at-path '(,sym))))) - -(defmacro magit-define-inserter (sym arglist &rest body) - (declare (indent defun)) - (let ((fun (intern (format "magit-insert-%s" sym))) - (before (intern (format "magit-before-insert-%s-hook" sym))) - (after (intern (format "magit-after-insert-%s-hook" sym))) - (doc (format "Insert items for `%s'." sym))) - `(defun ,fun ,arglist - ,doc - (run-hooks ',before) - ,@body - (run-hooks ',after)))) - -(defvar magit-highlight-overlay nil) - -(defvar magit-highlighted-section nil) - -(defun magit-highlight-section () - "Highlight current section if it has a type." - (let ((section (magit-current-section))) - (when (not (eq section magit-highlighted-section)) - (setq magit-highlighted-section section) - (if (not magit-highlight-overlay) - (let ((ov (make-overlay 1 1))) - (overlay-put ov 'face 'magit-item-highlight) - (setq magit-highlight-overlay ov))) - (if (and section (magit-section-type section)) - (move-overlay magit-highlight-overlay - (magit-section-beginning section) - (magit-section-end section) - (current-buffer)) - (delete-overlay magit-highlight-overlay))))) - -(defun magit-section-context-type (section) - (if (null section) - '() - (let ((c (or (magit-section-type section) - (if (symbolp (magit-section-title section)) - (magit-section-title section))))) - (if c - (cons c (magit-section-context-type - (magit-section-parent section))) - '())))) - -(defun magit-prefix-p (prefix list) - "Returns non-nil if PREFIX is a prefix of LIST. PREFIX and LIST should both be -lists. - -If the car of PREFIX is the symbol '*, then return non-nil if the cdr of PREFIX -is a sublist of LIST (as if '* matched zero or more arbitrary elements of LIST)" - ;;; Very schemish... - (or (null prefix) - (if (eq (car prefix) '*) - (or (magit-prefix-p (cdr prefix) list) - (and (not (null list)) - (magit-prefix-p prefix (cdr list)))) - (and (not (null list)) - (equal (car prefix) (car list)) - (magit-prefix-p (cdr prefix) (cdr list)))))) - -(defmacro magit-section-case (head &rest clauses) - "Make different action depending of current section. - -HEAD is (SECTION INFO &optional OPNAME), - SECTION will be bind to the current section, - INFO will be bind to the info's of the current section, - OPNAME is a string that will be used to describe current action, - -CLAUSES is a list of CLAUSE, each clause is (SECTION-TYPE &BODY) -where SECTION-TYPE describe section where BODY will be run. - -This returns non-nil if some section matches. If the -corresponding body return a non-nil value, it is returned, -otherwise it roturn t. - -If no section matches, this returns nil if no OPNAME was given -and throws an error otherwise." - (declare (indent 1)) - (let ((section (car head)) - (info (cadr head)) - (type (make-symbol "*type*")) - (context (make-symbol "*context*")) - (opname (caddr head))) - `(let* ((,section (magit-current-section)) - (,info (magit-section-info ,section)) - (,type (magit-section-type ,section)) - (,context (magit-section-context-type ,section))) - (cond ,@(mapcar (lambda (clause) - (if (eq (car clause) t) - `(t (or (progn ,@(cdr clause)) - t)) - (let ((prefix (reverse (car clause))) - (body (cdr clause))) - `((magit-prefix-p ',prefix ,context) - (or (progn ,@body) - t))))) - clauses) - ,@(when opname - `(((run-hook-with-args-until-success - ',(intern (format "magit-%s-action-hook" opname)))) - ((not ,type) - (error "Nothing to %s here" ,opname)) - (t - (error "Can't %s a %s" - ,opname - (or (get ,type 'magit-description) - ,type))))))))) - -(defmacro magit-section-action (head &rest clauses) - (declare (indent 1)) - `(magit-with-refresh - (magit-section-case ,head ,@clauses))) - -(defmacro magit-add-action (head &rest clauses) - "Add additional actions to a pre-existing operator. -The syntax is identical to `magit-section-case', except that -OPNAME is mandatory and specifies the operation to which to add -the actions." - (declare (indent 1)) - (let ((section (car head)) - (info (cadr head)) - (type (caddr head))) - `(add-hook ',(intern (format "magit-%s-action-hook" type)) - (lambda () - ,(macroexpand - ;; Don't pass in the opname so we don't recursively - ;; run the hook again, and so we don't throw an - ;; error if no action matches. - `(magit-section-case (,section ,info) - ,@clauses)))))) - -(defun magit-wash-sequence (func) - "Run FUNC until end of buffer is reached. - -FUNC should leave point at the end of the modified region" - (while (and (not (eobp)) - (funcall func)))) - -(defmacro magit-define-command (sym arglist &rest body) - "Macro to define a magit command. -It will define the magit-SYM function having ARGLIST as argument. -It will also define the magit-SYM-command-hook variable. - -The defined function will call the function in the hook in -order until one return non nil. If they all return nil then body will be called. - -It is used to define hookable magit command: command defined by this -function can be enriched by magit extension like magit-topgit and magit-svn" - (declare (indent defun) - (debug (&define name lambda-list - [&optional stringp] ; Match the doc string, if present. - [&optional ("interactive" interactive)] - def-body))) - (let ((fun (intern (format "magit-%s" sym))) - (hook (intern (format "magit-%s-command-hook" sym))) - (doc (format "Command for `%s'." sym)) - (inter nil) - (instr body)) - (when (stringp (car body)) - (setq doc (car body) - instr (cdr body))) - (let ((form (car instr))) - (when (eq (car form) 'interactive) - (setq inter form - instr (cdr instr)))) - `(defun ,fun ,arglist - ,doc - ,inter - (or (run-hook-with-args-until-success - ',hook ,@(remq '&optional (remq '&rest arglist))) - ,@instr)))) - -;;; Running commands - -(defun magit-set-mode-line-process (str) - (let ((pr (if str (concat " " str) ""))) - (save-excursion - (magit-for-all-buffers (lambda () - (setq mode-line-process pr)))))) - -(defun magit-process-indicator-from-command (comps) - (if (magit-prefix-p (cons magit-git-executable magit-git-standard-options) - comps) - (setq comps (nthcdr (+ (length magit-git-standard-options) 1) comps))) - (cond ((or (null (cdr comps)) - (not (member (car comps) '("remote")))) - (car comps)) - (t - (concat (car comps) " " (cadr comps))))) - -(defvar magit-process nil) -(defvar magit-process-client-buffer nil) -(defvar magit-process-buffer-name "*magit-process*" - "Buffer name for running git commands.") - -(defun magit-run* (cmd-and-args - &optional logline noerase noerror nowait input) - (if (and magit-process - (get-buffer magit-process-buffer-name)) - (error "Git is already running")) - (let ((cmd (car cmd-and-args)) - (args (cdr cmd-and-args)) - (dir default-directory) - (buf (get-buffer-create magit-process-buffer-name)) - (successp nil)) - (magit-set-mode-line-process - (magit-process-indicator-from-command cmd-and-args)) - (setq magit-process-client-buffer (current-buffer)) - (with-current-buffer buf - (view-mode 1) - (set (make-local-variable 'view-no-disable-on-exit) t) - (setq view-exit-action - (lambda (buffer) - (with-current-buffer buffer - (bury-buffer)))) - (setq buffer-read-only t) - (let ((inhibit-read-only t)) - (setq default-directory dir) - (if noerase - (goto-char (point-max)) - (erase-buffer)) - (insert "$ " (or logline - (mapconcat 'identity cmd-and-args " ")) - "\n") - (cond (nowait - (setq magit-process - (let ((process-connection-type magit-process-connection-type)) - (apply 'magit-start-process cmd buf cmd args))) - (set-process-sentinel magit-process 'magit-process-sentinel) - (set-process-filter magit-process 'magit-process-filter) - (when input - (with-current-buffer input - (process-send-region magit-process - (point-min) (point-max))) - (process-send-eof magit-process) - (sit-for 0.1 t)) - (cond ((= magit-process-popup-time 0) - (pop-to-buffer (process-buffer magit-process))) - ((> magit-process-popup-time 0) - (run-with-timer - magit-process-popup-time nil - (function - (lambda (buf) - (with-current-buffer buf - (when magit-process - (display-buffer (process-buffer magit-process)) - (goto-char (point-max)))))) - (current-buffer)))) - (setq successp t)) - (input - (with-current-buffer input - (setq default-directory dir) - (setq magit-process - ;; Don't use a pty, because it would set icrnl - ;; which would modify the input (issue #20). - (let ((process-connection-type nil)) - (apply 'magit-start-process cmd buf cmd args))) - (set-process-filter magit-process 'magit-process-filter) - (process-send-region magit-process - (point-min) (point-max)) - (process-send-eof magit-process) - (while (equal (process-status magit-process) 'run) - (sit-for 0.1 t)) - (setq successp - (equal (process-exit-status magit-process) 0)) - (setq magit-process nil)) - (magit-set-mode-line-process nil) - (magit-need-refresh magit-process-client-buffer)) - (t - (setq successp - (equal (apply 'process-file cmd nil buf nil args) 0)) - (magit-set-mode-line-process nil) - (magit-need-refresh magit-process-client-buffer)))) - (or successp - noerror - (error - "%s ... [Hit %s or see buffer %s for details]" - (or (with-current-buffer (get-buffer magit-process-buffer-name) - (when (re-search-backward - (concat "^error: \\(.*\\)" paragraph-separate) nil t) - (match-string 1))) - "Git failed") - (with-current-buffer magit-process-client-buffer - (key-description (car (where-is-internal - 'magit-display-process)))) - magit-process-buffer-name)) - successp))) - -(autoload 'dired-uncache "dired") -(defun magit-process-sentinel (process event) - (let ((msg (format "%s %s." (process-name process) (substring event 0 -1))) - (successp (string-match "^finished" event)) - (key (with-current-buffer magit-process-client-buffer - (key-description (car (where-is-internal - 'magit-display-process)))))) - (with-current-buffer (process-buffer process) - (let ((inhibit-read-only t)) - (goto-char (point-max)) - (insert msg "\n") - (message (if successp msg - (format "%s Hit %s or see buffer %s for details." - msg key (current-buffer))))) - (unless (memq (process-status process) '(run open)) - (dired-uncache default-directory))) - (setq magit-process nil) - (magit-set-mode-line-process nil) - (magit-refresh-buffer magit-process-client-buffer))) - -(defun magit-password (proc string) - "Checks if git/ssh asks for a password and ask the user for it." - (let (ask) - (cond ((or (string-match "^Enter passphrase for key '\\\(.*\\\)': $" string) - (string-match "^\\\(.*\\\)'s password:" string)) - (setq ask (format "Password for '%s': " (match-string 1 string)))) - ((string-match "^[pP]assword:" string) - (setq ask "Password:"))) - (when ask - (process-send-string proc (concat (read-passwd ask nil) "\n"))))) - -(defun magit-process-filter (proc string) - (save-current-buffer - (set-buffer (process-buffer proc)) - (let ((inhibit-read-only t)) - (magit-password proc string) - (goto-char (process-mark proc)) - ;; Find last ^M in string. If one was found, ignore everything - ;; before it and delete the current line. - (let ((ret-pos (length string))) - (while (and (>= (setq ret-pos (1- ret-pos)) 0) - (/= ?\r (aref string ret-pos)))) - (cond ((>= ret-pos 0) - (goto-char (line-beginning-position)) - (delete-region (point) (line-end-position)) - (insert (substring string (+ ret-pos 1)))) - (t - (insert string)))) - (set-marker (process-mark proc) (point))))) - -(defun magit-run (cmd &rest args) - (magit-with-refresh - (magit-run* (cons cmd args)))) - -(defun magit-run-git (&rest args) - (magit-with-refresh - (magit-run* (append (cons magit-git-executable - magit-git-standard-options) - args)))) - -(defun magit-run-git-with-input (input &rest args) - (magit-with-refresh - (magit-run* (append (cons magit-git-executable - magit-git-standard-options) - args) - nil nil nil nil input))) - -(defun magit-run-git-async (&rest args) - (message "Running %s %s" magit-git-executable (mapconcat 'identity args " ")) - (magit-run* (append (cons magit-git-executable - magit-git-standard-options) - args) - nil nil nil t)) - -(defun magit-run-async-with-input (input cmd &rest args) - (magit-run* (cons cmd args) nil nil nil t input)) - -(defun magit-display-process () - "Display output from most recent git command." - (interactive) - (unless (get-buffer magit-process-buffer-name) - (error "No Git commands have run")) - (display-buffer magit-process-buffer-name)) - -;;; Mode - -;; We define individual functions (instead of using lambda etc) so -;; that the online help can show something meaningful. - -(magit-define-section-jumper untracked "Untracked files") -(magit-define-section-jumper unstaged "Unstaged changes") -(magit-define-section-jumper staged "Staged changes") -(magit-define-section-jumper unpushed "Unpushed commits") - -(magit-define-level-shower 1) -(magit-define-level-shower 2) -(magit-define-level-shower 3) -(magit-define-level-shower 4) - -(easy-menu-define magit-mode-menu magit-mode-map - "Magit menu" - '("Magit" - ["Refresh" magit-refresh t] - ["Refresh all" magit-refresh-all t] - "---" - ["Stage" magit-stage-item t] - ["Stage all" magit-stage-all t] - ["Unstage" magit-unstage-item t] - ["Unstage all" magit-unstage-all t] - ["Commit" magit-log-edit t] - ["Add log entry" magit-add-log t] - ["Tag" magit-tag t] - ["Annotated tag" magit-annotated-tag t] - "---" - ["Diff working tree" magit-diff-working-tree t] - ["Diff" magit-diff t] - ("Log" - ["Short Log" magit-log t] - ["Long Log" magit-log-long t] - ["Reflog" magit-reflog t] - ["Extended..." magit-key-mode-popup-logging t]) - "---" - ["Cherry pick" magit-cherry-pick-item t] - ["Apply" magit-apply-item t] - ["Revert" magit-revert-item t] - "---" - ["Ignore" magit-ignore-item t] - ["Ignore locally" magit-ignore-item-locally t] - ["Discard" magit-discard-item t] - ["Reset head" magit-reset-head t] - ["Reset working tree" magit-reset-working-tree t] - ["Stash" magit-stash t] - ["Snapshot" magit-stash-snapshot t] - "---" - ["Branch..." magit-checkout t] - ["Merge" magit-automatic-merge t] - ["Interactive resolve" magit-interactive-resolve-item t] - ["Rebase" magit-rebase-step t] - ("Rewrite" - ["Start" magit-rewrite-start t] - ["Stop" magit-rewrite-stop t] - ["Finish" magit-rewrite-finish t] - ["Abort" magit-rewrite-abort t] - ["Set used" magit-rewrite-set-used t] - ["Set unused" magit-rewrite-set-unused t]) - "---" - ["Push" magit-push t] - ["Pull" magit-pull t] - ["Remote update" magit-remote-update t] - ("Submodule" - ["Submodule update" magit-submodule-update t] - ["Submodule update and init" magit-submodule-update-init t] - ["Submodule init" magit-submodule-init t] - ["Submodule sync" magit-submodule-sync t]) - "---" - ("Extensions") - "---" - ["Display Git output" magit-display-process t] - ["Quit Magit" magit-quit-window t])) - -(defvar magit-mode-hook nil "Hook run by `magit-mode'.") - -(put 'magit-mode 'mode-class 'special) - -(defvar magit-refresh-function nil) -(make-variable-buffer-local 'magit-refresh-function) -(put 'magit-refresh-function 'permanent-local t) - -(defvar magit-refresh-args nil) -(make-variable-buffer-local 'magit-refresh-args) -(put 'magit-refresh-args 'permanent-local t) - -(defvar last-point) - -(defun magit-remember-point () - (setq last-point (point))) - -(defun magit-invisible-region-end (pos) - (while (and (not (= pos (point-max))) (invisible-p pos)) - (setq pos (next-char-property-change pos))) - pos) - -(defun magit-invisible-region-start (pos) - (while (and (not (= pos (point-min))) (invisible-p pos)) - (setq pos (1- (previous-char-property-change pos)))) - pos) - -(defun magit-correct-point-after-command () - "Move point outside of invisible regions. - -Emacs often leaves point in invisible regions, it seems. To fix -this, we move point ourselves and never let Emacs do its own -adjustments. - -When point has to be moved out of an invisible region, it can be -moved to its end or its beginning. We usually move it to its -end, except when that would move point back to where it was -before the last command." - (if (invisible-p (point)) - (let ((end (magit-invisible-region-end (point)))) - (goto-char (if (= end last-point) - (magit-invisible-region-start (point)) - end)))) - (setq disable-point-adjustment t)) - -(defun magit-post-command-hook () - (magit-correct-point-after-command) - (magit-highlight-section)) - -(defun magit-mode () - "Review the status of a git repository and act on it. - -Please see the manual for a complete description of Magit. - -\\{magit-mode-map}" - (kill-all-local-variables) - (buffer-disable-undo) - (setq buffer-read-only t) - (setq major-mode 'magit-mode - mode-name "Magit" - mode-line-process "") - (add-hook 'pre-command-hook #'magit-remember-point nil t) - (add-hook 'post-command-hook #'magit-post-command-hook t t) - (use-local-map magit-mode-map) - (setq magit-current-indentation (magit-indentation-for default-directory)) - ;; Emacs' normal method of showing trailing whitespace gives weird - ;; results when `magit-whitespace-warning-face' is different from - ;; `trailing-whitespace'. - (if (and magit-highlight-whitespace magit-highlight-trailing-whitespace) - (setq show-trailing-whitespace nil)) - (run-mode-hooks 'magit-mode-hook)) - -(defun magit-mode-init (dir submode refresh-func &rest refresh-args) - (setq default-directory dir - magit-refresh-function refresh-func - magit-refresh-args refresh-args) - (funcall submode) - (magit-refresh-buffer)) - -(defun magit-indentation-for (dir) - (let (result) - (dolist (pair magit-highlight-indentation) - (if (string-match-p (car pair) dir) - (setq result (cdr pair)))) - result)) - -(defun magit-find-buffer (submode &optional dir) - (let ((topdir (magit-get-top-dir (or dir default-directory)))) - (dolist (buf (buffer-list)) - (if (with-current-buffer buf - (and (eq major-mode submode) - default-directory - (equal (expand-file-name default-directory) topdir))) - (return buf))))) - -(defun magit-find-status-buffer (&optional dir) - (magit-find-buffer 'magit-status-mode dir)) - -(defun magit-for-all-buffers (func &optional dir) - (dolist (buf (buffer-list)) - (with-current-buffer buf - (if (and (derived-mode-p 'magit-mode) - (or (null dir) - (equal default-directory dir))) - (funcall func))))) - -(defun magit-refresh-buffer (&optional buffer) - (with-current-buffer (or buffer (current-buffer)) - (let* ((old-line (line-number-at-pos)) - (old-point (point)) - (old-section (magit-current-section)) - (old-path (and old-section - (magit-section-path (magit-current-section))))) - (beginning-of-line) - (let ((section-line (and old-section - (count-lines - (magit-section-beginning old-section) - (point)))) - (line-char (- old-point (point)))) - (if magit-refresh-function - (apply magit-refresh-function - magit-refresh-args)) - (magit-refresh-marked-commits-in-buffer) - (let ((s (and old-path (magit-find-section old-path magit-top-section)))) - (cond (s - (goto-char (magit-section-beginning s)) - (forward-line section-line) - (forward-char line-char)) - (t - (magit-goto-line old-line))) - (dolist (w (get-buffer-window-list (current-buffer))) - (set-window-point w (point))) - (magit-highlight-section)))))) - -(defun magit-string-has-prefix-p (string prefix) - (eq (compare-strings string nil (length prefix) prefix nil nil) t)) - -(defun magit-revert-buffers (dir &optional ignore-modtime) - (dolist (buffer (buffer-list)) - (when (and buffer - (buffer-file-name buffer) - ;; don't revert indirect buffers, as the parent will be reverted - (not (buffer-base-buffer buffer)) - (magit-string-has-prefix-p (buffer-file-name buffer) dir) - (file-readable-p (buffer-file-name buffer)) - (or ignore-modtime (not (verify-visited-file-modtime buffer))) - (not (buffer-modified-p buffer))) - (with-current-buffer buffer - (condition-case var - (revert-buffer t t nil) - (error (let ((signal-data (cadr var))) - (cond (t (magit-bug-report signal-data)))))))))) - -(defun magit-update-vc-modeline (dir) - "Update the modeline for buffers representable by magit." - (dolist (buffer (buffer-list)) - (when (and buffer - (buffer-file-name buffer) - (magit-string-has-prefix-p (buffer-file-name buffer) dir)) - (with-current-buffer buffer - (condition-case var - (vc-find-file-hook) - (error (let ((signal-data (cadr var))) - (cond (t (magit-bug-report signal-data)))))))))) - -(defvar magit-refresh-needing-buffers nil) -(defvar magit-refresh-pending nil) - -(defun magit-refresh-wrapper (func) - (if magit-refresh-pending - (funcall func) - (let* ((dir default-directory) - (status-buffer (magit-find-status-buffer dir)) - (magit-refresh-needing-buffers nil) - (magit-refresh-pending t)) - (unwind-protect - (funcall func) - (when magit-refresh-needing-buffers - (magit-revert-buffers dir) - (dolist (b (adjoin status-buffer - magit-refresh-needing-buffers)) - (magit-refresh-buffer b))))))) - -(defun magit-need-refresh (&optional buffer) - "Mark BUFFER as needing to be refreshed. If BUFFER is nil, use the -current buffer." - (pushnew (or buffer (current-buffer)) magit-refresh-needing-buffers :test 'eq)) - -(defun magit-refresh () - "Refresh current buffer to match repository state. -Also revert every unmodified buffer visiting files -in the corresponding directory." - (interactive) - (magit-with-refresh - (magit-need-refresh))) - -(defun magit-refresh-all () - "Refresh all magit buffers to match respective repository states. -Also revert every unmodified buffer visiting files -in the corresponding directories." - (interactive) - (magit-for-all-buffers #'magit-refresh-buffer default-directory)) - -;;; Untracked files - -(defun magit-wash-untracked-file () - (if (looking-at "^? \\(.*\\)$") - (let ((file (match-string-no-properties 1))) - (delete-region (point) (+ (line-end-position) 1)) - (magit-with-section file 'file - (magit-set-section-info file) - (insert "\t" file "\n")) - t) - nil)) - -(defun magit-wash-untracked-files () - ;; Setting magit-old-top-section to nil speeds up washing: no time - ;; is wasted looking up the old visibility, which doesn't matter for - ;; untracked files. - ;; - ;; XXX - speed this up in a more general way. - ;; - (let ((magit-old-top-section nil)) - (magit-wash-sequence #'magit-wash-untracked-file))) - -(defun magit-insert-untracked-files () - (unless (string= (magit-get "status" "showUntrackedFiles") "no") - (apply 'magit-git-section - `(untracked - "Untracked files:" - magit-wash-untracked-files - "ls-files" "--others" "-t" "--exclude-standard" - ,@(when magit-omit-untracked-dir-contents - '("--directory")))))) - -;;; Diffs and Hunks - -(defvar magit-diff-context-lines 3) - -(defun magit-diff-U-arg () - (format "-U%d" magit-diff-context-lines)) - -(defun magit-diff-smaller-hunks (&optional count) - "Decrease the context for diff hunks by COUNT." - (interactive "p") - (setq magit-diff-context-lines (max 0 (- magit-diff-context-lines count))) - (magit-refresh)) - -(defun magit-diff-larger-hunks (&optional count) - "Increase the context for diff hunks by COUNT." - (interactive "p") - (setq magit-diff-context-lines (+ magit-diff-context-lines count)) - (magit-refresh)) - -(defun magit-diff-default-hunks () - "Reset context for diff hunks to the default size." - (interactive "") - (setq magit-diff-context-lines 3) - (magit-refresh)) - -(defun magit-diff-line-file () - (cond ((looking-at "^diff --git ./\\(.*\\) ./\\(.*\\)$") - (match-string-no-properties 2)) - ((looking-at "^diff --cc +\\(.*\\)$") - (match-string-no-properties 1)) - (t - nil))) - -(defun magit-wash-diffs () - (magit-wash-sequence #'magit-wash-diff-or-other-file)) - -(defun magit-wash-diff-or-other-file () - (or (magit-wash-diff) - (magit-wash-other-file))) - -(defun magit-wash-other-file () - (if (looking-at "^? \\(.*\\)$") - (let ((file (match-string-no-properties 1))) - (delete-region (point) (+ (line-end-position) 1)) - (magit-with-section file 'file - (magit-set-section-info file) - (insert "\tNew " file "\n")) - t) - nil)) - -(defvar magit-hide-diffs nil) - -(defvar magit-indentation-level 1) - -(defun magit-insert-diff-title (status file file2) - (let ((status-text (case status - ((unmerged) - (format "Unmerged %s" file)) - ((new) - (format "New %s" file)) - ((deleted) - (format "Deleted %s" file)) - ((renamed) - (format "Renamed %s (from %s)" - file file2)) - ((modified) - (format "Modified %s" file)) - ((typechange) - (format "Typechange %s" file)) - (t - (format "? %s" file))))) - (insert (make-string magit-indentation-level ?\t) status-text "\n"))) - -(defvar magit-current-diff-range nil - "Used internally when setting up magit diff sections.") - -(defun magit-wash-typechange-section (file) - (magit-set-section-info (list 'typechange file)) - (let ((first-start (point-marker)) - (second-start (progn (forward-line 1) - (search-forward-regexp "^diff") - (beginning-of-line) - (point-marker)))) - (let ((magit-indentation-level (+ magit-indentation-level 1))) - (save-restriction - (narrow-to-region first-start second-start) - (goto-char (point-min)) - (magit-with-section file 'diff - (magit-wash-diff-section))) - (save-restriction - (narrow-to-region second-start (point-max)) - (goto-char (point-min)) - (magit-with-section file 'diff - (magit-wash-diff-section)))))) - -(defun magit-wash-diff-section () - (cond ((looking-at "^\\* Unmerged path \\(.*\\)") - (let ((file (match-string-no-properties 1))) - (delete-region (point) (line-end-position)) - (insert "\tUnmerged " file "\n") - (magit-set-section-info (list 'unmerged file nil)) - t)) - ((looking-at "^diff") - (let ((file (magit-diff-line-file)) - (end (save-excursion - (forward-line) ;; skip over "diff" line - (if (search-forward-regexp "^diff\\|^@@" nil t) - (goto-char (match-beginning 0)) - (goto-char (point-max))) - (point-marker)))) - (let* ((status (cond - ((looking-at "^diff --cc") - 'unmerged) - ((save-excursion - (search-forward-regexp "^new file" end t)) - 'new) - ((save-excursion - (search-forward-regexp "^deleted" end t)) - 'deleted) - ((save-excursion - (search-forward-regexp "^rename" end t)) - 'renamed) - (t - 'modified))) - (file2 (cond - ((save-excursion - (search-forward-regexp "^rename from \\(.*\\)" - end t)) - (match-string-no-properties 1))))) - (magit-set-section-info (list status - file - (or file2 file) - magit-current-diff-range)) - (magit-insert-diff-title status file file2) - (when (search-forward-regexp "\\(--- \\(.*\\)\n\\+\\+\\+ \\(.*\\)\n\\)" () t) - (when (match-string 1) - (add-text-properties (match-beginning 1) (match-end 1) - '(face magit-diff-hunk-header)) - (add-text-properties (match-beginning 2) (match-end 2) - '(face magit-diff-file-header)) - (add-text-properties (match-beginning 3) (match-end 3) - '(face magit-diff-file-header)))) - (goto-char end) - (let ((magit-section-hidden-default nil)) - (magit-wash-sequence #'magit-wash-hunk)))) - t) - (t - nil))) - -(defun magit-wash-diff () - (let ((magit-section-hidden-default magit-hide-diffs)) - (magit-with-section (magit-current-line) 'diff - (magit-wash-diff-section)))) - -(defun magit-diff-item-kind (diff) - (car (magit-section-info diff))) - -(defun magit-diff-item-file (diff) - (cadr (magit-section-info diff))) - -(defun magit-diff-item-file2 (diff) - (caddr (magit-section-info diff))) - -(defun magit-diff-item-range (diff) - (nth 3 (magit-section-info diff))) - -(defun magit-wash-hunk () - (cond ((looking-at "\\(^@+\\)[^@]*@+.*") - (let ((n-columns (1- (length (match-string 1)))) - (head (match-string 0))) - (magit-with-section head 'hunk - (add-text-properties (match-beginning 0) (match-end 0) - '(face magit-diff-hunk-header)) - (forward-line) - (while (not (or (eobp) - (looking-at "^diff\\|^@@"))) - (magit-highlight-line-whitespace) - (let ((prefix (buffer-substring-no-properties - (point) (min (+ (point) n-columns) (point-max))))) - (cond ((string-match "\\+" prefix) - (magit-put-line-property 'face 'magit-diff-add)) - ((string-match "-" prefix) - (magit-put-line-property 'face 'magit-diff-del)) - (t - (magit-put-line-property 'face 'magit-diff-none)))) - (forward-line)))) - t) - (t - nil))) - -(defvar magit-diff-options nil) - -(defun magit-insert-diff (file status) - (let ((cmd magit-git-executable) - (args (append (list "diff") - (list (magit-diff-U-arg)) - magit-diff-options - (list "--" file)))) - (let ((p (point))) - (magit-git-insert args) - (if (not (eq (char-before) ?\n)) - (insert "\n")) - (save-restriction - (narrow-to-region p (point)) - (goto-char p) - (cond - ((eq status 'typechange) - (magit-insert-diff-title status file file) - (magit-wash-typechange-section file)) - (t - (magit-wash-diff-section))) - (goto-char (point-max)))))) - -(defvar magit-last-raw-diff nil) -(defvar magit-ignore-unmerged-raw-diffs nil) - -(defun magit-wash-raw-diffs () - (let ((magit-last-raw-diff nil)) - (magit-wash-sequence #'magit-wash-raw-diff))) - -(defun magit-wash-raw-diff () - (if (looking-at - ":\\([0-7]+\\) \\([0-7]+\\) [0-9a-f]+ [0-9a-f]+ \\(.\\)[0-9]*\t\\([^\t\n]+\\)$") - (let ((old-perm (match-string-no-properties 1)) - (new-perm (match-string-no-properties 2)) - (status (case (string-to-char (match-string-no-properties 3)) - (?A 'new) - (?D 'deleted) - (?M 'modified) - (?U 'unmerged) - (?T 'typechange) - (t nil))) - (file (match-string-no-properties 4))) - ;; If this is for the same file as the last diff, ignore it. - ;; Unmerged files seem to get two entries. - ;; We also ignore unmerged files when told so. - (if (or (equal file magit-last-raw-diff) - (and magit-ignore-unmerged-raw-diffs (eq status 'unmerged))) - (delete-region (point) (+ (line-end-position) 1)) - (setq magit-last-raw-diff file) - ;; The 'diff' section that is created here will not work with - ;; magit-insert-diff-item-patch etc when we leave it empty. - ;; Luckily, raw diffs are only produced for staged and - ;; unstaged changes, and we never call - ;; magit-insert-diff-item-patch on them. This is a bit - ;; brittle, of course. - (let ((magit-section-hidden-default magit-hide-diffs)) - (magit-with-section file 'diff - (delete-region (point) (+ (line-end-position) 1)) - (if (not (magit-section-hidden magit-top-section)) - (magit-insert-diff file status) - (magit-set-section-info (list status file nil)) - (magit-set-section-needs-refresh-on-show t) - (magit-insert-diff-title status file nil))))) - t) - nil)) - -(defun magit-hunk-item-diff (hunk) - (let ((diff (magit-section-parent hunk))) - (or (eq (magit-section-type diff) 'diff) - (error "Huh? Parent of hunk not a diff")) - diff)) - -(defun magit-diff-item-insert-header (diff buf) - (let ((beg (save-excursion - (goto-char (magit-section-beginning diff)) - (forward-line) - (point))) - (end (if (magit-section-children diff) - (magit-section-beginning (car (magit-section-children diff))) - (magit-section-end diff)))) - (magit-insert-region beg end buf))) - -(defun magit-insert-diff-item-patch (diff buf) - (let ((beg (save-excursion - (goto-char (magit-section-beginning diff)) - (forward-line) - (point))) - (end (magit-section-end diff))) - (magit-insert-region beg end buf))) - -(defun magit-insert-hunk-item-patch (hunk buf) - (magit-diff-item-insert-header (magit-hunk-item-diff hunk) buf) - (magit-insert-region (magit-section-beginning hunk) (magit-section-end hunk) - buf)) - -(defun magit-insert-hunk-item-region-patch (hunk reverse beg end buf) - (magit-diff-item-insert-header (magit-hunk-item-diff hunk) buf) - (save-excursion - (goto-char (magit-section-beginning hunk)) - (magit-insert-current-line buf) - (forward-line) - (let ((copy-op (if reverse "+" "-"))) - (while (< (point) (magit-section-end hunk)) - (if (and (<= beg (point)) (< (point) end)) - (magit-insert-current-line buf) - (cond ((looking-at " ") - (magit-insert-current-line buf)) - ((looking-at copy-op) - (let ((text (buffer-substring-no-properties - (+ (point) 1) (line-beginning-position 2)))) - (with-current-buffer buf - (insert " " text)))))) - (forward-line)))) - (with-current-buffer buf - (diff-fixup-modifs (point-min) (point-max)))) - -(defun magit-hunk-item-is-conflict-p (hunk) - ;;; XXX - Using the title is a bit too clever... - (string-match "^diff --cc" - (magit-section-title (magit-hunk-item-diff hunk)))) - -(defun magit-hunk-item-target-line (hunk) - (save-excursion - (beginning-of-line) - (let ((line (line-number-at-pos))) - (goto-char (magit-section-beginning hunk)) - (if (not (looking-at "@@+ .* \\+\\([0-9]+\\)\\(,[0-9]+\\)? @@+")) - (error "Hunk header not found")) - (let ((target (string-to-number (match-string 1)))) - (forward-line) - (while (< (line-number-at-pos) line) - ;; XXX - deal with combined diffs - (if (not (looking-at "-")) - (setq target (+ target 1))) - (forward-line)) - target)))) - -(defun magit-show (commit filename &optional select prefix) - "Returns a buffer containing the contents of the file FILENAME, as stored in -COMMIT. COMMIT may be one of the following: - -- A string with the name of a commit, such as \"head\" or \"dae86e\". See 'git - help revisions' for syntax. -- The symbol 'index, indicating that you want the version in Git's index or - staging area. -- The symbol 'working, indicating that you want the version in the working - directory. In this case you'll get a buffer visiting the file. If there's - already a buffer visiting that file, you'll get that one. - -When called interactively or when SELECT is non-nil, make the buffer active, -either in another window or (with a prefix argument) in the current window." - (interactive (let* ((revision (magit-read-rev "Retrieve file from revision")) - (filename (magit-read-file-from-rev revision))) - (list revision filename t current-prefix-arg))) - (if (eq commit 'working) - (find-file-noselect filename) - (let ((buffer (create-file-buffer (format "%s.%s" filename (replace-regexp-in-string ".*/" "" (prin1-to-string commit t)))))) - (cond - ((eq commit 'index) - (let ((checkout-string (magit-git-string "checkout-index" - "--temp" - filename))) - (string-match "^\\(.*\\)\t" checkout-string) - (with-current-buffer buffer - (let ((tmpname (match-string 1 checkout-string))) - (magit-with-silent-modifications - (insert-file-contents tmpname nil nil nil t)) - (delete-file tmpname))))) - (t - (with-current-buffer buffer - (magit-with-silent-modifications - (magit-git-insert (list "cat-file" "-p" - (concat commit ":" filename))))))) - (with-current-buffer buffer - (let ((buffer-file-name filename)) - (normal-mode)) - (goto-char (point-min))) - (if select - (if prefix - (switch-to-buffer buffer) - (switch-to-buffer-other-window buffer)) - buffer)))) - -(defmacro with-magit-tmp-buffer (var &rest body) - (declare (indent 1) - (debug (symbolp &rest form))) - `(let ((,var (generate-new-buffer magit-tmp-buffer-name))) - (unwind-protect - (progn ,@body) - (kill-buffer ,var)))) - -(defun magit-apply-diff-item (diff &rest args) - (when (zerop magit-diff-context-lines) - (setq args (cons "--unidiff-zero" args))) - (with-magit-tmp-buffer tmp - (magit-insert-diff-item-patch diff tmp) - (apply #'magit-run-git-with-input tmp - "apply" (append args (list "-"))))) - -(defun magit-apply-hunk-item* (hunk reverse &rest args) - (when (zerop magit-diff-context-lines) - (setq args (cons "--unidiff-zero" args))) - (with-magit-tmp-buffer tmp - (if (magit-use-region-p) - (magit-insert-hunk-item-region-patch - hunk reverse (region-beginning) (region-end) tmp) - (magit-insert-hunk-item-patch hunk tmp)) - (apply #'magit-run-git-with-input tmp - "apply" (append args (list "-"))))) - -(defun magit-apply-hunk-item (hunk &rest args) - (apply #'magit-apply-hunk-item* hunk nil args)) - -(defun magit-apply-hunk-item-reverse (hunk &rest args) - (apply #'magit-apply-hunk-item* hunk t (cons "--reverse" args))) - -(magit-define-inserter unstaged-changes (title) - (let ((magit-hide-diffs t) - (magit-current-diff-range (cons 'index 'working))) - (let ((magit-diff-options (append '() magit-diff-options))) - (magit-git-section 'unstaged title 'magit-wash-raw-diffs - "diff-files")))) - -(magit-define-inserter staged-changes (staged no-commit) - (let ((magit-current-diff-range (cons "HEAD" 'index))) - (when staged - (let ((magit-hide-diffs t) - (base (if no-commit - (magit-git-string "mktree") - "HEAD"))) - (let ((magit-diff-options (append '("--cached") magit-diff-options)) - (magit-ignore-unmerged-raw-diffs t)) - (magit-git-section 'staged "Staged changes:" 'magit-wash-raw-diffs - "diff-index" "--cached" - base)))))) - -;;; Logs and Commits - - ; Note: making this a plain defcustom would probably let users break - ; the parser too easily -(defvar magit-git-log-options - '("--pretty=format:* %H %s")) - ; --decorate=full otherwise some ref prefixes are stripped - ; '("--pretty=format:* %H%d %s" "--decorate=full")) - -;; -;; Regexps for parsing ref names -;; -;; see the `git-check-ref-format' manpage for details - -(defconst magit-ref-nonchars "\000-\037\177 ~^:?*[\\" - "Characters specifically disallowed from appearing in Git symbolic refs. - -Evaluate (man \"git-check-ref-format\") for details") - -(defconst magit-ref-nonslash-re - (concat "\\(?:" - ;; "no slash-separated component can begin with a dot ." (rule 1) - "[^" magit-ref-nonchars "./]" - ;; "cannot have two consecutive dots .. anywhere." (rule 3) - "\\.?" - "\\)*") - "Regexp that matches the non-slash parts of a ref name. - -Evaluate (man \"git-check-ref-format\") for details") - -(defconst magit-refname-re - (concat - "\\(?:HEAD\\|" - - "\\(?:tag: \\)?" - - ;; optional non-slash sequence at the beginning - magit-ref-nonslash-re - - ;; any number of slash-prefixed sequences - "\\(?:" - "/" - magit-ref-nonslash-re - "\\)*" - - "/" ;; "must contain at least one /." (rule 2) - magit-ref-nonslash-re - - ;; "cannot end with a slash / nor a dot .." (rule 5) - "[^" magit-ref-nonchars "./]" - - "\\)" - ) - "Regexp that matches a git symbolic reference name. - -Evaluate (man \"git-check-ref-format\") for details") - -(defconst magit-log-oneline-re - (concat - "^\\([_\\*|/ -.]+\\)?" ; graph (1) - "\\(?:commit \\)?" ; this happens in long mode - "\\(?:" - "\\([0-9a-fA-F]\\{40\\}\\)" ; sha1 (2) - - "\\(?:" ; refs (3) - " " - "\\(" - "(" - magit-refname-re "\\(?:, " magit-refname-re "\\)*" - ")" - "\\)" - "\\)?" - "\\)?" - - " ?\\(.*\\)$" ; msg (4) - ) - "Regexp used to extract elements of git log output. -Those output are generated by --pretty=oneline with graph, or 'magit-git-log-options above. -This is also made compatible with long log lines.") - -(defvar magit-present-log-line-function 'magit-present-log-line - "The function to use when generating a log line. -It takes four args: CHART, SHA1, REFS and MESSAGE. The function -must return a string which will represent the log line.") - -(defun magit-log-get-bisect-state-color (suffix) - (if (string= suffix "bad") - (list suffix 'magit-log-head-label-bisect-bad) - (list suffix 'magit-log-head-label-bisect-good))) - -(defun magit-log-get-patches-color (suffix) - (list (and (string-match ".+/\\(.+\\)" suffix) - (match-string 1 suffix)) - 'magit-log-head-label-patches)) - -(defvar magit-log-remotes-color-hook nil) - -(defun magit-log-get-remotes-color (suffix) - (or - (run-hook-with-args-until-success - 'magit-log-remotes-color-hook suffix) - (list suffix 'magit-log-head-label-remote))) - -(defvar magit-refs-namespaces - '(("tags" . magit-log-head-label-tags) - ("remotes" magit-log-get-remotes-color) - ("heads" . magit-log-head-label-local) - ("patches" magit-log-get-patches-color) - ("bisect" magit-log-get-bisect-state-color))) - -(defun magit-ref-get-label-color (r) - (let* ((ref-re "\\(?:tag: \\)?refs/\\(?:\\([^/]+\\)/\\)?\\(.+\\)") - (label (and (string-match ref-re r) - (match-string 2 r))) - (res (let ((colorizer - (cdr (assoc (match-string 1 r) - magit-refs-namespaces)))) - (cond ((null colorizer) - (list r 'magit-log-head-label-default)) - ((symbolp colorizer) - (list label colorizer)) - ((listp colorizer) - (funcall (car colorizer) - (match-string 2 r))) - (t - (list r 'magit-log-head-label-default)))))) - res)) - -(defun magit-present-log-line (graph sha1 refs message) - "The default log line generator." - (let ((string-refs - (when refs - (let ((colored-labels - (delete nil - (mapcar (lambda (r) - (destructuring-bind (label face) - (magit-ref-get-label-color r) - (and label - (propertize label 'face face)))) - refs)))) - (concat - (mapconcat 'identity colored-labels " ") - " "))))) - - (concat - (if sha1 - (propertize (substring sha1 0 8) 'face 'magit-log-sha1) - (insert-char ? 8)) - " " - (when graph - (propertize graph 'face 'magit-log-graph)) - string-refs - (when message - (propertize message 'face 'magit-log-message))))) - -(defvar magit-log-count () - "Internal var used to count the number of logs actually added in a buffer.") - -(defmacro magit-create-log-buffer-sections (&rest body) - "Empty current buffer of text and magit's section, and then evaluate BODY. - -if the number of logs inserted in the buffer is `magit-log-cutoff-length' -insert a line to tell how to insert more of them" - (declare (indent 0)) - `(let ((magit-log-count 0) (inhibit-read-only t)) - (magit-create-buffer-sections - (magit-with-section 'log nil - ,@body - (if (= magit-log-count magit-log-cutoff-length) - (magit-with-section "longer" 'longer - (insert "type \"e\" to show more logs\n"))))))) - -(defun magit-wash-log-line () - (beginning-of-line) - (let ((line-re magit-log-oneline-re)) - (cond - ((looking-at magit-log-oneline-re) - (let ((chart (match-string 1)) - (sha1 (match-string 2)) - (msg (match-string 4)) - (refs (when (match-string 3) - (delq nil - (mapcar - (lambda (s) - (and (not - (or (string= s "tag:") - (string= s "HEAD"))) ; as of 1.6.6 - s)) - (split-string (match-string 3) "[(), ]" t)))))) - (delete-region (point-at-bol) (point-at-eol)) - (insert (funcall magit-present-log-line-function chart sha1 refs msg)) - (goto-char (point-at-bol)) - (if sha1 - (magit-with-section sha1 'commit - (when magit-log-count (setq magit-log-count (1+ magit-log-count))) - (magit-set-section-info sha1) - (forward-line)) - (forward-line)))) - (t - (forward-line))) - t)) - -(defun magit-wash-log () - (let ((magit-old-top-section nil)) - (magit-wash-sequence #'magit-wash-log-line))) - -(defvar magit-currently-shown-commit nil) - -(defun magit-wash-commit () - (let ((magit-current-diff-range)) - (when (looking-at "^commit \\([0-9a-fA-F]\\{40\\}\\)") - (setq magit-current-diff-range (match-string 1)) - (add-text-properties (match-beginning 1) (match-end 1) - '(face magit-log-sha1))) - (cond - ((search-forward-regexp "^Merge: \\([0-9a-fA-F]+\\) \\([0-9a-fA-F]+\\)$" nil t) - (setq magit-current-diff-range (cons (cons (match-string 1) - (match-string 2)) - magit-current-diff-range)) - (let ((first (magit-set-section nil 'commit (match-beginning 1) (match-end 1))) - (second (magit-set-section nil 'commit (match-beginning 2) (match-end 2)))) - (magit-set-section-info (match-string 1) first) - (magit-set-section-info (match-string 2) second)) - (make-commit-button (match-beginning 1) (match-end 1)) - (make-commit-button (match-beginning 2) (match-end 2))) - (t - (setq magit-current-diff-range (cons (concat magit-current-diff-range "^") - magit-current-diff-range)))) - (search-forward-regexp "^$") - (while (and - (search-forward-regexp "\\(\\b[0-9a-fA-F]\\{4,40\\}\\b\\)\\|\\(^diff\\)" nil 'noerror) - (not (match-string 2))) - (let ((sha1 (match-string 1)) - (start (match-beginning 1)) - (end (match-end 1))) - (when (string-equal "commit" (magit-git-string "cat-file" "-t" sha1)) - (make-commit-button start end) - (let ((section (magit-set-section sha1 'commit start end))) - (magit-set-section-info sha1 section))))) - (beginning-of-line) - (when (looking-at "^diff") - (magit-wash-diffs)) - (goto-char (point-max)) - (insert "\n") - (if magit-back-navigation-history - (magit-with-section "[back]" 'button - (insert-text-button "[back]" - 'help-echo "Previous commit" - 'action 'magit-show-commit-backward - 'follow-link t - 'mouse-face 'magit-item-highlight))) - (insert " ") - (if magit-forward-navigation-history - (magit-with-section "[forward]" 'button - (insert-text-button "[forward]" - 'help-echo "Next commit" - 'action 'magit-show-commit-forward - 'follow-link t - 'mouse-face 'magit-item-highlight))))) - -(defun make-commit-button (start end) - (make-text-button start end - 'help-echo "Visit commit" - 'action (lambda (button) - (save-excursion - (goto-char button) - (magit-visit-item))) - 'follow-link t - 'mouse-face 'magit-item-highlight - 'face 'magit-log-sha1)) - -(defun magit-refresh-commit-buffer (commit) - (magit-configure-have-abbrev) - (magit-configure-have-decorate) - (magit-create-buffer-sections - (apply #'magit-git-section nil nil - 'magit-wash-commit - "log" - "--max-count=1" - "--pretty=medium" - `(,@(if magit-have-abbrev (list "--no-abbrev-commit")) - ,@(if magit-have-decorate (list "--decorate=full")) - "--cc" - "-p" ,commit)))) - -(define-derived-mode magit-commit-mode magit-mode "Magit" - "Mode to view a git commit. - -\\{magit-commit-mode-map}" - :group 'magit) - -(defvar magit-commit-buffer-name "*magit-commit*" - "Buffer name for displaying commit log messages.") - -(defun magit-show-commit (commit &optional scroll inhibit-history select) - "Show information about a commit in the buffer named by -`magit-commit-buffer-name'. COMMIT can be any valid name for a commit -in the current Git repository. - -When called interactively or when SELECT is non-nil, switch to -the commit buffer using `pop-to-buffer'. - -Unless INHIBIT-HISTORY is non-nil, the commit currently shown -will be pushed onto `magit-back-navigation-history' and -`magit-forward-navigation-history' will be cleared. - -Noninteractively, if the commit is already displayed and SCROLL -is provided, call SCROLL's function definition in the commit -window. (`scroll-up' and `scroll-down' are typically passed in -for this argument.)" - (interactive (list (magit-read-rev "Show commit (hash or ref)") - nil nil t)) - (when (magit-section-p commit) - (setq commit (magit-section-info commit))) - (unless (eql 0 (magit-git-exit-code "cat-file" "commit" commit)) - (error "%s is not a commit" commit)) - (let ((dir default-directory) - (buf (get-buffer-create magit-commit-buffer-name))) - (cond - ((and (equal magit-currently-shown-commit commit) - ;; if it's empty then the buffer was killed - (with-current-buffer buf - (> (length (buffer-string)) 1))) - (let ((win (get-buffer-window buf))) - (cond ((not win) - (display-buffer buf)) - (scroll - (with-selected-window win - (funcall scroll)))))) - (commit - (display-buffer buf) - (with-current-buffer buf - (unless inhibit-history - (push (cons default-directory magit-currently-shown-commit) - magit-back-navigation-history) - (setq magit-forward-navigation-history nil)) - (setq magit-currently-shown-commit commit) - (goto-char (point-min)) - (magit-mode-init dir 'magit-commit-mode - #'magit-refresh-commit-buffer commit)))) - (if select - (pop-to-buffer buf)))) - -(defun magit-show-commit-backward (&optional ignored) - ;; Ignore argument passed by push-button - "Show the commit at the head of `magit-back-navigation-history in -`magit-commit-buffer-name`." - (interactive) - (with-current-buffer magit-commit-buffer-name - (unless magit-back-navigation-history - (error "No previous commit.")) - (let ((histitem (pop magit-back-navigation-history))) - (push (cons default-directory magit-currently-shown-commit) - magit-forward-navigation-history) - (setq default-directory (car histitem)) - (magit-show-commit (cdr histitem) nil 'inhibit-history)))) - -(defun magit-show-commit-forward (&optional ignored) - ;; Ignore argument passed by push-button - "Show the commit at the head of `magit-forward-navigation-history in -`magit-commit-buffer-name`." - (interactive) - (with-current-buffer magit-commit-buffer-name - (unless magit-forward-navigation-history - (error "No next commit.")) - (let ((histitem (pop magit-forward-navigation-history))) - (push (cons default-directory magit-currently-shown-commit) - magit-back-navigation-history) - (setq default-directory (car histitem)) - (magit-show-commit (cdr histitem) nil 'inhibit-history)))) - -(defvar magit-marked-commit nil) - -(defvar magit-mark-overlay nil) -(make-variable-buffer-local 'magit-mark-overlay) -(put 'magit-mark-overlay 'permanent-local t) - -(defun magit-refresh-marked-commits () - (magit-for-all-buffers #'magit-refresh-marked-commits-in-buffer)) - -(defun magit-refresh-marked-commits-in-buffer () - (if (not magit-mark-overlay) - (let ((ov (make-overlay 1 1))) - (overlay-put ov 'face 'magit-item-mark) - (setq magit-mark-overlay ov))) - (delete-overlay magit-mark-overlay) - (magit-for-all-sections - (lambda (section) - (when (and (eq (magit-section-type section) 'commit) - (equal (magit-section-info section) - magit-marked-commit)) - (move-overlay magit-mark-overlay - (magit-section-beginning section) - (magit-section-end section) - (current-buffer)))))) - -(defun magit-set-marked-commit (commit) - (setq magit-marked-commit commit) - (magit-refresh-marked-commits)) - -(defun magit-marked-commit () - (or magit-marked-commit - (error "No commit marked"))) - -(defun magit-remote-branch-name (remote branch) - "Get the name of the branch BRANCH on remote REMOTE" - (if (string= remote ".") - branch - (concat remote "/" branch))) - -(magit-define-inserter unpulled-commits (remote branch) - (when remote - (apply #'magit-git-section - 'unpulled "Unpulled commits:" 'magit-wash-log "log" - (append magit-git-log-options - (list - (format "HEAD..%s" (magit-remote-branch-name remote branch))))))) - -(magit-define-inserter unpushed-commits (remote branch) - (when remote - (apply #'magit-git-section - 'unpushed "Unpushed commits:" 'magit-wash-log "log" - (append magit-git-log-options - (list - (format "%s..HEAD" (magit-remote-branch-name remote branch))))))) - -(defun magit-remote-branch-for (local-branch &optional prepend-remote-name) - "Guess the remote branch name that LOCAL-BRANCH is tracking. -Prepend \"remotes/\", the remote's name and \"/\" if -PREPEND-REMOTE-NAME is non-nil." - (let ((merge (magit-get "branch" local-branch "merge"))) - (save-match-data - (if (and merge (string-match "^refs/heads/\\(.+\\)" merge)) - (concat (if prepend-remote-name - (concat "remotes/" - (magit-get "branch" local-branch "remote") - "/")) - (match-string 1 merge)))))) - -;;; Status - -(defvar magit-remote-string-hook nil) - -(defun magit-remote-string (remote remote-branch) - (cond - ((string= "." remote) - (format "branch %s" - (propertize remote-branch 'face 'magit-branch))) - (remote - (concat - (propertize remote-branch 'face 'magit-branch) - " @ " - remote - " (" - (magit-get "remote" remote "url") - ")")) - (t - (run-hook-with-args-until-success 'magit-remote-string-hook)))) - -(declare-function magit--bisect-info-for-status "magit-bisect" (branch)) - -(defun magit-refresh-status () - (magit-create-buffer-sections - (magit-with-section 'status nil - (let* ((branch (magit-get-current-branch)) - (remote (and branch (magit-get "branch" branch "remote"))) - (remote-branch (or (and branch (magit-remote-branch-for branch)) branch)) - (remote-string (magit-remote-string remote remote-branch)) - (head (magit-git-string - "log" "--max-count=1" "--abbrev-commit" "--pretty=oneline")) - (no-commit (not head))) - (when remote-string - (insert "Remote: " remote-string "\n")) - (insert (format "Local: %s %s\n" - (propertize (magit--bisect-info-for-status branch) - 'face 'magit-branch) - (abbreviate-file-name default-directory))) - (insert (format "Head: %s\n" - (if no-commit "nothing commited (yet)" head))) - (let ((merge-heads (magit-file-lines ".git/MERGE_HEAD"))) - (if merge-heads - (insert (format "Merging: %s\n" - (mapconcat 'identity - (mapcar 'magit-name-rev merge-heads) - ", "))))) - (let ((rebase (magit-rebase-info))) - (if rebase - (insert (apply 'format "Rebasing: onto %s (%s of %s); Press \"R\" to Abort, Skip, or Continue\n" rebase)))) - (insert "\n") - (magit-git-exit-code "update-index" "--refresh") - (magit-insert-stashes) - (magit-insert-untracked-files) - (magit-insert-pending-changes) - (magit-insert-pending-commits) - (magit-insert-unpulled-commits remote remote-branch) - (let ((staged (or no-commit (magit-anything-staged-p)))) - (magit-insert-unstaged-changes - (if staged "Unstaged changes:" "Changes:")) - (magit-insert-staged-changes staged no-commit)) - (magit-insert-unpushed-commits remote remote-branch) - (run-hooks 'magit-refresh-status-hook))))) - -(defun magit-init (dir) - "Initialize git repository in the DIR directory." - (interactive (list (read-directory-name "Directory for Git repository: "))) - (let ((topdir (magit-get-top-dir dir))) - (when (or (not topdir) - (yes-or-no-p - (format - (if (string-equal topdir (expand-file-name dir)) - "There is already a Git repository in %s. Reinitialize? " - "There is a Git repository in %s. Create another in %s? ") - topdir dir))) - (unless (file-directory-p dir) - (and (y-or-n-p (format "Directory %s does not exists. Create it? " dir)) - (make-directory dir))) - (magit-run* (list magit-git-executable "init" dir))))) - -(define-derived-mode magit-status-mode magit-mode "Magit" - "Mode for looking at git status. - -\\{magit-status-mode-map}" - :group 'magit) - -(defvar magit-default-directory nil) - -(defun magit-save-some-buffers (&optional msg pred) - "Save some buffers if variable `magit-save-some-buffers' is non-nil. -If variable `magit-save-some-buffers' is set to 'dontask then -don't ask the user before saving the buffers, just go ahead and -do it. - -Optional argument MSG is displayed in the minibuffer if variable -`magit-save-some-buffers' is nil. - -Optional second argument PRED determines which buffers are considered: -If PRED is nil, all the file-visiting buffers are considered. -If PRED is t, then certain non-file buffers will also be considered. -If PRED is a zero-argument function, it indicates for each buffer whether -to consider it or not when called with that buffer current." - (interactive) - (let ((predicate-function (or pred magit-save-some-buffers-predicate)) - (magit-default-directory default-directory)) - (if magit-save-some-buffers - (save-some-buffers - (eq magit-save-some-buffers 'dontask) - predicate-function) - (when msg - (message msg))))) - -(defun magit-save-buffers-predicate-all () - "Prompt to save all buffers with unsaved changes" - t) - -(defun magit-save-buffers-predicate-tree-only () - "Only prompt to save buffers which are within the current git project (as - determined by the dir passed to `magit-status'." - (and buffer-file-name - (string= (magit-get-top-dir magit-default-directory) - (magit-get-top-dir (file-name-directory buffer-file-name))))) - -;;;###autoload -(defun magit-status (dir) - "Open a Magit status buffer for the Git repository containing -DIR. If DIR is not within a Git repository, offer to create a -Git repository in DIR. - -Interactively, a prefix argument means to ask the user which Git -repository to use even if `default-directory' is under Git control. -Two prefix arguments means to ignore `magit-repo-dirs' when asking for -user input." - (interactive (list (if current-prefix-arg - (magit-read-top-dir - (> (prefix-numeric-value current-prefix-arg) - 4)) - (or (magit-get-top-dir default-directory) - (magit-read-top-dir nil))))) - (magit-save-some-buffers) - (let ((topdir (magit-get-top-dir dir))) - (unless topdir - (when (y-or-n-p (format "There is no Git repository in %S. Create one? " - dir)) - (magit-init dir) - (setq topdir (magit-get-top-dir dir)))) - (when topdir - (let ((buf (or (magit-find-status-buffer topdir) - (generate-new-buffer - (concat "*magit: " - (file-name-nondirectory - (directory-file-name topdir)) "*"))))) - (funcall magit-status-buffer-switch-function buf) - (magit-mode-init topdir 'magit-status-mode #'magit-refresh-status))))) - -(magit-define-command automatic-merge (revision) - "Merge REVISION into the current 'HEAD'; commit unless merge fails. -\('git merge REVISION')." - (interactive (list (magit-read-rev "Merge" (magit-guess-branch)))) - (if revision - (magit-run-git "merge" (magit-rev-to-git revision)))) - -;;; Staging and Unstaging - -(defun magit-stage-item (&optional ask) - "Add the item at point to the staging area. -If ASK is set, ask for the file name rather than picking the one -at point." - (interactive "P") - (if ask - (magit-run-git "add" (read-file-name "File to stage: ")) - (magit-section-action (item info "stage") - ((untracked file) - (magit-run-git "add" info)) - ((untracked) - (apply #'magit-run-git "add" "--" - (magit-git-lines "ls-files" "--other" "--exclude-standard"))) - ((unstaged diff hunk) - (if (magit-hunk-item-is-conflict-p item) - (error (concat "Can't stage individual resolution hunks. " - "Please stage the whole file."))) - (magit-apply-hunk-item item "--cached")) - ((unstaged diff) - (magit-run-git "add" "-u" (magit-diff-item-file item))) - ((staged *) - (error "Already staged")) - ((diff diff) - (save-excursion - (magit-goto-parent-section) - (magit-stage-item))) - ((diff diff hunk) - (save-excursion - (magit-goto-parent-section) - (magit-goto-parent-section) - (magit-stage-item))) - ((hunk) - (error "Can't stage this hunk")) - ((diff) - (error "Can't stage this diff"))))) - -(defun magit-unstage-item () - "Remove the item at point from the staging area." - (interactive) - (magit-section-action (item info "unstage") - ((staged diff hunk) - (magit-apply-hunk-item-reverse item "--cached")) - ((staged diff) - (if (eq (car info) 'unmerged) - (error "Can't unstage an unmerged file. Resolve it first")) - (if (magit-no-commit-p) - (magit-run-git "rm" "--cached" "--" (magit-diff-item-file item)) - (magit-run-git "reset" "-q" "HEAD" "--" (magit-diff-item-file item)))) - ((unstaged *) - (error "Already unstaged")) - ((diff diff) - (save-excursion - (magit-goto-parent-section) - (magit-unstage-item))) - ((diff diff hunk) - (save-excursion - (magit-goto-parent-section) - (magit-goto-parent-section) - (magit-unstage-item))) - ((hunk) - (error "Can't unstage this hunk")) - ((diff) - (error "Can't unstage this diff")))) - -(defun magit-stage-all (&optional also-untracked-p) - "Add all remaining changes in tracked files to staging area. -With prefix argument, add remaining untracked files as well. -\('git add -u .' or 'git add .', respectively)." - (interactive "P") - (if also-untracked-p - (magit-run-git "add" ".") - (magit-run-git "add" "-u" "."))) - -(defun magit-unstage-all () - "Remove all changes from staging area. -\('git reset --mixed HEAD')." - (interactive) - (magit-run-git "reset" "HEAD")) - -;;; Branches - -(defun escape-branch-name (branch) - "Escapes branch names to remove problematic characters." - (replace-regexp-in-string "[/]" "-" branch)) - -(defun magit-default-tracking-name-remote-plus-branch - (remote branch) - "Use the remote name plus a hyphen plus the escaped branch name for tracking branches." - (concat remote "-" (escape-branch-name branch))) - -(defun magit-default-tracking-name-branch-only - (remote branch) - "Use just the escaped branch name for tracking branches." - (escape-branch-name branch)) - -(defun magit-get-tracking-name (remote branch) - "Given a REMOTE and a BRANCH name, ask the user for a local -tracking brach name suggesting a sensible default." - (when (yes-or-no-p - (format "Create local tracking branch for %s? " branch)) - (let* ((default-name - (funcall magit-default-tracking-name-function remote branch)) - (chosen-name (read-string (format "Call local branch (%s): " default-name) - nil - nil - default-name))) - (when (magit-ref-exists-p (concat "refs/heads/" chosen-name)) - (error "'%s' already exists." chosen-name)) - chosen-name))) - -(defun magit-maybe-create-local-tracking-branch (rev) - "Depending on the users wishes, create a tracking branch for -rev... maybe." - (if (string-match "^\\(?:refs/\\)?remotes/\\([^/]+\\)/\\(.+\\)" rev) - (let* ((remote (match-string 1 rev)) - (branch (match-string 2 rev)) - (tracker-name (magit-get-tracking-name remote branch))) - (when tracker-name - (magit-run-git "checkout" "-b" tracker-name rev) - t)) - nil)) - -(magit-define-command checkout (revision) - "Switch 'HEAD' to REVISION and update working tree. -Fails if working tree or staging area contain uncommitted changes. -If REVISION is a remote branch, offer to create a local tracking branch. -\('git checkout [-b] REVISION')." - (interactive - (list (let ((current-branch (magit-get-current-branch)) - (default (magit-default-rev))) - (magit-read-rev "Switch to" - (unless (string= current-branch default) - default) - (if current-branch - (cons (concat "refs/heads/" current-branch "$") - magit-uninteresting-refs) - magit-uninteresting-refs))))) - (if revision - (when (not (magit-maybe-create-local-tracking-branch revision)) - (magit-save-some-buffers) - (magit-run-git "checkout" (magit-rev-to-git revision)) - (magit-update-vc-modeline default-directory)))) - -(defun magit-read-create-branch-args () - (let* ((cur-branch (magit-get-current-branch)) - (cur-point (magit-default-rev)) - (branch (read-string "Create branch: ")) - (parent (magit-read-rev "Parent" - (cond - ((eq magit-create-branch-behaviour 'at-point) cur-point) - ((eq magit-create-branch-behaviour 'at-head) cur-branch) - (t cur-branch))))) - (list branch parent))) - -(magit-define-command create-branch (branch parent) - "Switch 'HEAD' to new BRANCH at revision PARENT and update working tree. -Fails if working tree or staging area contain uncommitted changes. -\('git checkout -b BRANCH REVISION')." - (interactive (magit-read-create-branch-args)) - (when (and branch (not (string= branch "")) - parent) - (magit-save-some-buffers) - (magit-run-git "checkout" "-b" - branch - (append - magit-custom-options - (magit-rev-to-git parent))) - (magit-update-vc-modeline default-directory))) - -(defun magit-delete-branch (branch) - "Asks for a branch and deletes it. -If the branch is the current one, offers to switch to `master' first. -\('git branch -d BRANCH')." - (interactive (list (magit-read-rev "Branch to delete" (magit-default-rev)))) - (when (and branch (string= branch (magit-get-current-branch))) - (if (y-or-n-p "Cannot delete current branch. Switch to master first? ") - (magit-checkout "master") - (setq branch nil))) - (when branch - (magit-run-git "branch" "-d" (append magit-custom-options - (magit-rev-to-git branch))))) - -(defun magit-delete-branch-forced (branch) - "Asks for a branch and deletes it, irrespective of its merged status. -If the branch is the current one, offers to switch to `master' first. -\('git branch -D BRANCH')." - (interactive (list (magit-read-rev "Branch to force delete" (magit-default-rev)))) - (when (and branch (string= branch (magit-get-current-branch))) - (if (y-or-n-p "Cannot delete current branch. Switch to master first? ") - (magit-checkout "master") - (setq branch nil))) - (when branch - (magit-run-git "branch" "-D" (append magit-custom-options - (magit-rev-to-git branch))))) - -(defun magit-move-branch (old new) - "Renames or moves a branch. -\('git branch -m OLD NEW')." - (interactive (list (magit-read-rev "Old name" (magit-default-rev)) - (read-string "New name: "))) - (magit-run-git "branch" "-m" (magit-rev-to-git old) new)) - -(defun magit-guess-branch () - (magit-section-case (item info) - ((wazzup commit) - (magit-section-info (magit-section-parent item))) - ((commit) (magit-name-rev (substring info 0 8))) - ((wazzup) info))) - -;;; Merging - -(defun magit-merge (revision) - "Merge REVISION into the current 'HEAD'; leave changes uncommitted. -With a prefix-arg, the merge will be squashed. -\('git merge --no-commit [--squash|--no-ff] REVISION')." - (interactive - (list (magit-read-rev "Merge" (magit-default-rev)))) - (if revision - (apply 'magit-run-git - "merge" - (magit-rev-to-git revision) - magit-custom-options))) - -;;; Rebasing - -(defun magit-rebase-info () - "Returns a list indicating the state of an in-progress rebase, -if any." - (cond ((file-exists-p ".git/rebase-merge") - (list - ;; The commit we're rebasing onto, i.e. git rebase -i - (magit-name-rev (car (magit-file-lines ".git/rebase-merge/onto"))) - - ;; How many commits we've gone through - (length (magit-file-lines ".git/rebase-merge/done")) - - ;; How many commits we have in total, without the comments - ;; at the end of git-rebase-todo.backup - (let ((todo-lines-with-comments (magit-file-lines ".git/rebase-merge/git-rebase-todo.backup"))) - (loop for i in todo-lines-with-comments - until (string= "" i) - count i)))) - ((and (file-exists-p ".git/rebase-apply") - (file-exists-p ".git/rebase-apply/onto")) - ;; we might be here because a non-interactive rebase failed: the - ;; patches didn't apply cleanly - (list - ;; The commit we're rebasing onto, i.e. git rebase -i - (magit-name-rev (car (magit-file-lines ".git/rebase-apply/onto"))) - - ;; How many commits we've gone through - (- (string-to-number (car (magit-file-lines ".git/rebase-apply/next"))) 1) - - ;; How many commits we have in total - (string-to-number (car (magit-file-lines ".git/rebase-apply/last"))) - )) - (t nil))) - -(defun magit-rebase-step () - (interactive) - (let ((info (magit-rebase-info))) - (if (not info) - (let* ((current-branch (magit-get-current-branch)) - (remote (when current-branch - (magit-get "branch" current-branch "remote"))) - (remote-branch (when remote - (magit-get "branch" current-branch "merge"))) - (rev (magit-read-rev "Rebase to" - (when (and remote-branch - (string-match "refs/heads/\\(.*\\)" remote-branch)) - (concat (match-string 1 remote-branch) - " (" remote ")")) - (if current-branch - (cons (concat "refs/heads/" current-branch) - magit-uninteresting-refs) - magit-uninteresting-refs)))) - (if rev - (magit-run-git "rebase" (magit-rev-to-git rev)))) - (let ((cursor-in-echo-area t) - (message-log-max nil)) - (message "Rebase in progress. [A]bort, [S]kip, or [C]ontinue? ") - (let ((reply (read-event))) - (case reply - ((?A ?a) - (magit-run-git-async "rebase" "--abort")) - ((?S ?s) - (magit-run-git-async "rebase" "--skip")) - ((?C ?c) - (magit-run-git-async "rebase" "--continue")))))))) - -;;; Resetting - -(magit-define-command reset-head (revision &optional hard) - "Switch 'HEAD' to REVISION, keeping prior working tree and staging area. -Any differences from REVISION become new changes to be committed. -With prefix argument, all uncommitted changes in working tree -and staging area are lost. -\('git reset [--soft|--hard] REVISION')." - (interactive (list (magit-read-rev (format "%s head to" - (if current-prefix-arg - "Hard reset" - "Reset")) - (or (magit-default-rev) - "HEAD^")) - current-prefix-arg)) - (when revision - (magit-run-git "reset" (if hard "--hard" "--soft") - (magit-rev-to-git revision)) - (magit-update-vc-modeline default-directory))) - -(magit-define-command reset-head-hard (revision) - "Switch 'HEAD' to REVISION, losing all changes. -Uncomitted changes in both working tree and staging area are lost. -\('git reset --hard REVISION')." - (interactive (list (magit-read-rev (format "Hard reset head to") - (or (magit-default-rev) - "HEAD")))) - (magit-reset-head revision t)) - -(magit-define-command reset-working-tree (&optional include-untracked) - "Revert working tree and clear changes from staging area. -\('git reset --hard HEAD'). - -With a prefix arg, also remove untracked files." - (interactive "P") - (when (yes-or-no-p (format "Discard all uncommitted changes%s? " - (if include-untracked - " and untracked files" - ""))) - (magit-reset-head-hard "HEAD") - (if include-untracked - (magit-run-git "clean" "-fd")))) - -;;; Rewriting - -(defun magit-read-rewrite-info () - (when (file-exists-p ".git/magit-rewrite-info") - (with-temp-buffer - (insert-file-contents ".git/magit-rewrite-info") - (goto-char (point-min)) - (read (current-buffer))))) - -(defun magit-write-rewrite-info (info) - (with-temp-file ".git/magit-rewrite-info" - (prin1 info (current-buffer)) - (princ "\n" (current-buffer)))) - -(magit-define-inserter pending-commits () - (let* ((info (magit-read-rewrite-info)) - (pending (cdr (assq 'pending info)))) - (when pending - (magit-with-section 'pending nil - (insert (propertize "Pending commits:\n" - 'face 'magit-section-title)) - (dolist (p pending) - (let* ((commit (car p)) - (properties (cdr p)) - (used (plist-get properties 'used))) - (magit-with-section commit 'commit - (magit-set-section-info commit) - (insert (magit-git-string - "log" "--max-count=1" - (if used - "--pretty=format:. %s" - "--pretty=format:* %s") - commit "--") - "\n"))))) - (insert "\n")))) - -(defun magit-rewrite-set-commit-property (commit prop value) - (let* ((info (magit-read-rewrite-info)) - (pending (cdr (assq 'pending info))) - (p (assoc commit pending))) - (when p - (setf (cdr p) (plist-put (cdr p) prop value)) - (magit-write-rewrite-info info) - (magit-need-refresh)))) - -(defun magit-rewrite-set-used () - (interactive) - (magit-section-action (item info) - ((pending commit) - (magit-rewrite-set-commit-property info 'used t)))) - -(defun magit-rewrite-set-unused () - (interactive) - (magit-section-action (item info) - ((pending commit) - (magit-rewrite-set-commit-property info 'used nil)))) - -(magit-define-inserter pending-changes () - (let* ((info (magit-read-rewrite-info)) - (orig (cadr (assq 'orig info)))) - (when orig - (let ((magit-hide-diffs t)) - (magit-git-section 'pending-changes - "Pending changes" - 'magit-wash-diffs - "diff" (magit-diff-U-arg) "-R" orig))))) - -(defun magit-rewrite-start (from &optional onto) - (interactive (list (magit-read-rev "Rewrite from" (magit-default-rev)))) - (or (magit-everything-clean-p) - (error "You have uncommitted changes")) - (or (not (magit-read-rewrite-info)) - (error "Rewrite in progress")) - (let* ((orig (magit-rev-parse "HEAD")) - (base - (if - (or - (eq magit-rewrite-inclusive t) - (and - (eq magit-rewrite-inclusive 'ask) - (y-or-n-p "Include selected revision in rewrite? "))) - (or - (car (magit-commit-parents from)) - (error "Can't rewrite a parentless commit.")) - from)) - (pending (magit-git-lines "rev-list" (concat base "..")))) - (magit-write-rewrite-info `((orig ,orig) - (pending ,@(mapcar #'list pending)))) - (magit-run-git "reset" "--hard" base))) - -(defun magit-rewrite-stop (&optional noconfirm) - (interactive) - (let* ((info (magit-read-rewrite-info))) - (or info - (error "No rewrite in progress")) - (when (or noconfirm - (yes-or-no-p "Stop rewrite? ")) - (magit-write-rewrite-info nil) - (magit-refresh)))) - -(defun magit-rewrite-abort () - (interactive) - (let* ((info (magit-read-rewrite-info)) - (orig (cadr (assq 'orig info)))) - (or info - (error "No rewrite in progress")) - (or (magit-everything-clean-p) - (error "You have uncommitted changes")) - (when (yes-or-no-p "Abort rewrite? ") - (magit-write-rewrite-info nil) - (magit-run-git "reset" "--hard" orig)))) - -(defun magit-rewrite-finish () - (interactive) - (magit-with-refresh - (magit-rewrite-finish-step t))) - -(defun magit-rewrite-finish-step (first-p) - (let ((info (magit-read-rewrite-info))) - (or info - (error "No rewrite in progress")) - (let* ((pending (cdr (assq 'pending info))) - (first-unused - (let ((rpend (reverse pending))) - (while (and rpend (plist-get (cdr (car rpend)) 'used)) - (setq rpend (cdr rpend))) - (car rpend))) - (commit (car first-unused))) - (cond ((not first-unused) - (magit-rewrite-stop t)) - ((magit-apply-commit commit t (not first-p)) - (magit-rewrite-set-commit-property commit 'used t) - (magit-rewrite-finish-step nil)))))) - -;;; Updating, pull, and push - -(magit-define-command fetch (remote) - "Fetch from REMOTE." - (interactive (list (magit-read-remote))) - (apply 'magit-run-git-async "fetch" remote magit-custom-options)) - -(magit-define-command fetch-current () - "Run fetch for default remote. - -If there is no default remote, ask for one." - (interactive) - (magit-fetch (or (magit-get-current-remote) - (magit-read-remote)))) - -(magit-define-command remote-update () - "Update all remotes." - (interactive) - (apply 'magit-run-git-async "remote" "update" magit-custom-options)) - -(magit-define-command pull () - "Run git pull against the current remote." - (interactive) - (let* ((branch (magit-get-current-branch)) - (config-branch (and branch (magit-get "branch" branch "merge"))) - (merge-branch (or (and config-branch (not current-prefix-arg)) - (magit-read-rev (format "Pull from"))))) - (if (and branch (not config-branch)) - (magit-set merge-branch "branch" branch "merge")) - (apply 'magit-run-git-async "pull" "-v" magit-custom-options))) - -(eval-when-compile (require 'eshell)) - -(defun magit-parse-arguments (command) - (require 'eshell) - (with-temp-buffer - (insert command) - (mapcar 'eval (eshell-parse-arguments (point-min) (point-max))))) - -(defun magit-shell-command (command) - "Perform arbitrary shell COMMAND." - (interactive "sCommand: ") - (let ((args (magit-parse-arguments command)) - (magit-process-popup-time 0)) - (magit-run* args nil nil nil t))) - -(defun magit-git-command (command) - "Perform arbitrary Git COMMAND. - -Similar to `magit-shell-command', but involves slightly less -typing and automatically refreshes the status buffer." - (interactive "sRun git like this: ") - (require 'pcomplete) - (let ((args (magit-parse-arguments command)) - (magit-process-popup-time 0)) - (magit-with-refresh - (magit-run* (append (cons magit-git-executable - magit-git-standard-options) - args) - nil nil nil t)))) - -(magit-define-command push-tags () - "Push tags." - (interactive) - (magit-run-git-async "push" "--tags")) - -(magit-define-command push () - (interactive) - (let* ((branch (or (magit-get-current-branch) - (error "Don't push a detached head. That's gross"))) - (branch-remote (magit-get-remote branch)) - (push-remote (if (or current-prefix-arg - (not branch-remote)) - (magit-read-remote (format "Push %s to remote: " - branch) - branch-remote) - branch-remote)) - (ref-branch (or (and (>= (prefix-numeric-value current-prefix-arg) 16) - (magit-read-remote-branch - push-remote (format "Push %s as branch: " branch))) - (magit-get "branch" branch "merge")))) - (if (and (not ref-branch) - (eq magit-set-upstream-on-push 'refuse)) - (error "Not pushing since no upstream has been set.") - (let ((set-upstream-on-push (and (not ref-branch) - (or (eq magit-set-upstream-on-push 'dontask) - (and (eq magit-set-upstream-on-push t) - (yes-or-no-p "Set upstream while pushing? ")))))) - (if (and (not branch-remote) - (not current-prefix-arg)) - (magit-set push-remote "branch" branch "remote")) - (apply 'magit-run-git-async "push" "-v" push-remote - (if ref-branch - (format "%s:%s" branch ref-branch) - branch) - (if set-upstream-on-push - (cons "--set-upstream" magit-custom-options) - magit-custom-options)) - ;; Although git will automatically set up the remote, - ;; it doesn't set up the branch to merge (at least as of Git 1.6.6.1), - ;; so we have to do that manually. - (unless ref-branch - (magit-set (concat "refs/heads/" branch) "branch" branch "merge")))))) - -;;; Log edit mode - -(defvar magit-log-edit-buffer-name "*magit-edit-log*" - "Buffer name for composing commit messages.") - -(defvar magit-log-edit-mode-map - (let ((map (make-sparse-keymap))) - (define-key map (kbd "C-c C-c") 'magit-log-edit-commit) - (define-key map (kbd "C-x #") 'magit-log-edit-commit) - (define-key map (kbd "C-c C-a") 'magit-log-edit-toggle-amending) - (define-key map (kbd "C-c C-s") 'magit-log-edit-toggle-signoff) - (define-key map (kbd "C-c C-t") 'magit-log-edit-toggle-author) - (define-key map (kbd "C-c C-e") 'magit-log-edit-toggle-allow-empty) - (define-key map (kbd "M-p") 'log-edit-previous-comment) - (define-key map (kbd "M-n") 'log-edit-next-comment) - (define-key map (kbd "C-c C-k") 'magit-log-edit-cancel-log-message) - (define-key map (kbd "C-c C-]") 'magit-log-edit-cancel-log-message) - (define-key map (kbd "C-x C-s") (lambda () - (interactive) - (message "Not saved. Use C-c C-c to finalize this commit message."))) - map)) - -(defvar magit-pre-log-edit-window-configuration nil) - -(define-derived-mode magit-log-edit-mode text-mode "Magit Log Edit" - ;; Recognize changelog-style paragraphs - (set (make-local-variable 'paragraph-start) - (concat paragraph-start "\\|*\\|("))) - -(defun magit-log-edit-cleanup () - (save-excursion - (goto-char (point-min)) - (goto-char (point-min)) - (if (re-search-forward "[ \t\n]*\\'" nil t) - (replace-match "\n" nil nil)))) - -(defun magit-log-edit-append (str) - (with-current-buffer (get-buffer-create magit-log-edit-buffer-name) - (goto-char (point-max)) - (insert str "\n"))) - -(defconst magit-log-header-end "-- End of Magit header --\n") - -(defun magit-log-edit-get-fields () - (let ((buf (get-buffer magit-log-edit-buffer-name)) - (result nil)) - (if buf - (with-current-buffer buf - (goto-char (point-min)) - (while (looking-at "^\\([A-Za-z0-9-_]+\\): *\\(.+\\)?$") - (setq result (acons (intern (downcase (match-string 1))) - (read (or (match-string 2) "nil")) - result)) - (forward-line)) - (if (not (looking-at (regexp-quote magit-log-header-end))) - (setq result nil)))) - (nreverse result))) - -(defun magit-log-edit-set-fields (fields) - (let ((buf (get-buffer-create magit-log-edit-buffer-name))) - (with-current-buffer buf - (goto-char (point-min)) - (if (search-forward-regexp (format "^\\([A-Za-z0-9-_]+:.*\n\\)*%s" - (regexp-quote magit-log-header-end)) - nil t) - (delete-region (match-beginning 0) (match-end 0))) - (goto-char (point-min)) - (when fields - (while fields - (insert (capitalize (symbol-name (caar fields))) ": " - (prin1-to-string (cdar fields)) "\n") - (setq fields (cdr fields))) - (insert magit-log-header-end))))) - -(defun magit-log-edit-set-field (name value) - (let* ((fields (magit-log-edit-get-fields)) - (cell (assq name fields))) - (cond (cell - (if value - (rplacd cell value) - (setq fields (delq cell fields)))) - (t - (if value - (setq fields (append fields (list (cons name value))))))) - (magit-log-edit-set-fields fields))) - -(defun magit-log-edit-get-field (name) - (cdr (assq name (magit-log-edit-get-fields)))) - -(defun magit-log-edit-toggle-field (name default) - "Toggle the log-edit field named NAME. -If it's currently unset, set it to DEFAULT (t or nil). - -Return nil if the field is toggled off, and non-nil if it's -toggled on. When it's toggled on for the first time, return -'first." - (let* ((fields (magit-log-edit-get-fields)) - (cell (assq name fields)) yesp) - (if cell - (progn - (setq yesp (equal (cdr cell) "yes")) - (rplacd cell (if yesp "no" "yes"))) - (setq fields (acons name (if default "yes" "no") fields)) - (setq yesp (if default 'first))) - (magit-log-edit-set-fields fields) - yesp)) - -(defun magit-log-edit-toggle-input (name default) - "Toggle the log-edit input named NAME. -If it's currently unset, set it to DEFAULT (a string). If it is -set remove it. - -Return nil if the input is toggled off, and its valud if it's -toggled on." - (let* ((fields (magit-log-edit-get-fields)) - (cell (assq name fields)) - result) - (if cell - (progn - (setq fields (assq-delete-all name fields) - result (cdr cell))) - (setq fields (acons name default fields))) - (magit-log-edit-set-fields fields) - result)) - -(defun magit-log-edit-setup-author-env (author) - "Set GIT_AUTHOR_* variables from AUTHOR spec. -If AUTHOR is nil, honor default values from -environment (potentially empty)." - (when author - ;; XXX - this is a bit strict, probably. - (or (string-match "\\(.*\\) <\\(.*\\)>\\(?:,\\s-*\\(.+\\)\\)?" author) - (error "Can't parse author string")) - ;; Shucks, setenv destroys the match data. - (let ((name (match-string 1 author)) - (email (match-string 2 author)) - (date (match-string 3 author))) - (setenv "GIT_AUTHOR_NAME" name) - (setenv "GIT_AUTHOR_EMAIL" email) - (if date - (setenv "GIT_AUTHOR_DATE" date))))) - -(defun magit-log-edit-push-to-comment-ring (comment) - (when (or (ring-empty-p log-edit-comment-ring) - (not (equal comment (ring-ref log-edit-comment-ring 0)))) - (ring-insert log-edit-comment-ring comment))) - -(defun magit-log-edit-commit () - "Finish edits and create new commit object. -\('git commit ...')" - (interactive) - (let* ((fields (magit-log-edit-get-fields)) - (amend (equal (cdr (assq 'amend fields)) "yes")) - (allow-empty (equal (cdr (assq 'allow-empty fields)) "yes")) - (commit-all (equal (cdr (assq 'commit-all fields)) "yes")) - (sign-off-field (assq 'sign-off fields)) - (sign-off (if sign-off-field - (equal (cdr sign-off-field) "yes") - magit-commit-signoff)) - (tag-rev (cdr (assq 'tag-rev fields))) - (tag-name (cdr (assq 'tag-name fields))) - (author (cdr (assq 'author fields))) - (tag-options (cdr (assq 'tag-options fields)))) - - (unless (or (magit-anything-staged-p) - allow-empty - amend - tag-name - (file-exists-p ".git/MERGE_HEAD") - (and commit-all - (not (magit-everything-clean-p)))) - (error "Refusing to create empty commit. Maybe you want to amend (%s) or allow-empty (%s)?" - (key-description (car (where-is-internal - 'magit-log-edit-toggle-amending))) - (key-description (car (where-is-internal - 'magit-log-edit-toggle-allow-empty))))) - - (magit-log-edit-push-to-comment-ring (buffer-string)) - (magit-log-edit-setup-author-env author) - (magit-log-edit-set-fields nil) - (magit-log-edit-cleanup) - (if (= (buffer-size) 0) - (insert "(Empty description)\n")) - (let ((commit-buf (current-buffer))) - (with-current-buffer (magit-find-status-buffer default-directory) - (cond (tag-name - (apply #'magit-run-git-with-input commit-buf - "tag" (append tag-options (list tag-name "-a" "-F" "-" tag-rev)))) - (t - (apply #'magit-run-async-with-input commit-buf - magit-git-executable - (append magit-git-standard-options - '("commit") - magit-custom-options - '("-F" "-") - (if (and commit-all (not allow-empty)) '("--all") '()) - (if amend '("--amend") '()) - (if allow-empty '("--allow-empty")) - (if sign-off '("--signoff") '()))))))) - (erase-buffer) - (bury-buffer) - (when (file-exists-p ".git/MERGE_MSG") - (delete-file ".git/MERGE_MSG")) - (magit-update-vc-modeline default-directory) - (when magit-pre-log-edit-window-configuration - (set-window-configuration magit-pre-log-edit-window-configuration) - (setq magit-pre-log-edit-window-configuration nil)))) - -(defun magit-log-edit-cancel-log-message () - "Abort edits and erase commit message being composed." - (interactive) - (when (or (not magit-log-edit-confirm-cancellation) - (yes-or-no-p - "Really cancel editing the log (any changes will be lost)?")) - (erase-buffer) - (bury-buffer) - (when magit-pre-log-edit-window-configuration - (set-window-configuration magit-pre-log-edit-window-configuration) - (setq magit-pre-log-edit-window-configuration nil)))) - -(defun magit-log-edit-toggle-amending () - "Toggle whether this will be an amendment to the previous commit. -\(i.e., whether eventual commit does 'git commit --amend')" - (interactive) - (when (eq (magit-log-edit-toggle-field 'amend t) 'first) - (magit-log-edit-append - (magit-format-commit "HEAD" "%s%n%n%b")))) - -(defun magit-log-edit-toggle-signoff () - "Toggle whether this commit will include a signoff. -\(i.e., whether eventual commit does 'git commit --signoff')" - (interactive) - (magit-log-edit-toggle-field 'sign-off (not magit-commit-signoff))) - -(defun magit-log-edit-toggle-author () - "Toggle whether this commit will include an author. -\(i.e., whether eventual commit is run with GIT_AUTHOR_NAME and -GIT_AUTHOR_EMAIL set)" - (interactive) - (magit-log-edit-toggle-input 'author (format "%s <%s>" - (or (magit-get "user" "name") "Author Name") - (or (magit-get "user" "email") "author@email")))) - -(defun magit-log-edit-toggle-allow-empty () - "Toggle whether this commit is allowed to be empty. -This means that the eventual commit does 'git commit --allow-empty'." - (interactive) - (magit-log-edit-toggle-field 'allow-empty t)) - -(defun magit-pop-to-log-edit (operation) - (let ((dir default-directory) - (buf (get-buffer-create magit-log-edit-buffer-name))) - (setq magit-pre-log-edit-window-configuration - (current-window-configuration)) - (pop-to-buffer buf) - (when (file-exists-p ".git/MERGE_MSG") - (insert-file-contents ".git/MERGE_MSG")) - (setq default-directory dir) - (magit-log-edit-mode) - (message "Type C-c C-c to %s (C-c C-k to cancel)." operation))) - -(defun magit-log-edit (&optional arg) - "Brings up a buffer to allow editing of commit messages. - -Giving a simple prefix arg will amend a previous commit, while -a double prefix arg will allow creating an empty one. - -If there is a rebase in progress, offer the user the option to -continue it. - -\\{magit-log-edit-mode-map}" - (interactive "P") - ;; If repository is dirty there is no point in trying to - ;; suggest to continue the rebase. Git will rebuke you and exit with - ;; error code, so suggest it only if theres absolutely nothing else - ;; to do and rebase is ongoing. - (if (and (magit-everything-clean-p) - (magit-rebase-info) - (y-or-n-p "Rebase in progress. Continue it? ")) - (magit-run-git-async "rebase" "--continue") - - ;; If there's nothing staged, set commit flag to `nil', thus - ;; avoiding unnescessary popping up of the log edit buffer in case - ;; when user chose to forgo commiting all unstaged changes - (let ((amend-p (= (prefix-numeric-value arg) 4)) - (empty-p (= (prefix-numeric-value arg) 16))) - (when (and magit-commit-all-when-nothing-staged - (not (magit-everything-clean-p)) - (not (magit-anything-staged-p))) - (cond ((eq magit-commit-all-when-nothing-staged 'ask-stage) - (when (y-or-n-p "Nothing staged. Stage everything now? ") - (magit-stage-all))) - ((not (magit-log-edit-get-field 'commit-all)) - (when (or (eq magit-commit-all-when-nothing-staged t) - (y-or-n-p - "Nothing staged. Commit all unstaged changes? ")) - (magit-log-edit-set-field 'commit-all "yes"))))) - (when amend-p - (magit-log-edit-toggle-amending)) - (when empty-p - (magit-log-edit-toggle-allow-empty)) - (magit-pop-to-log-edit "commit")))) - -(defun magit-add-log () - (interactive) - (cond ((magit-rebase-info) - (if (y-or-n-p "Rebase in progress. Continue it? ") - (magit-run-git-async "rebase" "--continue"))) - (t - (let ((section (magit-current-section))) - (let ((fun (if (eq (magit-section-type section) 'hunk) - (save-window-excursion - (save-excursion - (magit-visit-item) - (add-log-current-defun))) - nil)) - (file (magit-diff-item-file - (cond ((eq (magit-section-type section) 'hunk) - (magit-hunk-item-diff section)) - ((eq (magit-section-type section) 'diff) - section) - (t - (error "No change at point")))))) - (magit-log-edit nil) - (goto-char (point-min)) - (cond ((not (search-forward-regexp - (format "^\\* %s" (regexp-quote file)) nil t)) - ;; No entry for file, create it. - (goto-char (point-max)) - (insert (format "\n* %s" file)) - (if fun - (insert (format " (%s)" fun))) - (insert ": ")) - (fun - ;; found entry for file, look for fun - (let ((limit (or (save-excursion - (and (search-forward-regexp "^\\* " - nil t) - (match-beginning 0))) - (point-max)))) - (cond ((search-forward-regexp (format "(.*\\<%s\\>.*):" - (regexp-quote fun)) - limit t) - ;; found it, goto end of current entry - (if (search-forward-regexp "^(" limit t) - (backward-char 2) - (goto-char limit))) - (t - ;; not found, insert new entry - (goto-char limit) - (if (bolp) - (open-line 1) - (newline)) - (insert (format "(%s): " fun)))))))))))) - -;;; Tags - -(magit-define-command tag (name rev) - "Create a new lightweight tag with the given NAME at REV. -\('git tag NAME')." - (interactive - (list - (read-string "Tag name: ") - (magit-read-rev "Place tag on: " (or (magit-default-rev) "HEAD")))) - (apply #'magit-run-git "tag" (append magit-custom-options (list name rev)))) - -(magit-define-command annotated-tag (name rev) - "Start composing an annotated tag with the given NAME. -Tag will point to the current 'HEAD'." - (interactive - (list - (read-string "Tag name: ") - (magit-read-rev "Place tag on: " (or (magit-default-rev) "HEAD")))) - (magit-log-edit-set-field 'tag-name name) - (magit-log-edit-set-field 'tag-rev rev) - (magit-log-edit-set-field 'tag-options magit-custom-options) - (magit-pop-to-log-edit "tag")) - -;;; Stashing - -(defun magit-wash-stash () - (if (search-forward-regexp "stash@{\\(.*?\\)}" (line-end-position) t) - (let ((stash (match-string-no-properties 0)) - (name (match-string-no-properties 1))) - (delete-region (match-beginning 0) (match-end 0)) - (goto-char (match-beginning 0)) - (fixup-whitespace) - (goto-char (line-beginning-position)) - (insert name) - (goto-char (line-beginning-position)) - (magit-with-section stash 'stash - (magit-set-section-info stash) - (forward-line))) - (forward-line)) - t) - -(defun magit-wash-stashes () - (let ((magit-old-top-section nil)) - (magit-wash-sequence #'magit-wash-stash))) - -(magit-define-inserter stashes () - (magit-git-section 'stashes - "Stashes:" 'magit-wash-stashes - "stash" "list")) - -(magit-define-command stash (description) - "Create new stash of working tree and staging area named DESCRIPTION. -Working tree and staging area revert to the current 'HEAD'. -With prefix argument, changes in staging area are kept. -\('git stash save [--keep-index] DESCRIPTION')" - (interactive "sStash description: ") - (apply 'magit-run-git `("stash" "save" ,@magit-custom-options "--" ,description))) - -(magit-define-command stash-snapshot () - "Create new stash of working tree and staging area; keep changes in place. -\('git stash save \"Snapshot...\"; git stash apply stash@{0}')" - (interactive) - (magit-with-refresh - (magit-run-git "stash" "save" - (format-time-string "Snapshot taken at %Y-%m-%d %H:%M:%S" - (current-time))) - (magit-run-git "stash" "apply" "stash@{0}"))) - -(defvar magit-currently-shown-stash nil) - -(define-derived-mode magit-stash-mode magit-mode - "Mode for looking at a git stash. - -\\{magit-stash-mode-map}" - :group 'magit) - -(defvar magit-stash-buffer-name "*magit-stash*" - "Buffer name for displaying a stash.") - -(defun magit-show-stash (stash &optional scroll) - (when (magit-section-p stash) - (setq stash (magit-section-info stash))) - (let ((dir default-directory) - (buf (get-buffer-create magit-stash-buffer-name)) - (stash-id (magit-git-string "rev-list" "-1" stash))) - (cond ((and (equal magit-currently-shown-stash stash-id) - (with-current-buffer buf - (> (length (buffer-string)) 1))) - (let ((win (get-buffer-window buf))) - (cond ((not win) - (display-buffer buf)) - (scroll - (with-selected-window win - (funcall scroll)))))) - (t - (setq magit-currently-shown-stash stash-id) - (display-buffer buf) - (with-current-buffer buf - (set-buffer buf) - (goto-char (point-min)) - (let* ((range (cons (concat stash "^2^") stash)) - (magit-current-diff-range range) - (args (magit-rev-range-to-git range))) - (magit-mode-init dir 'magit-diff-mode #'magit-refresh-diff-buffer - range args))))))) -;;; Commits - -(defun magit-commit-at-point (&optional nil-ok-p) - (let* ((section (magit-current-section)) - (commit (or (and (not section) ; Places without a magit-section - (get-text-property (point) 'revision)) ; but with a text property 'revision - (and (eq (magit-section-type section) 'commit) - (magit-section-info section))))) - (if nil-ok-p - commit - (or commit - (error "No commit at point"))))) - -(defun magit-apply-commit (commit &optional docommit noerase revert) - (let* ((parent-id (magit-choose-parent-id commit "cherry-pick")) - (success (magit-run* `(,magit-git-executable - ,@magit-git-standard-options - ,(if revert "revert" "cherry-pick") - ,@(if parent-id - (list "-m" (number-to-string parent-id))) - ,@(if (not docommit) (list "--no-commit")) - ,commit) - nil noerase))) - (when (and (not docommit) success) - (cond (revert - (magit-log-edit-append - (magit-format-commit commit "Reverting \"%s\""))) - (t - (magit-log-edit-append - (magit-format-commit commit "%s%n%n%b")) - (magit-log-edit-set-field - 'author - (magit-format-commit commit "%an <%ae>, %ai"))))) - success)) - -(defun magit-apply-item () - (interactive) - (magit-section-action (item info "apply") - ((pending commit) - (magit-apply-commit info) - (magit-rewrite-set-commit-property info 'used t)) - ((commit) - (magit-apply-commit info)) - ((unstaged *) - (error "Change is already in your working tree")) - ((staged *) - (error "Change is already in your working tree")) - ((hunk) - (magit-apply-hunk-item item)) - ((diff) - (magit-apply-diff-item item)) - ((stash) - (magit-run-git "stash" "apply" info)))) - -(defun magit-cherry-pick-item () - (interactive) - (magit-section-action (item info "cherry-pick") - ((pending commit) - (magit-apply-commit info t) - (magit-rewrite-set-commit-property info 'used t)) - ((commit) - (magit-apply-commit info t)) - ((stash) - (magit-run-git "stash" "pop" info)))) - -(defmacro magit-with-revert-confirmation (&rest body) - `(when (or (not magit-revert-item-confirm) - (yes-or-no-p "Really revert this item? ")) - ,@body)) - -(defun magit-revert-item () - (interactive) - (magit-section-action (item info "revert") - ((pending commit) - (magit-with-revert-confirmation - (magit-apply-commit info nil nil t) - (magit-rewrite-set-commit-property info 'used nil))) - ((commit) - (magit-with-revert-confirmation - (magit-apply-commit info nil nil t))) - ;; Reverting unstaged changes cannot be undone - ((unstaged *) - (magit-discard-item)) - ((hunk) - (magit-with-revert-confirmation - (magit-apply-hunk-item-reverse item))) - ((diff) - (magit-with-revert-confirmation - (magit-apply-diff-item item "--reverse"))))) - -(defun magit-log-show-more-entries (&optional arg) - "Grow the number of log entries shown. - -With no prefix optional ARG, show twice as many log entries. -With a numerical prefix ARG, add this number to the number of shown log entries. -With a non numeric prefix ARG, show all entries" - (interactive "P") - (make-local-variable 'magit-log-cutoff-length) - (cond - ((numberp arg) - (setq magit-log-cutoff-length (+ magit-log-cutoff-length arg))) - (arg - (setq magit-log-cutoff-length magit-log-infinite-length)) - (t (setq magit-log-cutoff-length (* magit-log-cutoff-length 2)))) - (let ((old-point (point))) - (magit-refresh) - (goto-char old-point))) - -(defun magit-refresh-log-buffer (range style args) - (magit-configure-have-graph) - (magit-configure-have-decorate) - (magit-configure-have-abbrev) - (setq magit-current-range range) - (magit-create-log-buffer-sections - (apply #'magit-git-section nil - (magit-rev-range-describe range "Commits") - 'magit-wash-log - `("log" - ,(format "--max-count=%s" magit-log-cutoff-length) - ,style - ,@(if magit-have-decorate (list "--decorate=full")) - ,@(if magit-have-graph (list "--graph")) - ,@(if magit-have-abbrev (list "--no-abbrev-commit")) - ,@args - "--")))) - -(define-derived-mode magit-log-mode magit-mode "Magit" - "Mode for looking at git log. - -\\{magit-log-mode-map}" - :group 'magit) - -(defvar magit-log-buffer-name "*magit-log*" - "Buffer name for display of log entries.") - -(magit-define-command log-ranged () - (interactive) - (magit-log t)) -(define-obsolete-function-alias 'magit-display-log-ranged 'magit-log-ranged) - -(magit-define-command log (&optional ask-for-range &rest extra-args) - (interactive) - (let* ((log-range (if ask-for-range - (magit-read-rev-range "Log" "HEAD") - "HEAD")) - (topdir (magit-get-top-dir default-directory)) - (args (nconc (list (magit-rev-range-to-git log-range)) - magit-custom-options - extra-args))) - (magit-buffer-switch magit-log-buffer-name) - (magit-mode-init topdir 'magit-log-mode #'magit-refresh-log-buffer log-range - "--pretty=oneline" args))) - -(define-obsolete-function-alias 'magit-display-log 'magit-log) - -(magit-define-command log-long-ranged () - (interactive) - (magit-log-long t)) - -(magit-define-command log-long (&optional ranged) - (interactive) - (let* ((range (if ranged - (magit-read-rev-range "Long log" "HEAD") - "HEAD")) - (topdir (magit-get-top-dir default-directory)) - (args (append (list (magit-rev-range-to-git range)) - magit-custom-options))) - (magit-buffer-switch magit-log-buffer-name) - (magit-mode-init topdir 'magit-log-mode #'magit-refresh-log-buffer range - "--stat" args))) - -;;; Reflog - -(defvar magit-reflog-head nil - "The HEAD of the reflog in the current buffer. -This is only non-nil in reflog buffers.") -(make-variable-buffer-local 'magit-reflog-head) - -(defun magit-refresh-reflog-buffer (head args) - (setq magit-reflog-head head) - (magit-create-log-buffer-sections - (apply #'magit-git-section - 'reflog (format "Local history of head %s" head) 'magit-wash-log "log" - (append magit-git-log-options - (list - "--walk-reflogs" - (format "--max-count=%s" magit-log-cutoff-length) - args))))) - -(define-derived-mode magit-reflog-mode magit-log-mode "Magit" - "Mode for looking at git reflog. - -\\{magit-reflog-mode-map}" - :group 'magit) - -(magit-define-command reflog (&optional ask-for-range) - (interactive) - (let ((at (or (if ask-for-range - (magit-read-rev "Reflog of" (or (magit-guess-branch) "HEAD"))) - "HEAD"))) - (let* ((topdir (magit-get-top-dir default-directory)) - (args (magit-rev-to-git at))) - (magit-buffer-switch "*magit-reflog*") - (magit-mode-init topdir 'magit-reflog-mode - #'magit-refresh-reflog-buffer at args)))) - -(magit-define-command reflog-ranged () - (interactive) - (magit-reflog t)) - -;;; Diffing - -(defvar magit-ediff-buffers nil - "List of buffers that may be killed by `magit-ediff-restore'.") - -(defvar magit-ediff-windows nil - "The window configuration that will be restored when Ediff is finished.") - -(defun magit-ediff() - "View the current DIFF section in ediff." - (interactive) - (let ((diff (magit-current-section))) - (when (magit-section-hidden diff) - ;; Range is not set until the first time the diff is visible. - ;; This somewhat hackish code makes sure it's been visible at least once. - (magit-toggle-section) - (magit-toggle-section) - (setq diff (magit-current-section))) - (if (eq 'hunk (magit-section-type diff)) - (setq diff (magit-section-parent diff))) - (unless (eq 'diff (magit-section-type diff)) - (error "No diff at this location")) - (let* ((type (magit-diff-item-kind diff)) - (file1 (magit-diff-item-file diff)) - (file2 (magit-diff-item-file2 diff)) - (range (magit-diff-item-range diff))) - (cond - ((memq type '(new deleted typechange)) - (message "Why ediff a %s file?" type)) - ((and (eq type 'unmerged) - (eq (cdr range) 'working)) - (magit-interactive-resolve file1)) - ((consp (car range)) - (magit-ediff* (magit-show (caar range) file2) - (magit-show (cdar range) file2) - (magit-show (cdr range) file1))) - (t - (magit-ediff* (magit-show (car range) file2) - (magit-show (cdr range) file1))))))) - -(defun magit-ediff* (a b &optional c) - (setq magit-ediff-buffers (list a b c)) - (setq magit-ediff-windows (current-window-configuration)) - (add-hook 'ediff-quit-hook 'magit-ediff-restore 'append) - (if c - (ediff-buffers3 a b c) - (ediff-buffers a b))) - -(defun magit-ediff-restore() - "Kill any buffers in `magit-ediff-buffers' that are not visiting files and -restore the window state that was saved before ediff was called." - (dolist (buffer magit-ediff-buffers) - (if (and (null (buffer-file-name buffer)) - (buffer-live-p buffer)) - (kill-buffer buffer))) - (setq magit-ediff-buffers nil) - (set-window-configuration magit-ediff-windows) - (remove-hook 'ediff-quit-hook 'magit-ediff-restore)) - -(defun magit-refresh-diff-buffer (range args) - (let ((magit-current-diff-range (cond - ((stringp range) - (cons range 'working)) - ((null (cdr range)) - (cons (car range) 'working)) - (t - range)))) - (setq magit-current-range range) - (magit-create-buffer-sections - (magit-git-section 'diffbuf - (magit-rev-range-describe range "Changes") - 'magit-wash-diffs - "diff" (magit-diff-U-arg) args)))) - -(define-derived-mode magit-diff-mode magit-mode "Magit" - "Mode for looking at a git diff. - -\\{magit-diff-mode-map}" - :group 'magit) - -(magit-define-command diff (range) - (interactive (list (magit-read-rev-range "Diff"))) - (if range - (let* ((dir default-directory) - (args (magit-rev-range-to-git range)) - (buf (get-buffer-create "*magit-diff*"))) - (display-buffer buf) - (with-current-buffer buf - (magit-mode-init dir 'magit-diff-mode #'magit-refresh-diff-buffer range args))))) - -(magit-define-command diff-working-tree (rev) - (interactive (list (magit-read-rev "Diff with" (magit-default-rev)))) - (magit-diff (or rev "HEAD"))) - -(defun magit-diff-with-mark () - (interactive) - (magit-diff (cons (magit-marked-commit) - (magit-commit-at-point)))) - -;;; Wazzup - -(defvar magit-wazzup-head nil - "The integration head for the current wazzup buffer. -This is only non-nil in wazzup buffers.") -(make-variable-buffer-local 'magit-wazzup-head) - -(defvar magit-wazzup-all-p nil - "Non-nil if the current wazzup buffer displays excluded branches. -This is only meaningful in wazzup buffers.") -(make-variable-buffer-local 'magit-wazzup-all-p) - -(defun magit-wazzup-toggle-ignore (branch edit) - (let ((ignore-file ".git/info/wazzup-exclude")) - (if edit - (setq branch (read-string "Branch to ignore for wazzup: " branch))) - (let ((ignored (magit-file-lines ignore-file))) - (cond ((member branch ignored) - (when (or (not edit) - (y-or-n-p "Branch %s is already ignored. Unignore? ")) - (setq ignored (delete branch ignored)))) - (t - (setq ignored (append ignored (list branch))))) - (magit-write-file-lines ignore-file ignored) - (magit-need-refresh)))) - -(defun magit-refresh-wazzup-buffer (head all) - (setq magit-wazzup-head head) - (setq magit-wazzup-all-p all) - (let ((branch-desc (or head "(detached) HEAD"))) - (unless head (setq head "HEAD")) - (magit-create-buffer-sections - (magit-with-section 'wazzupbuf nil - (insert (format "Wazzup, %s\n\n" branch-desc)) - (let* ((excluded (magit-file-lines ".git/info/wazzup-exclude")) - (all-branches (magit-list-interesting-refs)) - (branches (if all all-branches - (delq nil (mapcar - (lambda (b) - (and (not - (member (cdr b) excluded)) - b)) - all-branches)))) - (reported (make-hash-table :test #'equal))) - (dolist (branch branches) - (let* ((name (car branch)) - (ref (cdr branch)) - (hash (magit-rev-parse ref)) - (reported-branch (gethash hash reported))) - (unless (or (and reported-branch - (string= (file-name-nondirectory ref) - reported-branch)) - (not (magit-git-string "merge-base" head ref))) - (puthash hash (file-name-nondirectory ref) reported) - (let* ((n (length (magit-git-lines "log" "--pretty=oneline" - (concat head ".." ref)))) - (section - (let ((magit-section-hidden-default t)) - (magit-git-section - (cons ref 'wazzup) - (format "%s unmerged commits in %s%s" - n name - (if (member ref excluded) - " (normally ignored)" - "")) - 'magit-wash-log - "log" - (format "--max-count=%s" magit-log-cutoff-length) - "--graph" - "--pretty=oneline" - (format "%s..%s" head ref) - "--")))) - (magit-set-section-info ref section)))))))))) - -(define-derived-mode magit-wazzup-mode magit-mode - "Mode for looking at commits that could be merged from other branches. - -\\{magit-wazzup-mode-map}" - :group 'magit) - -(defun magit-wazzup (&optional all) - (interactive "P") - (let ((topdir (magit-get-top-dir default-directory)) - (current-branch (magit-get-current-branch))) - (magit-buffer-switch "*magit-wazzup*") - (magit-mode-init topdir 'magit-wazzup-mode - #'magit-refresh-wazzup-buffer - current-branch all))) - -;;; Miscellaneous - -(defun magit-ignore-file (file edit local) - (let ((ignore-file (if local ".git/info/exclude" ".gitignore"))) - (if edit - (setq file (read-string "File to ignore: " file))) - (with-temp-buffer - (when (file-exists-p ignore-file) - (insert-file-contents ignore-file)) - (goto-char (point-max)) - (unless (bolp) - (insert "\n")) - (insert "/" file "\n") - (write-region nil nil ignore-file)) - (magit-need-refresh))) - -(defun magit-ignore-item () - (interactive) - (magit-section-action (item info "ignore") - ((untracked file) - (magit-ignore-file info current-prefix-arg nil)) - ((wazzup) - (magit-wazzup-toggle-ignore info current-prefix-arg)))) - -(defun magit-ignore-item-locally () - (interactive) - (magit-section-action (item info "ignore") - ((untracked file) - (magit-ignore-file info current-prefix-arg t)))) - -(defun magit-discard-diff (diff stagedp) - (let ((kind (magit-diff-item-kind diff)) - (file (magit-diff-item-file diff))) - (cond ((eq kind 'deleted) - (when (yes-or-no-p (format "Resurrect %s? " file)) - (magit-run-git "reset" "-q" "--" file) - (magit-run-git "checkout" "--" file))) - ((eq kind 'new) - (if (yes-or-no-p (format "Delete %s? " file)) - (magit-run-git "rm" "-f" "--" file))) - (t - (if (yes-or-no-p (format "Discard changes to %s? " file)) - (if stagedp - (magit-run-git "checkout" "HEAD" "--" file) - (magit-run-git "checkout" "--" file))))))) - -(defun magit-discard-item () - (interactive) - (magit-section-action (item info "discard") - ((untracked file) - (when (yes-or-no-p (format "Delete %s? " info)) - (if (and (file-directory-p info) - (not (file-symlink-p info))) - (magit-delete-directory info 'recursive) - (delete-file info)) - (magit-refresh-buffer))) - ((untracked) - (if (yes-or-no-p "Delete all untracked files and directories? ") - (magit-run-git "clean" "-df"))) - ((unstaged diff hunk) - (when (yes-or-no-p (if (magit-use-region-p) - "Discard changes in region? " - "Discard hunk? ")) - (magit-apply-hunk-item-reverse item))) - ((staged diff hunk) - (if (magit-file-uptodate-p (magit-diff-item-file - (magit-hunk-item-diff item))) - (when (yes-or-no-p (if (magit-use-region-p) - "Discard changes in region? " - "Discard hunk? ")) - (magit-apply-hunk-item-reverse item "--index")) - (error "Can't discard this hunk. Please unstage it first"))) - ((unstaged diff) - (magit-discard-diff item nil)) - ((staged diff) - (if (magit-file-uptodate-p (magit-diff-item-file item)) - (magit-discard-diff item t) - (error "Can't discard staged changes to this file. Please unstage it first"))) - ((diff diff) - (save-excursion - (magit-goto-parent-section) - (magit-discard-item))) - ((diff diff hunk) - (save-excursion - (magit-goto-parent-section) - (magit-goto-parent-section) - (magit-discard-item))) - ((hunk) - (error "Can't discard this hunk")) - ((diff) - (error "Can't discard this diff")) - ((stash) - (when (yes-or-no-p "Discard stash? ") - (magit-run-git "stash" "drop" info))))) - -(defun magit-add-change-log-entry (&optional whoami file-name other-window - new-entry put-new-entry-on-new-line) - "Add a change log entry for current change." - (interactive (list current-prefix-arg - (prompt-for-change-log-name))) - (let ((marker - (save-window-excursion - (magit-visit-item) - (set-marker (make-marker) (point))))) - (save-excursion - (with-current-buffer (marker-buffer marker) - (goto-char marker) - (if (>= (magit-max-args-internal 'add-change-log-entry) 5) - (add-change-log-entry whoami file-name other-window - new-entry put-new-entry-on-new-line) - (add-change-log-entry whoami file-name other-window new-entry) - (if put-new-entry-on-new-line - (display-warning 'magit (format "Emacs %s does not support `put-new-entry-on-new-line' option to `add-change-log-entry'" emacs-version)))))))) - -(defun magit-add-change-log-entry-other-window (&optional whoami file-name) - "Add a change log entry for current change in other window." - (interactive (if current-prefix-arg - (list current-prefix-arg - (prompt-for-change-log-name)))) - (magit-add-change-log-entry whoami file-name t)) - -(defun magit-visit-item (&optional other-window) - "Visit current item. -With a prefix argument, visit in other window." - (interactive (list current-prefix-arg)) - (magit-section-action (item info "visit") - ((untracked file) - (funcall - (if other-window 'find-file-other-window 'find-file) - info)) - ((diff) - (let ((file (magit-diff-item-file item))) - (if (not (file-exists-p file)) - (error "Can't visit deleted file: %s" file)) - (funcall - (if other-window 'find-file-other-window 'find-file) - file))) - ((hunk) - (let ((file (magit-diff-item-file (magit-hunk-item-diff item))) - (line (magit-hunk-item-target-line item))) - (if (not (file-exists-p file)) - (error "Can't visit deleted file: %s" file)) - (funcall - (if other-window 'find-file-other-window 'find-file) - file) - (goto-char (point-min)) - (forward-line (1- line)))) - ((commit) - (magit-show-commit info nil nil 'select)) - ((stash) - (magit-show-stash info) - (pop-to-buffer magit-stash-buffer-name)) - ((branch) - (magit-checkout (assoc-default 'branch info))) - ((longer) - (magit-log-show-more-entries ())))) - -(defun magit-show-item-or-scroll-up () - (interactive) - (magit-section-action (item info) - ((commit) - (magit-show-commit info #'scroll-up)) - ((stash) - (magit-show-stash info #'scroll-up)) - (t - (scroll-up)))) - -(defun magit-show-item-or-scroll-down () - (interactive) - (magit-section-action (item info) - ((commit) - (magit-show-commit info #'scroll-down)) - ((stash) - (magit-show-stash info #'scroll-down)) - (t - (scroll-down)))) - -(defun magit-mark-item (&optional unmark) - (interactive "P") - (if unmark - (magit-set-marked-commit nil) - (magit-section-action (item info "mark") - ((commit) - (magit-set-marked-commit (if (eq magit-marked-commit info) - nil - info)))))) - -(defun magit-describe-item () - (interactive) - (let ((section (magit-current-section))) - (message "Section: %s %s-%s %S %S %S" - (magit-section-type section) - (magit-section-beginning section) - (magit-section-end section) - (magit-section-title section) - (magit-section-info section) - (magit-section-context-type section)))) - -(defun magit-copy-item-as-kill () - "Copy sha1 of commit at point into kill ring." - (interactive) - (magit-section-action (item info "copy") - ((commit) - (kill-new info) - (message "%s" info)))) - -(eval-when-compile (require 'server)) - -(defun magit-server-running-p () - "Test whether server is running (works with < 23 as well). - -Return values: - nil the server is definitely not running. - t the server seems to be running. - something else we cannot determine whether it's running without using - commands which may have to wait for a long time." - (require 'server) - (if (functionp 'server-running-p) - (server-running-p) - (condition-case nil - (if (and (boundp 'server-use-tcp) - server-use-tcp) - (with-temp-buffer - (insert-file-contents-literally (expand-file-name server-name server-auth-dir)) - (or (and (looking-at "127\\.0\\.0\\.1:[0-9]+ \\([0-9]+\\)") - (assq 'comm - (process-attributes - (string-to-number (match-string 1)))) - t) - :other)) - (delete-process - (make-network-process - :name "server-client-test" :family 'local :server nil :noquery t - :service (expand-file-name server-name server-socket-dir))) - t) - (file-error nil)))) - -(defun magit-interactive-rebase () - "Start a git rebase -i session, old school-style." - (interactive) - (unless (magit-server-running-p) - (server-start)) - (let* ((section (get-text-property (point) 'magit-section)) - (commit (and (member 'commit (magit-section-context-type section)) - (magit-section-info section))) - (old-editor (getenv "GIT_EDITOR"))) - (setenv "GIT_EDITOR" (locate-file "emacsclient" exec-path)) - (unwind-protect - (magit-run-git-async "rebase" "-i" - (or (and commit (concat commit "^")) - (magit-read-rev "Interactively rebase to" (magit-guess-branch)))) - (if old-editor - (setenv "GIT_EDITOR" old-editor))))) - -(define-derived-mode magit-show-branches-mode magit-mode - "Magit Branches") - -(defun magit-quit-window (&optional kill-buffer) - "Bury the buffer and delete its window. With a prefix argument, kill the -buffer instead." - (interactive "P") - (quit-window kill-buffer (selected-window))) - -(defun magit--branch-name-from-section (branch) - "Extract the branch name from the specified magit-section of type 'branch" - (assoc-default 'branch (magit-section-info branch))) - -(defun magit--branch-name-at-point () - "Get the branch name in the line at point." - (let ((branch (magit--branch-name-from-section (magit-current-section)))) - (or branch (error "No branch at point")))) - -(defun magit-remove-remote (ref) - "Return REF with any remote part removed." - (if (string-match "^remotes/" ref) - (substring ref 8) - ref)) - -(defun magit-remove-branch (&optional force) - "Remove the branch in the line at point. -With prefix force the removal even it it hasn't been merged." - (interactive "P") - (let* ((branch-section (magit-current-section)) - (args (list "branch" - (if force "-D" "-d") - (when (magit--is-branch-section-remote branch-section) "-r") - (magit-remove-remote (magit--branch-name-from-section branch-section))))) - (if (and (magit--is-branch-section-remote branch-section) - (yes-or-no-p "Remove branch in remote repository as well? ")) - (magit-remove-branch-in-remote-repo (magit--branch-name-from-section branch-section)) - (apply 'magit-run-git (remq nil args))))) - -(defun magit--remotes () - "Return a list of names for known remotes." - (magit-git-lines "remote")) - -(defun magit--branches-for-remote-repo (remote) - "Return a list of remote branch names for REMOTE. -These are the branch names with the remote name stripped." - (remq nil - (mapcar (lambda (line) - (save-match-data - (if (and (not (string-match-p " -> " line)) - (string-match (concat "^ +" remote "/\\([^ $]+\\)") - line)) - (match-string 1 line)))) - (magit-git-lines "branch" "-r")))) - -(defun magit-remove-branch-in-remote-repo (&optional branch-name-at-local) - "Remove a branch in a remote repository by pushing nothing into it. -If BRANCH-NAME-AT-LOCAL is not given then ask the user for the -name of the remote and branch name. The remote must be known to git." - (interactive) - (let ((all-remotes (magit--remotes)) - remote branch) - (unless all-remotes - (error "No remote has been configured")) - (if branch-name-at-local - (save-match-data - (if (string-match "^remotes/\\([^/]+\\)/\\(.+\\)" branch-name-at-local) - (setq remote (match-string 1 branch-name-at-local) - branch (match-string 2 branch-name-at-local)) - (error "Cannot parse remote and branch name from `%s'" branch-name-at-local))) - (setq remote (magit-completing-read "Name of remote repository: " all-remotes nil t) - branch (magit-completing-read "Name of branch in remote repository: " - (magit--branches-for-remote-repo remote)))) - (unless (magit-get "remote" remote "url") - (error "Unknown remote")) - (magit-run-git "push" - remote - (concat ":refs/heads/" branch)))) - -(defvar magit-branches-buffer-name "*magit-branches*") - -(defun magit--is-branch-at-point-remote() - "Return t if the branch at point is a remote tracking branch" - (magit--is-branch-section-remote (magit-current-section))) - -(defun magit--is-branch-section-remote (branch) - (assoc-default 'remote (magit-section-info branch))) - -(defun magit--branch-view-details (branch-line) - "Extract details from branch -va output." - (string-match (concat - "^\\([ *] \\)" ; 1: current branch marker (maybe) - "\\(.+?\\) +" ; 2: branch name - - "\\(?:" - "\\([0-9a-fA-F]+\\)" ; 3: sha1 - "\\|\\(->\\)" ; 4: or the pointer to a ref - "\\) " - - "\\(.*\\)$" ; 5: message or ref - ) - branch-line) - (let ((res (list (cons 'current (match-string 1 branch-line)) - (cons 'branch (match-string 2 branch-line)) - (cons 'remote (string-match-p "^remotes/" (match-string 2 branch-line)))))) - (unless (cdr (assoc 'remote res)) - (setq res (append (list (cons 'tracking - (magit-remote-branch-for (cdr (assoc 'branch res)) - t))) - res))) - (if (match-string 4 branch-line) - (cons (cons 'other-ref (match-string 5 branch-line)) res) - (append - (list - (cons 'sha1 (match-string 3 branch-line)) - (cons 'msg (match-string 5 branch-line))) - res)))) - -(defun magit-show-branches () - "Show all of the current branches." - (interactive) - (let ((buffer-existed (get-buffer magit-branches-buffer-name))) - (unless (derived-mode-p 'magit-show-branches-mode) - (let ((topdir (magit-get-top-dir default-directory))) - (magit-buffer-switch magit-branches-buffer-name) - (setq magit-refresh-function 'magit-show-branches) - (setq default-directory topdir))) - (let ((inhibit-read-only t) - (goto-branch-line (line-number-at-pos)) - (branches (mapcar 'magit--branch-view-details - (apply 'magit-git-lines "branch" "-va" - magit-custom-options)))) - (magit-create-buffer-sections - (magit-with-section "branch-manager" nil - (dolist (b branches) - (magit-with-section (assoc-default 'branch b) 'branch - (magit-set-section-info b) - (insert (concat - (assoc-default 'current b) - (propertize (or (assoc-default 'sha1 b) " ") - 'face 'magit-log-sha1) - " " - (apply 'propertize (assoc-default 'branch b) - (if (string-match-p "^\\*" (assoc-default 'current b)) - '(face magit-branch))) - (if (assoc 'other-ref b) - (concat " (" (assoc-default 'other-ref b) ")") - "") - (if (assoc-default 'tracking b) - (concat " [" - (propertize (assoc-default 'tracking b) - 'face 'magit-log-head-label-remote) - "]") - ""))) - (insert "\n"))))) - (magit-show-branches-mode) - (goto-char (point-min)) - (if buffer-existed - (forward-line (1- goto-branch-line)) - (while (and (< (point) - (point-max)) - (not (string= (buffer-substring-no-properties (point) (1+ (point))) - "*"))) - (forward-line 1))))) - (setq buffer-read-only t)) - -(defun magit-change-what-branch-tracks () - "Change which remote branch the current branch tracks." - (interactive) - (if (magit--is-branch-at-point-remote) - (error "Cannot modify a remote branch")) - (let* ((local-branch (magit--branch-name-at-point)) - (new-tracked (magit-read-rev "Change tracked branch to" - nil - (lambda (ref) - (not (string-match-p "refs/remotes/" - ref))))) - new-remote new-branch) - (unless (string= (or new-tracked "") "") - (cond (;; Match refs that are unknown in the local repository if - ;; `magit-remote-ref-format' is set to - ;; `name-then-remote'. Can be useful if you want to - ;; create a new branch in a remote repository. - (string-match "^\\([^ ]+\\) +(\\(.+\\))$" ; 1: branch name; 2: remote name - new-tracked) - (setq new-remote (match-string 2 new-tracked) - new-branch (concat "refs/heads/" (match-string 1 new-tracked)))) - ((string-match "^\\(?:refs/remotes/\\)?\\([^/]+\\)/\\(.+\\)" ; 1: remote name; 2: branch name - new-tracked) - (setq new-remote (match-string 1 new-tracked) - new-branch (concat "refs/heads/" (match-string 2 new-tracked)))) - (t (error "Cannot parse the remote and branch name")))) - (magit-set new-remote "branch" local-branch "remote") - (magit-set new-branch "branch" local-branch "merge") - (magit-show-branches) - (if (string= (magit-get-current-branch) local-branch) - (magit-refresh-buffer (magit-find-status-buffer default-directory))))) - -(defvar magit-ediff-file) - -(defun magit-interactive-resolve (file) - (require 'ediff) - (let ((merge-status (magit-git-string "ls-files" "-u" "--" file)) - (base-buffer (generate-new-buffer (concat file ".base"))) - (our-buffer (generate-new-buffer (concat file ".current"))) - (their-buffer (generate-new-buffer (concat file ".merged"))) - (windows (current-window-configuration))) - (if (null merge-status) - (error "Cannot resolve %s" file)) - (with-current-buffer base-buffer - (if (string-match "^[0-9]+ [0-9a-f]+ 1" merge-status) - (insert (magit-git-output `("cat-file" "blob" ,(concat ":1:" file)))))) - (with-current-buffer our-buffer - (if (string-match "^[0-9]+ [0-9a-f]+ 2" merge-status) - (insert (magit-git-output `("cat-file" "blob" ,(concat ":2:" file))))) - (let ((buffer-file-name file)) - (normal-mode))) - (with-current-buffer their-buffer - (if (string-match "^[0-9]+ [0-9a-f]+ 3" merge-status) - (insert (magit-git-output `("cat-file" "blob" ,(concat ":3:" file))))) - (let ((buffer-file-name file)) - (normal-mode))) - ;; We have now created the 3 buffer with ours, theirs and the ancestor files - (with-current-buffer (ediff-merge-buffers-with-ancestor our-buffer their-buffer base-buffer) - (make-local-variable 'magit-ediff-file) - (setq magit-ediff-file file) - (make-local-variable 'magit-ediff-windows) - (setq magit-ediff-windows windows) - (make-local-variable 'ediff-quit-hook) - (add-hook 'ediff-quit-hook - (lambda () - (let ((buffer-A ediff-buffer-A) - (buffer-B ediff-buffer-B) - (buffer-C ediff-buffer-C) - (buffer-Ancestor ediff-ancestor-buffer) - (file magit-ediff-file) - (file-buffer) - (windows magit-ediff-windows)) - (ediff-cleanup-mess) - (find-file file) - (setq file-buffer (current-buffer)) - (erase-buffer) - (insert-buffer-substring buffer-C) - (kill-buffer buffer-A) - (kill-buffer buffer-B) - (kill-buffer buffer-C) - (when (bufferp buffer-Ancestor) (kill-buffer buffer-Ancestor)) - (set-window-configuration windows) - (magit-save-some-buffers - "Conflict resolution finished; you may save the buffer" - (lambda () (eq (current-buffer) file-buffer))))))))) - -(defun magit-interactive-resolve-item () - (interactive) - (magit-section-action (item info "resolv") - ((diff) - (magit-interactive-resolve (cadr info))))) - -(defun magit-submodule-update (&optional init) - "Update the submodule of the current git repository - -With a prefix arg, do a submodule update --init" - (interactive "P") - (let ((default-directory (magit-get-top-dir default-directory))) - (apply #'magit-run-git-async "submodule" "update" (if init '("--init") ())))) - -(defun magit-submodule-update-init () - "Update and init the submodule of the current git repository." - (interactive) - (magit-submodule-update t)) - -(defun magit-submodule-init () - "Initialize the submodules" - (interactive) - (let ((default-directory (magit-get-top-dir default-directory))) - (magit-run-git-async "submodule" "init"))) - -(defun magit-submodule-sync () - "Synchronizes submodules' remote URL configuration" - (interactive) - (let ((default-directory (magit-get-top-dir default-directory))) - (magit-run-git-async "submodule" "sync"))) - -(defun magit-run-git-gui () - "Run `git gui' for the current git repository" - (interactive) - (let* ((default-directory (magit-get-top-dir default-directory))) - (magit-start-process "Git Gui" nil magit-git-executable "gui"))) - -(defun magit-run-gitk () - "Run `gitk --all' for the current git repository" - (interactive) - (let ((default-directory (magit-get-top-dir default-directory))) - (cond - ((eq system-type 'windows-nt) - ;; Gitk is a shell script, and Windows doesn't know how to - ;; "execute" it. The Windows version of Git comes with an - ;; implementation of "sh" and everything else it needs, but - ;; Windows users might not have added the directory where it's - ;; installed to their path - (let ((git-bin-dir (file-name-directory magit-gitk-executable)) - (exec-path exec-path) - (process-environment process-environment)) - (when git-bin-dir - ;; Adding it onto the end so that anything the user - ;; specified will get tried first. Emacs looks in - ;; exec-path; PATH is the environment variable inherited by - ;; the process. I need to change both. - (setq exec-path (append exec-path (list git-bin-dir))) - (push (format "PATH=%s;%s" - (getenv "PATH") - (replace-regexp-in-string "/" "\\\\" git-bin-dir)) - process-environment)) - (magit-start-process "Gitk" nil "sh" magit-gitk-executable "--all"))) - (t - (magit-start-process "Gitk" nil magit-gitk-executable "--all"))))) - -(defun magit-load-config-extensions () - "Try to load magit extensions that are defined at git config -layer. This can be added to `magit-mode-hook' for example" - (dolist (ext (magit-get-all "magit.extension")) - (let ((sym (intern (format "magit-%s-mode" ext)))) - (when (fboundp sym) - (funcall sym 1))))) - -(provide 'magit) - -;; rest of magit core -(require 'magit-key-mode) -(require 'magit-bisect) - -;;; magit.el ends here diff --git a/elpa/magit-1.1.1/magit.info b/elpa/magit-1.1.1/magit.info deleted file mode 100644 index a5103e1c..00000000 --- a/elpa/magit-1.1.1/magit.info +++ /dev/null @@ -1,1331 +0,0 @@ -This is magit.info, produced by makeinfo version 4.13 from magit.texi. - -INFO-DIR-SECTION Emacs -START-INFO-DIR-ENTRY -* Magit: (magit). Using Git from Emacs with Magit. -END-INFO-DIR-ENTRY - - Copyright (C) 2008, 2009, 2010, 2011 Magit contributors. (See the -header of magit.el for the lengthy list of Magit contributors.) - - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation License, - Version 1.2 or any later version published by the Free Software - Foundation; with no Invariant Sections, with no Front-Cover Texts, - and with no Back-Cover Texts. - - -File: magit.info, Node: Top, Next: Introduction, Up: (dir) - -Magit User Manual -***************** - -Magit is an interface to the version control system Git, implemented as -an extension to Emacs. Magit supports GNU Emacs version 22 or later. -It may work with other emacsen, but Magit developers do not intend to -investigate and fix bugs that only appear in unsupported versions. -Patches to fix bugs in other emacsen or volunteers to maintain -compatibility are still welcome. - -* Menu: - -* Introduction:: -* Acknowledgments:: -* Sections:: -* Status:: -* Untracked files:: -* Staging and Committing:: -* History:: -* Reflogs:: -* Commit Buffer:: -* Diffing:: -* Tagging:: -* Resetting:: -* Stashing:: -* Branching:: -* The Branch Manager:: -* Wazzup:: -* Merging:: -* Rebasing:: -* Rewriting:: -* Pushing and Pulling:: -* Bisecting:: -* Submodules:: -* Using Magit Extensions:: -* Using Git Directly:: -* Customization:: -* Frequently Asked Questions:: - - -File: magit.info, Node: Introduction, Next: Acknowledgments, Prev: Top, Up: Top - -1 Introduction -************** - -With Magit, you can inspect and modify your Git repositories with -Emacs. You can review and commit the changes you have made to the -tracked files, for example, and you can browse the history of past -changes. There is support for cherry picking, reverting, merging, -rebasing, and other common Git operations. - - Magit is not a complete interface to Git; it just aims to make the -most common Git operations convenient. Thus, Magit will likely not -save you from learning Git itself. - - This manual provides a tour of all Magit features. It does not give -an introduction to version control in general, or to Git in particular. - - The main entry point to Magit is `M-x magit-status', which will put -you in Magit's status buffer. You will be using it frequently, so it -is probably a good idea to bind `magit-status' to a key of your choice. - - In addition to the status buffer, Magit will also create buffers that -show lists of commits, buffers with diffs, and other kinds of buffers. -All these buffers are in `magit-mode' and have the same key bindings. -Not all commands make sense in all contexts, but a given key will -always do the same thing in all Magit buffers. - - Naturally, Magit runs the `git' command to do most of the work. The -`*magit-process*' buffer contains the transcript of the most recent -command. You can switch to it with `$'. - - -File: magit.info, Node: Acknowledgments, Next: Sections, Prev: Introduction, Up: Top - -2 Acknowledgments -***************** - -Marius Vollmer started the whole project. Thanks ! - - From day one of the first Magit announcement, John Wiegley has -contributed numerous fixes, UI improvements, and new features. Thanks! - - Linh Dang and Christian Neukirchen also contributed from day one. -Thanks! - - Phil Hagelberg joined a few days later. Thanks! - - Alex Ott contributed support for git svn. Thanks! - - Marcin Bachry contributed bug fixes and support for decorated logs. -Thanks! - - Alexey Voinov fixed bugs. Thanks! - - RĂ©mi Vanicat helped with Tramp support. Thanks! - - -File: magit.info, Node: Sections, Next: Status, Prev: Acknowledgments, Up: Top - -3 Sections -********** - -All Magit buffers are structured into nested 'sections'. These -sections can be hidden and shown individually. When a section is -hidden, only its first line is shown and all its children are -completely invisible. - - The most fine-grained way to control the visibility of sections is -the `TAB' key. It will to toggle the current section (the section that -contains point) between being hidden and being shown. - - Typing `S-TAB' toggles the visibility of the children of the current -section. When all of them are shown, they will all be hidden. -Otherwise, when some or all are hidden, they will all be shown. - - The digit keys `1', `2', `3', and `4' control the visibility of -sections based on levels. Hitting `2', for example, will show sections -on levels one and two, and will hide sections on level 3. However, -only sections that are a parent or child of the current section are -affected. - - For example, when the current section is on level 3 and you hit `1', -the grand-parent of the current section (which is on level one) will be -shown, and the parent of the current section (level 2) will be hidden. -The visibility of no other section will be changed. - - This sounds a bit complicated, but you'll figure it out. - - Using `M-1', `M-2', `M-3', and `M-4' is similar to the unmodified -digits, but now all sections on the respective level are affected, -regardless of whether or not they are related to the current section. - - For example, `M-1' will only show the first lines of the top-level -sections and will hide everything else. Typing `M-4' on the other hand -will show everything. - - Because of the way the status buffer is set up, some changes to -section visibility are more common than others. Files are on level 2 -and diff hunks are on level 4. Thus, you can type `2' to collapse the -diff of the current file, and `M-2' to collapse all files. This -returns the status buffer to its default setup and is a quick way to -unclutter it after drilling down into the modified files. - - Because `2' and `M-2' are so common in the status buffer, they are -bound to additional, more mnemonic keys: `M-h' (hide) and `M-H' (hide -all). Likewise `4' and `M-4' are also available as `M-s' (show) and -`M-S' (show all). - - In other buffers than the status buffer, `M-h', `M-H', `M-s', and -`M-S' might work on different levels than on 2 and 4, but they keep -their general meaning: `M-H' hides all detail, and `M-S' shows -everything. - - -File: magit.info, Node: Status, Next: Untracked files, Prev: Sections, Up: Top - -4 Status -******** - -Running `M-x magit-status' displays the main interface of Magit, the -status buffer. You can have multiple status buffers active at the same -time, each associated with its own Git repository. - - When invoking `M-x magit-status' from within a Git repository, it -will switch to the status buffer of that repository. Otherwise, it -will prompt for a directory. With a prefix argument, it will always -prompt. - - You can set `magit-repo-dirs' to customize how `magit-status' asks -for the repository to work on. When `magit-repo-dirs' is nil, -`magit-status' will simply ask for a directory. - - If you specify a directory that is not a Git repository, `M-x -magit-status' will offer to initialize it as one. - - When `magit-repo-dirs' is not nil, it is treated as a list of -directory names, and `magit-status' will find all Git repositories in -those directories and offer them for completion. (Magit will only look -`magit-repo-dirs-depth' levels deep, however.) - - With two prefix arguments, `magit-status' will always prompt for a -raw directory. - - Thus, you would normally set `magit-repo-dirs' to the places where -you keep most of your Git repositories and switch between them with -`C-u M-x magit-status'. If you want to go to a repository outside of -your normal working areas, or if you want to create a new repository, -you would use `C-u C-u M-x magit-status'. - - You need to explicitly refresh the status buffer when you have made -changes to the repository from outside of Emacs. You can type `g' in -the status buffer itself, or just use `M-x magit-status' instead of -`C-x b' when switching to it. You also need to refresh the status -buffer in this way after saving a file in Emacs. - - The header at the top of the status buffer shows a short summary of -the repository state: where it is located, which branch is checked out, -etc. Below the header are a number of sections that show details about -the working tree and the staging area. You can hide and show them as -described in the previous section. - - The first section shows _Untracked files_, if there are any. See -*note Untracked files:: for more details. - - The next two sections show your local changes. They are explained -fully in the next chapter, *note Staging and Committing::. - - If the current branch is associated with a remote tracking branch, -the status buffer shows the differences between the current branch and -the tracking branch. See *note Pushing and Pulling:: for more -information. - - During a history rewriting session, the status buffer shows the -_Pending changes_ and _Pending commits_ sections. See *note -Rewriting:: for more details. - - -File: magit.info, Node: Untracked files, Next: Staging and Committing, Prev: Status, Up: Top - -5 Untracked files -***************** - -Untracked files are shown in the _Untracked files_ section. - - You can add an untracked file to the staging area with `s'. If -point is on the _Untracked files_ section title when you hit `s', all -untracked files are staged. - - Typing `C-u S' anywhere will also stage all untracked files, -together with all changes to the tracked files. - - You can instruct Git to ignore them by typing `i'. This will add -the filename to the `.gitignore' file. Typing `C-u i' will ask you for -the name of the file to ignore. This is useful to ignore whole -directories, for example. The `I' command is similar to `i' but will -add the file to `.git/info/exclude' instead. - - To delete an untracked file forever, use `k'. If point is on the -_Untracked files_ section title when you hit `k', all untracked files -are deleted. - - -File: magit.info, Node: Staging and Committing, Next: History, Prev: Untracked files, Up: Top - -6 Staging and Committing -************************ - -Comitting with Git is a two step process: first you add the changes you -want to commit to a 'staging area', and then you commit them to the -repository. This allows you to only commit a subset of your local -changes. - - Magit allows you to ignore the staging area if you wish. As long as -your staging area is unused, Magit will show your uncomitted changes in -a section named _Changes_. - - When the staging area is in use, Magit uses two sections: _Unstaged -changes_ and _Staged changes_. The _Staged changes_ section shows the -changes that will be included in the next commit, while the _Unstaged -changes_ section shows the changes that will be left out. - - To move an unstaged hunk into the staging area, move point into the -hunk and type `s'. Likewise, to unstage a hunk, move point into it and -type `u'. If point is in a diff header when you type `s' or `u', all -hunks belonging to that diff are moved at the same time. - - If the region is active when you type `s' or `u', only the changes -in the region are staged or unstaged. (This works line by line: if the -beginning of a line is in the region it is included in the changes, -otherwise it is not.) - - To change the size of the hunks, you can type `+' or `-' to increase -and decrease, respectively. Typing `0' will reset the hunk size to the -default. - - Typing `C-u s' will ask you for a name of a file to be staged, for -example to stage files that are hidden. - - To move all hunks of all diffs into the staging area in one go, type -`S'. To unstage everything, type `U'. - - Typing `C-u S' will stage all untracked files in addition to the -changes to tracked files. - - You can discard uncommitted changes by moving point into a hunk and -typing `k'. The changes to discard are selected as with `s' and `u'. - - Before committing, you should write a short description of the -changes. - - Type `c' to pop up a buffer where you can write your change -description. Once you are happy with the description, type `C-c C-c' -in that buffer to perform the commit. - - If you want to write changes in a `ChangeLog' file, you can use `C-x -4 a' on a diff hunk. - - Typing `c' when the staging area is unused is a special situation. -Normally, the next commit would be empty, but you can configure Magit -to do something more useful by customizing the -`magit-commit-all-when-nothing-staged' variable. One choice is to -instruct the subsequent `C-c C-c' to commit all changes. Another -choice is stage everything at the time of hitting `c'. - - You can type `C-c C-a' in the buffer with the change description to -toggle a flag that determines whether the next commit will _amend_ the -current commit in HEAD. - - Typing `C-c C-s' will toggle the `--signoff' option. The default is -determined by the `magit-commit-signoff' customization variable. - - Typing `C-c C-e' will toggle the `--allow-empty' option. This -allows you to make commits that serve as notes, without including any -changes. - - Typing `C-c C-t' will toggle the option to specify the name and -email address for the commit's author. The default is determined by -the `user.name' and `user.email' git configuration settings. - - If you change your mind and don't want to go ahead with your commit -while you are in the `*magit-log-edit*' buffer, you can just switch to -another buffer, continue editing there, staging and unstaging things -until you are happy, and then return to the `*magit-log-edit*' buffer, -maybe via `C-x b', or by hitting `c' again in a Magit buffer. - - If you want to erase the `*magit-log-edit*' buffer and bury it, you -can hit `C-c C-k' in it. - - Typing `C' will also pop up the change description buffer, but in -addition, it will try to insert a ChangeLog-style entry for the change -that point is in. - - -File: magit.info, Node: History, Next: Reflogs, Prev: Staging and Committing, Up: Top - -7 History -********* - -To show the repository history of your current head, type `l l'. A new -buffer will be shown that displays the history in a terse form. The -first paragraph of each commit message is displayed, next to a -representation of the relationships between commits. - - To show the repository history between two branches or between any -two points of the history, type `l r l'. You will be prompted to enter -references for starting point and ending point of the history range; you -can use auto-completion to specify them. A typical use case for ranged -history log display would be `l r l master RET new-feature RET' that -will display commits on the new-feature branch that are not in master; -these commits can then be inspected and cherry-picked, for example. - - More thorough filtering can be done by supplying `l' with one or -more suffix arguments, as displayed in its popup. `=g' ('Grep') for -example, limits the output to commits of which the log message matches -a specific string/regex. - - Typing `l L' (or `l C-u L') will show the log in a more verbose form. - - Magit will show only `magit-log-cutoff-length' entries. `e' will -show twice as many entries. `C-u e' will show all entries, and given a -numeric prefix argument, `e' will add this number of entries. - - You can move point to a commit and then cause various things to -happen with it. (The following commands work in any list of commits, -such as the one shown in the _Unpushed commits_ section.) - - Typing `RET' will pop up more information about the current commit -and move point into the new buffer. *Note Commit Buffer::. Typing -`SPC' and `DEL' will also show the information, but will scroll the new -buffer up or down (respectively) when typed again. - - Typing `a' will apply the current commit to your current branch. -This is useful when you are browsing the history of some other branch -and you want to `cherry-pick' some changes from it. A typical -situation is applying selected bug fixes from the development version -of a program to a release branch. The cherry-picked changes will not -be committed automatically; you need to do that explicitly. - - Typing `A' will cherry-pick the current commit and will also commit -the changes automatically when there have not been any conflicts. - - Typing `v' will revert the current commit. Thus, it will apply the -changes made by that commit in reverse. This is obviously useful to -cleanly undo changes that turned out to be wrong. As with `a', you -need to commit the changes explicitly. - - Typing `C-w' will copy the sha1 of the current commit into the kill -ring. - - Typing `=' will show the differences from the current commit to the -"marked" commit. - - You can mark the current commit by typing `.'. When the current -commit is already marked, typing `.' will unmark it. To unmark the -marked commit no matter where point is, use `C-u .'. - - Some commands, such as `=', will use the current commit and the -marked commit as implicit arguments. Other commands will offer the -marked commit as a default when prompting for their arguments. - - -File: magit.info, Node: Reflogs, Next: Commit Buffer, Prev: History, Up: Top - -8 Reflogs -********* - -You can use `l h' and `l H' to browse your _reflog_, the local history -of changes made to your repository heads. Typing `H' will ask for a -head, while `l h' will show the reflog of `HEAD'. - - The resulting buffer is just like the buffer produced by `l l' and -`l L' that shows the commit history. - - -File: magit.info, Node: Commit Buffer, Next: Diffing, Prev: Reflogs, Up: Top - -9 Commit Buffer -*************** - -When you view a commit (perhaps by selecting it in the log buffer, -*note History::), the "commit buffer" is displayed, showing you -information about the commit and letting you interact with it. - - By placing your cursor within the diff or hunk and typing `a', you -can apply the same patch to your working copy. This is useful when you -want to copy a change from another branch, but don't necessarily want -to cherry-pick the whole commit. - - By typing `v' you can apply the patch in reverse, removing all the -lines that were added and adding all the lines that were removed. This -is a convenient way to remove a change after determining that it -introduced a bug. - - If the commit message refers to any other commits in the repository -by their unique hash, the hash will be highlighted and you will be able -to visit the referenced commit either by clicking on it or by moving -your cursor onto it and pressing `RET'. - - The commit buffer maintains a history of the commits it has shown. -After visiting a referenced commit you can type `C-c C-b' to get back -to where you came from. To go forward in the history, type `C-c C-f'. -There are also `[back]' and `[forward]' buttons at the bottom of the -buffer. - - -File: magit.info, Node: Diffing, Next: Tagging, Prev: Commit Buffer, Up: Top - -10 Diffing -********** - -Magit typically shows diffs in the "unified" format. - - In any buffer that shows a diff, you can type `e' anywhere within -the diff to show the two versions of the file in Ediff. If the diff is -of a file in the status buffer that needs to be merged, you will be -able to use Ediff as an interactive merge tool. Otherwise, Ediff will -simply show the two versions of the file. - - To show the changes from your working tree to another revision, type -`d'. To show the changes between two arbitrary revisions, type `D'. - - You can use `a' within the diff output to apply the changes to your -working tree. As usual when point is in a diff header for a file, all -changes for that file are applied, and when it is in a hunk, only that -hunk is. When the region is active, the applied changes are restricted -to that region. - - Typing `v' will apply the selected changes in reverse. - - -File: magit.info, Node: Tagging, Next: Resetting, Prev: Diffing, Up: Top - -11 Tagging -********** - -Typing `t t' will make a lighweight tag. Typing `t a' will make an -annotated tag. It will put you in the normal `*magit-log-edit' buffer -for writing commit messages, but typing `C-c C-c' in it will make the -tag instead. This is controlled by the `Tag' field that will be added -to the `*magit-log-edit*' buffer. You can edit it, if you like. - - -File: magit.info, Node: Resetting, Next: Stashing, Prev: Tagging, Up: Top - -12 Resetting -************ - -Once you have added a commit to your local repository, you can not -change that commit anymore in any way. But you can reset your current -head to an earlier commit and start over. - - If you have published your history already, rewriting it in this way -can be confusing and should be avoided. However, rewriting your local -history is fine and it is often cleaner to fix mistakes this way than -by reverting commits (with `v', for example). - - Typing `x' will ask for a revision and reset your current head to -it. No changes will be made to your working tree and staging area. -Thus, the _Staged changes_ section in the status buffer will show the -changes that you have removed from your commit history. You can commit -the changes again as if you had just made them, thus rewriting history. - - Typing `x' while point is in a line that describes a commit will -offer this commit as the default revision to reset to. Thus, you can -move point to one of the commits in the _Unpushed commits_ section and -hit `x RET' to reset your current head to it. - - Type `X' to reset your working tree and staging area to the most -recently committed state. This will discard your local modifications, -so be careful. - - You can give a prefix to `x' if you want to reset both the current -head and your working tree to a given commit. This is the same as -first using an unprefixed `x' to reset only the head, and then using -`X'. - - -File: magit.info, Node: Stashing, Next: Branching, Prev: Resetting, Up: Top - -13 Stashing -*********** - -You can create a new stash with `z z'. Your stashes will be listed in -the status buffer, and you can apply them with `a' and pop them with -`A'. To drop a stash, use `k'. - - With a prefix argument, both `a' and `A' will attempt to reinstate -the index as well as the working tree from the stash. - - Typing `z -k z' will create a stash just like `z z', but will leave -the changes in your working tree and index. This makes it easier to, -for example, test multiple variations of the same change. - - If you just want to make quick snapshots in between edits, you can -use `z s', which automatically enters a timestamp as description, and -keeps your working tree and index intact by default. - - You can visit and show stashes in the usual way: Typing `SPC' and -`DEL' will pop up a buffer with the description of the stash and scroll -it, typing `RET' will move point into that buffer. Using `C-u RET' will -move point into that buffer in other window. - - -File: magit.info, Node: Branching, Next: The Branch Manager, Prev: Stashing, Up: Top - -14 Branching -************ - -The current branch is indicated in the header of the status buffer. -You can switch to a different branch by typing `b b'. This will -immediately checkout the branch into your working copy, so you -shouldn't have any local modifications when switching branches. - - If you try to switch to a remote branch, Magit will offer to create a -local tracking branch for it instead. This way, you can easily start -working on new branches that have appeared in a remote repository. - - Typing `b b' while point is at a commit description will offer that -commit as the default to switch to. This will result in a detached -head. - - Typing `b m' will let you rename a branch. Unless a branch with the -same name already exists, obviously... - - To create a new branch and switch to it immediately, type `b n'. - - To delete a branch, type `b d'. If you're currently on that branch, -Magit will offer to switch to the 'master' branch. - - Deleting a branch is only possible if it's already fully merged into -HEAD or its upstream branch. Unless you type `b D', that is. Here be -dragons... - - Typing `b v' will list the local and remote branches in a new buffer -called `*magit-branches*' from which you can work with them. See *note -The Branch Manager:: for more details. - - -File: magit.info, Node: The Branch Manager, Next: Wazzup, Prev: Branching, Up: Top - -15 The Branch Manager -********************* - -The Branch Manager is a separate buffer called `*magit-branches*' with -its own local key map. The buffer contains both local and remote -branches. The current local branch is marked by a "*" in front of the -name. - - To check out a branch, move your cursor to the desired branch and -press `RET'. - - Typing `k' will delete the branch in the current line, and `C-u k' -deletes it even if it hasn't been merged into the current local branch. -Deleting works for both local and remote branches. - - By typing `T' on a local branch, you can change which remote branch -it's set to track. - - -File: magit.info, Node: Wazzup, Next: Merging, Prev: The Branch Manager, Up: Top - -16 Wazzup -********* - -Typing `w' will show a summary of how your other branches relate to the -current branch. - - For each branch, you will get a section that lists the commits in -that branch that are not in the current branch. The sections are -initially collapsed; you need to explicitly open them with `TAB' (or -similar) to show the lists of commits. - - When point is on a _N unmerged commits in ..._ title, the -corresponding branch will be offered as the default for a merge. - - Hitting `i' on a branch title will ignore this branch in the wazzup -view. You can use `C-u w' to show all branches, including the ignored -ones. Hitting `i' on an already ignored branch in that view will -unignore it. - - -File: magit.info, Node: Merging, Next: Rebasing, Prev: Wazzup, Up: Top - -17 Merging -********** - -Magit offers two ways to merge branches: manual and automatic. A -manual merge will apply all changes to your working tree and staging -area, but will not commit them, while an automatic merge will go ahead -and commit them immediately. - - Type `m m' to initiate merge. - - After initiating a merge, the header of the status buffer might -remind you that the next commit will be a merge commit (with more than -one parent). If you want to abort a manual merge, just do a hard reset -to HEAD with `X'. - - Merges can fail if the two branches you want to merge introduce -conflicting changes. In that case, the automatic merge stops before the -commit, essentially falling back to a manual merge. You need to resolve -the conflicts for example with `e' and stage the resolved files, for -example with `S'. - - You can not stage individual hunks one by one as you resolve them, -you can only stage whole files once all conflicts in them have been -resolved. - - -File: magit.info, Node: Rebasing, Next: Rewriting, Prev: Merging, Up: Top - -18 Rebasing -*********** - -Typing `R' in the status buffer will initiate a rebase or, if one is -already in progress, ask you how to continue. - - When a rebase is stopped in the middle because of a conflict, the -header of the status buffer will indicate how far along you are in the -series of commits that are being replayed. When that happens, you -should resolve the conflicts and stage everything and hit `R c' to -continue the rebase. Alternatively, hitting `c' or `C' while in the -middle of a rebase will also ask you whether to continue the rebase. - - Of course, you can initiate a rebase in any number of ways, by -configuring `git pull' to rebase instead of merge, for example. Such a -rebase can be finished with `R' as well. - - -File: magit.info, Node: Rewriting, Next: Pushing and Pulling, Prev: Rebasing, Up: Top - -19 Rewriting -************ - -As hinted at earlier, you can rewrite your commit history. For -example, you can reset the current head to an earlier commit with `x'. -This leaves the working tree unchanged, and the status buffer will show -all the changes that have been made since that new value of the current -head. You can commit these changes again, possibly splitting them into -multiple commits as you go along. - - Amending your last commit is a common special case of rewriting -history like this. - - Another common way to rewrite history is to reset the head to an -earlier commit, and then to cherry pick the previous commits in a -different order. You could pick them from the reflog, for example. - - Magit has several commands that can simplify the book keeping -associated with rewriting. These commands all start with the `r' -prefix key. - - Typing `r b' will start a rewrite operation. You will be prompted -for a _base_ commit. This commit and all subsequent commits up until -the current head are then put in a list of _Pending commits_, after -which the current head will be reset to the _parent_ of the base -commit. This can be configured to behave like `git rebase', i.e. -exclude the selected base commit from the rewrite operation, with the -`magit-rewrite-inclusive' variable. - - You would then typically use `a' and `A' to cherry pick commits from -the list of pending commits in the desired order, until all have been -applied. Magit shows which commits have been applied by changing their -marker from `*' to `.'. - - Using `A' will immediately commit the commit (as usual). If you -want to combine multiple previous commits into a single new one, use -`a' to apply them all to your working tree, and then commit them -together. - - Magit has no explicit support for rewriting merge commits. It will -happily include merge commits in the list of pending commits, but there -is no way of replaying them automatically. You have to redo the merge -explicitly. - - You can also use `v' to revert a commit when you have changed your -mind. This will change the `.' mark back to `*'. - - Once you are done with the rewrite, type `r s' to remove the book -keeping information from the status buffer. - - If you rather wish to start over, type `r a'. This will abort the -rewriting, resetting the current head back to the value it had before -the rewrite was started with `r s'. - - Typing `r f' will _finish_ the rewrite: it will apply all unused -commits one after the other, as if you would us `A' with all of them. - - You can change the `*' and `.' marks of a pending commit explicitly -with `r *' and `r .'. - - In addition to a list of pending commits, the status buffer will show -the _Pending changes_. This section shows the diff between the -original head and the current head. You can use it to review the -changes that you still need to rewrite, and you can apply hunks from -it, like from any other diff. - - -File: magit.info, Node: Pushing and Pulling, Next: Bisecting, Prev: Rewriting, Up: Top - -20 Pushing and Pulling -********************** - -Magit will run `git push' when you type `P P'. If you give a prefix -argument to `P P', you will be prompted for the repository to push to. -When no default remote repository has been configured yet for the -current branch, you will be prompted as well. Typing `P P' will only -push the current branch to the remote. In other words, it will run -`git push '. The branch will be created in the remote -if it doesn't exist already. The local branch will be configured so -that it pulls from the new remote branch. If you give a double prefix -argument to `P P', you will be prompted in addition for the target -branch to push to. In other words, it will run `git push -:'. - - Typing `f f' will run `git fetch'. It will prompt for the name of -the remote to update if there is no default one. Typing `f o' will -always prompt for the remote. Typing `F F' will run `git pull'. When -you don't have a default branch configured to be pulled into the -current one, you will be asked for it. - - If there is a default remote repository for the current branch, Magit -will show that repository in the status buffer header. - - In this case, the status buffer will also have a _Unpushed commits_ -section that shows the commits on your current head that are not in the -branch named `/'. This section works just like the -history buffer: you can see details about a commit with `RET', compare -two of them with `.' and `=', and you can reset your current head to -one of them with `x', for example. If you want to push the changes then -type `P P'. - - When the remote branch has changes that are not in the current -branch, Magit shows them in a section called _Unpulled changes_. Typing -`F F' will fetch and merge them into the current branch. - - -File: magit.info, Node: Submodules, Next: Using Magit Extensions, Prev: Bisecting, Up: Top - -21 Submodules -************* - -`M u' - Update the submodules, with a prefix argument it will initializing. - -`M i' - Initialize the submodules. - -`M b' - Update and initialize the submodules in one go. - -`M s' - Synchronizes submodules' remote URL configuration setting to the - value specified in .gitmodules. - - -File: magit.info, Node: Bisecting, Next: Submodules, Prev: Pushing and Pulling, Up: Top - -22 Bisecting -************ - -Magit supports bisecting by showing how many revisions and steps are -left to be tested in the status buffer. You can control the bisect -session from both the status and from log buffers with the `B' key menu. - - Typing `B s' will start a bisect session. You will be prompted for -a revision that is known to be bad (defaults to _HEAD_) and for a -revision that is known to be good (defaults to the revision at point if -there is one). git will select a revision for you to test, and Magit -will update its status buffer accordingly. - - You can tell git that the current revision is good with `B g', that -it is bad with `B b' or that git should skip it with `B k'. You can -also tell git to go into full automatic mode by giving it the name of a -script to run for each revision to test with `B u'. - - The current status can be shown as a log with `B l'. It contains the -revisions that have already been tested and your decisions about their -state. - - The revisions left to test can be visualized in gitk with `B v'. - - When you're finished bisecting you have to reset the session with `B -r'. - - -File: magit.info, Node: Using Magit Extensions, Next: Using Git Directly, Prev: Submodules, Up: Top - -23 Magit Extensions -******************* - -* Menu: - -* Activating extensions:: -* Interfacing with Subversion:: -* Interfacing with Topgit:: -* Interfacing with StGit:: -* Developing Extensions:: - - -File: magit.info, Node: Activating extensions, Next: Interfacing with Subversion, Up: Using Magit Extensions - -23.1 Activating extensions -========================== - -Magit comes with a couple of shipped extensions that allow interaction -with `git-svn', `topgit' and `stgit'. See following sections for -specific details on how to use them. - - Extensions can be activated globally or on a per-repository basis. -Since those extensions are implemented as minor modes, one can use for -example `M-x magit-topgit-mode' to toggle the `topgit' extension, -making the corresponding section and commands (un)available. - - In order to do that automatically (and for every repository), one can -use for example: - - (add-hook 'magit-mode-hook 'turn-on-magit-topgit) - - Magit also allows configuring different extensions, based on the git -repository configuration. - - (add-hook 'magit-mode-hook 'magit-load-config-extensions) - - This will read git configuration variables and activate the relevant -extensions. - - For example, after running the following commands, the `topgit' -extension will be loaded for every repository, while the `svn' one will -be loaded only for the current one. - - $ git config --global --add magit.extension topgit - $ git config --add magit.extension svn - - Note the `--add' flag, which means that each extension gets its own -line in the `config' file. - - -File: magit.info, Node: Interfacing with Subversion, Next: Interfacing with Topgit, Prev: Activating extensions, Up: Using Magit Extensions - -23.2 Interfacing with Subversion -================================ - -Typing `N r' runs `git svn rebase', typing `N c' runs `git svn dcommit' -and typing `N f' runs `git svn fetch'. - - `N s' will prompt you for a (numeric, Subversion) revision and then -search for a corresponding Git sha1 for the commit. This is limited to -the path of the remote Subversion repository. With a prefix (`C-u N s' -the user will also be prompted for a branch to search in. - - -File: magit.info, Node: Interfacing with Topgit, Next: Interfacing with StGit, Prev: Interfacing with Subversion, Up: Using Magit Extensions - -23.3 Interfacing with Topgit -============================ - -Topgit (http://repo.or.cz/r/topgit.git) is a patch queue manager that -aims at being close as possible to raw Git, which makes it easy to use -with Magit. In particular, it does not require to use a different set of -commands for "commit", "update",… operations. - - `magit-topgit.el' provides basic integration with Magit, mostly by -providing a "Topics" section. - - Topgit branches can be created the regular way, by using a "t/" -prefix by convention. So, creating a "t/foo" branch will actually -populate the "Topics" section with one more branch after committing -`.topdeps' and `.topmsg'. - - Also, the way we pull (see *note Pushing and Pulling::) such a -branch is slightly different, since it requires updating the various -dependencies of that branch. This should be mostly transparent, except -in case of conflicts. - - -File: magit.info, Node: Interfacing with StGit, Next: Developing Extensions, Prev: Interfacing with Topgit, Up: Using Magit Extensions - -23.4 Interfacing with StGit -=========================== - -StGit (http://www.procode.org/stgit) is a Python application providing -similar functionality to Quilt (i.e. pushing/popping patches to/from a -stack) on top of Git. These operations are performed using Git commands -and the patches are stored as Git commit objects, allowing easy merging -of the StGit patches into other repositories using standard Git -functionality. - - `magit-stgit.el' provides basic integration with Magit, mostly by -providing a "Series" section, whose patches can be seen as regular -commits through the "visit" action. - - You can change the current patch in a series with the "apply" action, -as well as you can delete them using the "discard" action. - - Additionally, the `magit-stgit-refresh' and `magit-stgit-rebase' -commands let you perform the respective StGit operations. - - -File: magit.info, Node: Developing Extensions, Prev: Interfacing with StGit, Up: Using Magit Extensions - -23.5 Developing Extensions -========================== - -Magit provides a generic mechanism to allow cooperation with Git-related -systems, such as foreign VCS, patch systems,… - - In particular it allows to: - - * Define sections to display specific informations about the current - state of the repository, and place them relatively to existing - sections. - - `magit-define-inserter' automagically defines two hooks called - `magit-before-insert-SECTION-hook' and - `magit-after-insert-SECTION-hook' that allow to generate and place - more sections. - - In the following example, we use the builtin "stashes" section to - place our own "foo" one. - - (magit-define-inserter foo () - (magit-git-section 'foo - "Foo:" 'foo-wash-function - "foo" "arg1" "arg2")) - (add-hook 'magit-after-insert-stashes-hook 'magit-insert-foo) - - * Define new types of objects in those sections. - - The function `foo-wash-function' defined above post-processes each - line of the output of the "git foo arg1 arg2" command, and is able - to associate a type to certain lines. - - A simple implementation could be: - - (defun foo-wash-function () - (let ((foo (buffer-substring (line-beginning-position) (line-end-position)))) - (goto-char (line-beginning-position)) - (magit-with-section foo 'foo - (magit-set-section-info foo) - (forward-line)))) - - In this case, every line of the command output is transformed into - an object of type `'foo'. - - * Alter behavior of generic commands to dispatch them correctly to - the relevant system, optionally making use of the newly defined - types. - - (magit-add-action (item info "discard") - ((foo) - (do-something-meaningful-for-discarding-a-foo))) - - This will alter the behavior of `k', when applied to those objects. - - * Plug a different logic into basic commands, to reflect the - presence of the extension. - - `magit-define-command' automagically defines a - `magit-CMD-command-hook' that can contain a list of functions to - call before the actual core code. Execution stops after the first - hook that returns a non-nil value. This leaves room for extension - logic. - - (add-hook 'magit-create-branch-command-hook 'foo-create-branch) - - The function `foo-create-branch' will be called each time an - attempt is made to create a branch, and can, for example, react to - a certain name convention. - - * Define new commands and associated menu. - - This part is not really specific to extensions, except that menus - take place in the "Extensions" submenu. - - - It is suggested that Magit extensions authors stick to the -convention of making extensions minor modes. This has many advantages, -including the fact that users are able to toggle extensions, and that -it's easy to configure a specific set of extensions for a given -repository. - - Shipped extensions can serve as an example of how to develop new -extensions. - - Basically a `foo' extension should provide a `magit-foo-mode' minor -mode, as well as a `turn-on-magit-foo' function. The main task of the -minor mode is to register/unregister the various hooks that the -extension requires. The registered actions on the other hand can be -left alone and activated globally, since they can be run only on -displayed items, which won't happen when the minor mode is off. - - Don't forget to call `magit-refresh' when the minor mode is toggled -interactively, so that the relevant sections can be shown or hidden. - - -File: magit.info, Node: Using Git Directly, Next: Customization, Prev: Using Magit Extensions, Up: Top - -24 Using Git Directly -********************* - -For situations when Magit doesn't do everything you need, you can run -raw Git commands using `:'. This will prompt for a Git command, run -it, and refresh the status buffer. The output can be viewed by typing -`$'. - - -File: magit.info, Node: Customization, Next: Frequently Asked Questions, Prev: Using Git Directly, Up: Top - -25 Customization -**************** - -The following variables can be used to adapt Magit to your workflow: - -`magit-git-executable' - The name of the Git executable. - -`magit-git-standard-options' - Standard options when running Git. - -`magit-repo-dirs' - Directories containing Git repositories. - - Magit will look into these directories for Git repositories and - offer them as choices for `magit-status'. - -`magit-repo-dirs-depth' - The maximum depth to look for Git repos. - - When looking for a Git repository below the directories in - `magit-repo-dirs', Magit will only descend this many levels deep. - -`magit-save-some-buffers' - Non-nil means that `magit-status' will save modified buffers - before running. Setting this to `t' will ask which buffers to - save, setting it to `'dontask' will save all modified buffers - without asking. - -`magit-save-some-buffers-predicate' - Specifies a predicate function on `magit-save-some-buffers' to - determine which unsaved buffers should be prompted for saving. - -`magit-commit-all-when-nothing-staged' - Determines what `magit-log-edit' does when nothing is staged. - Setting this to `nil' will make it do nothing, setting it to `t' - will arrange things so that the actual commit command will use the - `--all' option, setting it to `'ask' will first ask for - confirmation whether to do this, and setting it to `'ask-stage' - will cause all changes to be staged, after a confirmation. - -`magit-commit-signoff' - When performing `git commit' adds `--signoff'. - -`magit-log-cutoff-length' - The maximum number of commits to show in the `log' and `whazzup' - buffers. - -`magit-log-infinite-length' - Number of log used to show as maximum for - `magit-log-cutoff-length'. - -`magit-log-auto-more' - Insert more log entries automatically when moving past the last - entry. - - Only considered when moving past the last entry with - `magit-goto-next-section'. - -`magit-process-popup-time' - Popup the process buffer if a command takes longer than this many - seconds. - -`magit-revert-item-confirm' - Require acknowledgment before reverting an item. - -`magit-log-edit-confirm-cancellation' - Require acknowledgment before canceling the log edit buffer. - -`magit-remote-ref-format' - What format to use for autocompleting refs, in pariticular for - remotes. - - Autocompletion is used by functions like `magit-checkout', - `magit-interactive-rebase' and others which offer branch name - completion. - - The value `'name-then-remote' means remotes will be of the form - `name (remote)', while the value `'remote-slash-name' means that - they'll be of the form `remote/name'. I.e. something that's listed - as `remotes/upstream/next' by `git branch -l -a' will be - `upstream/next'. - -`magit-process-connection-type' - Connection type used for the git process. - - `nil' mean pipe, it is usually faster and more efficient, and work - on cygwin. `t' mean pty, it enable magit to prompt for passphrase - when needed. - -`magit-completing-read-function' - Function to be called when requesting input from the user. - -`magit-create-branch-behaviour' - Where magit will create a new branch if not supplied a branchname - or ref. - - The value `'at-head' means a new branch will be created at the tip - of your current branch, while the value `'at-point' means magit - will try to find a valid reference at point... - -`magit-status-buffer-switch-function' - Function for `magit-status' to use for switching to the status - buffer. - - The function is given one argument, the status buffer. - -`magit-rewrite-inclusive' - Whether magit includes the selected base commit in a rewrite - operation. - - `t' means both the selected commit as well as any subsequent - commits will be rewritten. This is magit's default behaviour, - equivalent to `git rebase -i ${REV~1}' - - A'---B'---C'---D' - ^ - - `nil' means the selected commit will be literally used as `base', - so only subsequent commits will be rewritten. This is consistent - with git-rebase, equivalent to `git rebase -i ${REV}', yet more - cumbersome to use from the status buffer. - - A---B'---C'---D' - ^ - -`magit-topgit-executable' - The name of the TopGit executable. - -`magit-topgit-branch-prefix' - Convention prefix for topic branch creation. - - - -File: magit.info, Node: Frequently Asked Questions, Prev: Customization, Up: Top - -26 Frequently Asked Questions -***************************** - -* Menu: - -* FAQ - Changes:: -* FAQ 1 - Troubleshooting:: -* FAQ 2 - Display issues:: - - -File: magit.info, Node: FAQ - Changes, Next: FAQ 1 - Troubleshooting, Up: Frequently Asked Questions - -26.1 Changes -============ - - * v1.1: Changed the way extensions work. Previously, they were - enabled unconditionally once the library was loaded. Now they are - minor modes that need to be activated explicitly (potentially on a - per-repository basis). See *note Activating extensions::. - - - -File: magit.info, Node: FAQ 1 - Troubleshooting, Next: FAQ 2 - Display issues, Prev: FAQ - Changes, Up: Frequently Asked Questions - -26.2 Troubleshooting -==================== - -* Menu: - -* FAQ 1-1:: How do I get raw error messages from git? - - -File: magit.info, Node: FAQ 1-1, Up: FAQ 1 - Troubleshooting - -26.2.1 Question 1.1 -------------------- - -How do I get raw error messages from git? - -Answer -...... - -If a command goes wrong, you can hit `$' to access the git process -buffer. There, the entire trace for the latest operation is available. - - -File: magit.info, Node: FAQ 2 - Display issues, Prev: FAQ 1 - Troubleshooting, Up: Frequently Asked Questions - -26.3 Display issues -=================== - -* Menu: - -* FAQ 2-1:: How do I fix international characters display? - - -File: magit.info, Node: FAQ 2-1, Up: FAQ 2 - Display issues - -26.3.1 Question 2.1 -------------------- - -How do I fix international characters display? - -Answer -...... - -Please make sure your Magit buffer uses a compatible coding system. In -the particular case of file names, git itself quotes them by default. -You can disable this with one of the following approaches: - - $ git config core.quotepath false - - or - - (setq magit-git-standard-options (append magit-git-standard-options - '("-c" "core.quotepath=false"))) - - The latter might not work in old versions of git. - - - -Tag Table: -Node: Top640 -Node: Introduction1568 -Node: Acknowledgments3040 -Node: Sections3720 -Node: Status6270 -Node: Untracked files9009 -Node: Staging and Committing9960 -Node: History13858 -Node: Reflogs17038 -Node: Commit Buffer17442 -Node: Diffing18768 -Node: Tagging19755 -Node: Resetting20204 -Node: Stashing21728 -Node: Branching22786 -Node: The Branch Manager24164 -Node: Wazzup24880 -Node: Merging25671 -Node: Rebasing26721 -Node: Rewriting27536 -Node: Pushing and Pulling30549 -Node: Submodules32476 -Node: Bisecting32896 -Node: Using Magit Extensions34111 -Node: Activating extensions34408 -Node: Interfacing with Subversion35792 -Node: Interfacing with Topgit36390 -Node: Interfacing with StGit37418 -Node: Developing Extensions38416 -Node: Using Git Directly42194 -Node: Customization42565 -Node: Frequently Asked Questions47109 -Node: FAQ - Changes47340 -Node: FAQ 1 - Troubleshooting47748 -Node: FAQ 1-147996 -Node: FAQ 2 - Display issues48300 -Node: FAQ 2-148529 - -End Tag Table - - -Local Variables: -coding: utf-8 -End: diff --git a/elpa/mo-git-blame-0.1.0/mo-git-blame-autoloads.el b/elpa/mo-git-blame-0.1.0/mo-git-blame-autoloads.el deleted file mode 100644 index 5eb5d1a3..00000000 --- a/elpa/mo-git-blame-0.1.0/mo-git-blame-autoloads.el +++ /dev/null @@ -1,47 +0,0 @@ -;;; mo-git-blame-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads (mo-git-blame-current mo-git-blame-file) "mo-git-blame" -;;;;;; "mo-git-blame.el" (20540 9020)) -;;; Generated autoloads from mo-git-blame.el - -(autoload 'mo-git-blame-file "mo-git-blame" "\ -Calls `git blame' for REVISION of FILE-NAME or `HEAD' if -REVISION is not given. Initializes the two windows that will show -the output of 'git blame' and the content. - -If FILE-NAME is missing it will be read with `find-file' in -interactive mode. - -ORIGINAL-FILE-NAME defaults to FILE-NAME if not given. This is -used for tracking renaming and moving of files during iterative -re-blaming. - -With a numeric prefix argument or with NUM-LINES-TO-BLAME only -the NUM-LINES-TO-BLAME lines before and after point are blamed by -using git blame's `-L' option. Otherwise the whole file is -blamed. - -\(fn &optional FILE-NAME REVISION ORIGINAL-FILE-NAME NUM-LINES-TO-BLAME)" t nil) - -(autoload 'mo-git-blame-current "mo-git-blame" "\ -Calls `mo-git-blame-file' for HEAD for the current buffer. - -\(fn)" t nil) - -;;;*** - -;;;### (autoloads nil nil ("mo-git-blame-pkg.el") (20540 9020 314042)) - -;;;*** - -(provide 'mo-git-blame-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; mo-git-blame-autoloads.el ends here diff --git a/elpa/mo-git-blame-0.1.0/mo-git-blame-pkg.el b/elpa/mo-git-blame-0.1.0/mo-git-blame-pkg.el deleted file mode 100644 index 6fc10789..00000000 --- a/elpa/mo-git-blame-0.1.0/mo-git-blame-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "mo-git-blame" "0.1.0" "An interactive, iterative 'git blame' mode for Emacs" (quote nil)) diff --git a/elpa/mo-git-blame-0.1.0/mo-git-blame.el b/elpa/mo-git-blame-0.1.0/mo-git-blame.el deleted file mode 100644 index 97d53cfd..00000000 --- a/elpa/mo-git-blame-0.1.0/mo-git-blame.el +++ /dev/null @@ -1,762 +0,0 @@ -;;; mo-git-blame.el --- An interactive, iterative 'git blame' mode for Emacs - -;; Copyright (C) 2009, 2010 Moritz Bunkus -;; Copyright (C) 2010 `tpán Nmec - -;; Author: Moritz Bunkus -;; Maintainer: Moritz Bunkus -;; Version: 0.1.0 -;; Keywords: tools -;; URL: https://github.com/mbunkus/mo-git-blame - -;; mo-git-blame is free software; you can redistribute it and/or -;; modify it under the terms of the GNU General Public License as -;; published by the Free Software Foundation; either version 3, or (at -;; your option) any later version. -;; -;; mo-git-blame is distributed in the hope that it will be useful, but -;; WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. - -;;; Installation: -;;; -;;; Put this file somewhere in your load-path or add the directory it -;;; is in to it, e.g.: -;;; -;;; (add-to-list 'load-path "~/.emacs.d/mo-git-blame") -;;; -;;; Then add two autoload definitions: -;;; -;;; (autoload 'mo-git-blame-file "mo-git-blame" nil t) -;;; (autoload 'mo-git-blame-current "mo-git-blame" nil t) - -(require 'cl) -(require 'easymenu) - -(defvar mo-git-blame-vars nil - "Buffer-local plist that stores various variables needed for -interactive use, e.g. the file name, current revision etc.") - -(defvar mo-git-blame--wincfg nil) - -(defvar mo-git-blame-mode-map - (let ((map (make-keymap))) - (suppress-keymap map t) - (define-key map (kbd "a") 'mo-git-blame-reblame-for-ancestor-of-revision-at) - (define-key map (kbd "A") 'mo-git-blame-reblame-for-ancestor-of-current-revision) - (define-key map (kbd "b") 'mo-git-blame-reblame-for-revision-at) - (define-key map (kbd "B") 'mo-git-blame-reblame-for-specific-revision) - (define-key map (kbd "c") 'mo-git-blame-content-for-revision-at) - (define-key map (kbd "i") 'mo-git-blame-display-info) - (define-key map (kbd "l") 'mo-git-blame-log-for-revision-at) - (define-key map (kbd "L") 'mo-git-blame-log-for-current-revision) - (define-key map (kbd "o") 'mo-git-blame-overwrite-file-with-revision-at) - (define-key map (kbd "O") 'mo-git-blame-overwrite-file-with-current-revision) - (define-key map (kbd "p") 'mo-git-blame-reblame-for-prior-revision) - (define-key map (kbd "q") 'mo-git-blame-quit) - (define-key map (kbd "s") 'mo-git-blame-show-revision-at) - (define-key map (kbd "S") 'mo-git-blame-show-current-revision) - (define-key map (kbd "RET") 'mo-git-blame-show-revision-at) - (define-key map (kbd "TAB") 'mo-git-blame-display-content-buffer) - (define-key map [?\C-x ?k] 'mo-git-blame-quit) - (define-key map [?\C-x ?\C-l] 'mo-git-blame-goto-line) - map) - "The mode map for the blame output window of mo-git-blame-mode.") - -(defvar mo-git-blame-content-mode-map - (let ((map (make-keymap))) - (suppress-keymap map t) - (define-key map (kbd "A") 'mo-git-blame-reblame-for-ancestor-of-current-revision) - (define-key map (kbd "B") 'mo-git-blame-reblame-for-specific-revision) - (define-key map (kbd "i") 'mo-git-blame-display-info) - (define-key map (kbd "L") 'mo-git-blame-log-for-current-revision) - (define-key map (kbd "O") 'mo-git-blame-overwrite-file-with-current-revision) - (define-key map (kbd "q") 'mo-git-blame-quit) - (define-key map (kbd "S") 'mo-git-blame-show-current-revision) - (define-key map [?\C-x ?k] 'mo-git-blame-quit) - (define-key map [?\C-x ?\C-l] 'mo-git-blame-goto-line) - map) - "The mode map for the content window of mo-git-blame-mode.") - -(easy-menu-define mo-git-blame-mode-menu mo-git-blame-mode-map - "MoGitBlame menu" - '("MoGitBlame" - ["Re-blame for revision at point" mo-git-blame-reblame-for-revision-at t] - ["Re-blame for ancestor of revision at point" mo-git-blame-reblame-for-ancestor-of-revision-at-point t] - ["Raw content for revision at point" mo-git-blame-content-for-revision-at t] - ["Log for revision at point" mo-git-blame-log-for-revision-at t] - ["Overwrite file with revision at point" mo-git-blame-overwrite-file-with-revision-at t] - ["'git show' for revision at point" mo-git-blame-show-revision-at t] - "---" - ["Re-blame for ancestor of current revision" mo-git-blame-reblame-for-ancestor-of-current-revision t] - ["Log for current revision" mo-git-blame-log-for-current-revision t] - ["Overwrite file with current revision" mo-git-blame-overwrite-file-with-current-revision t] - ["'git show' for current revision" mo-git-blame-show-current-revision t] - "---" - ["Re-blame for prior revision" mo-git-blame-reblame-for-prior-revision t] - ["Re-blame for a specific revision" mo-git-blame-reblame-for-specific-revision t] - "---" - ["Display status information" mo-git-blame-display-info t] - ["Display content buffer" mo-git-blame-display-content-buffer t] - "---" - ["Exit MoGitBlame" mo-git-blame-quit t])) - -(defgroup mo-git-blame nil - "Interactively use Git's 'blame' from Emacs." - :prefix "mo-git-blame-" - :group 'tools) - -(defcustom mo-git-blame-git-executable "git" - "The name of the Git executable." - :group 'mo-git-blame - :type 'string) - -(defcustom mo-git-blame-incremental t - "Runs `git blame' in the background with the --incremental -option if this variable is non-nil." - :group 'mo-git-blame - :type '(choice (const :tag "Use --incremental" t) - (const :tag "Don't use --incremental" nil))) - -(defcustom mo-git-blame-blame-window-width 45 - "The width of the 'blame' window leaving the rest for the -'content' window." - :group 'mo-git-blame - :type 'integer) - -(defcustom mo-git-blame-use-ido 'if-available - "Controls whether or not ido will be used. Possible choices: - - `never' -- do not use ido even if it is loaded - `if-available' -- use ido if it has been loaded before - `always' -- automatically load ido and use it" - :group 'mo-git-blame - :type '(choice (const :tag "Always" always) - (const :tag "If available" if-available) - (const :tag "Never" never))) - -;; This function was taken from magit (called 'magit-trim-line' there). -(defun mo-git-blame-trim-line (str) - (cond ((string= str "") - nil) - ((equal (elt str (- (length str) 1)) ?\n) - (substring str 0 (- (length str) 1))) - (t str))) - -;; This function was taken from magit (called 'magit-git-output' there). -(defun mo-git-blame-git-output (args) - (with-output-to-string - (with-current-buffer standard-output - (apply #'process-file - mo-git-blame-git-executable - nil (list t nil) nil - args)))) - -;; This function was taken from magit (called 'magit-git-string' there). -(defun mo-git-blame-git-string (&rest args) - (mo-git-blame-trim-line (mo-git-blame-git-output args))) - -(defun mo-git-blame-get-top-dir (cwd) - (let ((cwd (expand-file-name cwd)) - git-dir) - (setq git-dir - (or (getenv "GIT_WORK_TREE") - (if (file-directory-p cwd) - (let* ((default-directory cwd) - (dir (mo-git-blame-git-string "rev-parse" "--git-dir")) - (dir (if dir (file-name-directory (expand-file-name dir)) ""))) - (if (and dir (file-directory-p dir)) - (file-name-as-directory dir)))))) - (or git-dir - (error "No Git repository found")))) - -(defun mo-git-blame-run (&rest args) - (message "Running 'git %s'..." (car args)) - (apply 'call-process mo-git-blame-git-executable nil (current-buffer) nil args) - (message "Running 'git %s'... done" (car args))) - -(defvar mo-git-blame-process nil) -(defvar mo-git-blame-client-buffer nil) - -(defun mo-git-blame-assert-not-running () - "Exits with an error if `mo-git-blame-incremental' is true and -git is already/still running." - (if (and mo-git-blame-incremental - mo-git-blame-process - (get-buffer "*mo-git-blame-process*")) - (error "Git is already running"))) - -(defun mo-git-blame-process-sentinel (process event) - (let ((msg (format "Git %s." (substring event 0 -1))) - (successp (string-match "^finished" event))) - (with-current-buffer (process-buffer process) - (let ((inhibit-read-only t)) - (goto-char (point-max)) - (insert msg "\n") - (message msg))) - (setq mo-git-blame-process nil) - (message "Running 'git blame'... done"))) - -(defun mo-git-blame-commit-info-to-time (entry) - (let* ((tz (plist-get entry :author-tz)) - (mult (if (string= "+" (substring tz 0 1)) 1 -1)) - (hours (string-to-number (substring tz 1 3))) - (minutes (string-to-number (substring tz 3 5)))) - (seconds-to-time (+ (string-to-number (plist-get entry :author-time)) - (* mult - (+ (* minutes 60) - (* hours 3600))))))) - -(defun mo-git-blame-process-filter-process-entry (entry) - (with-current-buffer (plist-get mo-git-blame-vars :blame-buffer) - (save-excursion - (let ((inhibit-read-only t) - (info (format "%s (%s %s %s) %s" - (substring (symbol-name (plist-get entry :hash)) 0 8) - (plist-get entry :author) - (format-time-string "%Y-%m-%d %T" (mo-git-blame-commit-info-to-time entry) t) - (plist-get entry :author-tz) - (plist-get entry :filename))) - i) - (mo-git-blame-goto-line-markless (plist-get entry :result-line)) - (dotimes (i (plist-get entry :num-lines)) - (insert info) - (goto-char (line-beginning-position 2))))))) - -(defun mo-git-blame-set-entry (key value) - (let ((plist (or (plist-get mo-git-blame-data mo-git-blame-curr-entry) - (list :hash mo-git-blame-curr-entry)))) - (setq mo-git-blame-data - (plist-put mo-git-blame-data - mo-git-blame-curr-entry - (plist-put plist key value))))) - -(defun mo-git-blame-process-filter (process string) - (with-current-buffer (process-buffer process) - (let ((inhibit-read-only t) - done matched) - (save-excursion - (goto-char (process-mark process)) - (insert string) - (set-marker (process-mark process) (point))) - (while (not done) - (goto-char (line-end-position)) - (setq done (= (point) (point-max))) - (goto-char (line-beginning-position)) - (unless done - (setq matched t) - (cond ((and (not mo-git-blame-curr-entry) - (looking-at "^\\([a-fA-F0-9]\\{40\\}\\) +\\([0-9]+\\) +\\([0-9]+\\) +\\([0-9]+\\)$")) - ;; SHA line, beginning of entry - (setq mo-git-blame-curr-entry (intern (buffer-substring-no-properties (match-beginning 1) (match-end 1)))) - (mo-git-blame-set-entry :source-line (string-to-number (buffer-substring-no-properties (match-beginning 2) (match-end 2)))) - (mo-git-blame-set-entry :result-line (string-to-number (buffer-substring-no-properties (match-beginning 3) (match-end 3)))) - (mo-git-blame-set-entry :num-lines (string-to-number (buffer-substring-no-properties (match-beginning 4) (match-end 4)))) - ) - - ((and mo-git-blame-curr-entry - (looking-at "^filename +\\(.+\\)$")) - ;; filename line, end of entry - (mo-git-blame-set-entry :filename (buffer-substring-no-properties (match-beginning 1) (match-end 1))) - (mo-git-blame-process-filter-process-entry (plist-get mo-git-blame-data mo-git-blame-curr-entry)) - (setq mo-git-blame-curr-entry nil) - ) - ((and mo-git-blame-curr-entry - (looking-at "^\\([a-zA-Z0-9-]+\\) +\\(.+\\)$")) - ;; property line - (mo-git-blame-set-entry (intern (concat ":" (buffer-substring-no-properties (match-beginning 1) (match-end 1)))) - (buffer-substring-no-properties (match-beginning 2) (match-end 2))) - ) - - (t (setq matched nil))) - (forward-line 1)))))) - -(defun mo-git-blame-run* (&rest args) - (message "Running 'git blame'...") - (let ((buf (get-buffer-create "*mo-git-blame-process*")) - (cmd (car args)) - (dir default-directory) - (vars mo-git-blame-vars)) - (save-excursion - (set-buffer buf) - (setq buffer-read-only t) - (let ((inhibit-read-only t)) - (set (make-local-variable 'mo-git-blame-data) nil) - (set (make-local-variable 'mo-git-blame-curr-entry) nil) - (set (make-local-variable 'mo-git-blame-vars) vars) - (setq default-directory dir - mo-git-blame-process (apply 'start-file-process cmd buf mo-git-blame-git-executable args)) - (set-process-sentinel mo-git-blame-process 'mo-git-blame-process-sentinel) - (set-process-filter mo-git-blame-process 'mo-git-blame-process-filter))))) - -(defun mo-git-blame-get-output-buffer () - (let* ((name "*mo-git-blame-output*") - (buffer (get-buffer name))) - (if (null buffer) - (progn - (setq buffer (get-buffer-create name)) - (with-current-buffer buffer - (use-local-map mo-git-blame-mode-map)))) - buffer)) - -(defun mo-git-blame-parse-rev (revision) - (let ((result (mo-git-blame-git-string "rev-parse" "--short" revision))) - (unless result - (error "Unparseable revision %s" revision)) - result)) - -(defun mo-git-blame-parse-blame-line () - (save-excursion - (save-match-data - (beginning-of-line) - (cond ((looking-at "^\\([a-f0-9]+\\) +\\(([^)]+)\\) *$") - (list :hash (buffer-substring (match-beginning 1) (match-end 1)) - :file-name (plist-get mo-git-blame-vars :file-name) - :timestamp (buffer-substring (match-beginning 2) (match-end 2)))) - ((looking-at "^\\([a-f0-9]+\\) +\\(([^)]+)\\) +\\(.+\\)") - (list :hash (buffer-substring (match-beginning 1) (match-end 1)) - :file-name (buffer-substring (match-beginning 3) (match-end 3)) - :timestamp (buffer-substring (match-beginning 2) (match-end 2)))) - (t (error "Not a 'git blame' line")))))) - -(defun mo-git-blame-revision-at-point () - (plist-get (mo-git-blame-parse-blame-line) :hash)) - -(defun mo-git-blame-log-for-revision (revision) - (let ((file-name (plist-get mo-git-blame-vars :file-name)) - (buffer (mo-git-blame-get-output-buffer))) - (with-current-buffer buffer - (erase-buffer) - (mo-git-blame-run "log" revision "--" file-name) - (goto-char (point-min))) - (display-buffer buffer))) - -(defun mo-git-blame-log-for-revision-at () - "Calls 'git log' for revision in the current line." - (interactive) - (mo-git-blame-log-for-revision (mo-git-blame-revision-at-point))) - -(defun mo-git-blame-log-for-current-revision () - "Calls 'git log' for the buffer's current revision and file." - (interactive) - (mo-git-blame-log-for-revision (plist-get mo-git-blame-vars :current-revision))) - -(defun mo-git-blame-show-revision (revision) - (let ((buffer (mo-git-blame-get-output-buffer))) - (with-current-buffer buffer - (erase-buffer) - (mo-git-blame-run "show" revision) - (goto-char (point-min)) - (diff-mode)) - (display-buffer buffer))) - -(defun mo-git-blame-show-revision-at () - "Calls 'git show' for the revision in the current line." - (interactive) - (mo-git-blame-show-revision (mo-git-blame-revision-at-point))) - -(defun mo-git-blame-show-current-revision () - "Calls 'git show' for the current revision." - (interactive) - (mo-git-blame-show-revision (plist-get mo-git-blame-vars :current-revision))) - -(defun mo-git-blame-content-for-revision-at () - "Calls 'git cat-file' for the revision in the current line." - (interactive) - (let ((info (mo-git-blame-parse-blame-line)) - (buffer (mo-git-blame-get-output-buffer))) - (with-current-buffer buffer - (erase-buffer) - (mo-git-blame-run "cat-file" "blob" (concat (plist-get info :hash) ":" (plist-get info :file-name))) - (goto-char (point-min))) - (display-buffer buffer))) - -(defun mo-git-blame-overwrite-file-with-revision (revision) - (let ((file-name (plist-get mo-git-blame-vars :original-file-name))) - (if (yes-or-no-p (format "Do you really want to overwrite %s with revision %s " file-name revision)) - (progn - (find-file (concat (plist-get mo-git-blame-vars :top-dir) file-name)) - (erase-buffer) - (mo-git-blame-run "cat-file" "blob" (concat revision ":" file-name)) - (goto-char (point-min)))))) - -(defun mo-git-blame-overwrite-file-with-revision-at () - "Calls 'git cat-file' for the revision in the current line and overwrites -the original file's content. The file is not saved but left modified in an -open buffer." - (interactive) - (mo-git-blame-overwrite-file-with-revision (mo-git-blame-revision-at-point))) - -(defun mo-git-blame-overwrite-file-with-current-revision () - "Calls 'git cat-file' for the current revision and overwrites -the original file's content. The file is not saved but left modified in an -open buffer." - (interactive) - (mo-git-blame-overwrite-file-with-revision (plist-get mo-git-blame-vars :current-revision))) - -(defun mo-git-blame-reblame-for-ancestor-of-revision-at (&optional arg) - "Calls 'git blame' for the ancestor of the revision in the current line. - -With a numeric prefix argument ARG only the ARG lines before and -after point are blamed by using git blame's `-L' -option. Otherwise the whole file is blamed." - (interactive "P") - (mo-git-blame-reblame-for-specific-revision (mo-git-blame-parse-rev (concat (plist-get (mo-git-blame-parse-blame-line) :hash) "~")) arg)) - -(defun mo-git-blame-reblame-for-ancestor-of-current-revision (&optional arg) - "Calls 'git blame' for the ancestor of the current revision. - -With a numeric prefix argument ARG only the ARG lines before and -after point are blamed by using git blame's `-L' -option. Otherwise the whole file is blamed." - (interactive "P") - (mo-git-blame-reblame-for-specific-revision (mo-git-blame-parse-rev (concat (plist-get mo-git-blame-vars :current-revision) "~")) arg)) - -(defun mo-git-blame-reblame-for-revision-at (&optional arg) - "Calls 'git blame' for the revision in the current line. - -With a numeric prefix argument ARG only the ARG lines before and -after point are blamed by using git blame's `-L' -option. Otherwise the whole file is blamed." - (interactive "P") - (let* ((info (mo-git-blame-parse-blame-line)) - (revision (plist-get info :hash))) - (if (string= revision (plist-get mo-git-blame-vars :current-revision)) - (error "Already showing this revision")) - (mo-git-blame-file (concat (plist-get mo-git-blame-vars :top-dir) (plist-get info :file-name)) revision (plist-get mo-git-blame-vars :original-file-name) arg))) - -(defun mo-git-blame-reblame-for-specific-revision (&optional revision arg) - "Calls 'git blame' for a specific REVISION. - -With a numeric prefix argument ARG only the ARG lines before and -after point are blamed by using git blame's `-L' -option. Otherwise the whole file is blamed." - (interactive "sRevision: \nP") - (setq revision (mo-git-blame-parse-rev revision)) - (if (string= revision (plist-get mo-git-blame-vars :current-revision)) - (error "Already showing this revision")) - (mo-git-blame-file (concat (plist-get mo-git-blame-vars :top-dir) (plist-get mo-git-blame-vars :file-name)) revision (plist-get mo-git-blame-vars :original-file-name) arg)) - -(defun mo-git-blame-reblame-for-prior-revision (&optional arg) - "Calls 'git blame' for the revision shown before the current -one (see `prior revisions' in the info output of -`mo-git-blame-display-info'). - -With a numeric prefix argument ARG only the ARG lines before and -after point are blamed by using git blame's `-L' -option. Otherwise the whole file is blamed." - (interactive "P") - (let ((rev-list (plist-get mo-git-blame-vars :prior-revisions)) - revision-plist) - (unless rev-list - (error "No revision shown prior to the current one")) - (setq revision-plist (car rev-list)) - (mo-git-blame-file (plist-get revision-plist :full-file-name) - (plist-get revision-plist :revision) - (plist-get mo-git-blame-vars :original-file-name) - arg))) - -(defun mo-git-blame-display-info () - "Displays short information about the current revision." - (interactive) - (let* ((buffer (mo-git-blame-get-output-buffer)) - (vars mo-git-blame-vars) - (prior-revs (plist-get vars :prior-revisions)) - (prior-revs-str (if prior-revs - (reduce (lambda (joined element) (concat (or joined "") (if joined " " "") element)) - (mapcar (lambda (element) (plist-get element :revision)) - prior-revs)) - "none"))) - (with-current-buffer buffer - (erase-buffer) - (insert (format "Current revision: %s\n" (plist-get vars :current-revision)) - (format "Prior revisions: %s\n" prior-revs-str) - (format "Git repository: %s\n" (plist-get vars :top-dir)) - (format "Original file name: %s\n" (file-relative-name (plist-get vars :original-file-name) - (plist-get vars :top-dir))) - (format "Current file name: %s\n" (plist-get vars :file-name))) - (goto-char (point-min))) - (display-buffer buffer))) - -(defun mo-git-blame-number-of-content-lines () - (with-current-buffer (plist-get mo-git-blame-vars :content-buffer) - (save-excursion - (goto-char (point-max)) - (line-number-at-pos)))) - -(defun mo-git-blame-mode () - "Show the output of 'git blame' and the content of the file in -two frames side-by-side. Allows iterative re-blaming for specific -revisions. Can show the output of 'git log' and 'git show'. Can -overwrite the file with the content of specific revisions by -calling 'git cat-file blob ...'. - -Use 'mo-git-blame-current' interactively or 'mo-git-blame-file' -from elisp. - -\\{mo-git-blame-mode-map}" - (setq major-mode 'mo-git-blame-mode - mode-name "MoGitBlame" - mode-line-process "" - truncate-lines t) - (use-local-map mo-git-blame-mode-map)) - -(defun mo-git-blame-run-blame-normally (start-line lines-to-blame) - (let* ((num-content-lines (mo-git-blame-number-of-content-lines)) - (num-lines-to-append (if (and start-line - (< (+ start-line lines-to-blame) - num-content-lines)) - (- num-content-lines start-line lines-to-blame))) - args i) - (if (and start-line (> start-line 1)) - (dotimes (i (1- start-line)) - (insert "\n"))) - - (setq args (list (plist-get mo-git-blame-vars :current-revision) "--" (plist-get mo-git-blame-vars :file-name))) - (if start-line - (setq args (append (list "-L" (format "%d,+%d" start-line lines-to-blame)) - args))) - (apply 'mo-git-blame-run "blame" args) - - (if num-lines-to-append - (dotimes (i num-lines-to-append) - (insert "\n"))))) - -(defun mo-git-blame-run-blame-incrementally (start-line lines-to-blame) - (let* ((num-content-lines (mo-git-blame-number-of-content-lines)) - i) - (dotimes (i (1- num-content-lines)) - (insert "\n")) - - (setq args (list "--incremental" (plist-get mo-git-blame-vars :current-revision) "--" (plist-get mo-git-blame-vars :file-name))) - (if start-line - (setq args (append (list "-L" (format "%d,+%d" start-line lines-to-blame)) - args))) - (mo-git-blame-assert-not-running) - (apply 'mo-git-blame-run* "blame" args))) - -(defun mo-git-blame-init-blame-buffer (start-line lines-to-blame) - (if mo-git-blame-incremental - (mo-git-blame-run-blame-incrementally start-line lines-to-blame) - (mo-git-blame-run-blame-normally start-line lines-to-blame)) - (goto-char (point-min)) - (save-match-data - (while (re-search-forward "^\\([a-f0-9]+\\) +\\(([^)]+)\\) \\(.*\\)" nil t) - (replace-match "\\1 \\2" nil nil)) - (goto-char (point-min)) - (while (re-search-forward "^\\([a-f0-9]+\\) +\\([^ ]+\\) +\\(([^)]+)\\) \\(.*\\)" nil t) - (replace-match "\\1 \\3 \\2" nil nil)) - (goto-char (point-min)) - (while (re-search-forward " +[0-9]+)" nil t) - (replace-match ")" nil nil))) - (toggle-read-only t) - (goto-char (point-min)) - (set (make-local-variable 'line-move-visual) nil)) - -(defun mo-git-blame-init-content-buffer () - (let ((vars mo-git-blame-vars)) - (rename-buffer (concat "*mo-git-blame:" (file-name-nondirectory (plist-get vars :full-file-name)) ":" (plist-get vars :current-revision) "*")) - (setq buffer-file-name (file-name-nondirectory (plist-get vars :full-file-name)) - default-directory (plist-get vars :top-dir)) - (mo-git-blame-run "cat-file" "blob" (concat (plist-get vars :current-revision) ":" (plist-get vars :file-name))) - (normal-mode) - (use-local-map mo-git-blame-content-mode-map) - (font-lock-fontify-buffer) - (toggle-read-only t) - (set-buffer-modified-p nil) - (setq truncate-lines t) - (set (make-local-variable 'mo-git-blame-vars) vars) - (set (make-local-variable 'line-move-visual) nil))) - -(defun mo-git-blame-read-file-name () - "Calls `read-file-name' or `ido-read-file-name' depending on -the value of `mo-git-blame-use-ido'." - (let ((the-func (cond ((eq mo-git-blame-use-ido 'always) - (require 'ido) - 'ido-read-file-name) - ((and (eq mo-git-blame-use-ido 'if-available) - (functionp 'ido-read-file-name)) - 'ido-read-file-name) - (t 'read-file-name)))) - (funcall the-func "File for 'git blame': " nil nil t))) - -;;;###autoload -(defun mo-git-blame-file (&optional file-name revision original-file-name num-lines-to-blame) - "Calls `git blame' for REVISION of FILE-NAME or `HEAD' if -REVISION is not given. Initializes the two windows that will show -the output of 'git blame' and the content. - -If FILE-NAME is missing it will be read with `find-file' in -interactive mode. - -ORIGINAL-FILE-NAME defaults to FILE-NAME if not given. This is -used for tracking renaming and moving of files during iterative -re-blaming. - -With a numeric prefix argument or with NUM-LINES-TO-BLAME only -the NUM-LINES-TO-BLAME lines before and after point are blamed by -using git blame's `-L' option. Otherwise the whole file is -blamed." - (interactive) - (mo-git-blame-assert-not-running) - (unless mo-git-blame--wincfg - (setq mo-git-blame--wincfg (current-window-configuration))) - (let* ((file-name (or file-name (mo-git-blame-read-file-name))) - (has-blame-vars (local-variable-p 'mo-git-blame-vars)) - (the-raw-revision (or revision "HEAD")) - (the-revision (if (string= the-raw-revision "HEAD") - (mo-git-blame-parse-rev "HEAD") - the-raw-revision)) - (base-name (concat (file-name-nondirectory file-name) "@" the-revision)) - (blame-buffer (get-buffer-create "*mo-git-blame*")) - (content-buffer-name (concat "*mo-git-blame:" (file-name-nondirectory file-name) ":" the-revision "*")) - (content-buffer (if has-blame-vars - (plist-get mo-git-blame-vars :content-buffer) - (get-buffer-create content-buffer-name))) - (top-dir (mo-git-blame-get-top-dir (file-name-directory file-name))) - (relative-file-name (file-relative-name file-name top-dir)) - (blame-window (selected-window)) - (prior-vars (if has-blame-vars mo-git-blame-vars)) - (line-to-go-to (line-number-at-pos)) - (lines-to-blame (or num-lines-to-blame - (if (and current-prefix-arg (> (prefix-numeric-value current-prefix-arg) 0)) - (prefix-numeric-value current-prefix-arg)))) - content-window the-buffer prior-revisions start-line) - (switch-to-buffer blame-buffer) - (setq prior-revisions (if prior-vars (plist-get prior-vars :prior-revisions))) - (setq prior-revisions - (if (and prior-revisions (string= the-revision (plist-get (car prior-revisions) :revision))) - (cdr prior-revisions) - (if prior-vars - (cons (list :full-file-name (plist-get prior-vars :full-file-name) - :revision (plist-get prior-vars :current-revision)) - prior-revisions)))) - (if (window-full-width-p) - (split-window-horizontally mo-git-blame-blame-window-width)) - (select-window (setq content-window (next-window))) - (switch-to-buffer content-buffer) - (select-window blame-window) - (dolist (the-buffer (list blame-buffer content-buffer)) - (with-current-buffer the-buffer - (toggle-read-only 0) - (kill-all-local-variables) - (buffer-disable-undo) - (erase-buffer) - (setq default-directory top-dir) - (set (make-local-variable 'mo-git-blame-vars) - (list :top-dir top-dir - :file-name relative-file-name - :full-file-name file-name - :original-file-name (or original-file-name file-name) - :current-revision the-revision - :prior-revisions prior-revisions - :blame-buffer blame-buffer - :blame-window blame-window - :content-buffer content-buffer - :content-window content-window)))) - (with-current-buffer content-buffer - (mo-git-blame-init-content-buffer)) - (when lines-to-blame - (setq start-line (max 1 (- line-to-go-to lines-to-blame)) - lines-to-blame (1+ (- (+ line-to-go-to lines-to-blame) - start-line)))) - (with-current-buffer blame-buffer - (mo-git-blame-mode) - (mo-git-blame-init-blame-buffer start-line lines-to-blame)) - (mo-git-blame-goto-line line-to-go-to) - (add-to-list 'window-scroll-functions 'mo-git-blame-window-scrolled))) - -(defvar mo-git-blame-scroll-info - nil - "Information which window to scroll and where to scroll to.") - -(defun mo-git-blame-window-scrolled (window new-start-pos) - (if (and window - (eq window (selected-window)) - (local-variable-p 'mo-git-blame-vars)) - (let* ((vars (with-current-buffer (window-buffer window) mo-git-blame-vars)) - (start-line (line-number-at-pos new-start-pos)) - (point-line (line-number-at-pos (window-point window))) - (window-to-scroll (if (eq window (plist-get vars :blame-window)) - (plist-get vars :content-window) - (plist-get vars :blame-window)))) - (setq mo-git-blame-scroll-info (list :window-to-scroll window-to-scroll - :start-line start-line - :point-line point-line)) - (run-at-time "0 sec" nil 'mo-git-blame-update-other-window-after-scrolling)))) - -(defun mo-git-blame-update-other-window-after-scrolling () - (if mo-git-blame-scroll-info - (let ((window (plist-get mo-git-blame-scroll-info :window-to-scroll)) - new-start-pos) - (with-selected-window window - (with-current-buffer (window-buffer window) - (goto-char (point-min)) - (setq new-start-pos (line-beginning-position (plist-get mo-git-blame-scroll-info :start-line))) - (goto-char (point-min)) - (goto-char (line-beginning-position (plist-get mo-git-blame-scroll-info :point-line))) - (set-window-start window new-start-pos))) - (setq mo-git-blame-scroll-info nil)))) - -(defun mo-git-blame-quit () - "Kill the mo-git-blame buffers." - (interactive) - (setq window-scroll-functions (remq 'mo-git-blame-window-scrolled window-scroll-functions)) - (let ((buffer)) - (dolist (buffer (buffer-list)) - (if (string-match-p "^\\*mo-git-blame" (buffer-name buffer)) - (kill-buffer buffer)))) - (set-window-configuration mo-git-blame--wincfg) - (setq mo-git-blame--wincfg nil)) - -(defun mo-git-blame-display-content-buffer () - "Show the content buffer in the content window." - (interactive) - ; Declare buffer here because mo-git-blame-vars might not be available in the other buffer. - (let ((buffer (plist-get mo-git-blame-vars :content-buffer)) - (line-num (line-number-at-pos))) - (mo-git-blame-goto-line-markless line-num) - (recenter) - (with-selected-window (plist-get mo-git-blame-vars :content-window) - (switch-to-buffer buffer) - (mo-git-blame-goto-line-markless line-num) - (recenter)))) - -(defun mo-git-blame-other-buffer () - (plist-get mo-git-blame-vars - (if (eq (current-buffer) (plist-get mo-git-blame-vars :blame-buffer)) - :content-buffer - :blame-buffer))) - -(defun mo-git-blame-goto-line-markless (line) - (goto-char (point-min)) - (goto-char (line-beginning-position line))) - -(defun mo-git-blame-goto-line (line) - "Goto a line in both the blame and the content buffer." - (interactive "nGoto line: ") - (with-selected-window (plist-get mo-git-blame-vars :blame-window) - (mo-git-blame-goto-line-markless line)) - (with-selected-window (plist-get mo-git-blame-vars :content-window) - (mo-git-blame-goto-line-markless line))) - -;;;###autoload -(defun mo-git-blame-current () - "Calls `mo-git-blame-file' for HEAD for the current buffer." - (interactive) - (if (null (buffer-file-name)) - (error "The current buffer is not associated with a file.")) - (mo-git-blame-file (buffer-file-name))) - -(provide 'mo-git-blame) - -;; Leave this in for debugging purposes: -;; (global-set-key [?\C-c ?i ?b] (lambda () (interactive) (let ((mo-git-blame-incremental t)) (mo-git-blame-current)))) -;; (global-set-key [?\C-c ?i ?B] (lambda () (interactive) (let ((mo-git-blame-incremental nil)) (mo-git-blame-current)))) -;;; mo-git-blame.el ends here diff --git a/elpa/multiple-cursors-20140105.259/multiple-cursors-autoloads.el b/elpa/multiple-cursors-20140105.259/multiple-cursors-autoloads.el index 76bed1ca..ff2f0fa6 100644 --- a/elpa/multiple-cursors-20140105.259/multiple-cursors-autoloads.el +++ b/elpa/multiple-cursors-20140105.259/multiple-cursors-autoloads.el @@ -4,8 +4,8 @@ ;;;### (autoloads (mc/edit-beginnings-of-lines mc/edit-ends-of-lines -;;;;;; mc/edit-lines) "mc-edit-lines" "mc-edit-lines.el" (21317 -;;;;;; 60626)) +;;;;;; mc/edit-lines) "mc-edit-lines" "mc-edit-lines.el" (21323 +;;;;;; 36304 0 0)) ;;; Generated autoloads from mc-edit-lines.el (autoload 'mc/edit-lines "mc-edit-lines" "\ @@ -43,7 +43,7 @@ Add one cursor to the beginning of each line in the active region. ;;;;;; mc/mark-next-lines mc/mark-previous-symbol-like-this mc/mark-previous-word-like-this ;;;;;; mc/mark-previous-like-this mc/mark-next-symbol-like-this ;;;;;; mc/mark-next-word-like-this mc/mark-next-like-this) "mc-mark-more" -;;;;;; "mc-mark-more.el" (21317 60626)) +;;;;;; "mc-mark-more.el" (21323 36304 0 0)) ;;; Generated autoloads from mc-mark-more.el (autoload 'mc/mark-next-like-this "mc-mark-more" "\ @@ -198,8 +198,8 @@ Mark the tag we're in and its pair for renaming. ;;;*** -;;;### (autoloads (mc/mark-pop) "mc-mark-pop" "mc-mark-pop.el" (21317 -;;;;;; 60626)) +;;;### (autoloads (mc/mark-pop) "mc-mark-pop" "mc-mark-pop.el" (21323 +;;;;;; 36304 0 0)) ;;; Generated autoloads from mc-mark-pop.el (autoload 'mc/mark-pop "mc-mark-pop" "\ @@ -211,8 +211,8 @@ to the popped mark. ;;;*** ;;;### (autoloads (mc/sort-regions mc/reverse-regions mc/insert-numbers) -;;;;;; "mc-separate-operations" "mc-separate-operations.el" (21317 -;;;;;; 60626)) +;;;;;; "mc-separate-operations" "mc-separate-operations.el" (21323 +;;;;;; 36304 0 0)) ;;; Generated autoloads from mc-separate-operations.el (autoload 'mc/insert-numbers "mc-separate-operations" "\ @@ -233,7 +233,7 @@ Insert increasing numbers for each cursor, starting at 0 or ARG. ;;;*** ;;;### (autoloads (set-rectangular-region-anchor) "rectangular-region-mode" -;;;;;; "rectangular-region-mode.el" (21317 60626)) +;;;;;; "rectangular-region-mode.el" (21323 36304 0 0)) ;;; Generated autoloads from rectangular-region-mode.el (autoload 'set-rectangular-region-anchor "rectangular-region-mode" "\ @@ -247,8 +247,8 @@ an exceedingly quick way of adding multiple cursors to multiple lines. ;;;*** ;;;### (autoloads nil nil ("mc-cycle-cursors.el" "multiple-cursors-core.el" -;;;;;; "multiple-cursors-pkg.el" "multiple-cursors.el") (21317 60626 -;;;;;; 359650)) +;;;;;; "multiple-cursors-pkg.el" "multiple-cursors.el") (21323 36304 +;;;;;; 790848 0)) ;;;*** diff --git a/elpa/multiple-cursors-readme.txt b/elpa/multiple-cursors-readme.txt deleted file mode 100644 index 798b679a..00000000 --- a/elpa/multiple-cursors-readme.txt +++ /dev/null @@ -1,155 +0,0 @@ -Multiple cursors for Emacs. This is some pretty crazy functionality, so yes, -there are kinks. Don't be afraid tho, I've been using it since 2011 with -great success and much merriment. - -## Basic usage - -Start out with: - - (require 'multiple-cursors) - -Then you have to set up your keybindings - multiple-cursors doesn't presume to -know how you'd like them laid out. Here are some examples: - -When you have an active region that spans multiple lines, the following will -add a cursor to each line: - - (global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines) - -When you want to add multiple cursors not based on continuous lines, but based on -keywords in the buffer, use: - - (global-set-key (kbd "C->") 'mc/mark-next-like-this) - (global-set-key (kbd "C-<") 'mc/mark-previous-like-this) - (global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this) - -First mark the word, then add more cursors. - -To get out of multiple-cursors-mode, press `` or `C-g`. The latter will -first disable multiple regions before disabling multiple cursors. If you want to -insert a newline in multiple-cursors-mode, use `C-j`. - -## Video - -You can [watch an intro to multiple-cursors at Emacs Rocks](http://emacsrocks.com/e13.html). - -## Command overview - -### Mark one more occurrence - - - `mc/mark-next-like-this`: Adds a cursor and region at the next part of the buffer forwards that matches the current region. - - `mc/mark-next-word-like-this`: Like `mc/mark-next-like-this` but only for whole words. - - `mc/mark-next-symbol-like-this`: Like `mc/mark-next-like-this` but only for whole symbols. - - `mc/mark-previous-like-this`: Adds a cursor and region at the next part of the buffer backwards that matches the current region. - - `mc/mark-previous-word-like-this`: Like `mc/mark-previous-like-this` but only for whole words. - - `mc/mark-previous-symbol-like-this`: Like `mc/mark-previous-like-this` but only for whole symbols. - - `mc/mark-more-like-this-extended`: Use arrow keys to quickly mark/skip next/previous occurances. - - `mc/add-cursor-on-click`: Bind to a mouse event to add cursors by clicking. See tips-section. - -### Mark many occurrences - - - `mc/mark-all-like-this`: Marks all parts of the buffer that matches the current region. - - `mc/mark-all-words-like-this`: Like `mc/mark-all-like-this` but only for whole words. - - `mc/mark-all-symbols-like-this`: Like `mc/mark-all-like-this` but only for whole symbols. - - `mc/mark-all-in-region`: Prompts for a string to match in the region, adding cursors to all of them. - - `mc/mark-all-like-this-in-defun`: Marks all parts of the current defun that matches the current region. - - `mc/mark-all-words-like-this-in-defun`: Like `mc/mark-all-like-this-in-defun` but only for whole words. - - `mc/mark-all-symbols-like-this-in-defun`: Like `mc/mark-all-like-this-in-defun` but only for whole symbols. - - `mc/mark-all-like-this-dwim`: Tries to be smart about marking everything you want. Can be pressed multiple times. - -### Special - - - `set-rectangular-region-anchor`: Think of this one as `set-mark` except you're marking a rectangular region. - - `mc/mark-sgml-tag-pair`: Mark the current opening and closing tag. - - `mc/insert-numbers`: Insert increasing numbers for each cursor, top to bottom. - - `mc/sort-regions`: Sort the marked regions alphabetically. - - `mc/reverse-regions`: Reverse the order of the marked regions. - -## Tips and tricks - -- To get out of multiple-cursors-mode, press `` or `C-g`. The latter will - first disable multiple regions before disabling multiple cursors. If you want to - insert a newline in multiple-cursors-mode, use `C-j`. - -- Sometimes you end up with cursors outside of your view. You can - scroll the screen to center on each cursor with `C-v` and `M-v`. - -- Try pressing `mc/mark-next-like-this` with no region selected. It will just add a cursor - on the next line. - -- Try pressing `mc/mark-all-like-this-dwim` on a tagname in html-mode. - -- Notice that the number of cursors active can be seen in the modeline. - -- If you get out of multiple-cursors-mode and yank - it will yank only - from the kill-ring of main cursor. To yank from the kill-rings of - every cursor use yank-rectangle, normally found at C-x r y. - -- You can use `mc/reverse-regions` with nothing selected and just one cursor. - It will then flip the sexp at point and the one below it. - -- If you would like to keep the global bindings clean, and get custom keybindings - when the region is active, you can try [region-bindings-mode](https://github.com/fgallina/region-bindings-mode). - -BTW, I highly recommend adding `mc/mark-next-like-this` to a key binding that's -right next to the key for `er/expand-region`. - -### Binding mouse events - -To override a mouse event, you will likely have to also unbind the -`down-mouse` part of the event. Like this: - - (global-unset-key (kbd "M-")) - (global-set-key (kbd "M-") 'mc/add-cursor-on-click) - -Or you can do like me and find an unused, but less convenient, binding: - - (global-set-key (kbd "C-S-") 'mc/add-cursor-on-click) - -## Unknown commands - -Multiple-cursors uses two lists of commands to know what to do: the run-once list -and the run-for-all list. It comes with a set of defaults, but it would be beyond silly -to try and include all the known Emacs commands. - -So that's why multiple-cursors occasionally asks what to do about a command. It will -then remember your choice by saving it in `~/.emacs.d/.mc-lists.el`. You can change -the location with: - - (setq mc/list-file "/my/preferred/file") - -## Known limitations - -* isearch-forward and isearch-backward aren't supported with multiple cursors. - You should feel free to add a simplified version that can work with it. -* Commands run with `M-x` won't be repeated for all cursors. -* All key bindings that refer to lambdas are always run for all cursors. If you - need to limit it, you will have to give it a name. -* Redo might screw with your cursors. Undo works very well. - -## Contribute - -Yes, please do. There's a suite of tests, so remember to add tests for your -specific feature, or I might break it later. - -You'll find the repo at: - - https://github.com/magnars/multiple-cursors.el - -To fetch the test dependencies: - - $ cd /path/to/multiple-cursors - $ git submodule update --init - -Run the tests with: - - $ ./util/ecukes/ecukes --graphical - -## Contributors - -* [Takafumi Arakaki](https://github.com/tkf) made .mc-lists.el diff friendly -* [Marco Baringer](https://github.com/segv) contributed looping to mc/cycle and adding cursors without region for mark-more. -* [Ivan Andrus](https://github.com/gvol) added showing number of cursors in mode-line -* [Fuco](https://github.com/Fuco1) added the first version of `mc/mark-all-like-this-dwim` - -Thanks! diff --git a/elpa/no-easy-keys-1.0.2/no-easy-keys-autoloads.el b/elpa/no-easy-keys-1.0.2/no-easy-keys-autoloads.el index 4f1fa99f..8dfb8118 100644 --- a/elpa/no-easy-keys-1.0.2/no-easy-keys-autoloads.el +++ b/elpa/no-easy-keys-1.0.2/no-easy-keys-autoloads.el @@ -4,7 +4,7 @@ ;;;### (autoloads nil nil ("no-easy-keys-pkg.el" "no-easy-keys.el") -;;;;;; (21059 16366 939830)) +;;;;;; (21323 36306 758575 0)) ;;;*** diff --git a/elpa/nzenburn-theme-20130513/nzenburn-theme-autoloads.el b/elpa/nzenburn-theme-20130513/nzenburn-theme-autoloads.el deleted file mode 100644 index 368e633f..00000000 --- a/elpa/nzenburn-theme-20130513/nzenburn-theme-autoloads.el +++ /dev/null @@ -1,26 +0,0 @@ -;;; nzenburn-theme-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads nil "nzenburn-theme" "nzenburn-theme.el" (21316 -;;;;;; 30333)) -;;; Generated autoloads from nzenburn-theme.el - -(and load-file-name (boundp 'custom-theme-load-path) (add-to-list 'custom-theme-load-path (file-name-as-directory (file-name-directory load-file-name)))) - -;;;*** - -;;;### (autoloads nil nil ("nzenburn-theme-pkg.el") (21316 30333 -;;;;;; 575020)) - -;;;*** - -(provide 'nzenburn-theme-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; nzenburn-theme-autoloads.el ends here diff --git a/elpa/nzenburn-theme-20130513/nzenburn-theme-pkg.el b/elpa/nzenburn-theme-20130513/nzenburn-theme-pkg.el deleted file mode 100644 index a68e8dc0..00000000 --- a/elpa/nzenburn-theme-20130513/nzenburn-theme-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "nzenburn-theme" "20130513" "A low contrast color theme for Emacs." (quote nil)) diff --git a/elpa/nzenburn-theme-20130513/nzenburn-theme.el b/elpa/nzenburn-theme-20130513/nzenburn-theme.el deleted file mode 100644 index c72db743..00000000 --- a/elpa/nzenburn-theme-20130513/nzenburn-theme.el +++ /dev/null @@ -1,852 +0,0 @@ -;;; nzenburn-theme.el --- A low contrast color theme for Emacs. - -;; Copyright (C) 2011-2013 Bozhidar Batsov - -;; Author: nopcall -;; URL: http://github.com/nopcall/nopcall-nzenburn -;; Version: 20130513 -;; X-Original-Version: 2.0 - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see . - -;;; Commentary: -;; -;; A port of the popular Vim theme Nzenburn for Emacs 24, built on top -;; of the new built-in theme support in Emacs 24. -;; -;;; Credits: -;; -;; Jani Nurminen created the original theme for vim on such this port -;; is based. - -;;; Code: -(deftheme nzenburn "The Nzenburn color theme") - -(let ((class '((class color) (min-colors 89))) - ;; nzenburn palette - ;; colors with +x are lighter, colors with -x are darker - (nzenburn-fg "#dcdccc") - (nzenburn-fg-1 "#656555") - (nzenburn-bg-1 "#2b2b2b") - (nzenburn-bg-05 "#383838") - (nzenburn-bg "#3f3f3f") - (nzenburn-bg+1 "#4f4f4f") - (nzenburn-bg+2 "#5f5f5f") - (nzenburn-bg+3 "#6f6f6f") - (nzenburn-red+1 "#dca3a3") - (nzenburn-red "#cc9393") - (nzenburn-red-1 "#bc8383") - (nzenburn-red-2 "#ac7373") - (nzenburn-red-3 "#9c6363") - (nzenburn-red-4 "#8c5353") - (nzenburn-orange "#dfaf8f") - (nzenburn-yellow "#f0dfaf") - (nzenburn-yellow-1 "#e0cf9f") - (nzenburn-yellow-2 "#d0bf8f") - (nzenburn-green-1 "#5f7f5f") - (nzenburn-green "#7f9f7f") - (nzenburn-green+1 "#8fb28f") - (nzenburn-green+2 "#9fc59f") - (nzenburn-green+3 "#afd8af") - (nzenburn-green+4 "#bfebbf") - (nzenburn-cyan "#93e0e3") - (nzenburn-blue+1 "#94bff3") - (nzenburn-blue "#8cd0d3") - (nzenburn-blue-1 "#7cb8bb") - (nzenburn-blue-2 "#6ca0a3") - (nzenburn-blue-3 "#5c888b") - (nzenburn-blue-4 "#4c7073") - (nzenburn-blue-5 "#366060") - (nzenburn-magenta "#dc8cc3") - (nzenburn-violet "#6c71c4") - (nzenburn-region "#7f073f") - ) - (custom-theme-set-faces - 'nzenburn - '(button ((t (:underline t)))) - `(link ((t (:foreground ,nzenburn-yellow :underline t :weight bold)))) - `(link-visited ((t (:foreground ,nzenburn-yellow-2 :underline t :weight normal)))) - - ;;; basic coloring - `(default ((t (:foreground ,nzenburn-fg :background ,nzenburn-bg)))) - `(cursor ((t (:foreground ,nzenburn-fg :background "white")))) - `(escape-glyph ((t (:foreground ,nzenburn-yellow :bold t)))) - `(fringe ((t (:foreground ,nzenburn-fg :background ,nzenburn-bg+1)))) - `(header-line ((t (:foreground ,nzenburn-yellow - :background ,nzenburn-bg-1 - :box (:line-width -1 :style released-button))))) - `(highlight ((t (:background ,nzenburn-bg-05)))) - `(success ((t (:foreground ,nzenburn-green :weight bold)))) - `(warning ((t (:foreground ,nzenburn-orange :weight bold)))) - - ;;; compilation - `(compilation-column-face ((t (:foreground ,nzenburn-yellow)))) - `(compilation-enter-directory-face ((t (:foreground ,nzenburn-green)))) - `(compilation-error-face ((t (:foreground ,nzenburn-red-1 :weight bold :underline t)))) - `(compilation-face ((t (:foreground ,nzenburn-fg)))) - `(compilation-info-face ((t (:foreground ,nzenburn-blue)))) - `(compilation-info ((t (:foreground ,nzenburn-green+4 :underline t)))) - `(compilation-leave-directory-face ((t (:foreground ,nzenburn-green)))) - `(compilation-line-face ((t (:foreground ,nzenburn-yellow)))) - `(compilation-line-number ((t (:foreground ,nzenburn-yellow)))) - `(compilation-message-face ((t (:foreground ,nzenburn-blue)))) - `(compilation-warning-face ((t (:foreground ,nzenburn-orange :weight bold :underline t)))) - `(compilation-mode-line-exit ((t (:foreground ,nzenburn-green+2 :weight bold)))) - `(compilation-mode-line-fail ((t (:foreground ,nzenburn-red :weight bold)))) - `(compilation-mode-line-run ((t (:foreground ,nzenburn-yellow :weight bold)))) - - ;;; grep - `(grep-context-face ((t (:foreground ,nzenburn-fg)))) - `(grep-error-face ((t (:foreground ,nzenburn-red-1 :weight bold :underline t)))) - `(grep-hit-face ((t (:foreground ,nzenburn-blue)))) - `(grep-match-face ((t (:foreground ,nzenburn-orange :weight bold)))) - `(match ((t (:background ,nzenburn-bg-1 :foreground ,nzenburn-orange :weight bold)))) - - ;; faces used by isearch - `(isearch ((t (:foreground ,nzenburn-yellow-2 :weight bold :background ,nzenburn-bg-1)))) - `(isearch-fail ((t (:foreground ,nzenburn-fg :background ,nzenburn-red-4)))) - `(lazy-highlight ((t (:foreground ,nzenburn-yellow-2 :weight bold :background ,nzenburn-bg-05)))) - - `(menu ((t (:foreground ,nzenburn-fg :background ,nzenburn-bg)))) - `(minibuffer-prompt ((t (:foreground ,nzenburn-yellow)))) - `(mode-line - ((,class (:foreground ,nzenburn-green+1 - :background ,nzenburn-bg-1 - :box (:line-width -1 :style released-button))) - (t :inverse-video t))) - `(mode-line-buffer-id ((t (:foreground ,nzenburn-yellow :weight bold)))) - `(mode-line-inactive - ((t (:foreground ,nzenburn-green-1 - :background ,nzenburn-bg-05 - :box (:line-width -1 :style released-button))))) - `(region ((,class (:background ,nzenburn-region)) - (t :inverse-video t))) - `(secondary-selection ((t (:background ,nzenburn-orange)))) - `(trailing-whitespace ((t (:background ,nzenburn-red)))) - `(vertical-border ((t (:foreground ,nzenburn-fg)))) - - ;;; font lock - `(font-lock-builtin-face ((t (:foreground ,nzenburn-cyan)))) - `(font-lock-comment-face ((t (:foreground ,nzenburn-green)))) - `(font-lock-comment-delimiter-face ((t (:foreground ,nzenburn-green)))) - `(font-lock-constant-face ((t (:foreground ,nzenburn-green+4)))) - `(font-lock-doc-face ((t (:foreground ,nzenburn-green+1)))) - `(font-lock-doc-string-face ((t (:foreground ,nzenburn-blue-2)))) - `(font-lock-function-name-face ((t (:foreground ,nzenburn-blue)))) - `(font-lock-keyword-face ((t (:foreground ,nzenburn-yellow :weight bold)))) - `(font-lock-negation-char-face ((t (:foreground ,nzenburn-fg)))) - `(font-lock-preprocessor-face ((t (:foreground ,nzenburn-blue+1)))) - `(font-lock-string-face ((t (:foreground ,nzenburn-red)))) - `(font-lock-type-face ((t (:foreground ,nzenburn-blue-1)))) - `(font-lock-variable-name-face ((t (:foreground ,nzenburn-orange)))) - `(font-lock-warning-face ((t (:foreground ,nzenburn-yellow-2 :weight bold)))) - - `(c-annotation-face ((t (:inherit font-lock-constant-face)))) - - ;;; newsticker - `(newsticker-date-face ((t (:foreground ,nzenburn-fg)))) - `(newsticker-default-face ((t (:foreground ,nzenburn-fg)))) - `(newsticker-enclosure-face ((t (:foreground ,nzenburn-green+3)))) - `(newsticker-extra-face ((t (:foreground ,nzenburn-bg+2 :height 0.8)))) - `(newsticker-feed-face ((t (:foreground ,nzenburn-fg)))) - `(newsticker-immortal-item-face ((t (:foreground ,nzenburn-green)))) - `(newsticker-new-item-face ((t (:foreground ,nzenburn-blue)))) - `(newsticker-obsolete-item-face ((t (:foreground ,nzenburn-red)))) - `(newsticker-old-item-face ((t (:foreground ,nzenburn-bg+3)))) - `(newsticker-statistics-face ((t (:foreground ,nzenburn-fg)))) - `(newsticker-treeview-face ((t (:foreground ,nzenburn-fg)))) - `(newsticker-treeview-immortal-face ((t (:foreground ,nzenburn-green)))) - `(newsticker-treeview-listwindow-face ((t (:foreground ,nzenburn-fg)))) - `(newsticker-treeview-new-face ((t (:foreground ,nzenburn-blue :weight bold)))) - `(newsticker-treeview-obsolete-face ((t (:foreground ,nzenburn-red)))) - `(newsticker-treeview-old-face ((t (:foreground ,nzenburn-bg+3)))) - `(newsticker-treeview-selection-face ((t (:foreground ,nzenburn-yellow)))) - - ;;; external - `(ace-jump-face-background - ((t (:foreground ,nzenburn-fg-1 :background ,nzenburn-bg :inverse-video nil)))) - `(ace-jump-face-foreground - ((t (:foreground ,nzenburn-green+2 :background ,nzenburn-bg :inverse-video nil)))) - - ;; full-ack - `(ack-separator ((t (:foreground ,nzenburn-fg)))) - `(ack-file ((t (:foreground ,nzenburn-blue)))) - `(ack-line ((t (:foreground ,nzenburn-yellow)))) - `(ack-match ((t (:foreground ,nzenburn-orange :background ,nzenburn-bg-1 :weight bold)))) - - ;; auctex - `(font-latex-bold ((t (:inherit bold)))) - `(font-latex-warning ((t (:inherit font-lock-warning)))) - `(font-latex-sedate ((t (:foreground ,nzenburn-yellow :weight bold )))) - `(font-latex-title-4 ((t (:inherit variable-pitch :weight bold)))) - - ;; auto-complete - `(ac-candidate-face ((t (:background ,nzenburn-bg+3 :foreground "black")))) - `(ac-selection-face ((t (:background ,nzenburn-blue-4 :foreground ,nzenburn-fg)))) - `(popup-tip-face ((t (:background ,nzenburn-yellow-2 :foreground "black")))) - `(popup-scroll-bar-foreground-face ((t (:background ,nzenburn-blue-5)))) - `(popup-scroll-bar-background-face ((t (:background ,nzenburn-bg-1)))) - `(popup-isearch-match ((t (:background ,nzenburn-bg :foreground ,nzenburn-fg)))) - - ;; android mode - `(android-mode-debug-face ((t (:foreground ,nzenburn-green+1)))) - `(android-mode-error-face ((t (:foreground ,nzenburn-orange :weight bold)))) - `(android-mode-info-face ((t (:foreground ,nzenburn-fg)))) - `(android-mode-verbose-face ((t (:foreground ,nzenburn-green)))) - `(android-mode-warning-face ((t (:foreground ,nzenburn-yellow)))) - - ;; bm - `(bm-face ((t (:background ,nzenburn-yellow-1 :foreground ,nzenburn-bg)))) - `(bm-fringe-face ((t (:background ,nzenburn-yellow-1 :foreground ,nzenburn-bg)))) - `(bm-fringe-persistent-face ((t (:background ,nzenburn-green-1 :foreground ,nzenburn-bg)))) - `(bm-persistent-face ((t (:background ,nzenburn-green-1 :foreground ,nzenburn-bg)))) - - ;; clojure-test-mode - `(clojure-test-failure-face ((t (:foreground ,nzenburn-orange :weight bold :underline t)))) - `(clojure-test-error-face ((t (:foreground ,nzenburn-red :weight bold :underline t)))) - `(clojure-test-success-face ((t (:foreground ,nzenburn-green+1 :weight bold :underline t)))) - - ;; ctable - `(ctbl:face-cell-select ((t (:background ,nzenburn-blue :foreground ,nzenburn-bg)))) - `(ctbl:face-continue-bar ((t (:background ,nzenburn-bg-05 :foreground ,nzenburn-bg)))) - `(ctbl:face-row-select ((t (:background ,nzenburn-cyan :foreground ,nzenburn-bg)))) - - ;; diff - `(diff-added ((,class (:foreground ,nzenburn-green+4 :background nil)) - (t (:foreground ,nzenburn-green-1 :background nil)))) - `(diff-changed ((t (:foreground ,nzenburn-yellow)))) - `(diff-removed ((,class (:foreground ,nzenburn-red :background nil)) - (t (:foreground ,nzenburn-red-3 :background nil)))) - `(diff-refine-added ((t :inherit diff-added :weight bold))) - `(diff-refine-change ((t :inherit diff-changed :weight bold))) - `(diff-refine-removed ((t :inherit diff-removed :weight bold))) - `(diff-header ((,class (:background ,nzenburn-bg+2)) - (t (:background ,nzenburn-fg :foreground ,nzenburn-bg)))) - `(diff-file-header - ((,class (:background ,nzenburn-bg+2 :foreground ,nzenburn-fg :bold t)) - (t (:background ,nzenburn-fg :foreground ,nzenburn-bg :bold t)))) - - ;; dired+ - `(diredp-display-msg ((t (:foreground ,nzenburn-blue)))) - `(diredp-compressed-file-suffix ((t (:foreground ,nzenburn-orange)))) - `(diredp-date-time ((t (:foreground ,nzenburn-magenta)))) - `(diredp-deletion ((t (:foreground ,nzenburn-yellow)))) - `(diredp-deletion-file-name ((t (:foreground ,nzenburn-red)))) - `(diredp-dir-heading ((t (:foreground ,nzenburn-blue :background ,nzenburn-bg-1)))) - `(diredp-dir-priv ((t (:foreground ,nzenburn-cyan)))) - `(diredp-exec-priv ((t (:foreground ,nzenburn-red)))) - `(diredp-executable-tag ((t (:foreground ,nzenburn-green+1)))) - `(diredp-file-name ((t (:foreground ,nzenburn-blue)))) - `(diredp-file-suffix ((t (:foreground ,nzenburn-green)))) - `(diredp-flag-mark ((t (:foreground ,nzenburn-yellow)))) - `(diredp-flag-mark-line ((t (:foreground ,nzenburn-orange)))) - `(diredp-ignored-file-name ((t (:foreground ,nzenburn-red)))) - `(diredp-link-priv ((t (:foreground ,nzenburn-yellow)))) - `(diredp-mode-line-flagged ((t (:foreground ,nzenburn-yellow)))) - `(diredp-mode-line-marked ((t (:foreground ,nzenburn-orange)))) - `(diredp-no-priv ((t (:foreground ,nzenburn-fg)))) - `(diredp-number ((t (:foreground ,nzenburn-green+1)))) - `(diredp-other-priv ((t (:foreground ,nzenburn-yellow-1)))) - `(diredp-rare-priv ((t (:foreground ,nzenburn-red-1)))) - `(diredp-read-priv ((t (:foreground ,nzenburn-green-1)))) - `(diredp-symlink ((t (:foreground ,nzenburn-yellow)))) - `(diredp-write-priv ((t (:foreground ,nzenburn-magenta)))) - - ;; ert - `(ert-test-result-expected ((t (:foreground ,nzenburn-green+4 :background ,nzenburn-bg)))) - `(ert-test-result-unexpected ((t (:foreground ,nzenburn-red :background ,nzenburn-bg)))) - - ;; eshell - `(eshell-prompt ((t (:foreground ,nzenburn-yellow :weight bold)))) - `(eshell-ls-archive ((t (:foreground ,nzenburn-red-1 :weight bold)))) - `(eshell-ls-backup ((t (:inherit font-lock-comment)))) - `(eshell-ls-clutter ((t (:inherit font-lock-comment)))) - `(eshell-ls-directory ((t (:foreground ,nzenburn-blue+1 :weight bold)))) - `(eshell-ls-executable ((t (:foreground ,nzenburn-red+1 :weight bold)))) - `(eshell-ls-unreadable ((t (:foreground ,nzenburn-fg)))) - `(eshell-ls-missing ((t (:inherit font-lock-warning)))) - `(eshell-ls-product ((t (:inherit font-lock-doc)))) - `(eshell-ls-special ((t (:foreground ,nzenburn-yellow :weight bold)))) - `(eshell-ls-symlink ((t (:foreground ,nzenburn-cyan :weight bold)))) - - ;; flycheck - `(flycheck-error-face ((t (:foreground ,nzenburn-red-1 :weight bold :underline t)))) - `(flycheck-warning-face ((t (:foreground ,nzenburn-orange :weight bold :underline t)))) - - ;; flymake - `(flymake-errline ((t (:foreground ,nzenburn-red-1 :weight bold :underline t)))) - `(flymake-warnline ((t (:foreground ,nzenburn-orange :weight bold :underline t)))) - - ;; flyspell - `(flyspell-duplicate ((t (:foreground ,nzenburn-orange :weight bold :underline t)))) - `(flyspell-incorrect ((t (:foreground ,nzenburn-red-1 :weight bold :underline t)))) - - ;; erc - `(erc-action-face ((t (:inherit erc-default-face)))) - `(erc-bold-face ((t (:weight bold)))) - `(erc-current-nick-face ((t (:foreground ,nzenburn-blue :weight bold)))) - `(erc-dangerous-host-face ((t (:inherit font-lock-warning)))) - `(erc-default-face ((t (:foreground ,nzenburn-fg)))) - `(erc-direct-msg-face ((t (:inherit erc-default)))) - `(erc-error-face ((t (:inherit font-lock-warning)))) - `(erc-fool-face ((t (:inherit erc-default)))) - `(erc-highlight-face ((t (:inherit hover-highlight)))) - `(erc-input-face ((t (:foreground ,nzenburn-yellow)))) - `(erc-keyword-face ((t (:foreground ,nzenburn-blue :weight bold)))) - `(erc-nick-default-face ((t (:foreground ,nzenburn-yellow :weight bold)))) - `(erc-my-nick-face ((t (:foreground ,nzenburn-red :weight bold)))) - `(erc-nick-msg-face ((t (:inherit erc-default)))) - `(erc-notice-face ((t (:foreground ,nzenburn-green)))) - `(erc-pal-face ((t (:foreground ,nzenburn-orange :weight bold)))) - `(erc-prompt-face ((t (:foreground ,nzenburn-orange :background ,nzenburn-bg :weight bold)))) - `(erc-timestamp-face ((t (:foreground ,nzenburn-green+1)))) - `(erc-underline-face ((t (:underline t)))) - - ;; git-gutter - `(git-gutter:added ((t (:foreground ,nzenburn-green :weight bold :inverse-video t)))) - `(git-gutter:deleted ((t (:foreground ,nzenburn-red :weight bold :inverse-video t)))) - `(git-gutter:modified ((t (:foreground ,nzenburn-magenta :weight bold :inverse-video t)))) - `(git-gutter:unchanged ((t (:foreground ,nzenburn-fg :weight bold :inverse-video t)))) - - ;; git-gutter-fr - `(git-gutter-fr:added ((t (:foreground ,nzenburn-green :weight bold)))) - `(git-gutter-fr:deleted ((t (:foreground ,nzenburn-red :weight bold)))) - `(git-gutter-fr:modified ((t (:foreground ,nzenburn-magenta :weight bold)))) - - ;; gnus - `(gnus-group-mail-1 ((t (:bold t :inherit gnus-group-mail-1-empty)))) - `(gnus-group-mail-1-empty ((t (:inherit gnus-group-news-1-empty)))) - `(gnus-group-mail-2 ((t (:bold t :inherit gnus-group-mail-2-empty)))) - `(gnus-group-mail-2-empty ((t (:inherit gnus-group-news-2-empty)))) - `(gnus-group-mail-3 ((t (:bold t :inherit gnus-group-mail-3-empty)))) - `(gnus-group-mail-3-empty ((t (:inherit gnus-group-news-3-empty)))) - `(gnus-group-mail-4 ((t (:bold t :inherit gnus-group-mail-4-empty)))) - `(gnus-group-mail-4-empty ((t (:inherit gnus-group-news-4-empty)))) - `(gnus-group-mail-5 ((t (:bold t :inherit gnus-group-mail-5-empty)))) - `(gnus-group-mail-5-empty ((t (:inherit gnus-group-news-5-empty)))) - `(gnus-group-mail-6 ((t (:bold t :inherit gnus-group-mail-6-empty)))) - `(gnus-group-mail-6-empty ((t (:inherit gnus-group-news-6-empty)))) - `(gnus-group-mail-low ((t (:bold t :inherit gnus-group-mail-low-empty)))) - `(gnus-group-mail-low-empty ((t (:inherit gnus-group-news-low-empty)))) - `(gnus-group-news-1 ((t (:bold t :inherit gnus-group-news-1-empty)))) - `(gnus-group-news-2 ((t (:bold t :inherit gnus-group-news-2-empty)))) - `(gnus-group-news-3 ((t (:bold t :inherit gnus-group-news-3-empty)))) - `(gnus-group-news-4 ((t (:bold t :inherit gnus-group-news-4-empty)))) - `(gnus-group-news-5 ((t (:bold t :inherit gnus-group-news-5-empty)))) - `(gnus-group-news-6 ((t (:bold t :inherit gnus-group-news-6-empty)))) - `(gnus-group-news-low ((t (:bold t :inherit gnus-group-news-low-empty)))) - `(gnus-header-content ((t (:inherit message-header-other)))) - `(gnus-header-from ((t (:inherit message-header-from)))) - `(gnus-header-name ((t (:inherit message-header-name)))) - `(gnus-header-newsgroups ((t (:inherit message-header-other)))) - `(gnus-header-subject ((t (:inherit message-header-subject)))) - `(gnus-summary-cancelled ((t (:foreground ,nzenburn-orange)))) - `(gnus-summary-high-ancient ((t (:foreground ,nzenburn-blue)))) - `(gnus-summary-high-read ((t (:foreground ,nzenburn-green :weight bold)))) - `(gnus-summary-high-ticked ((t (:foreground ,nzenburn-orange :weight bold)))) - `(gnus-summary-high-unread ((t (:foreground ,nzenburn-fg :weight bold)))) - `(gnus-summary-low-ancient ((t (:foreground ,nzenburn-blue)))) - `(gnus-summary-low-read ((t (:foreground ,nzenburn-green)))) - `(gnus-summary-low-ticked ((t (:foreground ,nzenburn-orange :weight bold)))) - `(gnus-summary-low-unread ((t (:foreground ,nzenburn-fg)))) - `(gnus-summary-normal-ancient ((t (:foreground ,nzenburn-blue)))) - `(gnus-summary-normal-read ((t (:foreground ,nzenburn-green)))) - `(gnus-summary-normal-ticked ((t (:foreground ,nzenburn-orange :weight bold)))) - `(gnus-summary-normal-unread ((t (:foreground ,nzenburn-fg)))) - `(gnus-summary-selected ((t (:foreground ,nzenburn-yellow :weight bold)))) - `(gnus-cite-1 ((t (:foreground ,nzenburn-blue)))) - `(gnus-cite-10 ((t (:foreground ,nzenburn-yellow-1)))) - `(gnus-cite-11 ((t (:foreground ,nzenburn-yellow)))) - `(gnus-cite-2 ((t (:foreground ,nzenburn-blue-1)))) - `(gnus-cite-3 ((t (:foreground ,nzenburn-blue-2)))) - `(gnus-cite-4 ((t (:foreground ,nzenburn-green+2)))) - `(gnus-cite-5 ((t (:foreground ,nzenburn-green+1)))) - `(gnus-cite-6 ((t (:foreground ,nzenburn-green)))) - `(gnus-cite-7 ((t (:foreground ,nzenburn-red)))) - `(gnus-cite-8 ((t (:foreground ,nzenburn-red-1)))) - `(gnus-cite-9 ((t (:foreground ,nzenburn-red-2)))) - `(gnus-group-news-1-empty ((t (:foreground ,nzenburn-yellow)))) - `(gnus-group-news-2-empty ((t (:foreground ,nzenburn-green+3)))) - `(gnus-group-news-3-empty ((t (:foreground ,nzenburn-green+1)))) - `(gnus-group-news-4-empty ((t (:foreground ,nzenburn-blue-2)))) - `(gnus-group-news-5-empty ((t (:foreground ,nzenburn-blue-3)))) - `(gnus-group-news-6-empty ((t (:foreground ,nzenburn-bg+2)))) - `(gnus-group-news-low-empty ((t (:foreground ,nzenburn-bg+2)))) - `(gnus-signature ((t (:foreground ,nzenburn-yellow)))) - `(gnus-x ((t (:background ,nzenburn-fg :foreground ,nzenburn-bg)))) - - ;; guide-key - `(guide-key/highlight-command-face ((t (:foreground ,nzenburn-blue)))) - `(guide-key/key-face ((t (:foreground ,nzenburn-green)))) - `(guide-key/prefix-command-face ((t (:foreground ,nzenburn-green+1)))) - - ;; helm - `(helm-header - ((t (:foreground ,nzenburn-green - :background ,nzenburn-bg - :underline nil - :box nil)))) - `(helm-source-header - ((t (:foreground ,nzenburn-yellow - :background ,nzenburn-bg-1 - :underline nil - :weight bold - :box (:line-width -1 :style released-button))))) - `(helm-selection ((t (:background ,nzenburn-bg+1 :underline nil)))) - `(helm-selection-line ((t (:background ,nzenburn-bg+1)))) - `(helm-visible-mark ((t (:foreground ,nzenburn-bg :background ,nzenburn-yellow-2)))) - `(helm-candidate-number ((t (:foreground ,nzenburn-green+4 :background ,nzenburn-bg-1)))) - `(helm-ff-directory ((t (:foreground ,nzenburn-magenta)))) - - ;; hl-line-mode - `(hl-line-face ((,class (:background ,nzenburn-bg-05)) - (t :weight bold))) - `(hl-line ((,class (:background ,nzenburn-bg-05)) ; old emacsen - (t :weight bold))) - - ;; hl-sexp - `(hl-sexp-face ((,class (:background ,nzenburn-bg+1)) - (t :weight bold))) - - ;; ido-mode - `(ido-first-match ((t (:foreground ,nzenburn-red :weight bold)))) - `(ido-only-match ((t (:foreground ,nzenburn-orange :weight bold)))) - `(ido-subdir ((t (:foreground ,nzenburn-yellow)))) - `(ido-indicator ((t (:foreground ,nzenburn-red :background ,nzenburn-bg)))) - - ;; j2-mode - `(js2-warning-face ((t (:underline ,nzenburn-orange)))) - `(js2-error-face ((t (:foreground ,nzenburn-red :weight bold)))) - `(js2-jsdoc-tag-face ((t (:foreground ,nzenburn-green-1)))) - `(js2-jsdoc-type-face ((t (:foreground ,nzenburn-green+2)))) - `(js2-jsdoc-value-face ((t (:foreground ,nzenburn-green+3)))) - `(js2-function-param-face ((t (:foreground, nzenburn-green+3)))) - `(js2-external-variable-face ((t (:foreground ,nzenburn-orange)))) - - ;; js3-mode - `(js3-warning-face ((t (:underline ,nzenburn-yellow)))) - `(js3-error-face ((t (:foreground nil :underline ,nzenburn-red)))) - `(js3-external-variable-face ((t (:foreground ,nzenburn-magenta)))) - `(js3-function-param-face ((t (:foreground ,nzenburn-blue)))) - `(js3-jsdoc-tag-face ((t (:foreground ,nzenburn-magenta)))) - `(js3-jsdoc-type-face ((t (:foreground ,nzenburn-cyan)))) - `(js3-jsdoc-value-face ((t (:foreground ,nzenburn-violet)))) - `(js3-jsdoc-html-tag-name-face ((t (:foreground ,nzenburn-blue)))) - `(js3-jsdoc-html-tag-delimiter-face ((t (:foreground ,nzenburn-green)))) - `(js3-instance-member-face ((t (:foreground ,nzenburn-blue)))) - `(js3-private-function-call-face ((t (:foreground ,nzenburn-red)))) - - ;; nxml - `(nxml-name-face ((,class (:foreground unspecified :inherit font-lock-constant-face)))) - `(nxml-attribute-local-name-face ((,class (:foreground unspecified :inherit font-lock-variable-name-face)))) - `(nxml-ref-face ((,class (:foreground unspecified :inherit font-lock-preprocessor-face)))) - `(nxml-delimiter-face ((,class (:foreground unspecified :inherit font-lock-keyword-face)))) - `(nxml-delimited-data-face ((,class (:foreground unspecified :inherit font-lock-string-face)))) - `(rng-error-face ((,class (:underline ,nzenburn-red)))) - - ;; RHTML - `(erb-delim-face ((,class (:background ,nzenburn-bg+2)))) - `(erb-exec-face ((,class (:background ,nzenburn-bg+2 :weight bold)))) - `(erb-exec-delim-face ((,class (:background ,nzenburn-bg+2)))) - `(erb-out-face ((,class (:background ,nzenburn-bg+2 :weight bold)))) - `(erb-out-delim-face ((,class (:background ,nzenburn-bg+2)))) - `(erb-comment-face ((,class (:background ,nzenburn-bg+2 :weight bold :slant italic)))) - `(erb-comment-delim-face ((,class (:background ,nzenburn-bg+2)))) - - ;; jabber-mode - `(jabber-roster-user-away ((t (:foreground ,nzenburn-green+2)))) - `(jabber-roster-user-online ((t (:foreground ,nzenburn-blue-1)))) - `(jabbee-roster-user-dnd ((t (:foreground ,nzenburn-red+1)))) - `(jabber-rare-time-face ((t (:foreground ,nzenburn-green+1)))) - `(jabber-chat-prompt-local ((t (:foreground ,nzenburn-blue-1)))) - `(jabber-chat-prompt-foreign ((t (:foreground ,nzenburn-red+1)))) - `(jabber-activity-face((t (:foreground ,nzenburn-red+1)))) - `(jabber-activity-personal-face ((t (:foreground ,nzenburn-blue+1)))) - `(jabber-title-small ((t (:height 1.1 :weight bold)))) - `(jabber-title-medium ((t (:height 1.2 :weight bold)))) - `(jabber-title-large ((t (:height 1.3 :weight bold)))) - - ;; linum-mode - `(linum ((t (:foreground ,nzenburn-green+2 :background ,nzenburn-bg)))) - - ;; macrostep - `(macrostep-gensym-1 - ((t (:foreground ,nzenburn-green+2 :background ,nzenburn-bg-1)))) - `(macrostep-gensym-2 - ((t (:foreground ,nzenburn-red+1 :background ,nzenburn-bg-1)))) - `(macrostep-gensym-3 - ((t (:foreground ,nzenburn-blue+1 :background ,nzenburn-bg-1)))) - `(macrostep-gensym-4 - ((t (:foreground ,nzenburn-magenta :background ,nzenburn-bg-1)))) - `(macrostep-gensym-5 - ((t (:foreground ,nzenburn-yellow :background ,nzenburn-bg-1)))) - `(macrostep-expansion-highlight-face - ((t (:inherit highlight)))) - `(macrostep-macro-face - ((t (:underline t)))) - - ;; magit - `(magit-section-title ((t (:foreground ,nzenburn-yellow :weight bold)))) - `(magit-branch ((t (:foreground ,nzenburn-orange :weight bold)))) - `(magit-item-highlight ((t (:background ,nzenburn-bg+1)))) - - ;; egg - `(egg-text-base ((t (:foreground ,nzenburn-fg)))) - `(egg-help-header-1 ((t (:foreground ,nzenburn-yellow)))) - `(egg-help-header-2 ((t (:foreground ,nzenburn-green+3)))) - `(egg-branch ((t (:foreground ,nzenburn-yellow)))) - `(egg-branch-mono ((t (:foreground ,nzenburn-yellow)))) - `(egg-term ((t (:foreground ,nzenburn-yellow)))) - `(egg-diff-add ((t (:foreground ,nzenburn-green+4)))) - `(egg-diff-del ((t (:foreground ,nzenburn-red+1)))) - `(egg-diff-file-header ((t (:foreground ,nzenburn-yellow-2)))) - `(egg-section-title ((t (:foreground ,nzenburn-yellow)))) - `(egg-stash-mono ((t (:foreground ,nzenburn-green+4)))) - - ;; message-mode - `(message-cited-text ((t (:inherit font-lock-comment)))) - `(message-header-name ((t (:foreground ,nzenburn-green+1)))) - `(message-header-other ((t (:foreground ,nzenburn-green)))) - `(message-header-to ((t (:foreground ,nzenburn-yellow :weight bold)))) - `(message-header-from ((t (:foreground ,nzenburn-yellow :weight bold)))) - `(message-header-cc ((t (:foreground ,nzenburn-yellow :weight bold)))) - `(message-header-newsgroups ((t (:foreground ,nzenburn-yellow :weight bold)))) - `(message-header-subject ((t (:foreground ,nzenburn-orange :weight bold)))) - `(message-header-xheader ((t (:foreground ,nzenburn-green)))) - `(message-mml ((t (:foreground ,nzenburn-yellow :weight bold)))) - `(message-separator ((t (:inherit font-lock-comment)))) - - ;; mew - `(mew-face-header-subject ((t (:foreground ,nzenburn-orange)))) - `(mew-face-header-from ((t (:foreground ,nzenburn-yellow)))) - `(mew-face-header-date ((t (:foreground ,nzenburn-green)))) - `(mew-face-header-to ((t (:foreground ,nzenburn-red)))) - `(mew-face-header-key ((t (:foreground ,nzenburn-green)))) - `(mew-face-header-private ((t (:foreground ,nzenburn-green)))) - `(mew-face-header-important ((t (:foreground ,nzenburn-blue)))) - `(mew-face-header-marginal ((t (:foreground ,nzenburn-fg :weight bold)))) - `(mew-face-header-warning ((t (:foreground ,nzenburn-red)))) - `(mew-face-header-xmew ((t (:foreground ,nzenburn-green)))) - `(mew-face-header-xmew-bad ((t (:foreground ,nzenburn-red)))) - `(mew-face-body-url ((t (:foreground ,nzenburn-orange)))) - `(mew-face-body-comment ((t (:foreground ,nzenburn-fg :slant italic)))) - `(mew-face-body-cite1 ((t (:foreground ,nzenburn-green)))) - `(mew-face-body-cite2 ((t (:foreground ,nzenburn-blue)))) - `(mew-face-body-cite3 ((t (:foreground ,nzenburn-orange)))) - `(mew-face-body-cite4 ((t (:foreground ,nzenburn-yellow)))) - `(mew-face-body-cite5 ((t (:foreground ,nzenburn-red)))) - `(mew-face-mark-review ((t (:foreground ,nzenburn-blue)))) - `(mew-face-mark-escape ((t (:foreground ,nzenburn-green)))) - `(mew-face-mark-delete ((t (:foreground ,nzenburn-red)))) - `(mew-face-mark-unlink ((t (:foreground ,nzenburn-yellow)))) - `(mew-face-mark-refile ((t (:foreground ,nzenburn-green)))) - `(mew-face-mark-unread ((t (:foreground ,nzenburn-red-2)))) - `(mew-face-eof-message ((t (:foreground ,nzenburn-green)))) - `(mew-face-eof-part ((t (:foreground ,nzenburn-yellow)))) - - ;; mic-paren - `(paren-face-match ((t (:foreground ,nzenburn-cyan :background ,nzenburn-bg :weight bold)))) - `(paren-face-mismatch ((t (:foreground ,nzenburn-bg :background ,nzenburn-magenta :weight bold)))) - `(paren-face-no-match ((t (:foreground ,nzenburn-bg :background ,nzenburn-red :weight bold)))) - - ;; mingus - `(mingus-directory-face ((t (:foreground ,nzenburn-blue)))) - `(mingus-pausing-face ((t (:foreground ,nzenburn-magenta)))) - `(mingus-playing-face ((t (:foreground ,nzenburn-cyan)))) - `(mingus-playlist-face ((t (:foreground ,nzenburn-cyan )))) - `(mingus-song-file-face ((t (:foreground ,nzenburn-yellow)))) - `(mingus-stopped-face ((t (:foreground ,nzenburn-red)))) - - ;; nav - `(nav-face-heading ((t (:foreground ,nzenburn-yellow)))) - `(nav-face-button-num ((t (:foreground ,nzenburn-cyan)))) - `(nav-face-dir ((t (:foreground ,nzenburn-green)))) - `(nav-face-hdir ((t (:foreground ,nzenburn-red)))) - `(nav-face-file ((t (:foreground ,nzenburn-fg)))) - `(nav-face-hfile ((t (:foreground ,nzenburn-red-4)))) - - ;; mu4e - `(mu4e-cited-1-face ((t (:foreground ,nzenburn-blue :slant italic)))) - `(mu4e-cited-2-face ((t (:foreground ,nzenburn-green+2 :slant italic)))) - `(mu4e-cited-3-face ((t (:foreground ,nzenburn-blue-2 :slant italic)))) - `(mu4e-cited-4-face ((t (:foreground ,nzenburn-green :slant italic)))) - `(mu4e-cited-5-face ((t (:foreground ,nzenburn-blue-4 :slant italic)))) - `(mu4e-cited-6-face ((t (:foreground ,nzenburn-green-1 :slant italic)))) - `(mu4e-cited-7-face ((t (:foreground ,nzenburn-blue :slant italic)))) - `(mu4e-replied-face ((t (:foreground ,nzenburn-bg+3)))) - `(mu4e-trashed-face ((t (:foreground ,nzenburn-bg+3 :strike-through t)))) - - ;; mumamo - `(mumamo-background-chunk-major ((t (:background nil)))) - `(mumamo-background-chunk-submode1 ((t (:background ,nzenburn-bg-1)))) - `(mumamo-background-chunk-submode2 ((t (:background ,nzenburn-bg+2)))) - `(mumamo-background-chunk-submode3 ((t (:background ,nzenburn-bg+3)))) - `(mumamo-background-chunk-submode4 ((t (:background ,nzenburn-bg+1)))) - - ;; org-mode - `(org-agenda-date-today - ((t (:foreground "white" :slant italic :weight bold))) t) - `(org-agenda-structure - ((t (:inherit font-lock-comment-face)))) - `(org-archived ((t (:foreground ,nzenburn-fg :weight bold)))) - `(org-checkbox ((t (:background ,nzenburn-bg+2 :foreground "white" - :box (:line-width 1 :style released-button))))) - `(org-date ((t (:foreground ,nzenburn-blue :underline t)))) - `(org-deadline-announce ((t (:foreground ,nzenburn-red-1)))) - `(org-done ((t (:bold t :weight bold :foreground ,nzenburn-green+3)))) - `(org-formula ((t (:foreground ,nzenburn-yellow-2)))) - `(org-headline-done ((t (:foreground ,nzenburn-green+3)))) - `(org-hide ((t (:foreground ,nzenburn-bg-1)))) - `(org-level-1 ((t (:foreground ,nzenburn-orange)))) - `(org-level-2 ((t (:foreground ,nzenburn-green+4)))) - `(org-level-3 ((t (:foreground ,nzenburn-blue-1)))) - `(org-level-4 ((t (:foreground ,nzenburn-yellow-2)))) - `(org-level-5 ((t (:foreground ,nzenburn-cyan)))) - `(org-level-6 ((t (:foreground ,nzenburn-green+2)))) - `(org-level-7 ((t (:foreground ,nzenburn-red-4)))) - `(org-level-8 ((t (:foreground ,nzenburn-blue-4)))) - `(org-link ((t (:foreground ,nzenburn-yellow-2 :underline t)))) - `(org-scheduled ((t (:foreground ,nzenburn-green+4)))) - `(org-scheduled-previously ((t (:foreground ,nzenburn-red-4)))) - `(org-scheduled-today ((t (:foreground ,nzenburn-blue+1)))) - `(org-special-keyword ((t (:foreground ,nzenburn-fg-1 :weight normal)))) - `(org-table ((t (:foreground ,nzenburn-green+2)))) - `(org-tag ((t (:bold t :weight bold)))) - `(org-time-grid ((t (:foreground ,nzenburn-orange)))) - `(org-todo ((t (:bold t :foreground ,nzenburn-red :weight bold)))) - `(org-upcoming-deadline ((t (:inherit font-lock-keyword-face)))) - `(org-warning ((t (:bold t :foreground ,nzenburn-red :weight bold :underline nil)))) - `(org-column ((t (:background ,nzenburn-bg-1)))) - `(org-column-title ((t (:background ,nzenburn-bg-1 :underline t :weight bold)))) - - ;; outline - `(outline-1 ((t (:foreground ,nzenburn-orange)))) - `(outline-2 ((t (:foreground ,nzenburn-green+4)))) - `(outline-3 ((t (:foreground ,nzenburn-blue-1)))) - `(outline-4 ((t (:foreground ,nzenburn-yellow-2)))) - `(outline-5 ((t (:foreground ,nzenburn-cyan)))) - `(outline-6 ((t (:foreground ,nzenburn-green+2)))) - `(outline-7 ((t (:foreground ,nzenburn-red-4)))) - `(outline-8 ((t (:foreground ,nzenburn-blue-4)))) - - ;; rainbow-delimiters - `(rainbow-delimiters-depth-1-face ((t (:foreground ,nzenburn-fg)))) - `(rainbow-delimiters-depth-2-face ((t (:foreground ,nzenburn-green+2)))) - `(rainbow-delimiters-depth-3-face ((t (:foreground ,nzenburn-yellow-2)))) - `(rainbow-delimiters-depth-4-face ((t (:foreground ,nzenburn-cyan)))) - `(rainbow-delimiters-depth-5-face ((t (:foreground ,nzenburn-green-1)))) - `(rainbow-delimiters-depth-6-face ((t (:foreground ,nzenburn-blue+1)))) - `(rainbow-delimiters-depth-7-face ((t (:foreground ,nzenburn-yellow-1)))) - `(rainbow-delimiters-depth-8-face ((t (:foreground ,nzenburn-green+1)))) - `(rainbow-delimiters-depth-9-face ((t (:foreground ,nzenburn-blue-2)))) - `(rainbow-delimiters-depth-10-face ((t (:foreground ,nzenburn-orange)))) - `(rainbow-delimiters-depth-11-face ((t (:foreground ,nzenburn-green)))) - `( rainbow-delimiters-depth-12-face ((t (:foreground ,nzenburn-blue-5)))) - - ;; MMM-mode - `(mmm-code-submode-face ((t (:background ,nzenburn-bg+1)))) - `(mmm-comment-submode-face ((t (:inherit font-lock-comment-face)))) - `(mmm-output-submode-face ((t (:background ,nzenburn-bg+1)))) - - ;;rcirc - `(rcirc-my-nick ((t (:foreground ,nzenburn-blue)))) - `(rcirc-other-nick ((t (:foreground ,nzenburn-orange)))) - `(rcirc-bright-nick ((t (:foreground ,nzenburn-blue+1)))) - `(rcirc-dim-nick ((t (:foreground ,nzenburn-blue-2)))) - `(rcirc-server ((t (:foreground ,nzenburn-green)))) - `(rcirc-server-prefix ((t (:foreground ,nzenburn-green+1)))) - `(rcirc-timestamp ((t (:foreground ,nzenburn-green+2)))) - `(rcirc-nick-in-message ((t (:foreground ,nzenburn-yellow)))) - `(rcirc-nick-in-message-full-line ((t (:bold t)))) - `(rcirc-prompt ((t (:foreground ,nzenburn-yellow :bold t)))) - `(rcirc-track-nick ((t (:inverse-video t)))) - `(rcirc-track-keyword ((t (:bold t)))) - `(rcirc-url ((t (:bold t)))) - `(rcirc-keyword ((t (:foreground ,nzenburn-yellow :bold t)))) - - ;; rpm-mode - `(rpm-spec-dir-face ((t (:foreground ,nzenburn-green)))) - `(rpm-spec-doc-face ((t (:foreground ,nzenburn-green)))) - `(rpm-spec-ghost-face ((t (:foreground ,nzenburn-red)))) - `(rpm-spec-macro-face ((t (:foreground ,nzenburn-yellow)))) - `(rpm-spec-obsolete-tag-face ((t (:foreground ,nzenburn-red)))) - `(rpm-spec-package-face ((t (:foreground ,nzenburn-red)))) - `(rpm-spec-section-face ((t (:foreground ,nzenburn-yellow)))) - `(rpm-spec-tag-face ((t (:foreground ,nzenburn-blue)))) - `(rpm-spec-var-face ((t (:foreground ,nzenburn-red)))) - - ;; rst-mode - `(rst-level-1-face ((t (:foreground ,nzenburn-orange)))) - `(rst-level-2-face ((t (:foreground ,nzenburn-green+1)))) - `(rst-level-3-face ((t (:foreground ,nzenburn-blue-1)))) - `(rst-level-4-face ((t (:foreground ,nzenburn-yellow-2)))) - `(rst-level-5-face ((t (:foreground ,nzenburn-cyan)))) - `(rst-level-6-face ((t (:foreground ,nzenburn-green-1)))) - - ;; show-paren - `(show-paren-mismatch ((t (:foreground ,nzenburn-red-3 :background ,nzenburn-bg :weight bold)))) - `(show-paren-match ((t (:foreground ,nzenburn-blue-1 :background ,nzenburn-bg :weight bold)))) - - ;; sml-mode-line - '(sml-modeline-end-face ((t :inherit default :width condensed))) - - ;; SLIME - `(slime-repl-inputed-output-face ((t (:foreground ,nzenburn-red)))) - - ;; tabbar - `(tabbar-button ((t (:foreground ,nzenburn-fg - :background ,nzenburn-bg)))) - `(tabbar-selected ((t (:foreground ,nzenburn-fg - :background ,nzenburn-bg - :box (:line-width -1 :style pressed-button))))) - `(tabbar-unselected ((t (:foreground ,nzenburn-fg - :background ,nzenburn-bg+1 - :box (:line-width -1 :style released-button))))) - - ;; term - `(term-color-black ((t (:foreground ,nzenburn-bg - :background ,nzenburn-bg-1)))) - `(term-color-red ((t (:foreground ,nzenburn-red-2 - :background ,nzenburn-red-4)))) - `(term-color-green ((t (:foreground ,nzenburn-green - :background ,nzenburn-green+2)))) - `(term-color-yellow ((t (:foreground ,nzenburn-orange - :background ,nzenburn-yellow)))) - `(term-color-blue ((t (:foreground ,nzenburn-blue-1 - :background ,nzenburn-blue-4)))) - `(term-color-magenta ((t (:foreground ,nzenburn-magenta - :background ,nzenburn-red)))) - `(term-color-cyan ((t (:foreground ,nzenburn-cyan - :background ,nzenburn-blue)))) - `(term-color-white ((t (:foreground ,nzenburn-fg - :background ,nzenburn-fg-1)))) - '(term-default-fg-color ((t (:inherit term-color-white)))) - '(term-default-bg-color ((t (:inherit term-color-black)))) - - ;; volatile-highlights - `(vhl/default-face ((t (:background ,nzenburn-bg-05)))) - - ;; emacs-w3m - `(w3m-anchor ((t (:foreground ,nzenburn-yellow :underline t - :weight bold)))) - `(w3m-arrived-anchor ((t (:foreground ,nzenburn-yellow-2 - :underline t :weight normal)))) - `(w3m-form ((t (:foreground ,nzenburn-red-1 :underline t)))) - `(w3m-header-line-location-title ((t (:foreground ,nzenburn-yellow - :underline t :weight bold)))) - '(w3m-history-current-url ((t (:inherit match)))) - `(w3m-lnum ((t (:foreground ,nzenburn-green+2 :background ,nzenburn-bg)))) - `(w3m-lnum-match ((t (:background ,nzenburn-bg-1 - :foreground ,nzenburn-orange - :weight bold)))) - `(w3m-lnum-minibuffer-prompt ((t (:foreground ,nzenburn-yellow)))) - - ;; whitespace-mode - `(whitespace-space ((t (:background ,nzenburn-bg+1 :foreground ,nzenburn-bg+1)))) - `(whitespace-hspace ((t (:background ,nzenburn-bg+1 :foreground ,nzenburn-bg+1)))) - `(whitespace-tab ((t (:background ,nzenburn-red-1)))) - `(whitespace-newline ((t (:foreground ,nzenburn-bg+1)))) - `(whitespace-trailing ((t (:background ,nzenburn-red)))) - `(whitespace-line ((t (:background ,nzenburn-bg :foreground ,nzenburn-magenta)))) - `(whitespace-space-before-tab ((t (:background ,nzenburn-orange :foreground ,nzenburn-orange)))) - `(whitespace-indentation ((t (:background ,nzenburn-yellow :foreground ,nzenburn-red)))) - `(whitespace-empty ((t (:background ,nzenburn-yellow)))) - `(whitespace-space-after-tab ((t (:background ,nzenburn-yellow :foreground ,nzenburn-red)))) - - ;; wanderlust - `(wl-highlight-folder-few-face ((t (:foreground ,nzenburn-red-2)))) - `(wl-highlight-folder-many-face ((t (:foreground ,nzenburn-red-1)))) - `(wl-highlight-folder-path-face ((t (:foreground ,nzenburn-orange)))) - `(wl-highlight-folder-unread-face ((t (:foreground ,nzenburn-blue)))) - `(wl-highlight-folder-zero-face ((t (:foreground ,nzenburn-fg)))) - `(wl-highlight-folder-unknown-face ((t (:foreground ,nzenburn-blue)))) - `(wl-highlight-message-citation-header ((t (:foreground ,nzenburn-red-1)))) - `(wl-highlight-message-cited-text-1 ((t (:foreground ,nzenburn-red)))) - `(wl-highlight-message-cited-text-2 ((t (:foreground ,nzenburn-green+2)))) - `(wl-highlight-message-cited-text-3 ((t (:foreground ,nzenburn-blue)))) - `(wl-highlight-message-cited-text-4 ((t (:foreground ,nzenburn-blue+1)))) - `(wl-highlight-message-header-contents-face ((t (:foreground ,nzenburn-green)))) - `(wl-highlight-message-headers-face ((t (:foreground ,nzenburn-red+1)))) - `(wl-highlight-message-important-header-contents ((t (:foreground ,nzenburn-green+2)))) - `(wl-highlight-message-header-contents ((t (:foreground ,nzenburn-green+1)))) - `(wl-highlight-message-important-header-contents2 ((t (:foreground ,nzenburn-green+2)))) - `(wl-highlight-message-signature ((t (:foreground ,nzenburn-green)))) - `(wl-highlight-message-unimportant-header-contents ((t (:foreground ,nzenburn-fg)))) - `(wl-highlight-summary-answered-face ((t (:foreground ,nzenburn-blue)))) - `(wl-highlight-summary-disposed-face ((t (:foreground ,nzenburn-fg - :slant italic)))) - `(wl-highlight-summary-new-face ((t (:foreground ,nzenburn-blue)))) - `(wl-highlight-summary-normal-face ((t (:foreground ,nzenburn-fg)))) - `(wl-highlight-summary-thread-top-face ((t (:foreground ,nzenburn-yellow)))) - `(wl-highlight-thread-indent-face ((t (:foreground ,nzenburn-magenta)))) - `(wl-highlight-summary-refiled-face ((t (:foreground ,nzenburn-fg)))) - `(wl-highlight-summary-displaying-face ((t (:underline t :weight bold)))) - - ;; which-func-mode - `(which-func ((t (:foreground ,nzenburn-green+4)))) - - ;; yascroll - `(yascroll:thumb-text-area ((t (:background ,nzenburn-bg-1)))) - `(yascroll:thumb-fringe ((t (:background ,nzenburn-bg-1 :foreground ,nzenburn-bg-1))))) - - ;;; custom theme variables - (custom-theme-set-variables - 'nzenburn - `(ansi-color-names-vector [,nzenburn-bg ,nzenburn-red ,nzenburn-green ,nzenburn-yellow - ,nzenburn-blue ,nzenburn-magenta ,nzenburn-cyan ,nzenburn-fg]) - - ;; fill-column-indicator - `(fci-rule-color ,nzenburn-bg-05) - - ;; vc-annotate - `(vc-annotate-color-map - '(( 20. . ,nzenburn-red-1) - ( 40. . ,nzenburn-red) - ( 60. . ,nzenburn-orange) - ( 80. . ,nzenburn-yellow-2) - (100. . ,nzenburn-yellow-1) - (120. . ,nzenburn-yellow) - (140. . ,nzenburn-green-1) - (160. . ,nzenburn-green) - (180. . ,nzenburn-green+1) - (200. . ,nzenburn-green+2) - (220. . ,nzenburn-green+3) - (240. . ,nzenburn-green+4) - (260. . ,nzenburn-cyan) - (280. . ,nzenburn-blue-2) - (300. . ,nzenburn-blue-1) - (320. . ,nzenburn-blue) - (340. . ,nzenburn-blue+1) - (360. . ,nzenburn-magenta))) - `(vc-annotate-very-old-color ,nzenburn-magenta) - `(vc-annotate-background ,nzenburn-bg-1) - )) - -;;;###autoload -(and load-file-name - (boundp 'custom-theme-load-path) - (add-to-list 'custom-theme-load-path - (file-name-as-directory - (file-name-directory load-file-name)))) - -(provide-theme 'nzenburn) - - -;; Local Variables: -;; no-byte-compile: t -;; indent-tabs-mode: nil -;; eval: (when (fboundp 'rainbow-mode) (rainbow-mode +1)) -;; End: - -;;; nzenburn-theme.el ends here diff --git a/elpa/paredit-22/paredit-autoloads.el b/elpa/paredit-22/paredit-autoloads.el deleted file mode 100644 index 7b11f674..00000000 --- a/elpa/paredit-22/paredit-autoloads.el +++ /dev/null @@ -1,35 +0,0 @@ -;;; paredit-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads (paredit-mode) "paredit" "paredit.el" (20815 21545 -;;;;;; 0 0)) -;;; Generated autoloads from paredit.el - -(autoload 'paredit-mode "paredit" "\ -Minor mode for pseudo-structurally editing Lisp code. -With a prefix argument, enable Paredit Mode even if there are - imbalanced parentheses in the buffer. -Paredit behaves badly if parentheses are imbalanced, so exercise - caution when forcing Paredit Mode to be enabled, and consider - fixing imbalanced parentheses instead. -\\ - -\(fn &optional ARG)" t nil) - -;;;*** - -;;;### (autoloads nil nil ("paredit-pkg.el") (20815 21545 400291 -;;;;;; 0)) - -;;;*** - -(provide 'paredit-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; paredit-autoloads.el ends here diff --git a/elpa/paredit-22/paredit-pkg.el b/elpa/paredit-22/paredit-pkg.el deleted file mode 100644 index 7b7e26d3..00000000 --- a/elpa/paredit-22/paredit-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "paredit" "22" "minor mode for editing parentheses -*- Mode: Emacs-Lisp -*-" (quote nil)) diff --git a/elpa/paredit-22/paredit.el b/elpa/paredit-22/paredit.el deleted file mode 100644 index 6830bb7c..00000000 --- a/elpa/paredit-22/paredit.el +++ /dev/null @@ -1,2541 +0,0 @@ -;;; paredit.el --- minor mode for editing parentheses -*- Mode: Emacs-Lisp -*- - -;; Copyright (C) 2005--2010 Taylor R. Campbell - -;; Author: Taylor R. Campbell -;; Version: 22 -;; Created: 2005-07-31 -;; Keywords: lisp - -;; NOTE: THIS IS A BETA VERSION OF PAREDIT. USE AT YOUR OWN RISK. -;; THIS FILE IS SUBJECT TO CHANGE, AND NOT SUITABLE FOR DISTRIBUTION -;; BY PACKAGE MANAGERS SUCH AS APT, PKGSRC, MACPORTS, &C. - -;; Paredit is free software: you can redistribute it and/or modify it -;; under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; Paredit is distributed in the hope that it will be useful, but -;; WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with paredit. If not, see . - -;;; -*- Mode: Emacs-Lisp; outline-regexp: " \n;;;;+" -*- - -;;;;;; Paredit: Parenthesis-Editing Minor Mode -;;;;;; Version 22 (beta) - -;;; NOTE: THIS IS A BETA VERSION OF PAREDIT. USE AT YOUR OWN RISK. -;;; THIS FILE IS SUBJECT TO CHANGE, AND NOT SUITABLE FOR DISTRIBUTION -;;; BY PACKAGE MANAGERS SUCH AS APT, PKGSRC, MACPORTS, &C. - -;;; Copyright (c) 2005--2010, Taylor R. Campbell -;;; -;;; Paredit is free software: you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation, either version 3 of the License, or -;;; (at your option) any later version. -;;; -;;; Paredit is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;; General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with paredit. If not, see . - -;;; This file is permanently stored at -;;; . -;;; -;;; The currently released version of paredit is available at -;;; . -;;; -;;; The latest beta version of paredit is available at -;;; . -;;; -;;; Release notes are available at -;;; . - -;;; Install paredit by placing `paredit.el' in `/path/to/elisp', a -;;; directory of your choice, and adding to your .emacs file: -;;; -;;; (add-to-list 'load-path "/path/to/elisp") -;;; (autoload 'enable-paredit-mode "paredit" -;;; "Turn on pseudo-structural editing of Lisp code." -;;; t) -;;; -;;; Enable Paredit Mode on the fly with `M-x enable-paredit-mode RET', -;;; or always enable it in a major mode `M' (e.g., `lisp') with: -;;; -;;; (add-hook M-mode-hook 'enable-paredit-mode) -;;; -;;; Customize paredit using `eval-after-load': -;;; -;;; (eval-after-load 'paredit -;;; '(progn ...redefine keys, &c....)) -;;; -;;; Paredit should run in GNU Emacs 21 or later and XEmacs 21.5 or -;;; later. Paredit is highly unlikely to work in earlier versions of -;;; GNU Emacs, and it may have obscure problems in earlier versions of -;;; XEmacs due to the way its syntax parser reports conditions, as a -;;; result of which the code that uses the syntax parser must mask all -;;; error conditions, not just those generated by the syntax parser. -;;; -;;; Questions, bug reports, comments, feature suggestions, &c., may be -;;; addressed via email to the author's surname at mumble.net or via -;;; IRC to the user named Riastradh on irc.freenode.net in the #paredit -;;; channel. -;;; -;;; Please contact the author rather than forking your own versions, to -;;; prevent the dissemination of random variants floating about the -;;; internet unbeknownst to the author. Laziness is not an excuse: -;;; your laziness costs me confusion and time trying to support -;;; paredit, so if you fork paredit, you make the world a worse place. -;;; -;;; *** WARNING *** IMPORTANT *** DO NOT SUBMIT BUGS BEFORE READING *** -;;; -;;; If you plan to submit a bug report, where some sequence of keys in -;;; Paredit Mode, or some sequence of paredit commands, doesn't do what -;;; you wanted, then it is helpful to isolate an example in a very -;;; small buffer, and it is **ABSOLUTELY**ESSENTIAL** that you supply, -;;; along with the sequence of keys or commands, -;;; -;;; (1) the version of Emacs, -;;; (2) the version of paredit.el[*], and -;;; (3) the **COMPLETE** state of the buffer used to reproduce the -;;; problem, including major mode, minor modes, local key -;;; bindings, entire contents of the buffer, leading line breaks -;;; or spaces, &c. -;;; -;;; It is often extremely difficult to reproduce problems, especially -;;; with commands such as `paredit-kill'. If you do not supply **ALL** -;;; of this information, then it is highly probable that I cannot -;;; reproduce your problem no matter how hard I try, and the effect of -;;; submitting a bug without this information is only to waste your -;;; time and mine. So, please, include all of the above information. -;;; -;;; [*] If you are using a beta version of paredit, be sure that you -;;; are using the *latest* edition of the beta version, available -;;; at . If you -;;; are not using a beta version, then upgrade either to that or to -;;; the latest release version; I cannot support older versions, -;;; and I can't fathom any reason why you might be using them. So -;;; the answer to item (2) should be either `release' or `beta'. - -;;; The paredit minor mode, Paredit Mode, binds a number of simple -;;; keys, notably `(', `)', `"', and `\', to commands that more -;;; carefully insert S-expression structures in the buffer. The -;;; parenthesis delimiter keys (round or square) are defined to insert -;;; parenthesis pairs and move past the closing delimiter, -;;; respectively; the double-quote key is multiplexed to do both, and -;;; also to insert an escape if within a string; and backslashes prompt -;;; the user for the next character to input, because a lone backslash -;;; can break structure inadvertently. These all have their ordinary -;;; behaviour when inside comments, and, outside comments, if truly -;;; necessary, you can insert them literally with `C-q'. -;;; -;;; The key bindings are designed so that when typing new code in -;;; Paredit Mode, you can generally use exactly the same keystrokes as -;;; you would have used without Paredit Mode. Earlier versions of -;;; paredit.el did not conform to this, because Paredit Mode bound `)' -;;; to a command that would insert a newline. Now `)' is bound to a -;;; command that does not insert a newline, and `M-)' is bound to the -;;; command that inserts a newline. To revert to the former behaviour, -;;; add the following forms to an `eval-after-load' form for paredit.el -;;; in your .emacs file: -;;; -;;; (define-key paredit-mode-map (kbd ")") -;;; 'paredit-close-round-and-newline) -;;; (define-key paredit-mode-map (kbd "M-)") -;;; 'paredit-close-round) -;;; -;;; Paredit Mode also binds the usual keys for deleting and killing, so -;;; that they will not destroy any S-expression structure by killing or -;;; deleting only one side of a parenthesis or quote pair. If the -;;; point is on a closing delimiter, `DEL' will move left over it; if -;;; it is on an opening delimiter, `C-d' will move right over it. Only -;;; if the point is between a pair of delimiters will `C-d' or `DEL' -;;; delete them, and in that case it will delete both simultaneously. -;;; `M-d' and `M-DEL' kill words, but skip over any S-expression -;;; structure. `C-k' kills from the start of the line, either to the -;;; line's end, if it contains only balanced expressions; to the first -;;; closing delimiter, if the point is within a form that ends on the -;;; line; or up to the end of the last expression that starts on the -;;; line after the point. -;;; -;;; The behaviour of the commands for deleting and killing can be -;;; overridden by passing a `C-u' prefix argument: `C-u DEL' will -;;; delete a character backward, `C-u C-d' will delete a character -;;; forward, and `C-u C-k' will kill text from the point to the end of -;;; the line, irrespective of the S-expression structure in the buffer. -;;; This can be used to fix mistakes in a buffer, but should generally -;;; be avoided. -;;; -;;; Paredit performs automatic reindentation as locally as possible, to -;;; avoid interfering with custom indentation used elsewhere in some -;;; S-expression. Only the advanced S-expression manipulation commands -;;; automatically reindent, and only the forms that were immediately -;;; operated upon (and their subforms). -;;; -;;; This code is written for clarity, not efficiency. It frequently -;;; walks over S-expressions redundantly. If you have problems with -;;; the time it takes to execute some of the commands, let me know, but -;;; first be sure that what you're doing is reasonable: it is -;;; preferable to avoid immense S-expressions in code anyway. - -;;; This assumes Unix-style LF line endings. - -(defconst paredit-version 22) -(defconst paredit-beta-p t) - -(eval-and-compile - - (defun paredit-xemacs-p () - ;; No idea where I got this definition from. Edward O'Connor - ;; (hober in #emacs) suggested the current definition. - ;; (and (boundp 'running-xemacs) - ;; running-xemacs) - (featurep 'xemacs)) - - (defun paredit-gnu-emacs-p () - ;++ This could probably be improved. - (not (paredit-xemacs-p))) - - (defmacro xcond (&rest clauses) - "Exhaustive COND. -Signal an error if no clause matches." - `(cond ,@clauses - (t (error "XCOND lost.")))) - - (defalias 'paredit-warn (if (fboundp 'warn) 'warn 'message)) - - (defvar paredit-sexp-error-type - (with-temp-buffer - (insert "(") - (condition-case condition - (backward-sexp) - (error (if (eq (car condition) 'error) - (paredit-warn "%s%s%s%s%s" - "Paredit is unable to discriminate" - " S-expression parse errors from" - " other errors. " - " This may cause obscure problems. " - " Please upgrade Emacs.")) - (car condition))))) - - (defmacro paredit-handle-sexp-errors (body &rest handler) - `(condition-case () - ,body - (,paredit-sexp-error-type ,@handler))) - - (put 'paredit-handle-sexp-errors 'lisp-indent-function 1) - - (defmacro paredit-ignore-sexp-errors (&rest body) - `(paredit-handle-sexp-errors (progn ,@body) - nil)) - - (put 'paredit-ignore-sexp-errors 'lisp-indent-function 0) - - nil) - -;;;; Minor Mode Definition - -(defvar paredit-mode-map (make-sparse-keymap) - "Keymap for the paredit minor mode.") - -;;;###autoload -(define-minor-mode paredit-mode - "Minor mode for pseudo-structurally editing Lisp code. -With a prefix argument, enable Paredit Mode even if there are - imbalanced parentheses in the buffer. -Paredit behaves badly if parentheses are imbalanced, so exercise - caution when forcing Paredit Mode to be enabled, and consider - fixing imbalanced parentheses instead. -\\" - :lighter " Paredit" - ;; If we're enabling paredit-mode, the prefix to this code that - ;; DEFINE-MINOR-MODE inserts will have already set PAREDIT-MODE to - ;; true. If this is the case, then first check the parentheses, and - ;; if there are any imbalanced ones we must inhibit the activation of - ;; paredit mode. We skip the check, though, if the user supplied a - ;; prefix argument interactively. - (if (and paredit-mode - (not current-prefix-arg)) - (if (not (fboundp 'check-parens)) - (paredit-warn "`check-parens' is not defined; %s" - "be careful of malformed S-expressions.") - (condition-case condition - (check-parens) - (error (setq paredit-mode nil) - (signal (car condition) (cdr condition))))))) - -(defun enable-paredit-mode () - "Turn on pseudo-structural editing of Lisp code." - (interactive) - (paredit-mode +1)) - -(defun disable-paredit-mode () - "Turn off pseudo-structural editing of Lisp code." - (interactive) - (paredit-mode -1)) - -(defvar paredit-backward-delete-key - (xcond ((paredit-xemacs-p) "BS") - ((paredit-gnu-emacs-p) "DEL"))) - -(defvar paredit-forward-delete-keys - (xcond ((paredit-xemacs-p) '("DEL")) - ((paredit-gnu-emacs-p) '("" "")))) - -;;;; Paredit Keys - -;;; Separating the definition and initialization of this variable -;;; simplifies the development of paredit, since re-evaluating DEFVAR -;;; forms doesn't actually do anything. - -(defvar paredit-commands nil - "List of paredit commands with their keys and examples.") - -;;; Each specifier is of the form: -;;; (key[s] function (example-input example-output) ...) -;;; where key[s] is either a single string suitable for passing to KBD -;;; or a list of such strings. Entries in this list may also just be -;;; strings, in which case they are headings for the next entries. - -(progn (setq paredit-commands - `( - "Basic Insertion Commands" - ("(" paredit-open-round - ("(a b |c d)" - "(a b (|) c d)") - ("(foo \"bar |baz\" quux)" - "(foo \"bar (|baz\" quux)")) - (")" paredit-close-round - ("(a b |c )" "(a b c)|") - ("; Hello,| world!" - "; Hello,)| world!")) - ("M-)" paredit-close-round-and-newline - ("(defun f (x| ))" - "(defun f (x)\n |)") - ("; (Foo.|" - "; (Foo.)|")) - ("[" paredit-open-square - ("(a b |c d)" - "(a b [|] c d)") - ("(foo \"bar |baz\" quux)" - "(foo \"bar [baz\" quux)")) - ("]" paredit-close-square - ("(define-key keymap [frob| ] 'frobnicate)" - "(define-key keymap [frob]| 'frobnicate)") - ("; [Bar.|" - "; [Bar.]|")) - ("\"" paredit-doublequote - ("(frob grovel |full lexical)" - "(frob grovel \"|\" full lexical)") - ("(foo \"bar |baz\" quux)" - "(foo \"bar \\\"|baz\" quux)")) - ("M-\"" paredit-meta-doublequote - ("(foo \"bar |baz\" quux)" - "(foo \"bar baz\"\n |quux)") - ("(foo |(bar #\\x \"baz \\\\ quux\") zot)" - ,(concat "(foo \"|(bar #\\\\x \\\"baz \\\\" - "\\\\ quux\\\")\" zot)"))) - ("\\" paredit-backslash - ("(string #|)\n ; Escaping character... (x)" - "(string #\\x|)") - ("\"foo|bar\"\n ; Escaping character... (\")" - "\"foo\\\"|bar\"")) - (";" paredit-semicolon - ("|(frob grovel)" - ";|(frob grovel)") - ("(frob |grovel)" - "(frob ;grovel\n)") - ("(frob |grovel (bloit\n zargh))" - "(frob ;|grovel\n (bloit\n zargh))") - ("(frob grovel) |" - "(frob grovel) ;|")) - ("M-;" paredit-comment-dwim - ("(foo |bar) ; baz" - "(foo bar) ; |baz") - ("(frob grovel)|" - "(frob grovel) ;|") - (" (foo bar)\n|\n (baz quux)" - " (foo bar)\n ;; |\n (baz quux)") - (" (foo bar) |(baz quux)" - " (foo bar)\n ;; |\n (baz quux)") - ("|(defun hello-world ...)" - ";;; |\n(defun hello-world ...)")) - - ("C-j" paredit-newline - ("(let ((n (frobbotz))) |(display (+ n 1)\nport))" - ,(concat "(let ((n (frobbotz)))" - "\n |(display (+ n 1)" - "\n port))"))) - - "Deleting & Killing" - (("C-d" ,@paredit-forward-delete-keys) - paredit-forward-delete - ("(quu|x \"zot\")" "(quu| \"zot\")") - ("(quux |\"zot\")" - "(quux \"|zot\")" - "(quux \"|ot\")") - ("(foo (|) bar)" "(foo | bar)") - ("|(foo bar)" "(|foo bar)")) - (,paredit-backward-delete-key - paredit-backward-delete - ("(\"zot\" q|uux)" "(\"zot\" |uux)") - ("(\"zot\"| quux)" - "(\"zot|\" quux)" - "(\"zo|\" quux)") - ("(foo (|) bar)" "(foo | bar)") - ("(foo bar)|" "(foo bar|)")) - ("C-k" paredit-kill - ("(foo bar)| ; Useless comment!" - "(foo bar)|") - ("(|foo bar) ; Useful comment!" - "(|) ; Useful comment!") - ("|(foo bar) ; Useless line!" - "|") - ("(foo \"|bar baz\"\n quux)" - "(foo \"|\"\n quux)")) - ("M-d" paredit-forward-kill-word - ("|(foo bar) ; baz" - "(| bar) ; baz" - "(|) ; baz" - "() ;|") - (";;;| Frobnicate\n(defun frobnicate ...)" - ";;;|\n(defun frobnicate ...)" - ";;;\n(| frobnicate ...)")) - (,(concat "M-" paredit-backward-delete-key) - paredit-backward-kill-word - ("(foo bar) ; baz\n(quux)|" - "(foo bar) ; baz\n(|)" - "(foo bar) ; |\n()" - "(foo |) ; \n()" - "(|) ; \n()")) - - "Movement & Navigation" - ("C-M-f" paredit-forward - ("(foo |(bar baz) quux)" - "(foo (bar baz)| quux)") - ("(foo (bar)|)" - "(foo (bar))|")) - ("C-M-b" paredit-backward - ("(foo (bar baz)| quux)" - "(foo |(bar baz) quux)") - ("(|(foo) bar)" - "|((foo) bar)")) - ("C-M-u" paredit-backward-up) - ("C-M-d" paredit-forward-down) - ("C-M-p" paredit-backward-down) ; Built-in, these are FORWARD- - ("C-M-n" paredit-forward-up) ; & BACKWARD-LIST, which have - ; no need given C-M-f & C-M-b. - - "Depth-Changing Commands" - ("M-(" paredit-wrap-round - ("(foo |bar baz)" - "(foo (|bar) baz)")) - ("M-s" paredit-splice-sexp - ("(foo (bar| baz) quux)" - "(foo bar| baz quux)")) - (("M-" "ESC ") - paredit-splice-sexp-killing-backward - ("(foo (let ((x 5)) |(sqrt n)) bar)" - "(foo (sqrt n) bar)")) - (("M-" "ESC ") - paredit-splice-sexp-killing-forward - ("(a (b c| d e) f)" - "(a b c f)")) - ("M-r" paredit-raise-sexp - ("(dynamic-wind in (lambda () |body) out)" - "(dynamic-wind in |body out)" - "|body")) - - "Barfage & Slurpage" - (("C-)" "C-") - paredit-forward-slurp-sexp - ("(foo (bar |baz) quux zot)" - "(foo (bar |baz quux) zot)") - ("(a b ((c| d)) e f)" - "(a b ((c| d) e) f)")) - (("C-}" "C-") - paredit-forward-barf-sexp - ("(foo (bar |baz quux) zot)" - "(foo (bar |baz) quux zot)")) - (("C-(" "C-M-" "ESC C-") - paredit-backward-slurp-sexp - ("(foo bar (baz| quux) zot)" - "(foo (bar baz| quux) zot)") - ("(a b ((c| d)) e f)" - "(a (b (c| d)) e f)")) - (("C-{" "C-M-" "ESC C-") - paredit-backward-barf-sexp - ("(foo (bar baz |quux) zot)" - "(foo bar (baz |quux) zot)")) - - "Miscellaneous Commands" - ("M-S" paredit-split-sexp - ("(hello| world)" - "(hello)| (world)") - ("\"Hello, |world!\"" - "\"Hello, \"| \"world!\"")) - ("M-J" paredit-join-sexps - ("(hello)| (world)" - "(hello| world)") - ("\"Hello, \"| \"world!\"" - "\"Hello, |world!\"") - ("hello-\n| world" - "hello-|world")) - ("C-c C-M-l" paredit-recentre-on-sexp) - ("M-q" paredit-reindent-defun) - )) - nil) ; end of PROGN - -;;;;; Command Examples - -(eval-and-compile - (defmacro paredit-do-commands (vars string-case &rest body) - (let ((spec (nth 0 vars)) - (keys (nth 1 vars)) - (fn (nth 2 vars)) - (examples (nth 3 vars))) - `(dolist (,spec paredit-commands) - (if (stringp ,spec) - ,string-case - (let ((,keys (let ((k (car ,spec))) - (cond ((stringp k) (list k)) - ((listp k) k) - (t (error "Invalid paredit command %s." - ,spec))))) - (,fn (cadr ,spec)) - (,examples (cddr ,spec))) - ,@body))))) - - (put 'paredit-do-commands 'lisp-indent-function 2)) - -(defun paredit-define-keys () - (paredit-do-commands (spec keys fn examples) - nil ; string case - (dolist (key keys) - (define-key paredit-mode-map (read-kbd-macro key) fn)))) - -(defun paredit-function-documentation (fn) - (let ((original-doc (get fn 'paredit-original-documentation)) - (doc (documentation fn 'function-documentation))) - (or original-doc - (progn (put fn 'paredit-original-documentation doc) - doc)))) - -(defun paredit-annotate-mode-with-examples () - (let ((contents - (list (paredit-function-documentation 'paredit-mode)))) - (paredit-do-commands (spec keys fn examples) - (push (concat "\n \n" spec "\n") - contents) - (let ((name (symbol-name fn))) - (if (string-match (symbol-name 'paredit-) name) - (push (concat "\n\n\\[" name "]\t" name - (if examples - (mapconcat (lambda (example) - (concat - "\n" - (mapconcat 'identity - example - "\n --->\n") - "\n")) - examples - "") - "\n (no examples)\n")) - contents)))) - (put 'paredit-mode 'function-documentation - (apply 'concat (reverse contents)))) - ;; PUT returns the huge string we just constructed, which we don't - ;; want it to return. - nil) - -(defun paredit-annotate-functions-with-examples () - (paredit-do-commands (spec keys fn examples) - nil ; string case - (put fn 'function-documentation - (concat (paredit-function-documentation fn) - "\n\n\\\\[" (symbol-name fn) "]\n" - (mapconcat (lambda (example) - (concat "\n" - (mapconcat 'identity - example - "\n ->\n") - "\n")) - examples - ""))))) - -;;;;; HTML Examples - -(defun paredit-insert-html-examples () - "Insert HTML for a paredit quick reference table." - (interactive) - (let ((insert-lines - (lambda (&rest lines) - (mapc (lambda (line) (insert line) (newline)) - lines))) - (html-keys - (lambda (keys) - (mapconcat 'paredit-html-quote keys ", "))) - (html-example - (lambda (example) - (concat "
"
-                   (mapconcat 'paredit-html-quote
-                              example
-                              (concat "
" - "    --->" - "
"))
-                   "
"))) - (firstp t)) - (paredit-do-commands (spec keys fn examples) - (progn (if (not firstp) - (insert "\n") - (setq firstp nil)) - (funcall insert-lines - (concat "

" spec "

") - "" - " " - " " - " " - " " - " ")) - (let ((name (symbol-name fn))) - (if (string-match (symbol-name 'paredit-) name) - (funcall insert-lines - " " - (concat " ") - (concat " ") - (concat " ") - " "))))) - (insert "
CommandKeysExamples
" name "" - (funcall html-keys keys) - "" - (if examples - (mapconcat html-example examples - "
") - "(no examples)") - "
\n")) - -(defun paredit-html-quote (string) - (with-temp-buffer - (dotimes (i (length string)) - (insert (let ((c (elt string i))) - (cond ((eq c ?\<) "<") - ((eq c ?\>) ">") - ((eq c ?\&) "&") - ((eq c ?\') "'") - ((eq c ?\") """) - (t c))))) - (buffer-string))) - -;;;; Delimiter Insertion - -(eval-and-compile - (defun paredit-conc-name (&rest strings) - (intern (apply 'concat strings))) - - (defmacro define-paredit-pair (open close name) - `(progn - (defun ,(paredit-conc-name "paredit-open-" name) (&optional n) - ,(concat "Insert a balanced " name " pair. -With a prefix argument N, put the closing " name " after N - S-expressions forward. -If the region is active, `transient-mark-mode' is enabled, and the - region's start and end fall in the same parenthesis depth, insert a - " name " pair around the region. -If in a string or a comment, insert a single " name ". -If in a character literal, do nothing. This prevents changing what was - in the character literal to a meaningful delimiter unintentionally.") - (interactive "P") - (cond ((or (paredit-in-string-p) - (paredit-in-comment-p)) - (insert ,open)) - ((not (paredit-in-char-p)) - (paredit-insert-pair n ,open ,close 'goto-char)))) - (defun ,(paredit-conc-name "paredit-close-" name) () - ,(concat "Move past one closing delimiter and reindent. -\(Agnostic to the specific closing delimiter.) -If in a string or comment, insert a single closing " name ". -If in a character literal, do nothing. This prevents changing what was - in the character literal to a meaningful delimiter unintentionally.") - (interactive) - (paredit-move-past-close ,close)) - (defun ,(paredit-conc-name "paredit-close-" name "-and-newline") () - ,(concat "Move past one closing delimiter, add a newline," - " and reindent. -If there was a margin comment after the closing delimiter, preserve it - on the same line.") - (interactive) - (paredit-move-past-close-and-newline ,close)) - (defun ,(paredit-conc-name "paredit-wrap-" name) - (&optional argument) - ,(concat "Wrap the following S-expression. -See `paredit-wrap-sexp' for more details.") - (interactive "P") - (paredit-wrap-sexp argument ,open ,close)) - (add-to-list 'paredit-wrap-commands - ',(paredit-conc-name "paredit-wrap-" name))))) - -(defvar paredit-wrap-commands '(paredit-wrap-sexp) - "List of paredit commands that wrap S-expressions. -Used by `paredit-yank-pop'; for internal paredit use only.") - -(define-paredit-pair ?\( ?\) "round") -(define-paredit-pair ?\[ ?\] "square") -(define-paredit-pair ?\{ ?\} "curly") -(define-paredit-pair ?\< ?\> "angled") - -;;; Aliases for the old names. - -(defalias 'paredit-open-parenthesis 'paredit-open-round) -(defalias 'paredit-close-parenthesis 'paredit-close-round) -(defalias 'paredit-close-parenthesis-and-newline - 'paredit-close-round-and-newline) - -(defalias 'paredit-open-bracket 'paredit-open-square) -(defalias 'paredit-close-bracket 'paredit-close-square) -(defalias 'paredit-close-bracket-and-newline - 'paredit-close-square-and-newline) - -(defun paredit-move-past-close (close) - (cond ((or (paredit-in-string-p) - (paredit-in-comment-p)) - (insert close)) - ((not (paredit-in-char-p)) - (paredit-move-past-close-and-reindent close) - (paredit-blink-paren-match nil)))) - -(defun paredit-move-past-close-and-newline (close) - (if (or (paredit-in-string-p) - (paredit-in-comment-p)) - (insert close) - (if (paredit-in-char-p) (forward-char)) - (paredit-move-past-close-and-reindent close) - (let ((comment.point (paredit-find-comment-on-line))) - (newline) - (if comment.point - (save-excursion - (forward-line -1) - (end-of-line) - (indent-to (cdr comment.point)) - (insert (car comment.point))))) - (lisp-indent-line) - (paredit-ignore-sexp-errors (indent-sexp)) - (paredit-blink-paren-match t))) - -(defun paredit-find-comment-on-line () - "Find a margin comment on the current line. -Return nil if there is no such comment or if there is anything but - whitespace until such a comment. -If such a comment exists, delete the comment (including all leading - whitespace) and return a cons whose car is the comment as a string - and whose cdr is the point of the comment's initial semicolon, - relative to the start of the line." - (save-excursion - (paredit-skip-whitespace t (point-at-eol)) - (and (eq ?\; (char-after)) - (not (eq ?\; (char-after (1+ (point))))) - (not (or (paredit-in-string-p) - (paredit-in-char-p))) - (let* ((start ;Move to before the semicolon. - (progn (backward-char) (point))) - (comment - (buffer-substring start (point-at-eol)))) - (paredit-skip-whitespace nil (point-at-bol)) - (delete-region (point) (point-at-eol)) - (cons comment (- start (point-at-bol))))))) - -(defun paredit-insert-pair (n open close forward) - (let* ((regionp - (and (paredit-region-active-p) - (paredit-region-safe-for-insert-p))) - (end - (and regionp - (not n) - (prog1 (region-end) (goto-char (region-beginning)))))) - (let ((spacep (paredit-space-for-delimiter-p nil open))) - (if spacep (insert " ")) - (insert open) - (save-excursion - ;; Move past the desired region. - (cond (n (funcall forward - (save-excursion - (forward-sexp (prefix-numeric-value n)) - (point)))) - (regionp (funcall forward (+ end (if spacep 2 1))))) - (insert close) - (if (paredit-space-for-delimiter-p t close) - (insert " ")))))) - -(defun paredit-region-safe-for-insert-p () - (save-excursion - (let ((beginning (region-beginning)) - (end (region-end))) - (goto-char beginning) - (let* ((beginning-state (paredit-current-parse-state)) - (end-state - (parse-partial-sexp beginning end nil nil beginning-state))) - (and (= (nth 0 beginning-state) ; 0. depth in parens - (nth 0 end-state)) - (eq (nth 3 beginning-state) ; 3. non-nil if inside a - (nth 3 end-state)) ; string - (eq (nth 4 beginning-state) ; 4. comment status, yada - (nth 4 end-state)) - (eq (nth 5 beginning-state) ; 5. t if following char - (nth 5 end-state))))))) ; quote - -(defvar paredit-space-for-delimiter-predicates nil - "List of predicates for whether to put space by delimiter at point. -Each predicate is a function that is is applied to two arguments, ENDP - and DELIMITER, and that returns a boolean saying whether to put a - space next to the delimiter -- before the delimiter if ENDP is false, - after the delimiter if ENDP is true. -If any predicate returns false, no space is inserted: every predicate - has veto power. -Each predicate may assume that the point is not at the beginning of the - buffer, if ENDP is false, or at the end of the buffer, if ENDP is - true; and that the point is not preceded, if ENDP is false, or - followed, if ENDP is true, by a word or symbol constituent, a quote, - or the delimiter matching DELIMITER. -Each predicate should examine only text before the point, if ENDP is - false, or only text after the point, if ENDP is true.") - -(defun paredit-space-for-delimiter-p (endp delimiter) - ;; If at the buffer limit, don't insert a space. If there is a word, - ;; symbol, other quote, or non-matching parenthesis delimiter (i.e. a - ;; close when want an open the string or an open when we want to - ;; close the string), do insert a space. - (and (not (if endp (eobp) (bobp))) - (memq (char-syntax (if endp (char-after) (char-before))) - (list ?w ?_ ?\" - (let ((matching (matching-paren delimiter))) - (and matching (char-syntax matching))) - (and (not endp) - (eq ?\" (char-syntax delimiter)) - ?\) ))) - (catch 'exit - (dolist (predicate paredit-space-for-delimiter-predicates) - (if (not (funcall predicate endp delimiter)) - (throw 'exit nil))) - t))) - -(defun paredit-move-past-close-and-reindent (close) - (let ((open (paredit-missing-close))) - (if open - (if (eq close (matching-paren open)) - (save-excursion - (message "Missing closing delimiter: %c" close) - (insert close)) - (error "Mismatched missing closing delimiter: %c ... %c" - open close)))) - (up-list) - (if (catch 'return ; This CATCH returns T if it - (while t ; should delete leading spaces - (save-excursion ; and NIL if not. - (let ((before-paren (1- (point)))) - (back-to-indentation) - (cond ((not (eq (point) before-paren)) - ;; Can't call PAREDIT-DELETE-LEADING-WHITESPACE - ;; here -- we must return from SAVE-EXCURSION - ;; first. - (throw 'return t)) - ((save-excursion (forward-line -1) - (end-of-line) - (paredit-in-comment-p)) - ;; Moving the closing delimiter any further - ;; would put it into a comment, so we just - ;; indent the closing delimiter where it is and - ;; abort the loop, telling its continuation that - ;; no leading whitespace should be deleted. - (lisp-indent-line) - (throw 'return nil)) - (t (delete-indentation))))))) - (paredit-delete-leading-whitespace))) - -(defun paredit-missing-close () - (save-excursion - (paredit-handle-sexp-errors (backward-up-list) - (error "Not inside a list.")) - (let ((open (char-after))) - (paredit-handle-sexp-errors (progn (forward-sexp) nil) - open)))) - -(defun paredit-delete-leading-whitespace () - ;; This assumes that we're on the closing delimiter already. - (save-excursion - (backward-char) - (while (let ((syn (char-syntax (char-before)))) - (and (or (eq syn ?\ ) (eq syn ?-)) ; whitespace syntax - ;; The above line is a perfect example of why the - ;; following test is necessary. - (not (paredit-in-char-p (1- (point)))))) - (backward-delete-char 1)))) - -(defun paredit-blink-paren-match (another-line-p) - (if (and blink-matching-paren - (or (not show-paren-mode) another-line-p)) - (paredit-ignore-sexp-errors - (save-excursion - (backward-sexp) - (forward-sexp) - ;; SHOW-PAREN-MODE inhibits any blinking, so we disable it - ;; locally here. - (let ((show-paren-mode nil)) - (blink-matching-open)))))) - -(defun paredit-doublequote (&optional n) - "Insert a pair of double-quotes. -With a prefix argument N, wrap the following N S-expressions in - double-quotes, escaping intermediate characters if necessary. -If the region is active, `transient-mark-mode' is enabled, and the - region's start and end fall in the same parenthesis depth, insert a - pair of double-quotes around the region, again escaping intermediate - characters if necessary. -Inside a comment, insert a literal double-quote. -At the end of a string, move past the closing double-quote. -In the middle of a string, insert a backslash-escaped double-quote. -If in a character literal, do nothing. This prevents accidentally - changing a what was in the character literal to become a meaningful - delimiter unintentionally." - (interactive "P") - (cond ((paredit-in-string-p) - (if (eq (cdr (paredit-string-start+end-points)) - (point)) - (forward-char) ; We're on the closing quote. - (insert ?\\ ?\" ))) - ((paredit-in-comment-p) - (insert ?\" )) - ((not (paredit-in-char-p)) - (paredit-insert-pair n ?\" ?\" 'paredit-forward-for-quote)))) - -(defun paredit-meta-doublequote (&optional n) - "Move to the end of the string, insert a newline, and indent. -If not in a string, act as `paredit-doublequote'; if no prefix argument - is specified and the region is not active or `transient-mark-mode' is - disabled, the default is to wrap one S-expression, however, not - zero." - (interactive "P") - (if (not (paredit-in-string-p)) - (paredit-doublequote (or n - (and (not (paredit-region-active-p)) - 1))) - (let ((start+end (paredit-string-start+end-points))) - (goto-char (1+ (cdr start+end))) - (newline) - (lisp-indent-line) - (paredit-ignore-sexp-errors (indent-sexp))))) - -(defun paredit-forward-for-quote (end) - (let ((state (paredit-current-parse-state))) - (while (< (point) end) - (let ((new-state (parse-partial-sexp (point) (1+ (point)) - nil nil state))) - (if (paredit-in-string-p new-state) - (if (not (paredit-in-string-escape-p)) - (setq state new-state) - ;; Escape character: turn it into an escaped escape - ;; character by appending another backslash. - (insert ?\\ ) - ;; Now the point is after both escapes, and we want to - ;; rescan from before the first one to after the second - ;; one. - (setq state - (parse-partial-sexp (- (point) 2) (point) - nil nil state)) - ;; Advance the end point, since we just inserted a new - ;; character. - (setq end (1+ end))) - ;; String: escape by inserting a backslash before the quote. - (backward-char) - (insert ?\\ ) - ;; The point is now between the escape and the quote, and we - ;; want to rescan from before the escape to after the quote. - (setq state - (parse-partial-sexp (1- (point)) (1+ (point)) - nil nil state)) - ;; Advance the end point for the same reason as above. - (setq end (1+ end))))))) - -;;;; Escape Insertion - -(defun paredit-backslash () - "Insert a backslash followed by a character to escape." - (interactive) - (insert ?\\ ) - ;; This funny conditional is necessary because PAREDIT-IN-COMMENT-P - ;; assumes that PAREDIT-IN-STRING-P already returned false; otherwise - ;; it may give erroneous answers. - (if (or (paredit-in-string-p) - (not (paredit-in-comment-p))) - (let ((delp t)) - (unwind-protect (setq delp - (call-interactively 'paredit-escape)) - ;; We need this in an UNWIND-PROTECT so that the backlash is - ;; left in there *only* if PAREDIT-ESCAPE return NIL normally - ;; -- in any other case, such as the user hitting C-g or an - ;; error occurring, we must delete the backslash to avoid - ;; leaving a dangling escape. (This control structure is a - ;; crock.) - (if delp (backward-delete-char 1)))))) - -;;; This auxiliary interactive function returns true if the backslash -;;; should be deleted and false if not. - -(defun paredit-escape (char) - ;; I'm too lazy to figure out how to do this without a separate - ;; interactive function. - (interactive "cEscaping character...") - (if (eq char 127) ; The backslash was a typo, so - t ; the luser wants to delete it. - (insert char) ; (Is there a better way to - nil)) ; express the rubout char? - ; ?\^? works, but ugh...) - -(defun paredit-newline () - "Insert a newline and indent it. -This is like `newline-and-indent', but it not only indents the line - that the point is on but also the S-expression following the point, - if there is one. -Move forward one character first if on an escaped character. -If in a string, just insert a literal newline. -If in a comment and if followed by invalid structure, call - `indent-new-comment-line' to keep the invalid structure in a - comment." - (interactive) - (cond ((paredit-in-string-p) - (newline)) - ((paredit-in-comment-p) - (if (paredit-region-ok-p (point) (point-at-eol)) - (progn (newline-and-indent) (indent-sexp)) - (indent-new-comment-line))) - (t - (if (paredit-in-char-p) - (forward-char)) - (newline-and-indent) - ;; Indent the following S-expression, but don't signal an - ;; error if there's only a closing delimiter after the point. - (paredit-ignore-sexp-errors (indent-sexp))))) - -(defun paredit-reindent-defun (&optional argument) - "Reindent the definition that the point is on. -If the point is in a string or a comment, fill the paragraph instead, - and with a prefix argument, justify as well." - (interactive "P") - (if (or (paredit-in-string-p) - (paredit-in-comment-p)) - (fill-paragraph argument) - (save-excursion - (end-of-defun) - (beginning-of-defun) - (indent-sexp)))) - -;;;; Comment Insertion - -(defun paredit-semicolon (&optional n) - "Insert a semicolon. -With a prefix argument N, insert N semicolons. -If in a string, do just that and nothing else. -If in a character literal, move to the beginning of the character - literal before inserting the semicolon. -If the enclosing list ends on the line after the point, break the line - after the last S-expression following the point. -If a list begins on the line after the point but ends on a different - line, break the line after the last S-expression following the point - before the list." - (interactive "p") - (if (or (paredit-in-string-p) (paredit-in-comment-p)) - (insert (make-string (or n 1) ?\; )) - (if (paredit-in-char-p) - (backward-char 2)) - (let ((line-break-point (paredit-semicolon-find-line-break-point))) - (if line-break-point - (paredit-semicolon-with-line-break line-break-point (or n 1)) - (insert (make-string (or n 1) ?\; )))))) - -(defun paredit-semicolon-find-line-break-point () - (let ((line-break-point nil) - (eol (point-at-eol))) - (and (save-excursion - (paredit-handle-sexp-errors - (progn - (while - (progn - (setq line-break-point (point)) - (forward-sexp) - (and (eq eol (point-at-eol)) - (not (eobp))))) - (backward-sexp) - (eq eol (point-at-eol))) - ;; If we hit the end of an expression, but the closing - ;; delimiter is on another line, don't break the line. - (save-excursion - (paredit-skip-whitespace t (point-at-eol)) - (not (or (eolp) (eq (char-after) ?\; )))))) - line-break-point))) - -(defun paredit-semicolon-with-line-break (line-break-point n) - (let ((line-break-marker (make-marker))) - (set-marker line-break-marker line-break-point) - (set-marker-insertion-type line-break-marker t) - (insert (make-string (or n 1) ?\; )) - (save-excursion - (goto-char line-break-marker) - (set-marker line-break-marker nil) - (newline) - (lisp-indent-line) - ;; This step is redundant if we are inside a list, but even if we - ;; are at the top level, we want at least to indent whatever we - ;; bumped off the line. - (paredit-ignore-sexp-errors (indent-sexp)) - (paredit-indent-sexps)))) - -;;; This is all a horrible, horrible hack, primarily for GNU Emacs 21, -;;; in which there is no `comment-or-uncomment-region'. - -(autoload 'comment-forward "newcomment") -(autoload 'comment-normalize-vars "newcomment") -(autoload 'comment-region "newcomment") -(autoload 'comment-search-forward "newcomment") -(autoload 'uncomment-region "newcomment") - -(defun paredit-initialize-comment-dwim () - (require 'newcomment) - (if (not (fboundp 'comment-or-uncomment-region)) - (defalias 'comment-or-uncomment-region - (lambda (beginning end &optional argument) - (interactive "*r\nP") - (if (save-excursion (goto-char beginning) - (comment-forward (point-max)) - (<= end (point))) - (uncomment-region beginning end argument) - (comment-region beginning end argument))))) - (defalias 'paredit-initialize-comment-dwim 'comment-normalize-vars) - (comment-normalize-vars)) - -(defun paredit-comment-dwim (&optional argument) - "Call the Lisp comment command you want (Do What I Mean). -This is like `comment-dwim', but it is specialized for Lisp editing. -If transient mark mode is enabled and the mark is active, comment or - uncomment the selected region, depending on whether it was entirely - commented not not already. -If there is already a comment on the current line, with no prefix - argument, indent to that comment; with a prefix argument, kill that - comment. -Otherwise, insert a comment appropriate for the context and ensure that - any code following the comment is moved to the next line. -At the top level, where indentation is calculated to be at column 0, - insert a triple-semicolon comment; within code, where the indentation - is calculated to be non-zero, and on the line there is either no code - at all or code after the point, insert a double-semicolon comment; - and if the point is after all code on the line, insert a single- - semicolon margin comment at `comment-column'." - (interactive "*P") - (paredit-initialize-comment-dwim) - (cond ((paredit-region-active-p) - (comment-or-uncomment-region (region-beginning) - (region-end) - argument)) - ((paredit-comment-on-line-p) - (if argument - (comment-kill (if (integerp argument) argument nil)) - (comment-indent))) - (t (paredit-insert-comment)))) - -(defun paredit-comment-on-line-p () - "True if there is a comment on the line following point. -This is expected to be called only in `paredit-comment-dwim'; do not - call it elsewhere." - (save-excursion - (beginning-of-line) - (let ((comment-p nil)) - ;; Search forward for a comment beginning. If there is one, set - ;; COMMENT-P to true; if not, it will be nil. - (while (progn - (setq comment-p ;t -> no error - (comment-search-forward (point-at-eol) t)) - (and comment-p - (or (paredit-in-string-p) - (paredit-in-char-p (1- (point)))))) - (forward-char)) - comment-p))) - -(defun paredit-insert-comment () - (let ((code-after-p - (save-excursion (paredit-skip-whitespace t (point-at-eol)) - (not (eolp)))) - (code-before-p - (save-excursion (paredit-skip-whitespace nil (point-at-bol)) - (not (bolp))))) - (cond ((and (bolp) - (let ((indent - (let ((indent (calculate-lisp-indent))) - (if (consp indent) (car indent) indent)))) - (and indent (zerop indent)))) - ;; Top-level comment - (if code-after-p (save-excursion (newline))) - (insert ";;; ")) - ((or code-after-p (not code-before-p)) - ;; Code comment - (if code-before-p (newline)) - (lisp-indent-line) - (insert ";; ") - (if code-after-p - (save-excursion - (newline) - (lisp-indent-line) - (paredit-indent-sexps)))) - (t - ;; Margin comment - (indent-to comment-column 1) ; 1 -> force one leading space - (insert ?\; ))))) - -;;;; Character Deletion - -(defun paredit-forward-delete (&optional argument) - "Delete a character forward or move forward over a delimiter. -If on an opening S-expression delimiter, move forward into the - S-expression. -If on a closing S-expression delimiter, refuse to delete unless the - S-expression is empty, in which case delete the whole S-expression. -With a numeric prefix argument N, delete N characters forward. -With a `C-u' prefix argument, simply delete a character forward, - without regard for delimiter balancing." - (interactive "P") - (cond ((or (consp argument) (eobp)) - (delete-char 1)) - ((integerp argument) - (if (< argument 0) - (paredit-backward-delete argument) - (while (> argument 0) - (paredit-forward-delete) - (setq argument (- argument 1))))) - ((paredit-in-string-p) - (paredit-forward-delete-in-string)) - ((paredit-in-comment-p) - ;++ What to do here? This could move a partial S-expression - ;++ into a comment and thereby invalidate the file's form, - ;++ or move random text out of a comment. - (delete-char 1)) - ((paredit-in-char-p) ; Escape -- delete both chars. - (backward-delete-char 1) - (delete-char 1)) - ((eq (char-after) ?\\ ) ; ditto - (delete-char 2)) - ((let ((syn (char-syntax (char-after)))) - (or (eq syn ?\( ) - (eq syn ?\" ))) - (if (save-excursion - (paredit-handle-sexp-errors (progn (forward-sexp) t) - nil)) - (forward-char) - (message "Deleting spurious opening delimiter.") - (delete-char 1))) - ((and (not (paredit-in-char-p (1- (point)))) - (eq (char-syntax (char-after)) ?\) ) - (eq (char-before) (matching-paren (char-after)))) - (backward-delete-char 1) ; Empty list -- delete both - (delete-char 1)) ; delimiters. - ;; Just delete a single character, if it's not a closing - ;; delimiter. (The character literal case is already handled - ;; by now.) - ((not (eq (char-syntax (char-after)) ?\) )) - (delete-char 1)))) - -(defun paredit-forward-delete-in-string () - (let ((start+end (paredit-string-start+end-points))) - (cond ((not (eq (point) (cdr start+end))) - ;; If it's not the close-quote, it's safe to delete. But - ;; first handle the case that we're in a string escape. - (cond ((paredit-in-string-escape-p) - ;; We're right after the backslash, so backward - ;; delete it before deleting the escaped character. - (backward-delete-char 1)) - ((eq (char-after) ?\\ ) - ;; If we're not in a string escape, but we are on a - ;; backslash, it must start the escape for the next - ;; character, so delete the backslash before deleting - ;; the next character. - (delete-char 1))) - (delete-char 1)) - ((eq (1- (point)) (car start+end)) - ;; If it is the close-quote, delete only if we're also right - ;; past the open-quote (i.e. it's empty), and then delete - ;; both quotes. Otherwise we refuse to delete it. - (backward-delete-char 1) - (delete-char 1))))) - -(defun paredit-backward-delete (&optional argument) - "Delete a character backward or move backward over a delimiter. -If on a closing S-expression delimiter, move backward into the - S-expression. -If on an opening S-expression delimiter, refuse to delete unless the - S-expression is empty, in which case delete the whole S-expression. -With a numeric prefix argument N, delete N characters backward. -With a `C-u' prefix argument, simply delete a character backward, - without regard for delimiter balancing." - (interactive "P") - (cond ((or (consp argument) (bobp)) - ;++ Should this untabify? - (backward-delete-char 1)) - ((integerp argument) - (if (< argument 0) - (paredit-forward-delete (- 0 argument)) - (while (> argument 0) - (paredit-backward-delete) - (setq argument (- argument 1))))) - ((paredit-in-string-p) - (paredit-backward-delete-in-string)) - ((paredit-in-comment-p) - (backward-delete-char 1)) - ((paredit-in-char-p) ; Escape -- delete both chars. - (backward-delete-char 1) - (delete-char 1)) - ((paredit-in-char-p (1- (point))) - (backward-delete-char 2)) ; ditto - ((let ((syn (char-syntax (char-before)))) - (or (eq syn ?\) ) - (eq syn ?\" ))) - (if (save-excursion - (paredit-handle-sexp-errors (progn (backward-sexp) t) - nil)) - (backward-char) - (message "Deleting spurious closing delimiter.") - (backward-delete-char 1))) - ((and (eq (char-syntax (char-before)) ?\( ) - (eq (char-after) (matching-paren (char-before)))) - (backward-delete-char 1) ; Empty list -- delete both - (delete-char 1)) ; delimiters. - ;; Delete it, unless it's an opening delimiter. The case of - ;; character literals is already handled by now. - ((not (eq (char-syntax (char-before)) ?\( )) - (backward-delete-char-untabify 1)))) - -(defun paredit-backward-delete-in-string () - (let ((start+end (paredit-string-start+end-points))) - (cond ((not (eq (1- (point)) (car start+end))) - ;; If it's not the open-quote, it's safe to delete. - (if (paredit-in-string-escape-p) - ;; If we're on a string escape, since we're about to - ;; delete the backslash, we must first delete the - ;; escaped char. - (delete-char 1)) - (backward-delete-char 1) - (if (paredit-in-string-escape-p) - ;; If, after deleting a character, we find ourselves in - ;; a string escape, we must have deleted the escaped - ;; character, and the backslash is behind the point, so - ;; backward delete it. - (backward-delete-char 1))) - ((eq (point) (cdr start+end)) - ;; If it is the open-quote, delete only if we're also right - ;; past the close-quote (i.e. it's empty), and then delete - ;; both quotes. Otherwise we refuse to delete it. - (backward-delete-char 1) - (delete-char 1))))) - -;;;; Killing - -(defun paredit-kill (&optional argument) - "Kill a line as if with `kill-line', but respecting delimiters. -In a string, act exactly as `kill-line' but do not kill past the - closing string delimiter. -On a line with no S-expressions on it starting after the point or - within a comment, act exactly as `kill-line'. -Otherwise, kill all S-expressions that start after the point. -With a `C-u' prefix argument, just do the standard `kill-line'. -With a numeric prefix argument N, do `kill-line' that many times." - (interactive "P") - (cond (argument - (kill-line (if (integerp argument) argument 1))) - ((paredit-in-string-p) - (paredit-kill-line-in-string)) - ((paredit-in-comment-p) - (kill-line)) - ((save-excursion (paredit-skip-whitespace t (point-at-eol)) - (or (eolp) (eq (char-after) ?\; ))) - ;** Be careful about trailing backslashes. - (if (paredit-in-char-p) - (backward-char)) - (kill-line)) - (t (paredit-kill-sexps-on-line)))) - -(defun paredit-kill-line-in-string () - (if (save-excursion (paredit-skip-whitespace t (point-at-eol)) - (eolp)) - (kill-line) - (save-excursion - ;; Be careful not to split an escape sequence. - (if (paredit-in-string-escape-p) - (backward-char)) - (kill-region (point) - (min (point-at-eol) - (cdr (paredit-string-start+end-points))))))) - -(defun paredit-kill-sexps-on-line () - (if (paredit-in-char-p) ; Move past the \ and prefix. - (backward-char 2)) ; (# in Scheme/CL, ? in elisp) - (let ((beginning (point)) - (eol (point-at-eol))) - (let ((end-of-list-p (paredit-forward-sexps-to-kill beginning eol))) - ;; If we got to the end of the list and it's on the same line, - ;; move backward past the closing delimiter before killing. (This - ;; allows something like killing the whitespace in ( ).) - (if end-of-list-p (progn (up-list) (backward-char))) - (if kill-whole-line - (paredit-kill-sexps-on-whole-line beginning) - (kill-region beginning - ;; If all of the S-expressions were on one line, - ;; i.e. we're still on that line after moving past - ;; the last one, kill the whole line, including - ;; any comments; otherwise just kill to the end of - ;; the last S-expression we found. Be sure, - ;; though, not to kill any closing parentheses. - (if (and (not end-of-list-p) - (eq (point-at-eol) eol)) - eol - (point))))))) - -;;; Please do not try to understand this code unless you have a VERY -;;; good reason to do so. I gave up trying to figure it out well -;;; enough to explain it, long ago. - -(defun paredit-forward-sexps-to-kill (beginning eol) - (let ((end-of-list-p nil) - (firstp t)) - ;; Move to the end of the last S-expression that started on this - ;; line, or to the closing delimiter if the last S-expression in - ;; this list is on the line. - (catch 'return - (while t - ;; This and the `kill-whole-line' business below fix a bug that - ;; inhibited any S-expression at the very end of the buffer - ;; (with no trailing newline) from being deleted. It's a - ;; bizarre fix that I ought to document at some point, but I am - ;; too busy at the moment to do so. - (if (and kill-whole-line (eobp)) (throw 'return nil)) - (save-excursion - (paredit-handle-sexp-errors (forward-sexp) - (up-list) - (setq end-of-list-p (eq (point-at-eol) eol)) - (throw 'return nil)) - (if (or (and (not firstp) - (not kill-whole-line) - (eobp)) - (paredit-handle-sexp-errors - (progn (backward-sexp) nil) - t) - (not (eq (point-at-eol) eol))) - (throw 'return nil))) - (forward-sexp) - (if (and firstp - (not kill-whole-line) - (eobp)) - (throw 'return nil)) - (setq firstp nil))) - end-of-list-p)) - -(defun paredit-kill-sexps-on-whole-line (beginning) - (kill-region beginning - (or (save-excursion ; Delete trailing indentation... - (paredit-skip-whitespace t) - (and (not (eq (char-after) ?\; )) - (point))) - ;; ...or just use the point past the newline, if - ;; we encounter a comment. - (point-at-eol))) - (cond ((save-excursion (paredit-skip-whitespace nil (point-at-bol)) - (bolp)) - ;; Nothing but indentation before the point, so indent it. - (lisp-indent-line)) - ((eobp) nil) ; Protect the CHAR-SYNTAX below against NIL. - ;; Insert a space to avoid invalid joining if necessary. - ((let ((syn-before (char-syntax (char-before))) - (syn-after (char-syntax (char-after)))) - (or (and (eq syn-before ?\) ) ; Separate opposing - (eq syn-after ?\( )) ; parentheses, - (and (eq syn-before ?\" ) ; string delimiter - (eq syn-after ?\" )) ; pairs, - (and (memq syn-before '(?_ ?w)) ; or word or symbol - (memq syn-after '(?_ ?w))))) ; constituents. - (insert " ")))) - -;;;;; Killing Words - -;;; This is tricky and asymmetrical because backward parsing is -;;; extraordinarily difficult or impossible, so we have to implement -;;; killing in both directions by parsing forward. - -(defun paredit-forward-kill-word () - "Kill a word forward, skipping over intervening delimiters." - (interactive) - (let ((beginning (point))) - (skip-syntax-forward " -") - (let* ((parse-state (paredit-current-parse-state)) - (state (paredit-kill-word-state parse-state 'char-after))) - (while (not (or (eobp) - (eq ?w (char-syntax (char-after))))) - (setq parse-state - (progn (forward-char 1) (paredit-current-parse-state)) -;; (parse-partial-sexp (point) (1+ (point)) -;; nil nil parse-state) - ) - (let* ((old-state state) - (new-state - (paredit-kill-word-state parse-state 'char-after))) - (cond ((not (eq old-state new-state)) - (setq parse-state - (paredit-kill-word-hack old-state - new-state - parse-state)) - (setq state - (paredit-kill-word-state parse-state - 'char-after)) - (setq beginning (point))))))) - (goto-char beginning) - (kill-word 1))) - -(defun paredit-backward-kill-word () - "Kill a word backward, skipping over any intervening delimiters." - (interactive) - (if (not (or (bobp) - (eq (char-syntax (char-before)) ?w))) - (let ((end (point))) - (backward-word 1) - (forward-word 1) - (goto-char (min end (point))) - (let* ((parse-state (paredit-current-parse-state)) - (state - (paredit-kill-word-state parse-state 'char-before))) - (while (and (< (point) end) - (progn - (setq parse-state - (parse-partial-sexp (point) (1+ (point)) - nil nil parse-state)) - (or (eq state - (paredit-kill-word-state parse-state - 'char-before)) - (progn (backward-char 1) nil))))) - (if (and (eq state 'comment) - (eq ?\# (char-after (point))) - (eq ?\| (char-before (point)))) - (backward-char 1))))) - (backward-kill-word 1)) - -;;;;;; Word-Killing Auxiliaries - -(defun paredit-kill-word-state (parse-state adjacent-char-fn) - (cond ((paredit-in-comment-p parse-state) 'comment) - ((paredit-in-string-p parse-state) 'string) - ((memq (char-syntax (funcall adjacent-char-fn)) - '(?\( ?\) )) - 'delimiter) - (t 'other))) - -;;; This optionally advances the point past any comment delimiters that -;;; should probably not be touched, based on the last state change and -;;; the characters around the point. It returns a new parse state, -;;; starting from the PARSE-STATE parameter. - -(defun paredit-kill-word-hack (old-state new-state parse-state) - (cond ((and (not (eq old-state 'comment)) - (not (eq new-state 'comment)) - (not (paredit-in-string-escape-p)) - (eq ?\# (char-before)) - (eq ?\| (char-after))) - (forward-char 1) - (paredit-current-parse-state) -;; (parse-partial-sexp (point) (1+ (point)) -;; nil nil parse-state) - ) - ((and (not (eq old-state 'comment)) - (eq new-state 'comment) - (eq ?\; (char-before))) - (skip-chars-forward ";") - (paredit-current-parse-state) -;; (parse-partial-sexp (point) (save-excursion -;; (skip-chars-forward ";")) -;; nil nil parse-state) - ) - (t parse-state))) - -(defun paredit-copy-as-kill () - "Save in the kill ring the region that `paredit-kill' would kill." - (interactive) - (cond ((paredit-in-string-p) - (paredit-copy-as-kill-in-string)) - ((paredit-in-comment-p) - (copy-region-as-kill (point) (point-at-eol))) - ((save-excursion (paredit-skip-whitespace t (point-at-eol)) - (or (eolp) (eq (char-after) ?\; ))) - ;** Be careful about trailing backslashes. - (save-excursion - (if (paredit-in-char-p) - (backward-char)) - (copy-region-as-kill (point) (point-at-eol)))) - (t (paredit-copy-sexps-as-kill)))) - -(defun paredit-copy-as-kill-in-string () - (save-excursion - (if (paredit-in-string-escape-p) - (backward-char)) - (copy-region-as-kill (point) - (min (point-at-eol) - (cdr (paredit-string-start+end-points)))))) - -(defun paredit-copy-sexps-as-kill () - (save-excursion - (if (paredit-in-char-p) - (backward-char 2)) - (let ((beginning (point)) - (eol (point-at-eol))) - (let ((end-of-list-p (paredit-forward-sexps-to-kill beginning eol))) - (if end-of-list-p (progn (up-list) (backward-char))) - (copy-region-as-kill beginning - (cond (kill-whole-line - (or (save-excursion - (paredit-skip-whitespace t) - (and (not (eq (char-after) ?\; )) - (point))) - (point-at-eol))) - ((and (not end-of-list-p) - (eq (point-at-eol) eol)) - eol) - (t - (point)))))))) - -;;;; Safe Region Killing/Copying - -;;; This is an experiment. It's not enough: `paredit-kill-ring-save' -;;; is always safe; it's `yank' that's not safe, but even trickier to -;;; implement than `paredit-kill-region'. Also, the heuristics for -;;; `paredit-kill-region' are slightly too conservative -- they will -;;; sometimes reject killing regions that would be safe to kill. -;;; (Consider, e,g., a region that starts in a comment and ends in the -;;; middle of a symbol at the end of a line: that's safe to kill, but -;;; `paredit-kill-region' won't allow it.) I don't know whether they -;;; are too liberal: I haven't constructed a region that is unsafe to -;;; kill but which `paredit-kill-region' will kill, but I haven't ruled -;;; out the possibility either. - -(defun paredit-kill-ring-save (beginning end) - "Save the balanced region, but don't kill it, like `kill-ring-save'. -If the text of the region is imbalanced, signal an error instead. -With a prefix argument, disregard any imbalance." - (interactive "r") - (if (not current-prefix-arg) - (paredit-check-region beginning end)) - (setq this-command 'kill-ring-save) - (kill-ring-save beginning end)) - -(defun paredit-kill-region (beginning end &optional yank-handler) - "Kill balanced text between point and mark, like `kill-region'. -If that text is imbalanced, signal an error instead." - (interactive "r") - (if (and beginning end) - ;; Check that region begins and ends in a sufficiently similar - ;; state, so that deleting it will leave the buffer balanced. - (save-excursion - (goto-char beginning) - (let* ((state (paredit-current-parse-state)) - (state* (parse-partial-sexp beginning end nil nil state))) - (paredit-check-region-state state state*)))) - (setq this-command 'kill-region) - (kill-region beginning end yank-handler)) - -(defun paredit-check-region-state (beginning-state end-state) - (paredit-check-region-state-depth beginning-state end-state) - (paredit-check-region-state-string beginning-state end-state) - (paredit-check-region-state-comment beginning-state end-state) - (paredit-check-region-state-char-quote beginning-state end-state)) - -(defun paredit-check-region-state-depth (beginning-state end-state) - (let ((beginning-depth (nth 0 beginning-state)) - (end-depth (nth 0 end-state))) - (if (not (= beginning-depth end-depth)) - (error "Mismatched parenthesis depth: %S at start, %S at end." - beginning-depth - end-depth)))) - -(defun paredit-check-region-state-string (beginning-state end-state) - (let ((beginning-string-p (nth 3 beginning-state)) - (end-string-p (nth 3 end-state))) - (if (not (eq beginning-string-p end-string-p)) - (error "Mismatched string state: start %sin string, end %sin string." - (if beginning-string-p "" "not ") - (if end-string-p "" "not "))))) - -(defun paredit-check-region-state-comment (beginning-state end-state) - (let ((beginning-comment-state (nth 4 beginning-state)) - (end-comment-state (nth 4 end-state))) - (if (not (or (eq beginning-comment-state end-comment-state) - (and (eq beginning-comment-state nil) - (eq end-comment-state t) - (eolp)))) - (error "Mismatched comment state: %s" - (cond ((and (integerp beginning-comment-state) - (integerp end-comment-state)) - (format "depth %S at start, depth %S at end." - beginning-comment-state - end-comment-state)) - ((integerp beginning-comment-state) - "start in nested comment, end otherwise.") - ((integerp end-comment-state) - "end in nested comment, start otherwise.") - (beginning-comment-state - "start in comment, end not in comment.") - (end-comment-state - "end in comment, start not in comment.") - (t - (format "start %S, end %S." - beginning-comment-state - end-comment-state))))))) - -(defun paredit-check-region-state-char-quote (beginning-state end-state) - (let ((beginning-char-quote (nth 5 beginning-state)) - (end-char-quote (nth 5 end-state))) - (if (not (eq beginning-char-quote end-char-quote)) - (let ((phrase "character quotation")) - (error "Mismatched %s: start %sin %s, end %sin %s." - phrase - (if beginning-char-quote "" "not ") - phrase - (if end-char-quote "" "not ") - phrase))))) - -;;;; Cursor and Screen Movement - -(eval-and-compile - (defmacro defun-saving-mark (name bvl doc &rest body) - `(defun ,name ,bvl - ,doc - ,(xcond ((paredit-xemacs-p) - '(interactive "_")) - ((paredit-gnu-emacs-p) - '(interactive))) - ,@body))) - -(defun-saving-mark paredit-forward () - "Move forward an S-expression, or up an S-expression forward. -If there are no more S-expressions in this one before the closing - delimiter, move past that closing delimiter; otherwise, move forward - past the S-expression following the point." - (paredit-handle-sexp-errors - (forward-sexp) - ;++ Is it necessary to use UP-LIST and not just FORWARD-CHAR? - (if (paredit-in-string-p) (forward-char) (up-list)))) - -(defun-saving-mark paredit-backward () - "Move backward an S-expression, or up an S-expression backward. -If there are no more S-expressions in this one before the opening - delimiter, move past that opening delimiter backward; otherwise, move - move backward past the S-expression preceding the point." - (paredit-handle-sexp-errors - (backward-sexp) - (if (paredit-in-string-p) (backward-char) (backward-up-list)))) - -;;; Why is this not in lisp.el? - -(defun backward-down-list (&optional arg) - "Move backward and descend into one level of parentheses. -With ARG, do this that many times. -A negative argument means move forward but still descend a level." - (interactive "p") - (down-list (- (or arg 1)))) - -;;; Thanks to Marco Baringer for suggesting & writing this function. - -(defun paredit-recentre-on-sexp (&optional n) - "Recentre the screen on the S-expression following the point. -With a prefix argument N, encompass all N S-expressions forward." - (interactive "P") - (save-excursion - (forward-sexp n) - (let ((end-point (point))) - (backward-sexp n) - (let* ((start-point (point)) - (start-line (count-lines (point-min) (point))) - (lines-on-sexps (count-lines start-point end-point))) - (goto-line (+ start-line (/ lines-on-sexps 2))) - (recenter))))) - -(defun paredit-focus-on-defun () - "Moves display to the top of the definition at point." - (interactive) - (beginning-of-defun) - (recenter 0)) - -;;;; Generalized Upward/Downward Motion - -(defun paredit-up/down (n vertical-direction) - (let ((horizontal-direction (if (< 0 n) +1 -1))) - (while (/= n 0) - (goto-char - (paredit-next-up/down-point horizontal-direction vertical-direction)) - (setq n (- n horizontal-direction))))) - -(defun paredit-next-up/down-point (horizontal-direction vertical-direction) - (let ((state (paredit-current-parse-state)) - (scan-lists - (lambda () - (scan-lists (point) horizontal-direction vertical-direction)))) - (cond ((paredit-in-string-p state) - (let ((start+end (paredit-string-start+end-points state))) - (if (< 0 vertical-direction) - (if (< 0 horizontal-direction) - (+ 1 (cdr start+end)) - (car start+end)) - ;; We could let the user try to descend into lists - ;; within the string, but that would be asymmetric - ;; with the up case, which rises out of the whole - ;; string and not just out of a list within the - ;; string, so this case will just be an error. - (error "Can't descend further into string.")))) - ((< 0 vertical-direction) - ;; When moving up, just try to rise up out of the list. - (or (funcall scan-lists) - (buffer-end horizontal-direction))) - ((< vertical-direction 0) - ;; When moving down, look for a string closer than a list, - ;; and use that if we find it. - (let* ((list-start - (paredit-handle-sexp-errors (funcall scan-lists) nil)) - (string-start - (paredit-find-next-string-start horizontal-direction - list-start))) - (if (and string-start list-start) - (if (< 0 horizontal-direction) - (min string-start list-start) - (max string-start list-start)) - (or string-start - ;; Scan again: this is a kludgey way to report the - ;; error if there really was one. - (funcall scan-lists) - (buffer-end horizontal-direction))))) - (t - (error "Vertical direction must be nonzero in `%s'." - 'paredit-up/down))))) - -(defun paredit-find-next-string-start (horizontal-direction limit) - (let ((next-char (if (< 0 horizontal-direction) 'char-after 'char-before)) - (pastp (if (< 0 horizontal-direction) '< '>))) - (paredit-handle-sexp-errors - (save-excursion - (catch 'exit - (while t - (if (and limit (funcall pastp (point) limit)) - (throw 'exit nil)) - (forward-sexp horizontal-direction) - (save-excursion - (backward-sexp horizontal-direction) - (if (eq ?\" (char-syntax (funcall next-char))) - (throw 'exit (+ (point) horizontal-direction))))))) - nil))) - -(defun paredit-forward-down (&optional argument) - "Move forward down into a list. -With a positive argument, move forward down that many levels. -With a negative argument, move backward down that many levels." - (interactive "p") - (paredit-up/down (or argument +1) -1)) - -(defun paredit-backward-up (&optional argument) - "Move backward up out of the enclosing list. -With a positive argument, move backward up that many levels. -With a negative argument, move forward up that many levels. -If in a string initially, that counts as one level." - (interactive "p") - (paredit-up/down (- 0 (or argument +1)) +1)) - -(defun paredit-forward-up (&optional argument) - "Move forward up out of the enclosing list. -With a positive argument, move forward up that many levels. -With a negative argument, move backward up that many levels. -If in a string initially, that counts as one level." - (interactive "p") - (paredit-up/down (or argument +1) +1)) - -(defun paredit-backward-down (&optional argument) - "Move backward down into a list. -With a positive argument, move backward down that many levels. -With a negative argument, move forward down that many levels." - (interactive "p") - (paredit-up/down (- 0 (or argument +1)) -1)) - -;;;; Depth-Changing Commands: Wrapping, Splicing, & Raising - -(defun paredit-wrap-sexp (&optional argument open close) - "Wrap the following S-expression. -If a `C-u' prefix argument is given, wrap all S-expressions following - the point until the end of the buffer or of the enclosing list. -If a numeric prefix argument N is given, wrap N S-expressions. -Automatically indent the newly wrapped S-expression. -As a special case, if the point is at the end of a list, simply insert - a parenthesis pair, rather than inserting a lone opening delimiter - and then signalling an error, in the interest of preserving - structure. -By default OPEN and CLOSE are round delimiters." - (interactive "P") - (paredit-lose-if-not-in-sexp 'paredit-wrap-sexp) - (let ((open (or open ?\( )) - (close (or close ?\) ))) - (paredit-handle-sexp-errors - ((lambda (n) (paredit-insert-pair n open close 'goto-char)) - (cond ((integerp argument) argument) - ((consp argument) (paredit-count-sexps-forward)) - ((paredit-region-active-p) nil) - (t 1))) - (insert close) - (backward-char))) - (save-excursion (backward-up-list) (indent-sexp))) - -(defun paredit-count-sexps-forward () - (save-excursion - (let ((n 0)) - (paredit-ignore-sexp-errors - (while (not (eobp)) - (forward-sexp) - (setq n (+ n 1)))) - n))) - -(defun paredit-yank-pop (&optional argument) - "Replace just-yanked text with the next item in the kill ring. -If this command follows a `yank', just run `yank-pop'. -If this command follows a `paredit-wrap-sexp', or any other paredit - wrapping command (see `paredit-wrap-commands'), run `yank' and - reindent the enclosing S-expression. -If this command is repeated, run `yank-pop' and reindent the enclosing - S-expression. - -The argument is passed on to `yank' or `yank-pop'; see their - documentation for details." - (interactive "*p") - (cond ((eq last-command 'yank) - (yank-pop argument)) - ((memq last-command paredit-wrap-commands) - (yank argument) - ;; `yank' futzes with `this-command'. - (setq this-command 'paredit-yank-pop) - (save-excursion (backward-up-list) (indent-sexp))) - ((eq last-command 'paredit-yank-pop) - ;; Pretend we just did a `yank', so that we can use - ;; `yank-pop' without duplicating its definition. - (setq last-command 'yank) - (yank-pop argument) - ;; Return to our original state. - (setq last-command 'paredit-yank-pop) - (setq this-command 'paredit-yank-pop) - (save-excursion (backward-up-list) (indent-sexp))) - (t (error "Last command was not a yank or a wrap: %s" last-command)))) - -;;; Thanks to Marco Baringer for the suggestion of a prefix argument -;;; for PAREDIT-SPLICE-SEXP. (I, Taylor R. Campbell, however, still -;;; implemented it, in case any of you lawyer-folk get confused by the -;;; remark in the top of the file about explicitly noting code written -;;; by other people.) - -(defun paredit-splice-sexp (&optional argument) - "Splice the list that the point is on by removing its delimiters. -With a prefix argument as in `C-u', kill all S-expressions backward in - the current list before splicing all S-expressions forward into the - enclosing list. -With two prefix arguments as in `C-u C-u', kill all S-expressions - forward in the current list before splicing all S-expressions - backward into the enclosing list. -With a numerical prefix argument N, kill N S-expressions backward in - the current list before splicing the remaining S-expressions into the - enclosing list. If N is negative, kill forward. -Inside a string, unescape all backslashes, or signal an error if doing - so would invalidate the buffer's structure." - (interactive "P") - (if (paredit-in-string-p) - (paredit-splice-string argument) - (save-excursion - (paredit-kill-surrounding-sexps-for-splice argument) - (let ((end (point))) - (backward-up-list) ; Go up to the beginning... - (save-excursion - (forward-char 1) ; (Skip over leading whitespace - (paredit-skip-whitespace t end) - (setq end (point))) ; for the `delete-region'.) - (let ((indent-start nil) (indent-end nil)) - (save-excursion - (setq indent-start (point)) - (forward-sexp) ; Go forward an expression, to - (backward-delete-char 1) ; delete the end delimiter. - (setq indent-end (point))) - (delete-region (point) end) ; ...to delete the open char. - ;; Reindent only the region we preserved. - (indent-region indent-start indent-end)))))) - -(defun paredit-kill-surrounding-sexps-for-splice (argument) - (cond ((or (paredit-in-string-p) - (paredit-in-comment-p)) - (error "Invalid context for splicing S-expressions.")) - ((or (not argument) (eq argument 0)) nil) - ((or (numberp argument) (eq argument '-)) - ;; Kill S-expressions before/after the point by saving the - ;; point, moving across them, and killing the region. - (let* ((argument (if (eq argument '-) -1 argument)) - (saved (paredit-point-at-sexp-boundary (- argument)))) - (goto-char saved) - (paredit-ignore-sexp-errors (backward-sexp argument)) - (paredit-hack-kill-region saved (point)))) - ((consp argument) - (let ((v (car argument))) - (if (= v 4) ;One `C-u'. - ;; Move backward until we hit the open paren; then - ;; kill that selected region. - (let ((end (point))) - (paredit-ignore-sexp-errors - (while (not (bobp)) - (backward-sexp))) - (paredit-hack-kill-region (point) end)) - ;; Move forward until we hit the close paren; then - ;; kill that selected region. - (let ((beginning (point))) - (paredit-ignore-sexp-errors - (while (not (eobp)) - (forward-sexp))) - (paredit-hack-kill-region beginning (point)))))) - (t (error "Bizarre prefix argument `%s'." argument)))) - -(defun paredit-splice-sexp-killing-backward (&optional n) - "Splice the list the point is on by removing its delimiters, and - also kill all S-expressions before the point in the current list. -With a prefix argument N, kill only the preceding N S-expressions." - (interactive "P") - (paredit-splice-sexp (if n - (prefix-numeric-value n) - '(4)))) - -(defun paredit-splice-sexp-killing-forward (&optional n) - "Splice the list the point is on by removing its delimiters, and - also kill all S-expressions after the point in the current list. -With a prefix argument N, kill only the following N S-expressions." - (interactive "P") - (paredit-splice-sexp (if n - (- (prefix-numeric-value n)) - '(16)))) - -(defun paredit-raise-sexp (&optional argument) - "Raise the following S-expression in a tree, deleting its siblings. -With a prefix argument N, raise the following N S-expressions. If N - is negative, raise the preceding N S-expressions. -If the point is on an S-expression, such as a string or a symbol, not - between them, that S-expression is considered to follow the point." - (interactive "P") - (save-excursion - (cond ((paredit-in-string-p) - (goto-char (car (paredit-string-start+end-points)))) - ((paredit-in-char-p) - (backward-sexp)) - ((paredit-in-comment-p) - (error "No S-expression to raise in comment."))) - ;; Select the S-expressions we want to raise in a buffer substring. - (let* ((n (prefix-numeric-value argument)) - (bound (scan-sexps (point) n)) - (sexps - (if (< n 0) - (buffer-substring bound (paredit-point-at-sexp-end)) - (buffer-substring (paredit-point-at-sexp-start) bound)))) - ;; Move up to the list we're raising those S-expressions out of and - ;; delete it. - (backward-up-list) - (delete-region (point) (scan-sexps (point) 1)) - (let* ((indent-start (point)) - (indent-end (save-excursion (insert sexps) (point)))) - (indent-region indent-start indent-end))))) - -(defun paredit-convolute-sexp (&optional n) - "Convolute S-expressions. -Save the S-expressions preceding point and delete them. -Splice the S-expressions following point. -Wrap the enclosing list in a new list prefixed by the saved text. -With a prefix argument N, move up N lists before wrapping." - (interactive "p") - (paredit-lose-if-not-in-sexp 'paredit-convolute-sexp) - (let (open close) ;++ Is this a good idea? - (let ((prefix - (let ((end (point))) - (paredit-ignore-sexp-errors - (while (not (bobp)) (backward-sexp))) - (prog1 (buffer-substring (point) end) - (backward-up-list) - (save-excursion (forward-sexp) - (setq close (char-before)) - (backward-delete-char 1)) - (setq open (char-after)) - (delete-region (point) end))))) - (backward-up-list n) - (paredit-insert-pair 1 open close 'goto-char) - (insert prefix) - (backward-up-list) - (paredit-ignore-sexp-errors (indent-sexp))))) - -(defun paredit-splice-string (argument) - (let ((original-point (point)) - (start+end (paredit-string-start+end-points))) - (let ((start (car start+end)) - (end (cdr start+end))) - ;; START and END both lie before the respective quote - ;; characters, which we want to delete; thus we increment START - ;; by one to extract the string, and we increment END by one to - ;; delete the string. - (let* ((escaped-string - (cond ((not (consp argument)) - (buffer-substring (1+ start) end)) - ((= 4 (car argument)) - (buffer-substring original-point end)) - (t - (buffer-substring (1+ start) original-point)))) - (unescaped-string - (paredit-unescape-string escaped-string))) - (if (not unescaped-string) - (error "Unspliceable string.") - (save-excursion - (goto-char start) - (delete-region start (1+ end)) - (insert unescaped-string)) - (if (not (and (consp argument) - (= 4 (car argument)))) - (goto-char (- original-point 1)))))))) - -(defun paredit-unescape-string (string) - (with-temp-buffer - (insert string) - (goto-char (point-min)) - (while (and (not (eobp)) - ;; nil -> no bound; t -> no errors. - (search-forward "\\" nil t)) - (delete-char -1) - (forward-char)) - (condition-case condition - (progn (check-parens) (buffer-string)) - (error nil)))) - -;;;; Slurpage & Barfage - -(defun paredit-forward-slurp-sexp () - "Add the S-expression following the current list into that list - by moving the closing delimiter. -Automatically reindent the newly slurped S-expression with respect to - its new enclosing form. -If in a string, move the opening double-quote forward by one - S-expression and escape any intervening characters as necessary, - without altering any indentation or formatting." - (interactive) - (save-excursion - (cond ((or (paredit-in-comment-p) - (paredit-in-char-p)) - (error "Invalid context for slurping S-expressions.")) - ((paredit-in-string-p) - (paredit-forward-slurp-into-string)) - (t - (paredit-forward-slurp-into-list))))) - -(defun paredit-forward-slurp-into-list () - (up-list) ; Up to the end of the list to - (let ((close (char-before))) ; save and delete the closing - (backward-delete-char 1) ; delimiter. - (catch 'return ; Go to the end of the desired - (while t ; S-expression, going up a - (paredit-handle-sexp-errors ; list if it's not in this, - (progn (paredit-forward-and-indent) - (throw 'return nil)) - (up-list) - (setq close ; adjusting for mixed - (prog1 (char-before) ; delimiters as necessary, - (backward-delete-char 1) - (insert close)))))) - (insert close))) ; to insert that delimiter. - -(defun paredit-forward-slurp-into-string () - (goto-char (1+ (cdr (paredit-string-start+end-points)))) - ;; Signal any errors that we might get first, before mucking with the - ;; buffer's contents. - (save-excursion (forward-sexp)) - (let ((close (char-before))) - (backward-delete-char 1) - (paredit-forward-for-quote (save-excursion (forward-sexp) (point))) - (insert close))) - -(defun paredit-forward-barf-sexp () - "Remove the last S-expression in the current list from that list - by moving the closing delimiter. -Automatically reindent the newly barfed S-expression with respect to - its new enclosing form." - (interactive) - (paredit-lose-if-not-in-sexp 'paredit-forward-barf-sexp) - (save-excursion - (up-list) ; Up to the end of the list to - (let ((close (char-before))) ; save and delete the closing - (backward-delete-char 1) ; delimiter. - (paredit-ignore-sexp-errors ; Go back to where we want to - (backward-sexp)) ; insert the delimiter. - (paredit-skip-whitespace nil) ; Skip leading whitespace. - (cond ((bobp) - (error "Barfing all subexpressions with no open-paren?")) - ((paredit-in-comment-p) ; Don't put the close-paren in - (newline-and-indent))) ; a comment. - (insert close)) - ;; Reindent all of the newly barfed S-expressions. - (paredit-forward-and-indent))) - -(defun paredit-backward-slurp-sexp () - "Add the S-expression preceding the current list into that list - by moving the closing delimiter. -Automatically reindent the whole form into which new S-expression was - slurped. -If in a string, move the opening double-quote backward by one - S-expression and escape any intervening characters as necessary, - without altering any indentation or formatting." - (interactive) - (save-excursion - (cond ((or (paredit-in-comment-p) - (paredit-in-char-p)) - (error "Invalid context for slurping S-expressions.")) - ((paredit-in-string-p) - (paredit-backward-slurp-into-string)) - (t - (paredit-backward-slurp-into-list))))) - -(defun paredit-backward-slurp-into-list () - (backward-up-list) - (let ((open (char-after))) - (delete-char 1) - (catch 'return - (while t - (paredit-handle-sexp-errors - (progn (backward-sexp) (throw 'return nil)) - (backward-up-list) - (setq open - (prog1 (char-after) - (save-excursion (insert open) (delete-char 1))))))) - (insert open)) - ;; Reindent the line at the beginning of wherever we inserted the - ;; opening delimiter, and then indent the whole S-expression. - (backward-up-list) - (lisp-indent-line) - (indent-sexp)) - -(defun paredit-backward-slurp-into-string () - (goto-char (car (paredit-string-start+end-points))) - ;; Signal any errors that we might get first, before mucking with the - ;; buffer's contents. - (save-excursion (backward-sexp)) - (let ((open (char-after)) - (target (point))) - (delete-char 1) - (backward-sexp) - (insert open) - (paredit-forward-for-quote target))) - -(defun paredit-backward-barf-sexp () - "Remove the first S-expression in the current list from that list - by moving the closing delimiter. -Automatically reindent the barfed S-expression and the form from which - it was barfed." - (interactive) - (paredit-lose-if-not-in-sexp 'paredit-backward-barf-sexp) - (save-excursion - (backward-up-list) - (let ((open (char-after))) - (delete-char 1) - (paredit-ignore-sexp-errors - (paredit-forward-and-indent)) - (while (progn (paredit-skip-whitespace t) - (eq (char-after) ?\; )) - (forward-line 1)) - (if (eobp) - (error "Barfing all subexpressions with no close-paren?")) - ;** Don't use `insert' here. Consider, e.g., barfing from - ;** (foo|) - ;** and how `save-excursion' works. - (insert-before-markers open)) - (backward-up-list) - (lisp-indent-line) - (indent-sexp))) - -;;;; Splitting & Joining - -(defun paredit-split-sexp () - "Split the list or string the point is on into two." - (interactive) - (cond ((paredit-in-string-p) - (insert "\"") - (save-excursion (insert " \""))) - ((or (paredit-in-comment-p) - (paredit-in-char-p)) - (error "Invalid context for splitting S-expression.")) - (t (let ((open (save-excursion (backward-up-list) - (char-after))) - (close (save-excursion (up-list) - (char-before)))) - (delete-horizontal-space) - (insert close) - (save-excursion (insert ?\ ) - (insert open) - (backward-char) - (indent-sexp)))))) - -(defun paredit-join-sexps () - "Join the S-expressions adjacent on either side of the point. -Both must be lists, strings, or atoms; error if there is a mismatch." - (interactive) - ;++ How ought this to handle comments intervening symbols or strings? - (save-excursion - (if (or (paredit-in-comment-p) - (paredit-in-string-p) - (paredit-in-char-p)) - (error "Invalid context for joining S-expressions.") - (let ((left-point (paredit-point-at-sexp-end)) - (right-point (paredit-point-at-sexp-start))) - (let ((left-char (char-before left-point)) - (right-char (char-after right-point))) - (let ((left-syntax (char-syntax left-char)) - (right-syntax (char-syntax right-char))) - (cond ((>= left-point right-point) - (error "Can't join a datum with itself.")) - ((and (eq left-syntax ?\) ) - (eq right-syntax ?\( ) - (eq left-char (matching-paren right-char)) - (eq right-char (matching-paren left-char))) - ;; Leave intermediate formatting alone. - (goto-char right-point) - (delete-char 1) - (goto-char left-point) - (backward-delete-char 1) - (backward-up-list) - (indent-sexp)) - ((and (eq left-syntax ?\" ) - (eq right-syntax ?\" )) - ;; Delete any intermediate formatting. - (delete-region (1- left-point) - (1+ right-point))) - ((and (memq left-syntax '(?w ?_)) ; Word or symbol - (memq right-syntax '(?w ?_))) - (delete-region left-point right-point)) - (t - (error "Mismatched S-expressions to join."))))))))) - -;;;; Variations on the Lurid Theme - -;;; I haven't the imagination to concoct clever names for these. - -(defun paredit-add-to-previous-list () - "Add the S-expression following point to the list preceding point." - (interactive) - (paredit-lose-if-not-in-sexp 'paredit-add-to-previous-list) - (save-excursion - (backward-down-list) - (paredit-forward-slurp-sexp))) - -(defun paredit-add-to-next-list () - "Add the S-expression preceding point to the list following point. -If no S-expression precedes point, move up the tree until one does." - (interactive) - (paredit-lose-if-not-in-sexp 'paredit-add-to-next-list) - (save-excursion - (down-list) - (paredit-backward-slurp-sexp))) - -(defun paredit-join-with-previous-list () - "Join the list the point is on with the previous list in the buffer." - (interactive) - (paredit-lose-if-not-in-sexp 'paredit-join-with-previous-list) - (save-excursion - (while (paredit-handle-sexp-errors (save-excursion (backward-sexp) nil) - (backward-up-list) - t)) - (paredit-join-sexps))) - -(defun paredit-join-with-next-list () - "Join the list the point is on with the next list in the buffer." - (interactive) - (paredit-lose-if-not-in-sexp 'paredit-join-with-next-list) - (save-excursion - (while (paredit-handle-sexp-errors (save-excursion (forward-sexp) nil) - (up-list) - t)) - (paredit-join-sexps))) - -;;;; Utilities - -(defun paredit-in-string-escape-p () - "True if the point is on a character escape of a string. -This is true only if the character is preceded by an odd number of - backslashes. -This assumes that `paredit-in-string-p' has already returned true." - (let ((oddp nil)) - (save-excursion - (while (eq (char-before) ?\\ ) - (setq oddp (not oddp)) - (backward-char))) - oddp)) - -(defun paredit-in-char-p (&optional argument) - "True if the point is immediately after a character literal. -A preceding escape character, not preceded by another escape character, - is considered a character literal prefix. (This works for elisp, - Common Lisp, and Scheme.) -Assumes that `paredit-in-string-p' is false, so that it need not handle - long sequences of preceding backslashes in string escapes. (This - assumes some other leading character token -- ? in elisp, # in Scheme - and Common Lisp.)" - (let ((argument (or argument (point)))) - (and (eq (char-before argument) ?\\ ) - (not (eq (char-before (1- argument)) ?\\ ))))) - -(defun paredit-indent-sexps () - "If in a list, indent all following S-expressions in the list." - (let ((start (point)) - (end (paredit-handle-sexp-errors (progn (up-list) (point)) nil))) - (if end - (indent-region start end)))) - -(defun paredit-forward-and-indent () - "Move forward an S-expression, indenting it with `indent-region'." - (let ((start (point))) - (forward-sexp) - (indent-region start (point)))) - -(defun paredit-skip-whitespace (trailing-p &optional limit) - "Skip past any whitespace, or until the point LIMIT is reached. -If TRAILING-P is nil, skip leading whitespace; otherwise, skip trailing - whitespace." - (funcall (if trailing-p 'skip-chars-forward 'skip-chars-backward) - " \t\n " ; This should skip using the syntax table, but LF - limit)) ; is a comment end, not newline, in Lisp mode. - -(defalias 'paredit-region-active-p - (xcond ((paredit-xemacs-p) 'region-active-p) - ((paredit-gnu-emacs-p) - (lambda () - (and mark-active transient-mark-mode))))) - -(defun paredit-hack-kill-region (start end) - "Kill the region between START and END. -Do not append to any current kill, and - do not let the next kill append to this one." - (interactive "r") ;Eh, why not? - ;; KILL-REGION sets THIS-COMMAND to tell the next kill that the last - ;; command was a kill. It also checks LAST-COMMAND to see whether it - ;; should append. If we bind these locally, any modifications to - ;; THIS-COMMAND will be masked, and it will not see LAST-COMMAND to - ;; indicate that it should append. - (let ((this-command nil) - (last-command nil)) - (kill-region start end))) - -;;;;; S-expression Parsing Utilities - -;++ These routines redundantly traverse S-expressions a great deal. -;++ If performance issues arise, this whole section will probably have -;++ to be refactored to preserve the state longer, like paredit.scm -;++ does, rather than to traverse the definition N times for every key -;++ stroke as it presently does. - -(defun paredit-current-parse-state () - "Return parse state of point from beginning of defun." - (let ((point (point))) - (beginning-of-defun) - ;; Calling PARSE-PARTIAL-SEXP will advance the point to its second - ;; argument (unless parsing stops due to an error, but we assume it - ;; won't in paredit-mode). - (parse-partial-sexp (point) point))) - -(defun paredit-in-string-p (&optional state) - "True if the parse state is within a double-quote-delimited string. -If no parse state is supplied, compute one from the beginning of the - defun to the point." - ;; 3. non-nil if inside a string (the terminator character, really) - (and (nth 3 (or state (paredit-current-parse-state))) - t)) - -(defun paredit-string-start+end-points (&optional state) - "Return a cons of the points of open and close quotes of the string. -The string is determined from the parse state STATE, or the parse state - from the beginning of the defun to the point. -This assumes that `paredit-in-string-p' has already returned true, i.e. - that the point is already within a string." - (save-excursion - ;; 8. character address of start of comment or string; nil if not - ;; in one - (let ((start (nth 8 (or state (paredit-current-parse-state))))) - (goto-char start) - (forward-sexp 1) - (cons start (1- (point)))))) - -(defun paredit-in-comment-p (&optional state) - "True if parse state STATE is within a comment. -If no parse state is supplied, compute one from the beginning of the - defun to the point." - ;; 4. nil if outside a comment, t if inside a non-nestable comment, - ;; else an integer (the current comment nesting) - (and (nth 4 (or state (paredit-current-parse-state))) - t)) - -(defun paredit-point-at-sexp-boundary (n) - (cond ((< n 0) (paredit-point-at-sexp-start)) - ((= n 0) (point)) - ((> n 0) (paredit-point-at-sexp-end)))) - -(defun paredit-point-at-sexp-start () - (save-excursion - (forward-sexp) - (backward-sexp) - (point))) - -(defun paredit-point-at-sexp-end () - (save-excursion - (backward-sexp) - (forward-sexp) - (point))) - -(defun paredit-lose-if-not-in-sexp (command) - (if (or (paredit-in-string-p) - (paredit-in-comment-p) - (paredit-in-char-p)) - (error "Invalid context for command `%s'." command))) - -(defun paredit-check-region (start end) - (save-restriction - (narrow-to-region start end) - (if (fboundp 'check-parens) - (check-parens) - (save-excursion - (goto-char (point-min)) - (while (not (eobp)) - (forward-sexp)))))) - -(defun paredit-region-ok-p (start end) - (paredit-handle-sexp-errors - (progn - (save-restriction - (narrow-to-region start end) - ;; Can't use `check-parens' here -- it signals the wrong kind - ;; of errors. - (save-excursion - (goto-char (point-min)) - (while (not (eobp)) - (forward-sexp)))) - t) - nil)) - -;;;; Initialization - -(paredit-define-keys) -(paredit-annotate-mode-with-examples) -(paredit-annotate-functions-with-examples) - -(provide 'paredit) - -;;; aoeu -;;; paredit.el ends here diff --git a/elpa/smex-2.0/smex-autoloads.el b/elpa/smex-2.0/smex-autoloads.el deleted file mode 100644 index 77befc77..00000000 --- a/elpa/smex-2.0/smex-autoloads.el +++ /dev/null @@ -1,33 +0,0 @@ -;;; smex-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads (smex-initialize smex) "smex" "smex.el" (20815 -;;;;;; 21542 0 0)) -;;; Generated autoloads from smex.el - -(autoload 'smex "smex" "\ - - -\(fn)" t nil) - -(autoload 'smex-initialize "smex" "\ - - -\(fn)" t nil) - -;;;*** - -;;;### (autoloads nil nil ("smex-pkg.el") (20815 21542 636315 0)) - -;;;*** - -(provide 'smex-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; smex-autoloads.el ends here diff --git a/elpa/smex-2.0/smex-pkg.el b/elpa/smex-2.0/smex-pkg.el deleted file mode 100644 index 39db3218..00000000 --- a/elpa/smex-2.0/smex-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "smex" "2.0" "M-x interface with Ido-style fuzzy matching." (quote nil)) diff --git a/elpa/smex-2.0/smex.el b/elpa/smex-2.0/smex.el deleted file mode 100644 index 47b64470..00000000 --- a/elpa/smex-2.0/smex.el +++ /dev/null @@ -1,493 +0,0 @@ -;;; smex.el --- M-x interface with Ido-style fuzzy matching. - -;; Copyright (C) 2009-2012 Cornelius Mika -;; -;; Author: Cornelius Mika -;; URL: http://github.com/nonsequitur/smex/ -;; Version: 2.0 -;; Keywords: convenience, usability - -;; This file is not part of GNU Emacs. - -;;; License: - -;; Licensed under the same terms as Emacs. - -;;; Commentary: - -;; Quick start: -;; run (smex-initialize) -;; -;; Bind the following commands: -;; smex, smex-major-mode-commands -;; -;; For a detailed introduction see: -;; http://github.com/nonsequitur/smex/blob/master/README.markdown - -;;; Code: - -(require 'ido) - -(defgroup smex nil - "M-x interface with Ido-style fuzzy matching and ranking heuristics." - :group 'extensions - :group 'convenience - :link '(emacs-library-link :tag "Lisp File" "smex.el")) - -(defcustom smex-auto-update t - "If non-nil, `Smex' checks for new commands each time it is run. -Turn it off for minor speed improvements on older systems." - :type 'boolean - :group 'smex) - -(defcustom smex-save-file "~/.smex-items" - "File in which the smex state is saved between Emacs sessions. -Variables stored are: `smex-data', `smex-history'. -Must be set before initializing Smex." - :type 'string - :group 'smex) - -(defcustom smex-history-length 7 - "Determines on how many recently executed commands -Smex should keep a record. -Must be set before initializing Smex." - :type 'integer - :group 'smex) - -(defcustom smex-prompt-string "M-x " - "String to display in the Smex prompt." - :type 'string - :group 'smex) - -(defcustom smex-key-advice-ignore-menu-bar nil - "If non-nil, `smex-key-advice' ignores `menu-bar' bindings" - :type 'boolean - :group 'smex) - -(defcustom smex-flex-matching t - "Enables Ido flex matching. On by default. -Set this to nil to disable fuzzy matching." - :type 'boolean - :group 'smex) - -(defvar smex-initialized-p nil) -(defvar smex-cache) -(defvar smex-ido-cache) -(defvar smex-data) -(defvar smex-history) -(defvar smex-command-count 0) -(defvar smex-custom-action nil) - -;;-------------------------------------------------------------------------------- -;; Smex Interface - -;;;###autoload -(defun smex () - (interactive) - (unless smex-initialized-p - (smex-initialize)) - (if (smex-already-running) - (smex-update-and-rerun) - (and smex-auto-update - (smex-detect-new-commands) - (smex-update)) - (smex-read-and-run smex-ido-cache))) - -(defsubst smex-already-running () - (and (boundp 'ido-choice-list) (eql ido-choice-list smex-ido-cache))) - -(defsubst smex-update-and-rerun () - (smex-do-with-selected-item - (lambda (ignore) (smex-update) (smex-read-and-run smex-ido-cache ido-text)))) - -(defun smex-read-and-run (commands &optional initial-input) - (let ((chosen-item (intern (smex-completing-read commands initial-input)))) - (if smex-custom-action - (let ((action smex-custom-action)) - (setq smex-custom-action nil) - (funcall action chosen-item)) - (unwind-protect - (progn (setq prefix-arg current-prefix-arg) - (setq this-command chosen-item) - (command-execute chosen-item 'record)) - (smex-rank chosen-item) - (smex-show-key-advice chosen-item) - ;; Todo: Is there a better way to manipulate 'last-repeatable-command' - ;; from the inside of an interactively called function? - (run-at-time 0.01 nil (lambda (cmd) (setq last-repeatable-command cmd)) - chosen-item))))) - -(defun smex-major-mode-commands () - "Like `smex', but limited to commands that are relevant to the active major mode." - (interactive) - (let ((commands (delete-dups (append (extract-commands-from-keymap (current-local-map)) - (extract-commands-from-features major-mode))))) - (setq commands (smex-sort-according-to-cache commands)) - (setq commands (mapcar #'symbol-name commands)) - (smex-read-and-run commands))) - -(defun smex-completing-read (choices initial-input) - (let ((ido-completion-map ido-completion-map) - (ido-setup-hook (cons 'smex-prepare-ido-bindings ido-setup-hook)) - (ido-enable-prefix nil) - (ido-enable-flex-matching smex-flex-matching) - (ido-max-prospects 10)) - (ido-completing-read (smex-prompt-with-prefix-arg) choices nil nil - initial-input nil (car choices)))) - -(defun smex-prompt-with-prefix-arg () - (if (not current-prefix-arg) - smex-prompt-string - (concat - (if (eq current-prefix-arg '-) - "- " - (if (integerp current-prefix-arg) - (format "%d " current-prefix-arg) - (if (= (car current-prefix-arg) 4) - "C-u " - (format "%d " (car current-prefix-arg))))) - smex-prompt-string))) - -(defun smex-prepare-ido-bindings () - (define-key ido-completion-map (kbd "C-h f") 'smex-describe-function) - (define-key ido-completion-map (kbd "C-h w") 'smex-where-is) - (define-key ido-completion-map (kbd "M-.") 'smex-find-function) - (define-key ido-completion-map (kbd "C-a") 'move-beginning-of-line)) - -;;-------------------------------------------------------------------------------- -;; Cache and Maintenance - -(defun smex-rebuild-cache () - (interactive) - (setq smex-cache nil) - - ;; Build up list 'new-commands' and later put it at the end of 'smex-cache'. - ;; This speeds up sorting. - (let (new-commands) - (mapatoms (lambda (symbol) - (when (commandp symbol) - (let ((known-command (assq symbol smex-data))) - (if known-command - (setq smex-cache (cons known-command smex-cache)) - (setq new-commands (cons (list symbol) new-commands))))))) - (if (eq (length smex-cache) 0) - (setq smex-cache new-commands) - (setcdr (last smex-cache) new-commands))) - - (setq smex-cache (sort smex-cache 'smex-sorting-rules)) - (smex-restore-history) - (setq smex-ido-cache (smex-convert-for-ido smex-cache))) - -(defun smex-convert-for-ido (command-items) - (mapcar (lambda (command-item) (symbol-name (car command-item))) command-items)) - -(defun smex-restore-history () - "Rearranges `smex-cache' according to `smex-history'" - (if (> (length smex-history) smex-history-length) - (setcdr (nthcdr (- smex-history-length 1) smex-history) nil)) - (mapc (lambda (command) - (unless (eq command (caar smex-cache)) - (let ((command-cell-position (smex-detect-position smex-cache (lambda (cell) - (eq command (caar cell)))))) - (if command-cell-position - (let ((command-cell (smex-remove-nth-cell command-cell-position smex-cache))) - (setcdr command-cell smex-cache) - (setq smex-cache command-cell)))))) - (reverse smex-history))) - -(defun smex-sort-according-to-cache (list) - "Sorts a list of commands by their order in `smex-cache'" - (let (sorted) - (dolist (command-item smex-cache) - (let ((command (car command-item))) - (when (memq command list) - (setq sorted (cons command sorted)) - (setq list (delq command list))))) - (nreverse (append list sorted)))) - -(defun smex-update () - (interactive) - (smex-save-history) - (smex-rebuild-cache)) - -(defun smex-detect-new-commands () - (let ((i 0)) - (mapatoms (lambda (symbol) (if (commandp symbol) (setq i (1+ i))))) - (unless (= i smex-command-count) - (setq smex-command-count i)))) - -(defun smex-auto-update (&optional idle-time) - "Update Smex when Emacs has been idle for IDLE-TIME." - (unless idle-time (setq idle-time 60)) - (run-with-idle-timer idle-time t - '(lambda () (if (smex-detect-new-commands) (smex-update))))) - -;;;###autoload -(defun smex-initialize () - (interactive) - (unless ido-mode (smex-initialize-ido)) - (smex-load-save-file) - (smex-detect-new-commands) - (smex-rebuild-cache) - (add-hook 'kill-emacs-hook 'smex-save-to-file) - (setq smex-initialized-p t)) - -(defun smex-initialize-ido () - "Sets up a minimal Ido environment for `ido-completing-read'." - (ido-init-completion-maps) - (add-hook 'minibuffer-setup-hook 'ido-minibuffer-setup)) - -(defun smex-load-save-file () - "Loads `smex-history' and `smex-data' from `smex-save-file'" - (let ((save-file (expand-file-name smex-save-file))) - (if (file-readable-p save-file) - (with-temp-buffer - (insert-file-contents save-file) - (condition-case nil - (setq smex-history (read (current-buffer)) - smex-data (read (current-buffer))) - (error (if (save-file-not-empty-p) - (error "Invalid data in smex-save-file (%s). Can't restore history." - smex-save-file) - (if (not (boundp 'smex-history)) (setq smex-history)) - (if (not (boundp 'smex-data)) (setq smex-data)))))) - (setq smex-history nil smex-data nil)))) - -(defsubst save-file-not-empty-p () - (string-match-p "\[^[:space:]\]" (buffer-string))) - -(defun smex-save-history () - "Updates `smex-history'" - (setq smex-history nil) - (let ((cell smex-cache)) - (dotimes (i smex-history-length) - (setq smex-history (cons (caar cell) smex-history)) - (setq cell (cdr cell)))) - (setq smex-history (nreverse smex-history))) - -(defun smex-save-to-file () - (interactive) - (smex-save-history) - (with-temp-file (expand-file-name smex-save-file) - (ido-pp 'smex-history) - (ido-pp 'smex-data))) - -;;-------------------------------------------------------------------------------- -;; Ranking - -(defun smex-sorting-rules (command-item other-command-item) - "Returns true if COMMAND-ITEM should sort before OTHER-COMMAND-ITEM." - (let* ((count (or (cdr command-item ) 0)) - (other-count (or (cdr other-command-item) 0)) - (name (car command-item)) - (other-name (car other-command-item)) - (length (length (symbol-name name))) - (other-length (length (symbol-name other-name)))) - (or (> count other-count) ; 1. Frequency of use - (and (= count other-count) - (or (< length other-length) ; 2. Command length - (and (= length other-length) - (string< name other-name))))))) ; 3. Alphabetical order - -(defun smex-rank (command) - (let ((command-item (or (assq command smex-cache) - ;; Update caches and try again if not found. - (progn (smex-update) - (assq command smex-cache))))) - (when command-item - (smex-update-counter command-item) - - ;; Don't touch the cache order if the chosen command - ;; has just been execucted previously. - (unless (eq command-item (car smex-cache)) - (let (command-cell - (pos (smex-detect-position smex-cache (lambda (cell) - (eq command-item (car cell)))))) - ;; Remove the just executed command. - (setq command-cell (smex-remove-nth-cell pos smex-cache)) - ;; And put it on top of the cache. - (setcdr command-cell smex-cache) - (setq smex-cache command-cell) - - ;; Repeat the same for the ido cache. Should this be DRYed? - (setq command-cell (smex-remove-nth-cell pos smex-ido-cache)) - (setcdr command-cell smex-ido-cache) - (setq smex-ido-cache command-cell) - - ;; Now put the last history item back to its normal place. - (smex-sort-item-at smex-history-length)))))) - -(defun smex-update-counter (command-item) - (let ((count (cdr command-item))) - (setcdr command-item - (if count - (1+ count) - ;; Else: Command has just been executed for the first time. - ;; Add it to `smex-data'. - (if smex-data - (setcdr (last smex-data) (list command-item)) - (setq smex-data (list command-item))) - 1)))) - -(defun smex-sort-item-at (n) - "Sorts item at position N in `smex-cache'." - (let* ((command-cell (nthcdr n smex-cache)) - (command-item (car command-cell)) - (command-count (cdr command-item))) - (let ((insert-at (smex-detect-position command-cell (lambda (cell) - (smex-sorting-rules command-item (car cell)))))) - ;; TODO: Should we handle the case of 'insert-at' being nil? - ;; This will never happen in practice. - (when (> insert-at 1) - (setq command-cell (smex-remove-nth-cell n smex-cache)) - ;; smex-cache just got shorter by one element, so subtract '1' from insert-at. - (setq insert-at (+ n (- insert-at 1))) - (smex-insert-cell command-cell insert-at smex-cache) - - ;; Repeat the same for the ido cache. DRY? - (setq command-cell (smex-remove-nth-cell n smex-ido-cache)) - (smex-insert-cell command-cell insert-at smex-ido-cache))))) - -(defun smex-detect-position (cell function) - "Detects, relatively to CELL, the position of the cell -on which FUNCTION returns true. -Only checks cells after CELL, starting with the cell right after CELL. -Returns nil when reaching the end of the list." - (let ((pos 1)) - (catch 'break - (while t - (setq cell (cdr cell)) - (if (not cell) - (throw 'break nil) - (if (funcall function cell) (throw 'break pos)) - (setq pos (1+ pos))))))) - -(defun smex-remove-nth-cell (n list) - "Removes and returns the Nth cell in LIST." - (let* ((previous-cell (nthcdr (- n 1) list)) - (result (cdr previous-cell))) - (setcdr previous-cell (cdr result)) - result)) - -(defun smex-insert-cell (new-cell n list) - "Inserts cell at position N in LIST." - (let* ((cell (nthcdr (- n 1) list)) - (next-cell (cdr cell))) - (setcdr (setcdr cell new-cell) next-cell))) - -;;-------------------------------------------------------------------------------- -;; Help and Reference - -(defun smex-do-with-selected-item (fn) - (setq smex-custom-action fn) - (ido-exit-minibuffer)) - -(defun smex-describe-function () - (interactive) - (smex-do-with-selected-item (lambda (chosen) - (describe-function chosen) - (pop-to-buffer "*Help*")))) - -(defun smex-where-is () - (interactive) - (smex-do-with-selected-item 'where-is)) - -(defun smex-find-function () - (interactive) - (smex-do-with-selected-item 'find-function)) - -(defvar smex-old-message nil - "A temporary storage used by `smex-show-key-advice'") - -(defun smex-show-key-advice (command) - "Shows the keybinding for command, if available. Like `execute-extended-command'." - (let ((advice (smex-key-advice command))) - (when advice - (if (current-message) - (progn - (run-at-time 2 nil (lambda (advice) - (setq smex-old-message (current-message)) - (smex-unlogged-message advice)) advice) - - (run-at-time 4.5 nil (lambda (advice) - (if (equal (current-message) advice) - (smex-unlogged-message smex-old-message))) advice)) - (smex-unlogged-message advice))))) - -(defun smex-key-advice (command) - (let ((keys (where-is-internal command))) - (if smex-key-advice-ignore-menu-bar - (setq keys (smex-filter-out-menu-bar-bindings keys))) - (if keys - (format "You can run the command `%s' with %s" - command - (mapconcat 'key-description keys ", "))))) - -(defsubst smex-filter-out-menu-bar-bindings (keys) - (delq nil (mapcar (lambda (key-vec) - (unless (equal (aref key-vec 0) 'menu-bar) - key-vec)) - keys))) - -(defun smex-unlogged-message (string) - "Bypasses logging in *Messages*" - (let (message-log-max) - (message "%s" string))) - -(defun extract-commands-from-keymap (map) - (let (commands) - (parse-keymap map) - commands)) - -(defun parse-keymap (map) - (map-keymap (lambda (binding element) - (if (and (listp element) (eq 'keymap (car element))) - (parse-keymap element) - ; Strings are commands, too. Reject them. - (if (and (symbolp element) (commandp element)) - (setq commands (cons element commands))))) - map)) - -(defun extract-commands-from-features (mode) - (let ((library-path (symbol-file mode)) - (mode-name (symbol-name mode)) - commands) - - (string-match "\\(.+?\\)\\(-mode\\)?$" mode-name) - ;; 'lisp-mode' -> 'lisp' - (setq mode-name (match-string 1 mode-name)) - (if (string= mode-name "c") (setq mode-name "cc")) - (setq mode-name (regexp-quote mode-name)) - - (dolist (feature load-history) - (let ((feature-path (car feature))) - (when (and feature-path (or (equal feature-path library-path) - (string-match mode-name (file-name-nondirectory - feature-path)))) - (dolist (item (cdr feature)) - (if (and (listp item) (eq 'defun (car item))) - (let ((function (cdr item))) - (when (commandp function) - (setq commands (append commands (list function)))))))))) - commands)) - -(defun smex-show-unbound-commands () - "Shows unbound commands in a new buffer, -sorted by frequency of use." - (interactive) - (setq smex-data (sort smex-data 'smex-sorting-rules)) - (let ((unbound-commands (delq nil - (mapcar (lambda (command-item) - (unless (where-is-internal (car command-item)) - command-item)) - smex-data)))) - (view-buffer-other-window "*Smex: Unbound Commands*") - (setq buffer-read-only t) - (let ((inhibit-read-only t)) - (erase-buffer) - (ido-pp 'unbound-commands)) - (set-buffer-modified-p nil) - (goto-char (point-min)))) - -(provide 'smex) -;;; smex.el ends here diff --git a/elpa/starter-kit-2.0.3/starter-kit-autoloads.el b/elpa/starter-kit-2.0.3/starter-kit-autoloads.el deleted file mode 100644 index 7eaef56b..00000000 --- a/elpa/starter-kit-2.0.3/starter-kit-autoloads.el +++ /dev/null @@ -1,44 +0,0 @@ -;;; starter-kit-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads nil "starter-kit" "starter-kit.el" (20815 21546 -;;;;;; 0 0)) -;;; Generated autoloads from starter-kit.el - -(dolist (mode '(menu-bar-mode tool-bar-mode scroll-bar-mode)) (when (fboundp mode) (funcall mode -1))) - -(mapc 'require '(uniquify starter-kit-defuns starter-kit-misc)) - -(setq esk-system-config (concat user-emacs-directory system-name ".el") esk-user-config (concat user-emacs-directory user-login-name ".el") esk-user-dir (concat user-emacs-directory user-login-name)) - -(add-to-list 'load-path esk-user-dir) - -(setq smex-save-file (concat user-emacs-directory ".smex-items")) - -(smex-initialize) - -(global-set-key (kbd "M-x") 'smex) - -(when (file-exists-p esk-system-config) (load esk-system-config)) - -(when (file-exists-p esk-user-config) (load esk-user-config)) - -(when (file-exists-p esk-user-dir) (mapc 'load (directory-files esk-user-dir nil "^[^#].*el$"))) - -;;;*** - -;;;### (autoloads nil nil ("starter-kit-defuns.el" "starter-kit-misc.el" -;;;;;; "starter-kit-pkg.el") (20815 21546 307327 0)) - -;;;*** - -(provide 'starter-kit-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; starter-kit-autoloads.el ends here diff --git a/elpa/starter-kit-2.0.3/starter-kit-defuns.el b/elpa/starter-kit-2.0.3/starter-kit-defuns.el deleted file mode 100644 index a96105b0..00000000 --- a/elpa/starter-kit-2.0.3/starter-kit-defuns.el +++ /dev/null @@ -1,175 +0,0 @@ -;;; starter-kit-defuns.el --- Saner defaults and goodies: function defs. -;; -;; Copyright (c) 2008-2010 Phil Hagelberg and contributors -;; -;; Author: Phil Hagelberg -;; URL: http://www.emacswiki.org/cgi-bin/wiki/StarterKit -;; Version: 2.0.2 -;; Keywords: convenience - -;; This file is not part of GNU Emacs. - -;;; Commentary: - -;; "Emacs outshines all other editing software in approximately the -;; same way that the noonday sun does the stars. It is not just bigger -;; and brighter; it simply makes everything else vanish." -;; -Neal Stephenson, "In the Beginning was the Command Line" - -;; This file contains all the function definitions for the starter kit. - -;;; License: - -;; This program is free software; you can redistribute it and/or -;; modify it under the terms of the GNU General Public License -;; as published by the Free Software Foundation; either version 3 -;; of the License, or (at your option) any later version. -;; -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. - -;;; Code: - -;;; These belong in prog-mode-hook: - -;; We have a number of turn-on-* functions since it's advised that lambda -;; functions not go in hooks. Repeatedly evaling an add-to-list with a -;; hook value will repeatedly add it since there's no way to ensure -;; that a byte-compiled lambda doesn't already exist in the list. - -(defun esk-local-column-number-mode () - (make-local-variable 'column-number-mode) - (column-number-mode t)) - -(defun esk-local-comment-auto-fill () - (set (make-local-variable 'comment-auto-fill-only-comments) t) - (auto-fill-mode t)) - -(defun esk-turn-on-hl-line-mode () - (when (> (display-color-cells) 8) - (hl-line-mode t))) - -(defun esk-turn-on-save-place-mode () - (require 'saveplace) - (setq save-place t)) - -(defun esk-turn-on-whitespace () - (whitespace-mode t)) - -(defun esk-turn-on-paredit () - (paredit-mode t)) - -(defun esk-turn-on-idle-highlight-mode () - (idle-highlight-mode t)) - -(defun esk-pretty-lambdas () - (font-lock-add-keywords - nil `(("(?\\(lambda\\>\\)" - (0 (progn (compose-region (match-beginning 1) (match-end 1) - ,(make-char 'greek-iso8859-7 107)) - nil)))))) - -(defun esk-add-watchwords () - (font-lock-add-keywords - nil '(("\\<\\(FIX\\|TODO\\|FIXME\\|HACK\\|REFACTOR\\|NOCOMMIT\\)" - 1 font-lock-warning-face t)))) - -(add-hook 'prog-mode-hook 'esk-local-column-number-mode) -(add-hook 'prog-mode-hook 'esk-local-comment-auto-fill) -(add-hook 'prog-mode-hook 'esk-turn-on-hl-line-mode) -(add-hook 'prog-mode-hook 'esk-turn-on-save-place-mode) -(add-hook 'prog-mode-hook 'esk-pretty-lambdas) -(add-hook 'prog-mode-hook 'esk-add-watchwords) -(add-hook 'prog-mode-hook 'esk-turn-on-idle-highlight-mode) - -(defun esk-prog-mode-hook () - (run-hooks 'prog-mode-hook)) - -(defun esk-turn-off-tool-bar () - (tool-bar-mode -1)) - -(defun esk-untabify-buffer () - (interactive) - (untabify (point-min) (point-max))) - -(defun esk-indent-buffer () - (interactive) - (indent-region (point-min) (point-max))) - -(defun esk-cleanup-buffer () - "Perform a bunch of operations on the whitespace content of a buffer." - (interactive) - (esk-indent-buffer) - (esk-untabify-buffer) - (delete-trailing-whitespace)) - -;; Commands - -(defun esk-eval-and-replace () - "Replace the preceding sexp with its value." - (interactive) - (backward-kill-sexp) - (condition-case nil - (prin1 (eval (read (current-kill 0))) - (current-buffer)) - (error (message "Invalid expression") - (insert (current-kill 0))))) - -(defun esk-sudo-edit (&optional arg) - (interactive "p") - (if (or arg (not buffer-file-name)) - (find-file (concat "/sudo:root@localhost:" (ido-read-file-name "File: "))) - (find-alternate-file (concat "/sudo:root@localhost:" buffer-file-name)))) - -(defun esk-lorem () - "Insert a lorem ipsum." - (interactive) - (insert "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do " - "eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim" - "ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut " - "aliquip ex ea commodo consequat. Duis aute irure dolor in " - "reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla " - "pariatur. Excepteur sint occaecat cupidatat non proident, sunt in " - "culpa qui officia deserunt mollit anim id est laborum.")) - -(defun esk-suck-it (suckee) - "Insert a comment of appropriate length about what can suck it." - (interactive "MWhat can suck it? ") - (let ((prefix (concat ";; " suckee " can s")) - (postfix "ck it!") - (col (current-column))) - (insert prefix) - (dotimes (_ (- 80 col (length prefix) (length postfix))) (insert "u")) - (insert postfix))) - -(defun esk-insert-date () - "Insert a time-stamp according to locale's date and time format." - (interactive) - (insert (format-time-string "%c" (current-time)))) - -(defun esk-pairing-bot () - "If you can't pair program with a human, use this instead." - (interactive) - (message (if (y-or-n-p "Do you have a test for that? ") "Good." "Bad!"))) - -(defun esk-paredit-nonlisp () - "Turn on paredit mode for non-lisps." - (interactive) - (set (make-local-variable 'paredit-space-for-delimiter-predicates) - '((lambda (endp delimiter) nil))) - (paredit-mode 1)) - -;; A monkeypatch to cause annotate to ignore whitespace -(defun vc-git-annotate-command (file buf &optional rev) - (let ((name (file-relative-name file))) - (vc-git-command buf 0 name "blame" "-w" rev))) - -(provide 'starter-kit-defuns) -;;; starter-kit-defuns.el ends here diff --git a/elpa/starter-kit-2.0.3/starter-kit-misc.el b/elpa/starter-kit-2.0.3/starter-kit-misc.el deleted file mode 100644 index 077be72b..00000000 --- a/elpa/starter-kit-2.0.3/starter-kit-misc.el +++ /dev/null @@ -1,135 +0,0 @@ -;;; starter-kit-misc.el --- Saner defaults and goodies: miscellany -;; -;; Copyright (c) 2008-2010 Phil Hagelberg and contributors -;; -;; Author: Phil Hagelberg -;; URL: http://www.emacswiki.org/cgi-bin/wiki/StarterKit -;; Version: 2.0.2 -;; Keywords: convenience - -;; This file is not part of GNU Emacs. - -;;; Commentary: - -;; "Emacs outshines all other editing software in approximately the -;; same way that the noonday sun does the stars. It is not just bigger -;; and brighter; it simply makes everything else vanish." -;; -Neal Stephenson, "In the Beginning was the Command Line" - -;; This file contains setqs and things that aren't bindings or defuns. - -;;; License: - -;; This program is free software; you can redistribute it and/or -;; modify it under the terms of the GNU General Public License -;; as published by the Free Software Foundation; either version 3 -;; of the License, or (at your option) any later version. -;; -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. - -;;; Code: - -(when window-system - (setq frame-title-format '(buffer-file-name "%f" ("%b"))) - (tooltip-mode -1) - (mouse-wheel-mode t) - (blink-cursor-mode -1)) - -;; can't do it at launch or emacsclient won't always honor it -(add-hook 'before-make-frame-hook 'esk-turn-off-tool-bar) - -(setq visible-bell t - inhibit-startup-message t - color-theme-is-global t - sentence-end-double-space nil - shift-select-mode nil - mouse-yank-at-point t - uniquify-buffer-name-style 'forward - whitespace-style '(face trailing lines-tail tabs) - whitespace-line-column 80 - ediff-window-setup-function 'ediff-setup-windows-plain - oddmuse-directory "~/.emacs.d/oddmuse" - save-place-file "~/.emacs.d/places" - backup-directory-alist `(("." . ,(expand-file-name "~/.emacs.d/backups"))) - diff-switches "-u") - -(add-to-list 'safe-local-variable-values '(lexical-binding . t)) -(add-to-list 'safe-local-variable-values '(whitespace-line-column . 80)) - -;; Set this to whatever browser you use -;; (setq browse-url-browser-function 'browse-url-firefox) -;; (setq browse-url-browser-function 'browse-default-macosx-browser) -;; (setq browse-url-browser-function 'browse-default-windows-browser) -;; (setq browse-url-browser-function 'browse-default-kde) -;; (setq browse-url-browser-function 'browse-default-epiphany) -;; (setq browse-url-browser-function 'browse-default-w3m) -;; (setq browse-url-browser-function 'browse-url-generic -;; browse-url-generic-program "~/src/conkeror/conkeror") - -;; Highlight matching parentheses when the point is on them. -(show-paren-mode 1) - -;; ido-mode is like magic pixie dust! -(ido-mode t) -(ido-ubiquitous t) -(setq ido-enable-prefix nil - ido-enable-flex-matching t - ido-auto-merge-work-directories-length nil - ido-create-new-buffer 'always - ido-use-filename-at-point 'guess - ido-use-virtual-buffers t - ido-handle-duplicate-virtual-buffers 2 - ido-max-prospects 10) - -(set-default 'indent-tabs-mode nil) -(set-default 'indicate-empty-lines t) -(set-default 'imenu-auto-rescan t) - -(add-hook 'text-mode-hook 'turn-on-auto-fill) -(add-hook 'text-mode-hook 'turn-on-flyspell) - -(defalias 'yes-or-no-p 'y-or-n-p) -(defalias 'auto-tail-revert-mode 'tail-mode) - -(random t) ;; Seed the random-number generator - -;; Hippie expand: at times perhaps too hip -(dolist (f '(try-expand-line try-expand-list try-complete-file-name-partially)) - (delete f hippie-expand-try-functions-list)) - -;; Add this back in at the end of the list. -(add-to-list 'hippie-expand-try-functions-list 'try-complete-file-name-partially t) - -(eval-after-load 'grep - '(when (boundp 'grep-find-ignored-files) - (add-to-list 'grep-find-ignored-files "*.class"))) - -;; Cosmetics - -(eval-after-load 'diff-mode - '(progn - (set-face-foreground 'diff-added "green4") - (set-face-foreground 'diff-removed "red3"))) - -(eval-after-load 'magit - '(progn - (set-face-foreground 'magit-diff-add "green4") - (set-face-foreground 'magit-diff-del "red3"))) - -;; Get around the emacswiki spam protection -(eval-after-load 'oddmuse - (add-hook 'oddmuse-mode-hook - (lambda () - (unless (string-match "question" oddmuse-post) - (setq oddmuse-post (concat "uihnscuskc=1;" oddmuse-post)))))) - -(provide 'starter-kit-misc) -;;; starter-kit-misc.el ends here diff --git a/elpa/starter-kit-2.0.3/starter-kit-pkg.el b/elpa/starter-kit-2.0.3/starter-kit-pkg.el deleted file mode 100644 index 650f39a7..00000000 --- a/elpa/starter-kit-2.0.3/starter-kit-pkg.el +++ /dev/null @@ -1,4 +0,0 @@ -(define-package "starter-kit" "2.0.3" - "Saner defaults and goodies." - '((paredit "22") (idle-highlight-mode "1.1.1") (find-file-in-project "3.0") - (smex "1.1.1") (ido-ubiquitous "0.3") (magit "0.8.1"))) diff --git a/elpa/starter-kit-2.0.3/starter-kit.el b/elpa/starter-kit-2.0.3/starter-kit.el deleted file mode 100644 index 0098e50f..00000000 --- a/elpa/starter-kit-2.0.3/starter-kit.el +++ /dev/null @@ -1,66 +0,0 @@ -;;; starter-kit.el --- Saner defaults and goodies. -;; -;; Copyright (c) 2008-2011 Phil Hagelberg and contributors -;; -;; Author: Phil Hagelberg -;; URL: http://www.emacswiki.org/cgi-bin/wiki/StarterKit -;; Version: 2.0.2 -;; Keywords: convenience - -;; This file is not part of GNU Emacs. - -;;; Commentary: - -;; "Emacs outshines all other editing software in approximately the -;; same way that the noonday sun does the stars. It is not just bigger -;; and brighter; it simply makes everything else vanish." -;; -Neal Stephenson, "In the Beginning was the Command Line" - -;; This file just brings together other pieces of the starter kit plus -;; user- and host-specific configs. - -;;; License: - -;; This program is free software; you can redistribute it and/or -;; modify it under the terms of the GNU General Public License -;; as published by the Free Software Foundation; either version 3 -;; of the License, or (at your option) any later version. -;; -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. - -;;; Code: - -;;;###autoload -(progn - ;; Turn off mouse interface early in startup to avoid momentary display - (dolist (mode '(menu-bar-mode tool-bar-mode scroll-bar-mode)) - (when (fboundp mode) (funcall mode -1))) - - (mapc 'require '(uniquify starter-kit-defuns starter-kit-misc)) - - ;; You can keep system- or user-specific customizations here - (setq esk-system-config (concat user-emacs-directory system-name ".el") - esk-user-config (concat user-emacs-directory user-login-name ".el") - esk-user-dir (concat user-emacs-directory user-login-name)) - - (add-to-list 'load-path esk-user-dir) - - (setq smex-save-file (concat user-emacs-directory ".smex-items")) - (smex-initialize) - (global-set-key (kbd "M-x") 'smex) - - (when (file-exists-p esk-system-config) (load esk-system-config)) - (when (file-exists-p esk-user-config) (load esk-user-config)) - (when (file-exists-p esk-user-dir) - (mapc 'load (directory-files esk-user-dir nil "^[^#].*el$")))) - -(provide 'starter-kit) -;;; starter-kit.el ends here diff --git a/elpa/starter-kit-bindings-2.0.2/starter-kit-bindings-autoloads.el b/elpa/starter-kit-bindings-2.0.2/starter-kit-bindings-autoloads.el deleted file mode 100644 index e28f5c47..00000000 --- a/elpa/starter-kit-bindings-2.0.2/starter-kit-bindings-autoloads.el +++ /dev/null @@ -1,80 +0,0 @@ -;;; starter-kit-bindings-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads nil "starter-kit-bindings" "starter-kit-bindings.el" -;;;;;; (20815 22619 0 0)) -;;; Generated autoloads from starter-kit-bindings.el - -(global-set-key (kbd "C-c f") 'find-file-in-project) - -(global-set-key (kbd "C-M-h") 'backward-kill-word) - -(global-set-key (kbd "M-/") 'hippie-expand) - -(global-set-key (kbd "C-c n") 'esk-cleanup-buffer) - -(global-set-key (kbd "C-") 'menu-bar-mode) - -(define-key global-map (kbd "C-+") 'text-scale-increase) - -(define-key global-map (kbd "C--") 'text-scale-decrease) - -(global-set-key (kbd "C-s") 'isearch-forward-regexp) - -(global-set-key (kbd "") 'isearch-backward-regexp) - -(global-set-key (kbd "C-M-s") 'isearch-forward) - -(global-set-key (kbd "C-M-r") 'isearch-backward) - -(global-set-key (kbd "C-x C-i") 'imenu) - -(global-set-key (kbd "C-x M-f") 'ido-find-file-other-window) - -(global-set-key (kbd "C-c y") 'bury-buffer) - -(global-set-key (kbd "C-c r") 'revert-buffer) - -(windmove-default-keybindings) - -(global-set-key (kbd "C-x O") (lambda nil (interactive) (other-window -1))) - -(global-set-key (kbd "C-x C-o") (lambda nil (interactive) (other-window 2))) - -(global-set-key (kbd "C-x m") 'eshell) - -(global-set-key (kbd "C-x M") (lambda nil (interactive) (eshell t))) - -(global-set-key (kbd "C-x C-m") 'shell) - -(global-set-key (kbd "C-c x") 'execute-extended-command) - -(global-set-key (kbd "C-h a") 'apropos) - -(global-set-key (kbd "C-c e") 'esk-eval-and-replace) - -(global-set-key (kbd "C-c q") 'join-line) - -(global-set-key (kbd "C-c g") 'magit-status) - -(eval-after-load 'vc (define-key vc-prefix-map "i" '(lambda nil (interactive) (if (not (eq 'Git (vc-backend buffer-file-name))) (vc-register) (shell-command (format "git add %s" buffer-file-name)) (message "Staged changes."))))) - -(define-key isearch-mode-map (kbd "C-o") (lambda nil (interactive) (let ((case-fold-search isearch-case-fold-search)) (occur (if isearch-regexp isearch-string (regexp-quote isearch-string)))))) - -;;;*** - -;;;### (autoloads nil nil ("starter-kit-bindings-pkg.el") (20815 -;;;;;; 22619 431347 0)) - -;;;*** - -(provide 'starter-kit-bindings-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; starter-kit-bindings-autoloads.el ends here diff --git a/elpa/starter-kit-bindings-2.0.2/starter-kit-bindings-pkg.el b/elpa/starter-kit-bindings-2.0.2/starter-kit-bindings-pkg.el deleted file mode 100644 index 25146deb..00000000 --- a/elpa/starter-kit-bindings-2.0.2/starter-kit-bindings-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "starter-kit-bindings" "2.0.2" "Saner defaults and goodies: bindings" (quote ((starter-kit "2.0.2")))) diff --git a/elpa/starter-kit-bindings-2.0.2/starter-kit-bindings.el b/elpa/starter-kit-bindings-2.0.2/starter-kit-bindings.el deleted file mode 100644 index 23834568..00000000 --- a/elpa/starter-kit-bindings-2.0.2/starter-kit-bindings.el +++ /dev/null @@ -1,121 +0,0 @@ -;;; starter-kit-bindings.el --- Saner defaults and goodies: bindings -;; -;; Copyright (c) 2008-2010 Phil Hagelberg and contributors -;; -;; Author: Phil Hagelberg -;; URL: http://www.emacswiki.org/cgi-bin/wiki/StarterKit -;; Version: 2.0.2 -;; Keywords: convenience -;; Package-Requires: ((starter-kit "2.0.2")) - -;; This file is not part of GNU Emacs. - -;;; Commentary: - -;; "Emacs outshines all other editing software in approximately the -;; same way that the noonday sun does the stars. It is not just bigger -;; and brighter; it simply makes everything else vanish." -;; -Neal Stephenson, "In the Beginning was the Command Line" - -;; This file just contains key bindings. - -;;; License: - -;; This program is free software; you can redistribute it and/or -;; modify it under the terms of the GNU General Public License -;; as published by the Free Software Foundation; either version 3 -;; of the License, or (at your option) any later version. -;; -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. - -;;; Code: - -;;;###autoload -(progn - ;; It's all about the project. - (global-set-key (kbd "C-c f") 'find-file-in-project) - - ;; You know, like Readline. - (global-set-key (kbd "C-M-h") 'backward-kill-word) - - ;; Completion that uses many different methods to find options. - (global-set-key (kbd "M-/") 'hippie-expand) - - ;; Perform general cleanup. - (global-set-key (kbd "C-c n") 'esk-cleanup-buffer) - - ;; Turn on the menu bar for exploring new modes - (global-set-key (kbd "C-") 'menu-bar-mode) - - ;; Font size - (define-key global-map (kbd "C-+") 'text-scale-increase) - (define-key global-map (kbd "C--") 'text-scale-decrease) - - ;; Use regex searches by default. - (global-set-key (kbd "C-s") 'isearch-forward-regexp) - (global-set-key (kbd "\C-r") 'isearch-backward-regexp) - (global-set-key (kbd "C-M-s") 'isearch-forward) - (global-set-key (kbd "C-M-r") 'isearch-backward) - - ;; Jump to a definition in the current file. (Protip: this is awesome.) - (global-set-key (kbd "C-x C-i") 'imenu) - - ;; File finding - (global-set-key (kbd "C-x M-f") 'ido-find-file-other-window) - (global-set-key (kbd "C-c y") 'bury-buffer) - (global-set-key (kbd "C-c r") 'revert-buffer) - - ;; Window switching. (C-x o goes to the next window) - (windmove-default-keybindings) ;; Shift+direction - (global-set-key (kbd "C-x O") (lambda () (interactive) (other-window -1))) ;; back one - (global-set-key (kbd "C-x C-o") (lambda () (interactive) (other-window 2))) ;; forward two - - ;; Start eshell or switch to it if it's active. - (global-set-key (kbd "C-x m") 'eshell) - - ;; Start a new eshell even if one is active. - (global-set-key (kbd "C-x M") (lambda () (interactive) (eshell t))) - - ;; Start a regular shell if you prefer that. - (global-set-key (kbd "C-x C-m") 'shell) - - ;; If you want to be able to M-x without meta (phones, etc) - (global-set-key (kbd "C-c x") 'execute-extended-command) - - ;; Help should search more than just commands - (global-set-key (kbd "C-h a") 'apropos) - - ;; Should be able to eval-and-replace anywhere. - (global-set-key (kbd "C-c e") 'esk-eval-and-replace) - - ;; M-S-6 is awkward - (global-set-key (kbd "C-c q") 'join-line) - - ;; So good! - (global-set-key (kbd "C-c g") 'magit-status) - - ;; This is a little hacky since VC doesn't support git add internally - (eval-after-load 'vc - (define-key vc-prefix-map "i" - '(lambda () (interactive) - (if (not (eq 'Git (vc-backend buffer-file-name))) - (vc-register) - (shell-command (format "git add %s" buffer-file-name)) - (message "Staged changes."))))) - - ;; Activate occur easily inside isearch - (define-key isearch-mode-map (kbd "C-o") - (lambda () (interactive) - (let ((case-fold-search isearch-case-fold-search)) - (occur (if isearch-regexp isearch-string (regexp-quote isearch-string))))))) - -(provide 'starter-kit-bindings) -;;; starter-kit-bindings.el ends here diff --git a/elpa/starter-kit-ruby-2.0.3/starter-kit-ruby-autoloads.el b/elpa/starter-kit-ruby-2.0.3/starter-kit-ruby-autoloads.el deleted file mode 100644 index 19932f18..00000000 --- a/elpa/starter-kit-ruby-2.0.3/starter-kit-ruby-autoloads.el +++ /dev/null @@ -1,65 +0,0 @@ -;;; starter-kit-ruby-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads nil "starter-kit-ruby" "starter-kit-ruby.el" (20815 -;;;;;; 21578 0 0)) -;;; Generated autoloads from starter-kit-ruby.el - -(eval-after-load 'ruby-mode '(progn (ignore-errors (require 'ruby-compilation)) (setq ruby-use-encoding-map nil) (add-hook 'ruby-mode-hook 'inf-ruby-keys) (define-key ruby-mode-map (kbd "RET") 'reindent-then-newline-and-indent) (define-key ruby-mode-map (kbd "C-M-h") 'backward-kill-word))) - -(global-set-key (kbd "C-h S-r") 'ri) - -(add-to-list 'auto-mode-alist '("\\.rake$" . ruby-mode)) - -(add-to-list 'auto-mode-alist '("\\.thor$" . ruby-mode)) - -(add-to-list 'auto-mode-alist '("\\.gemspec$" . ruby-mode)) - -(add-to-list 'auto-mode-alist '("\\.ru$" . ruby-mode)) - -(add-to-list 'auto-mode-alist '("Rakefile$" . ruby-mode)) - -(add-to-list 'auto-mode-alist '("Thorfile$" . ruby-mode)) - -(add-to-list 'auto-mode-alist '("Gemfile$" . ruby-mode)) - -(add-to-list 'auto-mode-alist '("Capfile$" . ruby-mode)) - -(add-to-list 'auto-mode-alist '("Vagrantfile$" . ruby-mode)) - -(add-to-list 'completion-ignored-extensions ".rbc") - -(add-to-list 'completion-ignored-extensions ".rbo") - -(defun pcomplete/rake nil "\ -Completion rules for the `ssh' command." (pcomplete-here (pcmpl-rake-tasks))) - -(defun pcmpl-rake-tasks nil "\ -Return a list of all the rake tasks defined in the current -projects. I know this is a hack to put all the logic in the -exec-to-string command, but it works and seems fast" (delq nil (mapcar (quote (lambda (line) (if (string-match "rake \\([^ ]+\\)" line) (match-string 1 line)))) (split-string (shell-command-to-string "rake -T") "[ -]")))) - -(defun rake (task) (interactive (list (completing-read "Rake (default: default): " (pcmpl-rake-tasks)))) (shell-command-to-string (concat "rake " (if (= 0 (length task)) "default" task)))) - -(eval-after-load 'ruby-compilation '(progn (defadvice ruby-do-run-w/compilation (before kill-buffer (name cmdlist)) (let ((comp-buffer-name (format "*%s*" name))) (when (get-buffer comp-buffer-name) (with-current-buffer comp-buffer-name (delete-region (point-min) (point-max)))))) (ad-activate 'ruby-do-run-w/compilation))) - -(setq rinari-major-modes (list 'mumamo-after-change-major-mode-hook 'dired-mode-hook 'ruby-mode-hook 'css-mode-hook 'yaml-mode-hook 'javascript-mode-hook)) - -;;;*** - -;;;### (autoloads nil nil ("starter-kit-ruby-pkg.el") (20815 21578 -;;;;;; 150254 0)) - -;;;*** - -(provide 'starter-kit-ruby-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; starter-kit-ruby-autoloads.el ends here diff --git a/elpa/starter-kit-ruby-2.0.3/starter-kit-ruby-pkg.el b/elpa/starter-kit-ruby-2.0.3/starter-kit-ruby-pkg.el deleted file mode 100644 index af4ad9ff..00000000 --- a/elpa/starter-kit-ruby-2.0.3/starter-kit-ruby-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "starter-kit-ruby" "2.0.3" "Saner defaults and goodies for Ruby" (quote ((inf-ruby "2.2.3") (starter-kit "2.0.1")))) diff --git a/elpa/starter-kit-ruby-2.0.3/starter-kit-ruby.el b/elpa/starter-kit-ruby-2.0.3/starter-kit-ruby.el deleted file mode 100644 index 63c71d4b..00000000 --- a/elpa/starter-kit-ruby-2.0.3/starter-kit-ruby.el +++ /dev/null @@ -1,106 +0,0 @@ -;;; starter-kit-ruby.el --- Saner defaults and goodies for Ruby -;; -;; Copyright (c) 2008-2010 Phil Hagelberg and contributors -;; -;; Author: Phil Hagelberg -;; URL: http://www.emacswiki.org/cgi-bin/wiki/StarterKit -;; Version: 2.0.3 -;; Keywords: convenience -;; Package-Requires: ((inf-ruby "2.2.3") (starter-kit "2.0.1")) -;; This file is not part of GNU Emacs. - -;;; Commentary: - -;; "Emacs outshines all other editing software in approximately the -;; same way that the noonday sun does the stars. It is not just bigger -;; and brighter; it simply makes everything else vanish." -;; -Neal Stephenson, "In the Beginning was the Command Line" - -;; This file contains tweaks specific to Ruby. - -;; This file is in need of a maintainer. - -;;; License: - -;; This program is free software; you can redistribute it and/or -;; modify it under the terms of the GNU General Public License -;; as published by the Free Software Foundation; either version 3 -;; of the License, or (at your option) any later version. -;; -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. - -;;; Code: - -;;;###autoload -(progn - (eval-after-load 'ruby-mode - '(progn - ;; work around possible elpa bug - (ignore-errors (require 'ruby-compilation)) - (setq ruby-use-encoding-map nil) - (add-hook 'ruby-mode-hook 'inf-ruby-keys) - (define-key ruby-mode-map (kbd "RET") 'reindent-then-newline-and-indent) - (define-key ruby-mode-map (kbd "C-M-h") 'backward-kill-word))) - - (global-set-key (kbd "C-h S-r") 'ri) - - ;; Rake files are ruby, too, as are gemspecs, rackup files, etc. - (add-to-list 'auto-mode-alist '("\\.rake$" . ruby-mode)) - (add-to-list 'auto-mode-alist '("\\.thor$" . ruby-mode)) - (add-to-list 'auto-mode-alist '("\\.gemspec$" . ruby-mode)) - (add-to-list 'auto-mode-alist '("\\.ru$" . ruby-mode)) - (add-to-list 'auto-mode-alist '("Rakefile$" . ruby-mode)) - (add-to-list 'auto-mode-alist '("Thorfile$" . ruby-mode)) - (add-to-list 'auto-mode-alist '("Gemfile$" . ruby-mode)) - (add-to-list 'auto-mode-alist '("Capfile$" . ruby-mode)) - (add-to-list 'auto-mode-alist '("Vagrantfile$" . ruby-mode)) - - ;; We never want to edit Rubinius bytecode or MacRuby binaries - (add-to-list 'completion-ignored-extensions ".rbc") - (add-to-list 'completion-ignored-extensions ".rbo") - -;;; Rake - - (defun pcomplete/rake () - "Completion rules for the `ssh' command." - (pcomplete-here (pcmpl-rake-tasks))) - - (defun pcmpl-rake-tasks () - "Return a list of all the rake tasks defined in the current -projects. I know this is a hack to put all the logic in the -exec-to-string command, but it works and seems fast" - (delq nil (mapcar '(lambda(line) - (if (string-match "rake \\([^ ]+\\)" line) (match-string 1 line))) - (split-string (shell-command-to-string "rake -T") "[\n]")))) - - (defun rake (task) - (interactive (list (completing-read "Rake (default: default): " - (pcmpl-rake-tasks)))) - (shell-command-to-string (concat "rake " (if (= 0 (length task)) "default" task)))) - - - ;; Clear the compilation buffer between test runs. - (eval-after-load 'ruby-compilation - '(progn - (defadvice ruby-do-run-w/compilation (before kill-buffer (name cmdlist)) - (let ((comp-buffer-name (format "*%s*" name))) - (when (get-buffer comp-buffer-name) - (with-current-buffer comp-buffer-name - (delete-region (point-min) (point-max)))))) - (ad-activate 'ruby-do-run-w/compilation))) - - ;; Rinari (Minor Mode for Ruby On Rails) - (setq rinari-major-modes - (list 'mumamo-after-change-major-mode-hook 'dired-mode-hook 'ruby-mode-hook - 'css-mode-hook 'yaml-mode-hook 'javascript-mode-hook))) - -(provide 'starter-kit-ruby) -;;; starter-kit-ruby.el ends here diff --git a/elpa/undo-tree-0.6.3/undo-tree-autoloads.el b/elpa/undo-tree-0.6.3/undo-tree-autoloads.el deleted file mode 100644 index 76a800bc..00000000 --- a/elpa/undo-tree-0.6.3/undo-tree-autoloads.el +++ /dev/null @@ -1,64 +0,0 @@ -;;; undo-tree-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - - -;;;### (autoloads (global-undo-tree-mode undo-tree-mode) "undo-tree" -;;;;;; "undo-tree.el" (20836 47447)) -;;; Generated autoloads from undo-tree.el - -(autoload 'undo-tree-mode "undo-tree" "\ -Toggle undo-tree mode. -With no argument, this command toggles the mode. -A positive prefix argument turns the mode on. -A negative prefix argument turns it off. - -Undo-tree-mode replaces Emacs' standard undo feature with a more -powerful yet easier to use version, that treats the undo history -as what it is: a tree. - -The following keys are available in `undo-tree-mode': - - \\{undo-tree-map} - -Within the undo-tree visualizer, the following keys are available: - - \\{undo-tree-visualizer-map} - -\(fn &optional ARG)" t nil) - -(defvar global-undo-tree-mode nil "\ -Non-nil if Global-Undo-Tree mode is enabled. -See the command `global-undo-tree-mode' for a description of this minor mode. -Setting this variable directly does not take effect; -either customize it (see the info node `Easy Customization') -or call the function `global-undo-tree-mode'.") - -(custom-autoload 'global-undo-tree-mode "undo-tree" nil) - -(autoload 'global-undo-tree-mode "undo-tree" "\ -Toggle Undo-Tree mode in all buffers. -With prefix ARG, enable Global-Undo-Tree mode if ARG is positive; -otherwise, disable it. If called from Lisp, enable the mode if -ARG is omitted or nil. - -Undo-Tree mode is enabled in all buffers where -`turn-on-undo-tree-mode' would do it. -See `undo-tree-mode' for more information on Undo-Tree mode. - -\(fn &optional ARG)" t nil) - -;;;*** - -;;;### (autoloads nil nil ("undo-tree-pkg.el") (20836 47447 427512)) - -;;;*** - -(provide 'undo-tree-autoloads) -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; undo-tree-autoloads.el ends here diff --git a/elpa/undo-tree-0.6.3/undo-tree-pkg.el b/elpa/undo-tree-0.6.3/undo-tree-pkg.el deleted file mode 100644 index 1a273541..00000000 --- a/elpa/undo-tree-0.6.3/undo-tree-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "undo-tree" "0.6.3" "Treat undo history as a tree" (quote nil)) diff --git a/elpa/undo-tree-0.6.3/undo-tree.el b/elpa/undo-tree-0.6.3/undo-tree.el deleted file mode 100644 index d12c93e6..00000000 --- a/elpa/undo-tree-0.6.3/undo-tree.el +++ /dev/null @@ -1,4287 +0,0 @@ -;;; undo-tree.el --- Treat undo history as a tree -*- lexical-binding: t; -*- - -;; Copyright (C) 2009-2012 Free Software Foundation, Inc - -;; Author: Toby Cubitt -;; Version: 0.6.3 -;; Keywords: convenience, files, undo, redo, history, tree -;; URL: http://www.dr-qubit.org/emacs.php -;; Repository: http://www.dr-qubit.org/git/undo-tree.git - -;; This file is part of Emacs. -;; -;; This file is free software: you can redistribute it and/or modify it under -;; the terms of the GNU General Public License as published by the Free -;; Software Foundation, either version 3 of the License, or (at your option) -;; any later version. -;; -;; This program is distributed in the hope that it will be useful, but WITHOUT -;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -;; more details. -;; -;; You should have received a copy of the GNU General Public License along -;; with GNU Emacs. If not, see . - - -;;; Commentary: -;; -;; Emacs has a powerful undo system. Unlike the standard undo/redo system in -;; most software, it allows you to recover *any* past state of a buffer -;; (whereas the standard undo/redo system can lose past states as soon as you -;; redo). However, this power comes at a price: many people find Emacs' undo -;; system confusing and difficult to use, spawning a number of packages that -;; replace it with the less powerful but more intuitive undo/redo system. -;; -;; Both the loss of data with standard undo/redo, and the confusion of Emacs' -;; undo, stem from trying to treat undo history as a linear sequence of -;; changes. It's not. The `undo-tree-mode' provided by this package replaces -;; Emacs' undo system with a system that treats undo history as what it is: a -;; branching tree of changes. This simple idea allows the more intuitive -;; behaviour of the standard undo/redo system to be combined with the power of -;; never losing any history. An added side bonus is that undo history can in -;; some cases be stored more efficiently, allowing more changes to accumulate -;; before Emacs starts discarding history. -;; -;; The only downside to this more advanced yet simpler undo system is that it -;; was inspired by Vim. But, after all, most successful religions steal the -;; best ideas from their competitors! -;; -;; -;; Installation -;; ============ -;; -;; This package has only been tested with Emacs versions 24 and CVS. It should -;; work in Emacs versions 22 and 23 too, but will not work without -;; modifications in earlier versions of Emacs. -;; -;; To install `undo-tree-mode', make sure this file is saved in a directory in -;; your `load-path', and add the line: -;; -;; (require 'undo-tree) -;; -;; to your .emacs file. Byte-compiling undo-tree.el is recommended (e.g. using -;; "M-x byte-compile-file" from within emacs). -;; -;; If you want to replace the standard Emacs' undo system with the -;; `undo-tree-mode' system in all buffers, you can enable it globally by -;; adding: -;; -;; (global-undo-tree-mode) -;; -;; to your .emacs file. -;; -;; -;; Quick-Start -;; =========== -;; -;; If you're the kind of person who likes to jump in the car and drive, -;; without bothering to first figure out whether the button on the left dips -;; the headlights or operates the ejector seat (after all, you'll soon figure -;; it out when you push it), then here's the minimum you need to know: -;; -;; `undo-tree-mode' and `global-undo-tree-mode' -;; Enable undo-tree mode (either in the current buffer or globally). -;; -;; C-_ C-/ (`undo-tree-undo') -;; Undo changes. -;; -;; M-_ C-? (`undo-tree-redo') -;; Redo changes. -;; -;; `undo-tree-switch-branch' -;; Switch undo-tree branch. -;; (What does this mean? Better press the button and see!) -;; -;; C-x u (`undo-tree-visualize') -;; Visualize the undo tree. -;; (Better try pressing this button too!) -;; -;; C-x r u (`undo-tree-save-state-to-register') -;; Save current buffer state to register. -;; -;; C-x r U (`undo-tree-restore-state-from-register') -;; Restore buffer state from register. -;; -;; -;; -;; In the undo-tree visualizer: -;; -;; p C-p (`undo-tree-visualize-undo') -;; Undo changes. -;; -;; n C-n (`undo-tree-visualize-redo') -;; Redo changes. -;; -;; b C-b (`undo-tree-visualize-switch-branch-left') -;; Switch to previous undo-tree branch. -;; -;; f C-f (`undo-tree-visualize-switch-branch-right') -;; Switch to next undo-tree branch. -;; -;; C- M-{ (`undo-tree-visualize-undo-to-x') -;; Undo changes up to last branch point. -;; -;; C- M-} (`undo-tree-visualize-redo-to-x') -;; Redo changes down to next branch point. -;; -;; n C-n (`undo-tree-visualize-redo') -;; Redo changes. -;; -;; (`undo-tree-visualizer-mouse-set') -;; Set state to node at mouse click. -;; -;; t (`undo-tree-visualizer-toggle-timestamps') -;; Toggle display of time-stamps. -;; -;; d (`undo-tree-visualizer-toggle-diff') -;; Toggle diff display. -;; -;; s (`undo-tree-visualizer-selection-mode') -;; Toggle keyboard selection mode. -;; -;; q (`undo-tree-visualizer-quit') -;; Quit undo-tree-visualizer. -;; -;; C-q (`undo-tree-visualizer-abort') -;; Abort undo-tree-visualizer. -;; -;; , < -;; Scroll left. -;; -;; . > -;; Scroll right. -;; -;; M-v -;; Scroll up. -;; -;; C-v -;; Scroll down. -;; -;; -;; -;; In visualizer selection mode: -;; -;; p C-p (`undo-tree-visualizer-select-previous') -;; Select previous node. -;; -;; n C-n (`undo-tree-visualizer-select-next') -;; Select next node. -;; -;; b C-b (`undo-tree-visualizer-select-left') -;; Select left sibling node. -;; -;; f C-f (`undo-tree-visualizer-select-right') -;; Select right sibling node. -;; -;; M-v -;; Select node 10 above. -;; -;; C-v -;; Select node 10 below. -;; -;; (`undo-tree-visualizer-set') -;; Set state to selected node and exit selection mode. -;; -;; s (`undo-tree-visualizer-mode') -;; Exit selection mode. -;; -;; t (`undo-tree-visualizer-toggle-timestamps') -;; Toggle display of time-stamps. -;; -;; d (`undo-tree-visualizer-toggle-diff') -;; Toggle diff display. -;; -;; q (`undo-tree-visualizer-quit') -;; Quit undo-tree-visualizer. -;; -;; C-q (`undo-tree-visualizer-abort') -;; Abort undo-tree-visualizer. -;; -;; , < -;; Scroll left. -;; -;; . > -;; Scroll right. -;; -;; -;; -;; Persistent undo history: -;; -;; Note: Requires a recent development version of Emacs checked out out from -;; the Emacs bzr repository. All stable versions of Emacs currently -;; break this feature. -;; -;; `undo-tree-auto-save-history' (variable) -;; automatically save and restore undo-tree history along with buffer -;; (disabled by default) -;; -;; `undo-tree-save-history' (command) -;; manually save undo history to file -;; -;; `undo-tree-load-history' (command) -;; manually load undo history from file -;; -;; -;; -;; Compressing undo history: -;; -;; Undo history files cannot grow beyond the maximum undo tree size, which -;; is limited by `undo-limit', `undo-strong-limit' and -;; `undo-outer-limit'. Nevertheless, undo history files can grow quite -;; large. If you want to automatically compress undo history, add the -;; following advice to your .emacs file (replacing ".gz" with the filename -;; extension of your favourite compression algorithm): -;; -;; (defadvice undo-tree-make-history-save-file-name -;; (after undo-tree activate) -;; (setq concat ad-return-value ".gz")) -;; -;; -;; -;; -;; Undo Systems -;; ============ -;; -;; To understand the different undo systems, it's easiest to consider an -;; example. Imagine you make a few edits in a buffer. As you edit, you -;; accumulate a history of changes, which we might visualize as a string of -;; past buffer states, growing downwards: -;; -;; o (initial buffer state) -;; | -;; | -;; o (first edit) -;; | -;; | -;; o (second edit) -;; | -;; | -;; x (current buffer state) -;; -;; -;; Now imagine that you undo the last two changes. We can visualize this as -;; rewinding the current state back two steps: -;; -;; o (initial buffer state) -;; | -;; | -;; x (current buffer state) -;; | -;; | -;; o -;; | -;; | -;; o -;; -;; -;; However, this isn't a good representation of what Emacs' undo system -;; does. Instead, it treats the undos as *new* changes to the buffer, and adds -;; them to the history: -;; -;; o (initial buffer state) -;; | -;; | -;; o (first edit) -;; | -;; | -;; o (second edit) -;; | -;; | -;; x (buffer state before undo) -;; | -;; | -;; o (first undo) -;; | -;; | -;; x (second undo) -;; -;; -;; Actually, since the buffer returns to a previous state after an undo, -;; perhaps a better way to visualize it is to imagine the string of changes -;; turning back on itself: -;; -;; (initial buffer state) o -;; | -;; | -;; (first edit) o x (second undo) -;; | | -;; | | -;; (second edit) o o (first undo) -;; | / -;; |/ -;; o (buffer state before undo) -;; -;; Treating undos as new changes might seem a strange thing to do. But the -;; advantage becomes clear as soon as we imagine what happens when you edit -;; the buffer again. Since you've undone a couple of changes, new edits will -;; branch off from the buffer state that you've rewound to. Conceptually, it -;; looks like this: -;; -;; o (initial buffer state) -;; | -;; | -;; o -;; |\ -;; | \ -;; o x (new edit) -;; | -;; | -;; o -;; -;; The standard undo/redo system only lets you go backwards and forwards -;; linearly. So as soon as you make that new edit, it discards the old -;; branch. Emacs' undo just keeps adding changes to the end of the string. So -;; the undo history in the two systems now looks like this: -;; -;; Undo/Redo: Emacs' undo -;; -;; o o -;; | | -;; | | -;; o o o -;; .\ | |\ -;; . \ | | \ -;; . x (new edit) o o | -;; (discarded . | / | -;; branch) . |/ | -;; . o | -;; | -;; | -;; x (new edit) -;; -;; Now, what if you change your mind about those undos, and decide you did -;; like those other changes you'd made after all? With the standard undo/redo -;; system, you're lost. There's no way to recover them, because that branch -;; was discarded when you made the new edit. -;; -;; However, in Emacs' undo system, those old buffer states are still there in -;; the undo history. You just have to rewind back through the new edit, and -;; back through the changes made by the undos, until you reach them. Of -;; course, since Emacs treats undos (even undos of undos!) as new changes, -;; you're really weaving backwards and forwards through the history, all the -;; time adding new changes to the end of the string as you go: -;; -;; o -;; | -;; | -;; o o o (undo new edit) -;; | |\ |\ -;; | | \ | \ -;; o o | | o (undo the undo) -;; | / | | | -;; |/ | | | -;; (trying to get o | | x (undo the undo) -;; to this state) | / -;; |/ -;; o -;; -;; So far, this is still reasonably intuitive to use. It doesn't behave so -;; differently to standard undo/redo, except that by going back far enough you -;; can access changes that would be lost in standard undo/redo. -;; -;; However, imagine that after undoing as just described, you decide you -;; actually want to rewind right back to the initial state. If you're lucky, -;; and haven't invoked any command since the last undo, you can just keep on -;; undoing until you get back to the start: -;; -;; (trying to get o x (got there!) -;; to this state) | | -;; | | -;; o o o o (keep undoing) -;; | |\ |\ | -;; | | \ | \ | -;; o o | | o o (keep undoing) -;; | / | | | / -;; |/ | | |/ -;; (already undid o | | o (got this far) -;; to this state) | / -;; |/ -;; o -;; -;; But if you're unlucky, and you happen to have moved the point (say) after -;; getting to the state labelled "got this far", then you've "broken the undo -;; chain". Hold on to something solid, because things are about to get -;; hairy. If you try to undo now, Emacs thinks you're trying to undo the -;; undos! So to get back to the initial state you now have to rewind through -;; *all* the changes, including the undos you just did: -;; -;; (trying to get o x (finally got there!) -;; to this state) | | -;; | | -;; o o o o o o -;; | |\ |\ |\ |\ | -;; | | \ | \ | \ | \ | -;; o o | | o o o | o o -;; | / | | | / | | | / -;; |/ | | |/ | | |/ -;; (already undid o | | o<. | | o -;; to this state) | / : | / -;; |/ : |/ -;; o : o -;; : -;; (got this far, but -;; broke the undo chain) -;; -;; Confused? -;; -;; In practice you can just hold down the undo key until you reach the buffer -;; state that you want. But whatever you do, don't move around in the buffer -;; to *check* that you've got back to where you want! Because you'll break the -;; undo chain, and then you'll have to traverse the entire string of undos -;; again, just to get back to the point at which you broke the -;; chain. Undo-in-region and commands such as `undo-only' help to make using -;; Emacs' undo a little easier, but nonetheless it remains confusing for many -;; people. -;; -;; -;; So what does `undo-tree-mode' do? Remember the diagram we drew to represent -;; the history we've been discussing (make a few edits, undo a couple of them, -;; and edit again)? The diagram that conceptually represented our undo -;; history, before we started discussing specific undo systems? It looked like -;; this: -;; -;; o (initial buffer state) -;; | -;; | -;; o -;; |\ -;; | \ -;; o x (current state) -;; | -;; | -;; o -;; -;; Well, that's *exactly* what the undo history looks like to -;; `undo-tree-mode'. It doesn't discard the old branch (as standard undo/redo -;; does), nor does it treat undos as new changes to be added to the end of a -;; linear string of buffer states (as Emacs' undo does). It just keeps track -;; of the tree of branching changes that make up the entire undo history. -;; -;; If you undo from this point, you'll rewind back up the tree to the previous -;; state: -;; -;; o -;; | -;; | -;; x (undo) -;; |\ -;; | \ -;; o o -;; | -;; | -;; o -;; -;; If you were to undo again, you'd rewind back to the initial state. If on -;; the other hand you redo the change, you'll end up back at the bottom of the -;; most recent branch: -;; -;; o (undo takes you here) -;; | -;; | -;; o (start here) -;; |\ -;; | \ -;; o x (redo takes you here) -;; | -;; | -;; o -;; -;; So far, this is just like the standard undo/redo system. But what if you -;; want to return to a buffer state located on a previous branch of the -;; history? Since `undo-tree-mode' keeps the entire history, you simply need -;; to tell it to switch to a different branch, and then redo the changes you -;; want: -;; -;; o -;; | -;; | -;; o (start here, but switch -;; |\ to the other branch) -;; | \ -;; (redo) o o -;; | -;; | -;; (redo) x -;; -;; Now you're on the other branch, if you undo and redo changes you'll stay on -;; that branch, moving up and down through the buffer states located on that -;; branch. Until you decide to switch branches again, of course. -;; -;; Real undo trees might have multiple branches and sub-branches: -;; -;; o -;; ____|______ -;; / \ -;; o o -;; ____|__ __| -;; / | \ / \ -;; o o o o x -;; | | -;; / \ / \ -;; o o o o -;; -;; Trying to imagine what Emacs' undo would do as you move about such a tree -;; will likely frazzle your brain circuits! But in `undo-tree-mode', you're -;; just moving around this undo history tree. Most of the time, you'll -;; probably only need to stay on the most recent branch, in which case it -;; behaves like standard undo/redo, and is just as simple to understand. But -;; if you ever need to recover a buffer state on a different branch, the -;; possibility of switching between branches and accessing the full undo -;; history is still there. -;; -;; -;; -;; The Undo-Tree Visualizer -;; ======================== -;; -;; Actually, it gets better. You don't have to imagine all these tree -;; diagrams, because `undo-tree-mode' includes an undo-tree visualizer which -;; draws them for you! In fact, it draws even better diagrams: it highlights -;; the node representing the current buffer state, it highlights the current -;; branch, and you can toggle the display of time-stamps (by hitting "t") and -;; a diff of the undo changes (by hitting "d"). (There's one other tiny -;; difference: the visualizer puts the most recent branch on the left rather -;; than the right.) -;; -;; Bring up the undo tree visualizer whenever you want by hitting "C-x u". -;; -;; In the visualizer, the usual keys for moving up and down a buffer instead -;; move up and down the undo history tree (e.g. the up and down arrow keys, or -;; "C-n" and "C-p"). The state of the "parent" buffer (the buffer whose undo -;; history you are visualizing) is updated as you move around the undo tree in -;; the visualizer. If you reach a branch point in the visualizer, the usual -;; keys for moving forward and backward in a buffer instead switch branch -;; (e.g. the left and right arrow keys, or "C-f" and "C-b"). -;; -;; Clicking with the mouse on any node in the visualizer will take you -;; directly to that node, resetting the state of the parent buffer to the -;; state represented by that node. -;; -;; You can also select nodes directly using the keyboard, by hitting "s" to -;; toggle selection mode. The usual motion keys now allow you to move around -;; the tree without changing the parent buffer. Hitting will reset the -;; state of the parent buffer to the state represented by the currently -;; selected node. -;; -;; It can be useful to see how long ago the parent buffer was in the state -;; represented by a particular node in the visualizer. Hitting "t" in the -;; visualizer toggles the display of time-stamps for all the nodes. (Note -;; that, because of the way `undo-tree-mode' works, these time-stamps may be -;; somewhat later than the true times, especially if it's been a long time -;; since you last undid any changes.) -;; -;; To get some idea of what changes are represented by a given node in the -;; tree, it can be useful to see a diff of the changes. Hit "d" in the -;; visualizer to toggle a diff display. This normally displays a diff between -;; the current state and the previous one, i.e. it shows you the changes that -;; will be applied if you undo (move up the tree). However, the diff display -;; really comes into its own in the visualizer's selection mode (see above), -;; where it instead shows a diff between the current state and the currently -;; selected state, i.e. it shows you the changes that will be applied if you -;; reset to the selected state. -;; -;; (Note that the diff is generated by the Emacs `diff' command, and is -;; displayed using `diff-mode'. See the corresponding customization groups if -;; you want to customize the diff display.) -;; -;; Finally, hitting "q" will quit the visualizer, leaving the parent buffer in -;; whatever state you ended at. Hitting "C-q" will abort the visualizer, -;; returning the parent buffer to whatever state it was originally in when the -;; visualizer was . -;; -;; -;; -;; Undo-in-Region -;; ============== -;; -;; Emacs allows a very useful and powerful method of undoing only selected -;; changes: when a region is active, only changes that affect the text within -;; that region will be undone. With the standard Emacs undo system, changes -;; produced by undoing-in-region naturally get added onto the end of the -;; linear undo history: -;; -;; o -;; | -;; | x (second undo-in-region) -;; o | -;; | | -;; | o (first undo-in-region) -;; o | -;; | / -;; |/ -;; o -;; -;; You can of course redo these undos-in-region as usual, by undoing the -;; undos: -;; -;; o -;; | -;; | o_ -;; o | \ -;; | | | -;; | o o (undo the undo-in-region) -;; o | | -;; | / | -;; |/ | -;; o x (undo the undo-in-region) -;; -;; -;; In `undo-tree-mode', undo-in-region works similarly: when there's an active -;; region, undoing only undoes changes that affect that region. However, the -;; way these undos-in-region are recorded in the undo history is quite -;; different. In `undo-tree-mode', undo-in-region creates a new branch in the -;; undo history. The new branch consists of an undo step that undoes some of -;; the changes that affect the current region, and another step that undoes -;; the remaining changes needed to rejoin the previous undo history. -;; -;; Previous undo history Undo-in-region -;; -;; o o -;; | | -;; | | -;; o o -;; | |\ -;; | | \ -;; o o x (undo-in-region) -;; | | | -;; | | | -;; x o o -;; -;; As long as you don't change the active region after undoing-in-region, -;; continuing to undo-in-region extends the new branch, pulling more changes -;; that affect the current region into an undo step immediately above your -;; current location in the undo tree, and pushing the point at which the new -;; branch is attached further up the tree: -;; -;; First undo-in-region Second undo-in-region -;; -;; o o -;; | |\ -;; | | \ -;; o o x (undo-in-region) -;; |\ | | -;; | \ | | -;; o x o o -;; | | | | -;; | | | | -;; o o o o -;; -;; Redoing takes you back down the undo tree, as usual (as long as you haven't -;; changed the active region after undoing-in-region, it doesn't matter if it -;; is still active): -;; -;; o -;; |\ -;; | \ -;; o o -;; | | -;; | | -;; o o (redo) -;; | | -;; | | -;; o x (redo) -;; -;; -;; What about redo-in-region? Obviously, this only makes sense if you have -;; already undone some changes, so that there are some changes to redo! -;; Redoing-in-region splits off a new branch of the undo history below your -;; current location in the undo tree. This time, the new branch consists of a -;; redo step that redoes some of the redo changes that affect the current -;; region, followed by all the remaining redo changes. -;; -;; Previous undo history Redo-in-region -;; -;; o o -;; | | -;; | | -;; x o -;; | |\ -;; | | \ -;; o o x (redo-in-region) -;; | | | -;; | | | -;; o o o -;; -;; As long as you don't change the active region after redoing-in-region, -;; continuing to redo-in-region extends the new branch, pulling more redo -;; changes into a redo step immediately below your current location in the -;; undo tree. -;; -;; First redo-in-region Second redo-in-region -;; -;; o o -;; | | -;; | | -;; o o -;; |\ |\ -;; | \ | \ -;; o x (redo-in-region) o o -;; | | | | -;; | | | | -;; o o o x (redo-in-region) -;; | -;; | -;; o -;; -;; Note that undo-in-region and redo-in-region only ever add new changes to -;; the undo tree, they *never* modify existing undo history. So you can always -;; return to previous buffer states by switching to a previous branch of the -;; tree. - - - -;;; Code: - -(eval-when-compile (require 'cl)) -(require 'diff) - - - -;;; ===================================================================== -;;; Compatibility hacks for older Emacsen - -;; `characterp' isn't defined in Emacs versions < 23 -(unless (fboundp 'characterp) - (defalias 'characterp 'char-valid-p)) - -;; `region-active-p' isn't defined in Emacs versions < 23 -(unless (fboundp 'region-active-p) - (defun region-active-p () (and transient-mark-mode mark-active))) - - -;; `registerv' defstruct isn't defined in Emacs versions < 24 -(unless (fboundp 'registerv-make) - (defmacro registerv-make (data &rest _dummy) data)) - -(unless (fboundp 'registerv-data) - (defmacro registerv-data (data) data)) - - -;; `diff-no-select' and `diff-file-local-copy' aren't defined in Emacs -;; versions < 24 (copied and adapted from Emacs 24) -(unless (fboundp 'diff-no-select) - (defun diff-no-select (old new &optional switches no-async buf) - ;; Noninteractive helper for creating and reverting diff buffers - (unless (bufferp new) (setq new (expand-file-name new))) - (unless (bufferp old) (setq old (expand-file-name old))) - (or switches (setq switches diff-switches)) ; If not specified, use default. - (unless (listp switches) (setq switches (list switches))) - (or buf (setq buf (get-buffer-create "*Diff*"))) - (let* ((old-alt (diff-file-local-copy old)) - (new-alt (diff-file-local-copy new)) - (command - (mapconcat 'identity - `(,diff-command - ;; Use explicitly specified switches - ,@switches - ,@(mapcar #'shell-quote-argument - (nconc - (when (or old-alt new-alt) - (list "-L" (if (stringp old) - old (prin1-to-string old)) - "-L" (if (stringp new) - new (prin1-to-string new)))) - (list (or old-alt old) - (or new-alt new))))) - " ")) - (thisdir default-directory)) - (with-current-buffer buf - (setq buffer-read-only t) - (buffer-disable-undo (current-buffer)) - (let ((inhibit-read-only t)) - (erase-buffer)) - (buffer-enable-undo (current-buffer)) - (diff-mode) - (set (make-local-variable 'revert-buffer-function) - (lambda (_ignore-auto _noconfirm) - (diff-no-select old new switches no-async (current-buffer)))) - (setq default-directory thisdir) - (let ((inhibit-read-only t)) - (insert command "\n")) - (if (and (not no-async) (fboundp 'start-process)) - (let ((proc (start-process "Diff" buf shell-file-name - shell-command-switch command))) - (set-process-filter proc 'diff-process-filter) - (set-process-sentinel - proc (lambda (proc _msg) - (with-current-buffer (process-buffer proc) - (diff-sentinel (process-exit-status proc)) - (if old-alt (delete-file old-alt)) - (if new-alt (delete-file new-alt)))))) - ;; Async processes aren't available. - (let ((inhibit-read-only t)) - (diff-sentinel - (call-process shell-file-name nil buf nil - shell-command-switch command)) - (if old-alt (delete-file old-alt)) - (if new-alt (delete-file new-alt))))) - buf))) - -(unless (fboundp 'diff-file-local-copy) - (defun diff-file-local-copy (file-or-buf) - (if (bufferp file-or-buf) - (with-current-buffer file-or-buf - (let ((tempfile (make-temp-file "buffer-content-"))) - (write-region nil nil tempfile nil 'nomessage) - tempfile)) - (file-local-copy file-or-buf)))) - - - - -;;; ===================================================================== -;;; Global variables and customization options - -(defvar buffer-undo-tree nil - "Tree of undo entries in current buffer.") -(make-variable-buffer-local 'buffer-undo-tree) -(put 'buffer-undo-tree 'permanent-local t) - - -(defgroup undo-tree nil - "Tree undo/redo." - :group 'undo) - -(defcustom undo-tree-mode-lighter " Undo-Tree" - "Lighter displayed in mode line -when `undo-tree-mode' is enabled." - :group 'undo-tree - :type 'string) - - -(defcustom undo-tree-incompatible-major-modes '(term-mode) - "List of major-modes in which `undo-tree-mode' should not be enabled. -\(See `turn-on-undo-tree-mode'.\)" - :group 'undo-tree - :type '(repeat symbol)) - - -(defcustom undo-tree-enable-undo-in-region t - "When non-nil, enable undo-in-region. - -When undo-in-region is enabled, undoing or redoing when the -region is active (in `transient-mark-mode') or with a prefix -argument (not in `transient-mark-mode') only undoes changes -within the current region." - :group 'undo-tree - :type 'boolean) - - -(defcustom undo-tree-auto-save-history nil - "When non-nil, `undo-tree-mode' will save undo history to file -when a buffer is saved to file. - -It will automatically load undo history when a buffer is loaded -from file, if an undo save file exists. - -Undo-tree history is saved to a file called -\"..~undo-tree\" in the same directory as the -file itself. - -WARNING! `undo-tree-auto-save-history' will not work properly in -Emacs versions prior to 24.3, so it cannot be enabled via -the customization interface in versions earlier than that one. To -ignore this warning and enable it regardless, set -`undo-tree-auto-save-history' to a non-nil value outside of -customize." - :group 'undo-tree - :type (if (version-list-< (version-to-list emacs-version) '(24 3)) - '(choice (const :tag "" nil)) - 'boolean)) - - -(defcustom undo-tree-history-directory-alist nil - "Alist of filename patterns and undo history directory names. -Each element looks like (REGEXP . DIRECTORY). Undo history for -files with names matching REGEXP will be saved in DIRECTORY. -DIRECTORY may be relative or absolute. If it is absolute, so -that all matching files are backed up into the same directory, -the file names in this directory will be the full name of the -file backed up with all directory separators changed to `!' to -prevent clashes. This will not work correctly if your filesystem -truncates the resulting name. - -For the common case of all backups going into one directory, the -alist should contain a single element pairing \".\" with the -appropriate directory name. - -If this variable is nil, or it fails to match a filename, the -backup is made in the original file's directory. - -On MS-DOS filesystems without long names this variable is always -ignored." - :group 'undo-tree - :type '(repeat (cons (regexp :tag "Regexp matching filename") - (directory :tag "Undo history directory name")))) - - - -(defcustom undo-tree-visualizer-relative-timestamps t - "When non-nil, display times relative to current time -when displaying time stamps in visualizer. - -Otherwise, display absolute times." - :group 'undo-tree - :type 'boolean) - - -(defcustom undo-tree-visualizer-timestamps nil - "When non-nil, display time-stamps by default -in undo-tree visualizer. - -\\You can always toggle time-stamps on and off \ -using \\[undo-tree-visualizer-toggle-timestamps], regardless of the -setting of this variable." - :group 'undo-tree - :type 'boolean) - - -(defcustom undo-tree-visualizer-diff nil - "When non-nil, display diff by default in undo-tree visualizer. - -\\You can always toggle the diff display \ -using \\[undo-tree-visualizer-toggle-diff], regardless of the -setting of this variable." - :group 'undo-tree - :type 'boolean) - - -(defcustom undo-tree-visualizer-lazy-drawing 100 - "When non-nil, use lazy undo-tree drawing in visualizer. - -Setting this to a number causes the visualizer to switch to lazy -drawing when the number of nodes in the tree is larger than this -value. - -Lazy drawing means that only the visible portion of the tree will -be drawn initially , and the tree will be extended later as -needed. For the most part, the only visible effect of this is to -significantly speed up displaying the visualizer for very large -trees. - -There is one potential negative effect of lazy drawing. Other -branches of the tree will only be drawn once the node from which -they branch off becomes visible. So it can happen that certain -portions of the tree that would be shown with lazy drawing -disabled, will not be drawn immediately when it is -enabled. However, this effect is quite rare in practice." - :group 'undo-tree - :type '(choice (const :tag "never" nil) - (const :tag "always" t) - (integer :tag "> size"))) - - -(defface undo-tree-visualizer-default-face - '((((class color)) :foreground "gray")) - "Face used to draw undo-tree in visualizer." - :group 'undo-tree) - -(defface undo-tree-visualizer-current-face - '((((class color)) :foreground "red")) - "Face used to highlight current undo-tree node in visualizer." - :group 'undo-tree) - -(defface undo-tree-visualizer-active-branch-face - '((((class color) (background dark)) - (:foreground "white" :weight bold)) - (((class color) (background light)) - (:foreground "black" :weight bold))) - "Face used to highlight active undo-tree branch in visualizer." - :group 'undo-tree) - -(defface undo-tree-visualizer-register-face - '((((class color)) :foreground "yellow")) - "Face used to highlight undo-tree nodes saved to a register -in visualizer." - :group 'undo-tree) - -(defface undo-tree-visualizer-unmodified-face - '((((class color)) :foreground "cyan")) - "Face used to highlight nodes corresponding to unmodified buffers -in visualizer." - :group 'undo-tree) - - -(defvar undo-tree-visualizer-parent-buffer nil - "Parent buffer in visualizer.") -(make-variable-buffer-local 'undo-tree-visualizer-parent-buffer) - -;; stores modification time of parent buffer's file, if any -(defvar undo-tree-visualizer-parent-mtime nil) -(make-variable-buffer-local 'undo-tree-visualizer-parent-mtime) - -;; stores current horizontal spacing needed for drawing undo-tree -(defvar undo-tree-visualizer-spacing nil) -(make-variable-buffer-local 'undo-tree-visualizer-spacing) - -;; calculate horizontal spacing required for drawing tree with current -;; settings -(defsubst undo-tree-visualizer-calculate-spacing () - (if undo-tree-visualizer-timestamps - (if undo-tree-visualizer-relative-timestamps 9 13) - 3)) - -;; holds node that was current when visualizer was invoked -(defvar undo-tree-visualizer-initial-node nil) -(make-variable-buffer-local 'undo-tree-visualizer-initial-node) - -;; holds currently selected node in visualizer selection mode -(defvar undo-tree-visualizer-selected-node nil) -(make-variable-buffer-local 'undo-tree-visualizer-selected) - -;; used to store nodes at edge of currently drawn portion of tree -(defvar undo-tree-visualizer-needs-extending-down nil) -(make-variable-buffer-local 'undo-tree-visualizer-needs-extending-down) -(defvar undo-tree-visualizer-needs-extending-up nil) -(make-variable-buffer-local 'undo-tree-visualizer-needs-extending-up) - -;; dynamically bound to t when undoing from visualizer, to inhibit -;; `undo-tree-kill-visualizer' hook function in parent buffer -(defvar undo-tree-inhibit-kill-visualizer nil) - -;; can be let-bound to a face name, used in drawing functions -(defvar undo-tree-insert-face nil) - -;; visualizer buffer names -(defconst undo-tree-visualizer-buffer-name " *undo-tree*") -(defconst undo-tree-diff-buffer-name "*undo-tree Diff*") - -;; prevent debugger being called on "No further redo information" -(add-to-list 'debug-ignored-errors "^No further redo information") -(add-to-list 'debug-ignored-errors "^No further redo information for region") - -;; install history-auto-save hooks -(add-hook 'write-file-functions 'undo-tree-save-history-hook) -(add-hook 'find-file-hook 'undo-tree-load-history-hook) - - - - -;;; ================================================================= -;;; Default keymaps - -(defvar undo-tree-map nil - "Keymap used in undo-tree-mode.") - -(unless undo-tree-map - (let ((map (make-sparse-keymap))) - ;; remap `undo' and `undo-only' to `undo-tree-undo' - (define-key map [remap undo] 'undo-tree-undo) - (define-key map [remap undo-only] 'undo-tree-undo) - ;; bind standard undo bindings (since these match redo counterparts) - (define-key map (kbd "C-/") 'undo-tree-undo) - (define-key map "\C-_" 'undo-tree-undo) - ;; redo doesn't exist normally, so define our own keybindings - (define-key map (kbd "C-?") 'undo-tree-redo) - (define-key map (kbd "M-_") 'undo-tree-redo) - ;; just in case something has defined `redo'... - (define-key map [remap redo] 'undo-tree-redo) - ;; we use "C-x u" for the undo-tree visualizer - (define-key map (kbd "\C-x u") 'undo-tree-visualize) - ;; bind register commands - (define-key map (kbd "C-x r u") 'undo-tree-save-state-to-register) - (define-key map (kbd "C-x r U") 'undo-tree-restore-state-from-register) - ;; set keymap - (setq undo-tree-map map))) - - -(defvar undo-tree-visualizer-map nil - "Keymap used in undo-tree visualizer.") - -(unless undo-tree-visualizer-map - (let ((map (make-sparse-keymap))) - ;; vertical motion keys undo/redo - (define-key map [remap previous-line] 'undo-tree-visualize-undo) - (define-key map [remap next-line] 'undo-tree-visualize-redo) - (define-key map [up] 'undo-tree-visualize-undo) - (define-key map "p" 'undo-tree-visualize-undo) - (define-key map "\C-p" 'undo-tree-visualize-undo) - (define-key map [down] 'undo-tree-visualize-redo) - (define-key map "n" 'undo-tree-visualize-redo) - (define-key map "\C-n" 'undo-tree-visualize-redo) - ;; horizontal motion keys switch branch - (define-key map [remap forward-char] - 'undo-tree-visualize-switch-branch-right) - (define-key map [remap backward-char] - 'undo-tree-visualize-switch-branch-left) - (define-key map [right] 'undo-tree-visualize-switch-branch-right) - (define-key map "f" 'undo-tree-visualize-switch-branch-right) - (define-key map "\C-f" 'undo-tree-visualize-switch-branch-right) - (define-key map [left] 'undo-tree-visualize-switch-branch-left) - (define-key map "b" 'undo-tree-visualize-switch-branch-left) - (define-key map "\C-b" 'undo-tree-visualize-switch-branch-left) - ;; paragraph motion keys undo/redo to significant points in tree - (define-key map [remap backward-paragraph] 'undo-tree-visualize-undo-to-x) - (define-key map [remap forward-paragraph] 'undo-tree-visualize-redo-to-x) - (define-key map "\M-{" 'undo-tree-visualize-undo-to-x) - (define-key map "\M-}" 'undo-tree-visualize-redo-to-x) - (define-key map [C-down] 'undo-tree-visualize-undo-to-x) - (define-key map [C-up] 'undo-tree-visualize-redo-to-x) - ;; mouse sets buffer state to node at click - (define-key map [mouse-1] 'undo-tree-visualizer-mouse-set) - ;; toggle timestamps - (define-key map "t" 'undo-tree-visualizer-toggle-timestamps) - ;; toggle diff - (define-key map "d" 'undo-tree-visualizer-toggle-diff) - ;; selection mode - (define-key map "s" 'undo-tree-visualizer-selection-mode) - ;; horizontal scrolling may be needed if the tree is very wide - (define-key map "," 'undo-tree-visualizer-scroll-left) - (define-key map "." 'undo-tree-visualizer-scroll-right) - (define-key map "<" 'undo-tree-visualizer-scroll-left) - (define-key map ">" 'undo-tree-visualizer-scroll-right) - ;; vertical scrolling may be needed if the tree is very tall - (define-key map [next] 'undo-tree-visualizer-scroll-up) - (define-key map [prior] 'undo-tree-visualizer-scroll-down) - ;; quit/abort visualizer - (define-key map "q" 'undo-tree-visualizer-quit) - (define-key map "\C-q" 'undo-tree-visualizer-abort) - ;; set keymap - (setq undo-tree-visualizer-map map))) - - -(defvar undo-tree-visualizer-selection-map nil - "Keymap used in undo-tree visualizer selection mode.") - -(unless undo-tree-visualizer-selection-map - (let ((map (make-sparse-keymap))) - ;; vertical motion keys move up and down tree - (define-key map [remap previous-line] - 'undo-tree-visualizer-select-previous) - (define-key map [remap next-line] - 'undo-tree-visualizer-select-next) - (define-key map [up] 'undo-tree-visualizer-select-previous) - (define-key map "p" 'undo-tree-visualizer-select-previous) - (define-key map "\C-p" 'undo-tree-visualizer-select-previous) - (define-key map [down] 'undo-tree-visualizer-select-next) - (define-key map "n" 'undo-tree-visualizer-select-next) - (define-key map "\C-n" 'undo-tree-visualizer-select-next) - ;; vertical scroll keys move up and down quickly - (define-key map [next] - (lambda () (interactive) (undo-tree-visualizer-select-next 10))) - (define-key map [prior] - (lambda () (interactive) (undo-tree-visualizer-select-previous 10))) - ;; horizontal motion keys move to left and right siblings - (define-key map [remap forward-char] 'undo-tree-visualizer-select-right) - (define-key map [remap backward-char] 'undo-tree-visualizer-select-left) - (define-key map [right] 'undo-tree-visualizer-select-right) - (define-key map "f" 'undo-tree-visualizer-select-right) - (define-key map "\C-f" 'undo-tree-visualizer-select-right) - (define-key map [left] 'undo-tree-visualizer-select-left) - (define-key map "b" 'undo-tree-visualizer-select-left) - (define-key map "\C-b" 'undo-tree-visualizer-select-left) - ;; horizontal scroll keys move left or right quickly - (define-key map "," - (lambda () (interactive) (undo-tree-visualizer-select-left 10))) - (define-key map "." - (lambda () (interactive) (undo-tree-visualizer-select-right 10))) - (define-key map "<" - (lambda () (interactive) (undo-tree-visualizer-select-left 10))) - (define-key map ">" - (lambda () (interactive) (undo-tree-visualizer-select-right 10))) - ;; mouse or sets buffer state to node at point/click - (define-key map "\r" 'undo-tree-visualizer-set) - (define-key map [mouse-1] 'undo-tree-visualizer-mouse-set) - ;; toggle timestamps - (define-key map "t" 'undo-tree-visualizer-toggle-timestamps) - ;; toggle diff - (define-key map "d" 'undo-tree-visualizer-selection-toggle-diff) - ;; quit visualizer selection mode - (define-key map "s" 'undo-tree-visualizer-mode) - ;; quit visualizer - (define-key map "q" 'undo-tree-visualizer-quit) - (define-key map "\C-q" 'undo-tree-visualizer-abort) - ;; set keymap - (setq undo-tree-visualizer-selection-map map))) - - - - -;;; ===================================================================== -;;; Undo-tree data structure - -(defstruct - (undo-tree - :named - (:constructor nil) - (:constructor make-undo-tree - (&aux - (root (undo-tree-make-node nil nil)) - (current root) - (size 0) - (count 0) - (object-pool (make-hash-table :test 'eq :weakness 'value)))) - ;;(:copier nil) - ) - root current size count object-pool) - - - -(defstruct - (undo-tree-node - (:type vector) ; create unnamed struct - (:constructor nil) - (:constructor undo-tree-make-node - (previous undo - &optional redo - &aux - (timestamp (current-time)) - (branch 0))) - (:constructor undo-tree-make-node-backwards - (next-node undo - &optional redo - &aux - (next (list next-node)) - (timestamp (current-time)) - (branch 0))) - (:copier nil)) - previous next undo redo timestamp branch meta-data) - - -(defmacro undo-tree-node-p (n) - (let ((len (length (undo-tree-make-node nil nil)))) - `(and (vectorp ,n) (= (length ,n) ,len)))) - - - -(defstruct - (undo-tree-region-data - (:type vector) ; create unnamed struct - (:constructor nil) - (:constructor undo-tree-make-region-data - (&optional undo-beginning undo-end - redo-beginning redo-end)) - (:constructor undo-tree-make-undo-region-data - (undo-beginning undo-end)) - (:constructor undo-tree-make-redo-region-data - (redo-beginning redo-end)) - (:copier nil)) - undo-beginning undo-end redo-beginning redo-end) - - -(defmacro undo-tree-region-data-p (r) - (let ((len (length (undo-tree-make-region-data)))) - `(and (vectorp ,r) (= (length ,r) ,len)))) - -(defmacro undo-tree-node-clear-region-data (node) - `(setf (undo-tree-node-meta-data ,node) - (delq nil - (delq :region - (plist-put (undo-tree-node-meta-data ,node) - :region nil))))) - - -(defmacro undo-tree-node-undo-beginning (node) - `(let ((r (plist-get (undo-tree-node-meta-data ,node) :region))) - (when (undo-tree-region-data-p r) - (undo-tree-region-data-undo-beginning r)))) - -(defmacro undo-tree-node-undo-end (node) - `(let ((r (plist-get (undo-tree-node-meta-data ,node) :region))) - (when (undo-tree-region-data-p r) - (undo-tree-region-data-undo-end r)))) - -(defmacro undo-tree-node-redo-beginning (node) - `(let ((r (plist-get (undo-tree-node-meta-data ,node) :region))) - (when (undo-tree-region-data-p r) - (undo-tree-region-data-redo-beginning r)))) - -(defmacro undo-tree-node-redo-end (node) - `(let ((r (plist-get (undo-tree-node-meta-data ,node) :region))) - (when (undo-tree-region-data-p r) - (undo-tree-region-data-redo-end r)))) - - -(defsetf undo-tree-node-undo-beginning (node) (val) - `(let ((r (plist-get (undo-tree-node-meta-data ,node) :region))) - (unless (undo-tree-region-data-p r) - (setf (undo-tree-node-meta-data ,node) - (plist-put (undo-tree-node-meta-data ,node) :region - (setq r (undo-tree-make-region-data))))) - (setf (undo-tree-region-data-undo-beginning r) ,val))) - -(defsetf undo-tree-node-undo-end (node) (val) - `(let ((r (plist-get (undo-tree-node-meta-data ,node) :region))) - (unless (undo-tree-region-data-p r) - (setf (undo-tree-node-meta-data ,node) - (plist-put (undo-tree-node-meta-data ,node) :region - (setq r (undo-tree-make-region-data))))) - (setf (undo-tree-region-data-undo-end r) ,val))) - -(defsetf undo-tree-node-redo-beginning (node) (val) - `(let ((r (plist-get (undo-tree-node-meta-data ,node) :region))) - (unless (undo-tree-region-data-p r) - (setf (undo-tree-node-meta-data ,node) - (plist-put (undo-tree-node-meta-data ,node) :region - (setq r (undo-tree-make-region-data))))) - (setf (undo-tree-region-data-redo-beginning r) ,val))) - -(defsetf undo-tree-node-redo-end (node) (val) - `(let ((r (plist-get (undo-tree-node-meta-data ,node) :region))) - (unless (undo-tree-region-data-p r) - (setf (undo-tree-node-meta-data ,node) - (plist-put (undo-tree-node-meta-data ,node) :region - (setq r (undo-tree-make-region-data))))) - (setf (undo-tree-region-data-redo-end r) ,val))) - - - -(defstruct - (undo-tree-visualizer-data - (:type vector) ; create unnamed struct - (:constructor nil) - (:constructor undo-tree-make-visualizer-data - (&optional lwidth cwidth rwidth marker)) - (:copier nil)) - lwidth cwidth rwidth marker) - - -(defmacro undo-tree-visualizer-data-p (v) - (let ((len (length (undo-tree-make-visualizer-data)))) - `(and (vectorp ,v) (= (length ,v) ,len)))) - -(defun undo-tree-node-clear-visualizer-data (node) - (let ((plist (undo-tree-node-meta-data node))) - (if (eq (car plist) :visualizer) - (setf (undo-tree-node-meta-data node) (nthcdr 2 plist)) - (while (and plist (not (eq (cadr plist) :visualizer))) - (setq plist (cdr plist))) - (if plist (setcdr plist (nthcdr 3 plist)))))) - -(defmacro undo-tree-node-lwidth (node) - `(let ((v (plist-get (undo-tree-node-meta-data ,node) :visualizer))) - (when (undo-tree-visualizer-data-p v) - (undo-tree-visualizer-data-lwidth v)))) - -(defmacro undo-tree-node-cwidth (node) - `(let ((v (plist-get (undo-tree-node-meta-data ,node) :visualizer))) - (when (undo-tree-visualizer-data-p v) - (undo-tree-visualizer-data-cwidth v)))) - -(defmacro undo-tree-node-rwidth (node) - `(let ((v (plist-get (undo-tree-node-meta-data ,node) :visualizer))) - (when (undo-tree-visualizer-data-p v) - (undo-tree-visualizer-data-rwidth v)))) - -(defmacro undo-tree-node-marker (node) - `(let ((v (plist-get (undo-tree-node-meta-data ,node) :visualizer))) - (when (undo-tree-visualizer-data-p v) - (undo-tree-visualizer-data-marker v)))) - - -(defsetf undo-tree-node-lwidth (node) (val) - `(let ((v (plist-get (undo-tree-node-meta-data ,node) :visualizer))) - (unless (undo-tree-visualizer-data-p v) - (setf (undo-tree-node-meta-data ,node) - (plist-put (undo-tree-node-meta-data ,node) :visualizer - (setq v (undo-tree-make-visualizer-data))))) - (setf (undo-tree-visualizer-data-lwidth v) ,val))) - -(defsetf undo-tree-node-cwidth (node) (val) - `(let ((v (plist-get (undo-tree-node-meta-data ,node) :visualizer))) - (unless (undo-tree-visualizer-data-p v) - (setf (undo-tree-node-meta-data ,node) - (plist-put (undo-tree-node-meta-data ,node) :visualizer - (setq v (undo-tree-make-visualizer-data))))) - (setf (undo-tree-visualizer-data-cwidth v) ,val))) - -(defsetf undo-tree-node-rwidth (node) (val) - `(let ((v (plist-get (undo-tree-node-meta-data ,node) :visualizer))) - (unless (undo-tree-visualizer-data-p v) - (setf (undo-tree-node-meta-data ,node) - (plist-put (undo-tree-node-meta-data ,node) :visualizer - (setq v (undo-tree-make-visualizer-data))))) - (setf (undo-tree-visualizer-data-rwidth v) ,val))) - -(defsetf undo-tree-node-marker (node) (val) - `(let ((v (plist-get (undo-tree-node-meta-data ,node) :visualizer))) - (unless (undo-tree-visualizer-data-p v) - (setf (undo-tree-node-meta-data ,node) - (plist-put (undo-tree-node-meta-data ,node) :visualizer - (setq v (undo-tree-make-visualizer-data))))) - (setf (undo-tree-visualizer-data-marker v) ,val))) - - - -(defstruct - (undo-tree-register-data - (:type vector) - (:constructor nil) - (:constructor undo-tree-make-register-data (buffer node))) - buffer node) - -(defun undo-tree-register-data-p (data) - (and (vectorp data) - (= (length data) 2) - (undo-tree-node-p (undo-tree-register-data-node data)))) - -(defun undo-tree-register-data-print-func (data) - (princ (format "an undo-tree state for buffer %s" - (undo-tree-register-data-buffer data)))) - -(defmacro undo-tree-node-register (node) - `(plist-get (undo-tree-node-meta-data ,node) :register)) - -(defsetf undo-tree-node-register (node) (val) - `(setf (undo-tree-node-meta-data ,node) - (plist-put (undo-tree-node-meta-data ,node) :register ,val))) - - - - -;;; ===================================================================== -;;; Basic undo-tree data structure functions - -(defun undo-tree-grow (undo) - "Add an UNDO node to current branch of `buffer-undo-tree'." - (let* ((current (undo-tree-current buffer-undo-tree)) - (new (undo-tree-make-node current undo))) - (push new (undo-tree-node-next current)) - (setf (undo-tree-current buffer-undo-tree) new))) - - -(defun undo-tree-grow-backwards (node undo &optional redo) - "Add new node *above* undo-tree NODE, and return new node. -Note that this will overwrite NODE's \"previous\" link, so should -only be used on a detached NODE, never on nodes that are already -part of `buffer-undo-tree'." - (let ((new (undo-tree-make-node-backwards node undo redo))) - (setf (undo-tree-node-previous node) new) - new)) - - -(defun undo-tree-splice-node (node splice) - "Splice NODE into undo tree, below node SPLICE. -Note that this will overwrite NODE's \"next\" and \"previous\" -links, so should only be used on a detached NODE, never on nodes -that are already part of `buffer-undo-tree'." - (setf (undo-tree-node-next node) (undo-tree-node-next splice) - (undo-tree-node-branch node) (undo-tree-node-branch splice) - (undo-tree-node-previous node) splice - (undo-tree-node-next splice) (list node) - (undo-tree-node-branch splice) 0) - (dolist (n (undo-tree-node-next node)) - (setf (undo-tree-node-previous n) node))) - - -(defun undo-tree-snip-node (node) - "Snip NODE out of undo tree." - (let* ((parent (undo-tree-node-previous node)) - position p) - ;; if NODE is only child, replace parent's next links with NODE's - (if (= (length (undo-tree-node-next parent)) 0) - (setf (undo-tree-node-next parent) (undo-tree-node-next node) - (undo-tree-node-branch parent) (undo-tree-node-branch node)) - ;; otherwise... - (setq position (undo-tree-position node (undo-tree-node-next parent))) - (cond - ;; if active branch used do go via NODE, set parent's branch to active - ;; branch of NODE - ((= (undo-tree-node-branch parent) position) - (setf (undo-tree-node-branch parent) - (+ position (undo-tree-node-branch node)))) - ;; if active branch didn't go via NODE, update parent's branch to point - ;; to same node as before - ((> (undo-tree-node-branch parent) position) - (incf (undo-tree-node-branch parent) - (1- (length (undo-tree-node-next node)))))) - ;; replace NODE in parent's next list with NODE's entire next list - (if (= position 0) - (setf (undo-tree-node-next parent) - (nconc (undo-tree-node-next node) - (cdr (undo-tree-node-next parent)))) - (setq p (nthcdr (1- position) (undo-tree-node-next parent))) - (setcdr p (nconc (undo-tree-node-next node) (cddr p))))) - ;; update previous links of NODE's children - (dolist (n (undo-tree-node-next node)) - (setf (undo-tree-node-previous n) parent)))) - - -(defun undo-tree-mapc (--undo-tree-mapc-function-- node) - ;; Apply FUNCTION to NODE and to each node below it. - (let ((stack (list node)) - n) - (while stack - (setq n (pop stack)) - (funcall --undo-tree-mapc-function-- n) - (setq stack (append (undo-tree-node-next n) stack))))) - - -(defmacro undo-tree-num-branches () - "Return number of branches at current undo tree node." - '(length (undo-tree-node-next (undo-tree-current buffer-undo-tree)))) - - -(defun undo-tree-position (node list) - "Find the first occurrence of NODE in LIST. -Return the index of the matching item, or nil of not found. -Comparison is done with `eq'." - (let ((i 0)) - (catch 'found - (while (progn - (when (eq node (car list)) (throw 'found i)) - (incf i) - (setq list (cdr list)))) - nil))) - - -(defvar *undo-tree-id-counter* 0) -(make-variable-buffer-local '*undo-tree-id-counter*) - -(defmacro undo-tree-generate-id () - ;; Generate a new, unique id (uninterned symbol). - ;; The name is made by appending a number to "undo-tree-id". - ;; (Copied from CL package `gensym'.) - `(let ((num (prog1 *undo-tree-id-counter* (incf *undo-tree-id-counter*)))) - (make-symbol (format "undo-tree-id%d" num)))) - - -(defun undo-tree-decircle (undo-tree) - ;; Nullify PREVIOUS links of UNDO-TREE nodes, to make UNDO-TREE data - ;; structure non-circular. - (undo-tree-mapc - (lambda (node) - (dolist (n (undo-tree-node-next node)) - (setf (undo-tree-node-previous n) nil))) - (undo-tree-root undo-tree))) - - -(defun undo-tree-recircle (undo-tree) - ;; Recreate PREVIOUS links of UNDO-TREE nodes, to restore circular UNDO-TREE - ;; data structure. - (undo-tree-mapc - (lambda (node) - (dolist (n (undo-tree-node-next node)) - (setf (undo-tree-node-previous n) node))) - (undo-tree-root undo-tree))) - - - - -;;; ===================================================================== -;;; Undo list and undo changeset utility functions - -(defmacro undo-list-marker-elt-p (elt) - `(markerp (car-safe ,elt))) - -(defmacro undo-list-GCd-marker-elt-p (elt) - ;; Return t if ELT is a marker element whose marker has been moved to the - ;; object-pool, so may potentially have been garbage-collected. - ;; Note: Valid marker undo elements should be uniquely identified as cons - ;; cells with a symbol in the car (replacing the marker), and a number in - ;; the cdr. However, to guard against future changes to undo element - ;; formats, we perform an additional redundant check on the symbol name. - `(and (car-safe ,elt) - (symbolp (car ,elt)) - (let ((str (symbol-name (car ,elt)))) - (and (> (length str) 12) - (string= (substring str 0 12) "undo-tree-id"))) - (numberp (cdr-safe ,elt)))) - - -(defun undo-tree-move-GC-elts-to-pool (elt) - ;; Move elements that can be garbage-collected into `buffer-undo-tree' - ;; object pool, substituting a unique id that can be used to retrieve them - ;; later. (Only markers require this treatment currently.) - (when (undo-list-marker-elt-p elt) - (let ((id (undo-tree-generate-id))) - (puthash id (car elt) (undo-tree-object-pool buffer-undo-tree)) - (setcar elt id)))) - - -(defun undo-tree-restore-GC-elts-from-pool (elt) - ;; Replace object id's in ELT with corresponding objects from - ;; `buffer-undo-tree' object pool and return modified ELT, or return nil if - ;; any object in ELT has been garbage-collected. - (if (undo-list-GCd-marker-elt-p elt) - (when (setcar elt (gethash (car elt) - (undo-tree-object-pool buffer-undo-tree))) - elt) - elt)) - - -(defun undo-list-clean-GCd-elts (undo-list) - ;; Remove object id's from UNDO-LIST that refer to elements that have been - ;; garbage-collected. UNDO-LIST is modified by side-effect. - (while (undo-list-GCd-marker-elt-p (car undo-list)) - (unless (gethash (caar undo-list) - (undo-tree-object-pool buffer-undo-tree)) - (setq undo-list (cdr undo-list)))) - (let ((p undo-list)) - (while (cdr p) - (when (and (undo-list-GCd-marker-elt-p (cadr p)) - (null (gethash (car (cadr p)) - (undo-tree-object-pool buffer-undo-tree)))) - (setcdr p (cddr p))) - (setq p (cdr p)))) - undo-list) - - -(defun undo-list-pop-changeset (&optional discard-pos) - ;; Pop changeset from `buffer-undo-list'. If DISCARD-POS is non-nil, discard - ;; any position entries from changeset. - - ;; discard undo boundaries and (if DISCARD-POS is non-nil) position entries - ;; at head of undo list - (while (or (null (car buffer-undo-list)) - (and discard-pos (integerp (car buffer-undo-list)))) - (setq buffer-undo-list (cdr buffer-undo-list))) - ;; pop elements up to next undo boundary, discarding position entries if - ;; DISCARD-POS is non-nil - (if (eq (car buffer-undo-list) 'undo-tree-canary) - (push nil buffer-undo-list) - (let* ((changeset (list (pop buffer-undo-list))) - (p changeset)) - (while (progn - (undo-tree-move-GC-elts-to-pool (car p)) - (while (and discard-pos (integerp (car buffer-undo-list))) - (setq buffer-undo-list (cdr buffer-undo-list))) - (and (car buffer-undo-list) - (not (eq (car buffer-undo-list) 'undo-tree-canary)))) - (setcdr p (list (pop buffer-undo-list))) - (setq p (cdr p))) - changeset))) - - -(defun undo-tree-copy-list (undo-list) - ;; Return a deep copy of first changeset in `undo-list'. Object id's are - ;; replaced by corresponding objects from `buffer-undo-tree' object-pool. - (when undo-list - (let (copy p) - ;; if first element contains an object id, replace it with object from - ;; pool, discarding element entirely if it's been GC'd - (while (null copy) - (setq copy - (undo-tree-restore-GC-elts-from-pool (pop undo-list)))) - (setq copy (list copy) - p copy) - ;; copy remaining elements, replacing object id's with objects from - ;; pool, or discarding them entirely if they've been GC'd - (while undo-list - (when (setcdr p (undo-tree-restore-GC-elts-from-pool - (undo-copy-list-1 (pop undo-list)))) - (setcdr p (list (cdr p))) - (setq p (cdr p)))) - copy))) - - - -(defun undo-list-transfer-to-tree () - ;; Transfer entries accumulated in `buffer-undo-list' to `buffer-undo-tree'. - - ;; `undo-list-transfer-to-tree' should never be called when undo is disabled - ;; (i.e. `buffer-undo-tree' is t) - (assert (not (eq buffer-undo-tree t))) - - ;; if `buffer-undo-tree' is empty, create initial undo-tree - (when (null buffer-undo-tree) (setq buffer-undo-tree (make-undo-tree))) - ;; make sure there's a canary at end of `buffer-undo-list' - (when (null buffer-undo-list) - (setq buffer-undo-list '(nil undo-tree-canary))) - - (unless (or (eq (cadr buffer-undo-list) 'undo-tree-canary) - (eq (car buffer-undo-list) 'undo-tree-canary)) - ;; create new node from first changeset in `buffer-undo-list', save old - ;; `buffer-undo-tree' current node, and make new node the current node - (let* ((node (undo-tree-make-node nil (undo-list-pop-changeset))) - (splice (undo-tree-current buffer-undo-tree)) - (size (undo-list-byte-size (undo-tree-node-undo node))) - (count 1)) - (setf (undo-tree-current buffer-undo-tree) node) - ;; grow tree fragment backwards using `buffer-undo-list' changesets - (while (and buffer-undo-list - (not (eq (cadr buffer-undo-list) 'undo-tree-canary))) - (setq node - (undo-tree-grow-backwards node (undo-list-pop-changeset))) - (incf size (undo-list-byte-size (undo-tree-node-undo node))) - (incf count)) - ;; if no undo history has been discarded from `buffer-undo-list' since - ;; last transfer, splice new tree fragment onto end of old - ;; `buffer-undo-tree' current node - (if (or (eq (cadr buffer-undo-list) 'undo-tree-canary) - (eq (car buffer-undo-list) 'undo-tree-canary)) - (progn - (setf (undo-tree-node-previous node) splice) - (push node (undo-tree-node-next splice)) - (setf (undo-tree-node-branch splice) 0) - (incf (undo-tree-size buffer-undo-tree) size) - (incf (undo-tree-count buffer-undo-tree) count)) - ;; if undo history has been discarded, replace entire - ;; `buffer-undo-tree' with new tree fragment - (setq node (undo-tree-grow-backwards node nil)) - (setf (undo-tree-root buffer-undo-tree) node) - (setq buffer-undo-list '(nil undo-tree-canary)) - (setf (undo-tree-size buffer-undo-tree) size) - (setf (undo-tree-count buffer-undo-tree) count) - (setq buffer-undo-list '(nil undo-tree-canary)))) - ;; discard undo history if necessary - (undo-tree-discard-history))) - - -(defun undo-list-byte-size (undo-list) - ;; Return size (in bytes) of UNDO-LIST - (let ((size 0) (p undo-list)) - (while p - (incf size 8) ; cons cells use up 8 bytes - (when (and (consp (car p)) (stringp (caar p))) - (incf size (string-bytes (caar p)))) - (setq p (cdr p))) - size)) - - - -(defun undo-list-rebuild-from-tree () - "Rebuild `buffer-undo-list' from information in `buffer-undo-tree'." - (unless (eq buffer-undo-list t) - (undo-list-transfer-to-tree) - (setq buffer-undo-list nil) - (when buffer-undo-tree - (let ((stack (list (list (undo-tree-root buffer-undo-tree))))) - (push (sort (mapcar 'identity (undo-tree-node-next (caar stack))) - (lambda (a b) - (time-less-p (undo-tree-node-timestamp a) - (undo-tree-node-timestamp b)))) - stack) - ;; Traverse tree in depth-and-oldest-first order, but add undo records - ;; on the way down, and redo records on the way up. - (while (or (car stack) - (not (eq (car (nth 1 stack)) - (undo-tree-current buffer-undo-tree)))) - (if (car stack) - (progn - (setq buffer-undo-list - (append (undo-tree-node-undo (caar stack)) - buffer-undo-list)) - (undo-boundary) - (push (sort (mapcar 'identity - (undo-tree-node-next (caar stack))) - (lambda (a b) - (time-less-p (undo-tree-node-timestamp a) - (undo-tree-node-timestamp b)))) - stack)) - (pop stack) - (setq buffer-undo-list - (append (undo-tree-node-redo (caar stack)) - buffer-undo-list)) - (undo-boundary) - (pop (car stack)))))))) - - - - -;;; ===================================================================== -;;; History discarding utility functions - -(defun undo-tree-oldest-leaf (node) - ;; Return oldest leaf node below NODE. - (while (undo-tree-node-next node) - (setq node - (car (sort (mapcar 'identity (undo-tree-node-next node)) - (lambda (a b) - (time-less-p (undo-tree-node-timestamp a) - (undo-tree-node-timestamp b))))))) - node) - - -(defun undo-tree-discard-node (node) - ;; Discard NODE from `buffer-undo-tree', and return next in line for - ;; discarding. - - ;; don't discard current node - (unless (eq node (undo-tree-current buffer-undo-tree)) - - ;; discarding root node... - (if (eq node (undo-tree-root buffer-undo-tree)) - (cond - ;; should always discard branches before root - ((> (length (undo-tree-node-next node)) 1) - (error "Trying to discard undo-tree root which still\ - has multiple branches")) - ;; don't discard root if current node is only child - ((eq (car (undo-tree-node-next node)) - (undo-tree-current buffer-undo-tree)) - nil) - ;; discard root - (t - ;; clear any register referring to root - (let ((r (undo-tree-node-register node))) - (when (and r (eq (get-register r) node)) - (set-register r nil))) - ;; make child of root into new root - (setq node (setf (undo-tree-root buffer-undo-tree) - (car (undo-tree-node-next node)))) - ;; update undo-tree size - (decf (undo-tree-size buffer-undo-tree) - (+ (undo-list-byte-size (undo-tree-node-undo node)) - (undo-list-byte-size (undo-tree-node-redo node)))) - (decf (undo-tree-count buffer-undo-tree)) - ;; discard new root's undo data and PREVIOUS link - (setf (undo-tree-node-undo node) nil - (undo-tree-node-redo node) nil - (undo-tree-node-previous node) nil) - ;; if new root has branches, or new root is current node, next node - ;; to discard is oldest leaf, otherwise it's new root - (if (or (> (length (undo-tree-node-next node)) 1) - (eq (car (undo-tree-node-next node)) - (undo-tree-current buffer-undo-tree))) - (undo-tree-oldest-leaf node) - node))) - - ;; discarding leaf node... - (let* ((parent (undo-tree-node-previous node)) - (current (nth (undo-tree-node-branch parent) - (undo-tree-node-next parent)))) - ;; clear any register referring to the discarded node - (let ((r (undo-tree-node-register node))) - (when (and r (eq (get-register r) node)) - (set-register r nil))) - ;; update undo-tree size - (decf (undo-tree-size buffer-undo-tree) - (+ (undo-list-byte-size (undo-tree-node-undo node)) - (undo-list-byte-size (undo-tree-node-redo node)))) - (decf (undo-tree-count buffer-undo-tree)) - ;; discard leaf - (setf (undo-tree-node-next parent) - (delq node (undo-tree-node-next parent)) - (undo-tree-node-branch parent) - (undo-tree-position current (undo-tree-node-next parent))) - ;; if parent has branches, or parent is current node, next node to - ;; discard is oldest leaf, otherwise it's the parent itself - (if (or (eq parent (undo-tree-current buffer-undo-tree)) - (and (undo-tree-node-next parent) - (or (not (eq parent (undo-tree-root buffer-undo-tree))) - (> (length (undo-tree-node-next parent)) 1)))) - (undo-tree-oldest-leaf parent) - parent))))) - - - -(defun undo-tree-discard-history () - "Discard undo history until we're within memory usage limits -set by `undo-limit', `undo-strong-limit' and `undo-outer-limit'." - - (when (> (undo-tree-size buffer-undo-tree) undo-limit) - ;; if there are no branches off root, first node to discard is root; - ;; otherwise it's leaf node at botom of oldest branch - (let ((node (if (> (length (undo-tree-node-next - (undo-tree-root buffer-undo-tree))) 1) - (undo-tree-oldest-leaf (undo-tree-root buffer-undo-tree)) - (undo-tree-root buffer-undo-tree)))) - - ;; discard nodes until memory use is within `undo-strong-limit' - (while (and node - (> (undo-tree-size buffer-undo-tree) undo-strong-limit)) - (setq node (undo-tree-discard-node node))) - - ;; discard nodes until next node to discard would bring memory use - ;; within `undo-limit' - (while (and node - ;; check first if last discard has brought us within - ;; `undo-limit', in case we can avoid more expensive - ;; `undo-strong-limit' calculation - ;; Note: this assumes undo-strong-limit > undo-limit; - ;; if not, effectively undo-strong-limit = undo-limit - (> (undo-tree-size buffer-undo-tree) undo-limit) - (> (- (undo-tree-size buffer-undo-tree) - ;; if next node to discard is root, the memory we - ;; free-up comes from discarding changesets from its - ;; only child... - (if (eq node (undo-tree-root buffer-undo-tree)) - (+ (undo-list-byte-size - (undo-tree-node-undo - (car (undo-tree-node-next node)))) - (undo-list-byte-size - (undo-tree-node-redo - (car (undo-tree-node-next node))))) - ;; ...otherwise, it comes from discarding changesets - ;; from along with the node itself - (+ (undo-list-byte-size (undo-tree-node-undo node)) - (undo-list-byte-size (undo-tree-node-redo node))) - )) - undo-limit)) - (setq node (undo-tree-discard-node node))) - - ;; if we're still over the `undo-outer-limit', discard entire history - (when (> (undo-tree-size buffer-undo-tree) undo-outer-limit) - ;; query first if `undo-ask-before-discard' is set - (if undo-ask-before-discard - (when (yes-or-no-p - (format - "Buffer `%s' undo info is %d bytes long; discard it? " - (buffer-name) (undo-tree-size buffer-undo-tree))) - (setq buffer-undo-tree nil)) - ;; otherwise, discard and display warning - (display-warning - '(undo discard-info) - (concat - (format "Buffer `%s' undo info was %d bytes long.\n" - (buffer-name) (undo-tree-size buffer-undo-tree)) - "The undo info was discarded because it exceeded\ - `undo-outer-limit'. - -This is normal if you executed a command that made a huge change -to the buffer. In that case, to prevent similar problems in the -future, set `undo-outer-limit' to a value that is large enough to -cover the maximum size of normal changes you expect a single -command to make, but not so large that it might exceed the -maximum memory allotted to Emacs. - -If you did not execute any such command, the situation is -probably due to a bug and you should report it. - -You can disable the popping up of this buffer by adding the entry -\(undo discard-info) to the user option `warning-suppress-types', -which is defined in the `warnings' library.\n") - :warning) - (setq buffer-undo-tree nil))) - ))) - - - - -;;; ===================================================================== -;;; Visualizer utility functions - -(defun undo-tree-compute-widths (node) - "Recursively compute widths for nodes below NODE." - (let ((stack (list node)) - res) - (while stack - ;; try to compute widths for node at top of stack - (if (undo-tree-node-p - (setq res (undo-tree-node-compute-widths (car stack)))) - ;; if computation fails, it returns a node whose widths still need - ;; computing, which we push onto the stack - (push res stack) - ;; otherwise, store widths and remove it from stack - (setf (undo-tree-node-lwidth (car stack)) (aref res 0) - (undo-tree-node-cwidth (car stack)) (aref res 1) - (undo-tree-node-rwidth (car stack)) (aref res 2)) - (pop stack))))) - - -(defun undo-tree-node-compute-widths (node) - ;; Compute NODE's left-, centre-, and right-subtree widths. Returns widths - ;; (in a vector) if successful. Otherwise, returns a node whose widths need - ;; calculating before NODE's can be calculated. - (let ((num-children (length (undo-tree-node-next node))) - (lwidth 0) (cwidth 0) (rwidth 0) p) - (catch 'need-widths - (cond - ;; leaf nodes have 0 width - ((= 0 num-children) - (setf cwidth 1 - (undo-tree-node-lwidth node) 0 - (undo-tree-node-cwidth node) 1 - (undo-tree-node-rwidth node) 0)) - - ;; odd number of children - ((= (mod num-children 2) 1) - (setq p (undo-tree-node-next node)) - ;; compute left-width - (dotimes (i (/ num-children 2)) - (if (undo-tree-node-lwidth (car p)) - (incf lwidth (+ (undo-tree-node-lwidth (car p)) - (undo-tree-node-cwidth (car p)) - (undo-tree-node-rwidth (car p)))) - ;; if child's widths haven't been computed, return that child - (throw 'need-widths (car p))) - (setq p (cdr p))) - (if (undo-tree-node-lwidth (car p)) - (incf lwidth (undo-tree-node-lwidth (car p))) - (throw 'need-widths (car p))) - ;; centre-width is inherited from middle child - (setf cwidth (undo-tree-node-cwidth (car p))) - ;; compute right-width - (incf rwidth (undo-tree-node-rwidth (car p))) - (setq p (cdr p)) - (dotimes (i (/ num-children 2)) - (if (undo-tree-node-lwidth (car p)) - (incf rwidth (+ (undo-tree-node-lwidth (car p)) - (undo-tree-node-cwidth (car p)) - (undo-tree-node-rwidth (car p)))) - (throw 'need-widths (car p))) - (setq p (cdr p)))) - - ;; even number of children - (t - (setq p (undo-tree-node-next node)) - ;; compute left-width - (dotimes (i (/ num-children 2)) - (if (undo-tree-node-lwidth (car p)) - (incf lwidth (+ (undo-tree-node-lwidth (car p)) - (undo-tree-node-cwidth (car p)) - (undo-tree-node-rwidth (car p)))) - (throw 'need-widths (car p))) - (setq p (cdr p))) - ;; centre-width is 0 when number of children is even - (setq cwidth 0) - ;; compute right-width - (dotimes (i (/ num-children 2)) - (if (undo-tree-node-lwidth (car p)) - (incf rwidth (+ (undo-tree-node-lwidth (car p)) - (undo-tree-node-cwidth (car p)) - (undo-tree-node-rwidth (car p)))) - (throw 'need-widths (car p))) - (setq p (cdr p))))) - - ;; return left-, centre- and right-widths - (vector lwidth cwidth rwidth)))) - - -(defun undo-tree-clear-visualizer-data (tree) - ;; Clear visualizer data below NODE. - (undo-tree-mapc - (lambda (n) (undo-tree-node-clear-visualizer-data n)) - (undo-tree-root tree))) - - -(defun undo-tree-node-unmodified-p (node &optional mtime) - ;; Return non-nil if NODE corresponds to a buffer state that once upon a - ;; time was unmodified. If a file modification time MTIME is specified, - ;; return non-nil if the corresponding buffer state really is unmodified. - (let (changeset ntime) - (setq changeset - (or (undo-tree-node-redo node) - (and (setq changeset (car (undo-tree-node-next node))) - (undo-tree-node-undo changeset))) - ntime - (catch 'found - (dolist (elt changeset) - (when (and (consp elt) (eq (car elt) t) (consp (cdr elt)) - (throw 'found (cdr elt))))))) - (and ntime - (or (null mtime) - ;; high-precision timestamps - (if (listp (cdr ntime)) - (equal ntime mtime) - ;; old-style timestamps - (and (= (car ntime) (car mtime)) - (= (cdr ntime) (cadr mtime)))))))) - - - - -;;; ===================================================================== -;;; Undo-in-region utility functions - -;; `undo-elt-in-region' uses this as a dynamically-scoped variable -(defvar undo-adjusted-markers nil) - - -(defun undo-tree-pull-undo-in-region-branch (start end) - ;; Pull out entries from undo changesets to create a new undo-in-region - ;; branch, which undoes changeset entries lying between START and END first, - ;; followed by remaining entries from the changesets, before rejoining the - ;; existing undo tree history. Repeated calls will, if appropriate, extend - ;; the current undo-in-region branch rather than creating a new one. - - ;; if we're just reverting the last redo-in-region, we don't need to - ;; manipulate the undo tree at all - (if (undo-tree-reverting-redo-in-region-p start end) - t ; return t to indicate success - - ;; We build the `region-changeset' and `delta-list' lists forwards, using - ;; pointers `r' and `d' to the penultimate element of the list. So that we - ;; don't have to treat the first element differently, we prepend a dummy - ;; leading nil to the lists, and have the pointers point to that - ;; initially. - ;; Note: using '(nil) instead of (list nil) in the `let*' results in - ;; bizarre errors when the code is byte-compiled, where parts of the - ;; lists appear to survive across different calls to this function. - ;; An obscure byte-compiler bug, perhaps? - (let* ((region-changeset (list nil)) - (r region-changeset) - (delta-list (list nil)) - (d delta-list) - (node (undo-tree-current buffer-undo-tree)) - (repeated-undo-in-region - (undo-tree-repeated-undo-in-region-p start end)) - undo-adjusted-markers ; `undo-elt-in-region' expects this - fragment splice original-fragment original-splice original-current - got-visible-elt undo-list elt) - - ;; --- initialisation --- - (cond - ;; if this is a repeated undo in the same region, start pulling changes - ;; from NODE at which undo-in-region branch iss attached, and detatch - ;; the branch, using it as initial FRAGMENT of branch being constructed - (repeated-undo-in-region - (setq original-current node - fragment (car (undo-tree-node-next node)) - splice node) - ;; undo up to node at which undo-in-region branch is attached - ;; (recognizable as first node with more than one branch) - (let ((mark-active nil)) - (while (= (length (undo-tree-node-next node)) 1) - (undo-tree-undo-1) - (setq fragment node - node (undo-tree-current buffer-undo-tree)))) - (when (eq splice node) (setq splice nil)) - ;; detatch undo-in-region branch - (setf (undo-tree-node-next node) - (delq fragment (undo-tree-node-next node)) - (undo-tree-node-previous fragment) nil - original-fragment fragment - original-splice node)) - - ;; if this is a new undo-in-region, initial FRAGMENT is a copy of all - ;; nodes below the current one in the active branch - ((undo-tree-node-next node) - (setq fragment (undo-tree-make-node nil nil) - splice fragment) - (while (setq node (nth (undo-tree-node-branch node) - (undo-tree-node-next node))) - (push (undo-tree-make-node - splice - (undo-copy-list (undo-tree-node-undo node)) - (undo-copy-list (undo-tree-node-redo node))) - (undo-tree-node-next splice)) - (setq splice (car (undo-tree-node-next splice)))) - (setq fragment (car (undo-tree-node-next fragment)) - splice nil - node (undo-tree-current buffer-undo-tree)))) - - - ;; --- pull undo-in-region elements into branch --- - ;; work backwards up tree, pulling out undo elements within region until - ;; we've got one that undoes a visible change (insertion or deletion) - (catch 'abort - (while (and (not got-visible-elt) node (undo-tree-node-undo node)) - ;; we cons a dummy nil element on the front of the changeset so that - ;; we can conveniently remove the first (real) element from the - ;; changeset if we need to; the leading nil is removed once we're - ;; done with this changeset - (setq undo-list (cons nil (undo-copy-list (undo-tree-node-undo node))) - elt (cadr undo-list)) - (if fragment - (progn - (setq fragment (undo-tree-grow-backwards fragment undo-list)) - (unless splice (setq splice fragment))) - (setq fragment (undo-tree-make-node nil undo-list)) - (setq splice fragment)) - - (while elt - (cond - ;; keep elements within region - ((undo-elt-in-region elt start end) - ;; set flag if kept element is visible (insertion or deletion) - (when (and (consp elt) - (or (stringp (car elt)) (integerp (car elt)))) - (setq got-visible-elt t)) - ;; adjust buffer positions in elements previously undone before - ;; kept element, as kept element will now be undone first - (undo-tree-adjust-elements-to-elt splice elt) - ;; move kept element to undo-in-region changeset, adjusting its - ;; buffer position as it will now be undone first - (setcdr r (list (undo-tree-apply-deltas elt (cdr delta-list)))) - (setq r (cdr r)) - (setcdr undo-list (cddr undo-list))) - - ;; discard "was unmodified" elements - ;; FIXME: deal properly with these - ((and (consp elt) (eq (car elt) t)) - (setcdr undo-list (cddr undo-list))) - - ;; if element crosses region, we can't pull any more elements - ((undo-elt-crosses-region elt start end) - ;; if we've found a visible element, it must be earlier in - ;; current node's changeset; stop pulling elements (null - ;; `undo-list' and non-nil `got-visible-elt' cause loop to exit) - (if got-visible-elt - (setq undo-list nil) - ;; if we haven't found a visible element yet, pulling - ;; undo-in-region branch has failed - (setq region-changeset nil) - (throw 'abort t))) - - ;; if rejecting element, add its delta (if any) to the list - (t - (let ((delta (undo-delta elt))) - (when (/= 0 (cdr delta)) - (setcdr d (list delta)) - (setq d (cdr d)))) - (setq undo-list (cdr undo-list)))) - - ;; process next element of current changeset - (setq elt (cadr undo-list))) - - ;; if there are remaining elements in changeset, remove dummy nil - ;; from front - (if (cadr (undo-tree-node-undo fragment)) - (pop (undo-tree-node-undo fragment)) - ;; otherwise, if we've kept all elements in changeset, discard - ;; empty changeset - (when (eq splice fragment) (setq splice nil)) - (setq fragment (car (undo-tree-node-next fragment)))) - ;; process changeset from next node up the tree - (setq node (undo-tree-node-previous node)))) - - ;; pop dummy nil from front of `region-changeset' - (setq region-changeset (cdr region-changeset)) - - - ;; --- integrate branch into tree --- - ;; if no undo-in-region elements were found, restore undo tree - (if (null region-changeset) - (when original-current - (push original-fragment (undo-tree-node-next original-splice)) - (setf (undo-tree-node-branch original-splice) 0 - (undo-tree-node-previous original-fragment) original-splice) - (let ((mark-active nil)) - (while (not (eq (undo-tree-current buffer-undo-tree) - original-current)) - (undo-tree-redo-1))) - nil) ; return nil to indicate failure - - ;; otherwise... - ;; need to undo up to node where new branch will be attached, to - ;; ensure redo entries are populated, and then redo back to where we - ;; started - (let ((mark-active nil) - (current (undo-tree-current buffer-undo-tree))) - (while (not (eq (undo-tree-current buffer-undo-tree) node)) - (undo-tree-undo-1)) - (while (not (eq (undo-tree-current buffer-undo-tree) current)) - (undo-tree-redo-1))) - - (cond - ;; if there's no remaining fragment, just create undo-in-region node - ;; and attach it to parent of last node from which elements were - ;; pulled - ((null fragment) - (setq fragment (undo-tree-make-node node region-changeset)) - (push fragment (undo-tree-node-next node)) - (setf (undo-tree-node-branch node) 0) - ;; set current node to undo-in-region node - (setf (undo-tree-current buffer-undo-tree) fragment)) - - ;; if no splice point has been set, add undo-in-region node to top of - ;; fragment and attach it to parent of last node from which elements - ;; were pulled - ((null splice) - (setq fragment (undo-tree-grow-backwards fragment region-changeset)) - (push fragment (undo-tree-node-next node)) - (setf (undo-tree-node-branch node) 0 - (undo-tree-node-previous fragment) node) - ;; set current node to undo-in-region node - (setf (undo-tree-current buffer-undo-tree) fragment)) - - ;; if fragment contains nodes, attach fragment to parent of last node - ;; from which elements were pulled, and splice in undo-in-region node - (t - (setf (undo-tree-node-previous fragment) node) - (push fragment (undo-tree-node-next node)) - (setf (undo-tree-node-branch node) 0) - ;; if this is a repeated undo-in-region, then we've left the current - ;; node at the original splice-point; we need to set the current - ;; node to the equivalent node on the undo-in-region branch and redo - ;; back to where we started - (when repeated-undo-in-region - (setf (undo-tree-current buffer-undo-tree) - (undo-tree-node-previous original-fragment)) - (let ((mark-active nil)) - (while (not (eq (undo-tree-current buffer-undo-tree) splice)) - (undo-tree-redo-1 nil 'preserve-undo)))) - ;; splice new undo-in-region node into fragment - (setq node (undo-tree-make-node nil region-changeset)) - (undo-tree-splice-node node splice) - ;; set current node to undo-in-region node - (setf (undo-tree-current buffer-undo-tree) node))) - - ;; update undo-tree size - (setq node (undo-tree-node-previous fragment)) - (while (progn - (and (setq node (car (undo-tree-node-next node))) - (not (eq node original-fragment)) - (incf (undo-tree-count buffer-undo-tree)) - (incf (undo-tree-size buffer-undo-tree) - (+ (undo-list-byte-size (undo-tree-node-undo node)) - (undo-list-byte-size (undo-tree-node-redo node))))))) - t) ; indicate undo-in-region branch was successfully pulled - ))) - - - -(defun undo-tree-pull-redo-in-region-branch (start end) - ;; Pull out entries from redo changesets to create a new redo-in-region - ;; branch, which redoes changeset entries lying between START and END first, - ;; followed by remaining entries from the changesets. Repeated calls will, - ;; if appropriate, extend the current redo-in-region branch rather than - ;; creating a new one. - - ;; if we're just reverting the last undo-in-region, we don't need to - ;; manipulate the undo tree at all - (if (undo-tree-reverting-undo-in-region-p start end) - t ; return t to indicate success - - ;; We build the `region-changeset' and `delta-list' lists forwards, using - ;; pointers `r' and `d' to the penultimate element of the list. So that we - ;; don't have to treat the first element differently, we prepend a dummy - ;; leading nil to the lists, and have the pointers point to that - ;; initially. - ;; Note: using '(nil) instead of (list nil) in the `let*' causes bizarre - ;; errors when the code is byte-compiled, where parts of the lists - ;; appear to survive across different calls to this function. An - ;; obscure byte-compiler bug, perhaps? - (let* ((region-changeset (list nil)) - (r region-changeset) - (delta-list (list nil)) - (d delta-list) - (node (undo-tree-current buffer-undo-tree)) - (repeated-redo-in-region - (undo-tree-repeated-redo-in-region-p start end)) - undo-adjusted-markers ; `undo-elt-in-region' expects this - fragment splice got-visible-elt redo-list elt) - - ;; --- inisitalisation --- - (cond - ;; if this is a repeated redo-in-region, detach fragment below current - ;; node - (repeated-redo-in-region - (when (setq fragment (car (undo-tree-node-next node))) - (setf (undo-tree-node-previous fragment) nil - (undo-tree-node-next node) - (delq fragment (undo-tree-node-next node))))) - ;; if this is a new redo-in-region, initial fragment is a copy of all - ;; nodes below the current one in the active branch - ((undo-tree-node-next node) - (setq fragment (undo-tree-make-node nil nil) - splice fragment) - (while (setq node (nth (undo-tree-node-branch node) - (undo-tree-node-next node))) - (push (undo-tree-make-node - splice nil - (undo-copy-list (undo-tree-node-redo node))) - (undo-tree-node-next splice)) - (setq splice (car (undo-tree-node-next splice)))) - (setq fragment (car (undo-tree-node-next fragment))))) - - - ;; --- pull redo-in-region elements into branch --- - ;; work down fragment, pulling out redo elements within region until - ;; we've got one that redoes a visible change (insertion or deletion) - (setq node fragment) - (catch 'abort - (while (and (not got-visible-elt) node (undo-tree-node-redo node)) - ;; we cons a dummy nil element on the front of the changeset so that - ;; we can conveniently remove the first (real) element from the - ;; changeset if we need to; the leading nil is removed once we're - ;; done with this changeset - (setq redo-list (push nil (undo-tree-node-redo node)) - elt (cadr redo-list)) - (while elt - (cond - ;; keep elements within region - ((undo-elt-in-region elt start end) - ;; set flag if kept element is visible (insertion or deletion) - (when (and (consp elt) - (or (stringp (car elt)) (integerp (car elt)))) - (setq got-visible-elt t)) - ;; adjust buffer positions in elements previously redone before - ;; kept element, as kept element will now be redone first - (undo-tree-adjust-elements-to-elt fragment elt t) - ;; move kept element to redo-in-region changeset, adjusting its - ;; buffer position as it will now be redone first - (setcdr r (list (undo-tree-apply-deltas elt (cdr delta-list) -1))) - (setq r (cdr r)) - (setcdr redo-list (cddr redo-list))) - - ;; discard "was unmodified" elements - ;; FIXME: deal properly with these - ((and (consp elt) (eq (car elt) t)) - (setcdr redo-list (cddr redo-list))) - - ;; if element crosses region, we can't pull any more elements - ((undo-elt-crosses-region elt start end) - ;; if we've found a visible element, it must be earlier in - ;; current node's changeset; stop pulling elements (null - ;; `redo-list' and non-nil `got-visible-elt' cause loop to exit) - (if got-visible-elt - (setq redo-list nil) - ;; if we haven't found a visible element yet, pulling - ;; redo-in-region branch has failed - (setq region-changeset nil) - (throw 'abort t))) - - ;; if rejecting element, add its delta (if any) to the list - (t - (let ((delta (undo-delta elt))) - (when (/= 0 (cdr delta)) - (setcdr d (list delta)) - (setq d (cdr d)))) - (setq redo-list (cdr redo-list)))) - - ;; process next element of current changeset - (setq elt (cadr redo-list))) - - ;; if there are remaining elements in changeset, remove dummy nil - ;; from front - (if (cadr (undo-tree-node-redo node)) - (pop (undo-tree-node-undo node)) - ;; otherwise, if we've kept all elements in changeset, discard - ;; empty changeset - (if (eq fragment node) - (setq fragment (car (undo-tree-node-next fragment))) - (undo-tree-snip-node node))) - ;; process changeset from next node in fragment - (setq node (car (undo-tree-node-next node))))) - - ;; pop dummy nil from front of `region-changeset' - (setq region-changeset (cdr region-changeset)) - - - ;; --- integrate branch into tree --- - (setq node (undo-tree-current buffer-undo-tree)) - ;; if no redo-in-region elements were found, restore undo tree - (if (null (car region-changeset)) - (when (and repeated-redo-in-region fragment) - (push fragment (undo-tree-node-next node)) - (setf (undo-tree-node-branch node) 0 - (undo-tree-node-previous fragment) node) - nil) ; return nil to indicate failure - - ;; otherwise, add redo-in-region node to top of fragment, and attach - ;; it below current node - (setq fragment - (if fragment - (undo-tree-grow-backwards fragment nil region-changeset) - (undo-tree-make-node nil nil region-changeset))) - (push fragment (undo-tree-node-next node)) - (setf (undo-tree-node-branch node) 0 - (undo-tree-node-previous fragment) node) - ;; update undo-tree size - (unless repeated-redo-in-region - (setq node fragment) - (while (and (setq node (car (undo-tree-node-next node))) - (incf (undo-tree-count buffer-undo-tree)) - (incf (undo-tree-size buffer-undo-tree) - (undo-list-byte-size - (undo-tree-node-redo node)))))) - (incf (undo-tree-size buffer-undo-tree) - (undo-list-byte-size (undo-tree-node-redo fragment))) - t) ; indicate redo-in-region branch was successfully pulled - ))) - - - -(defun undo-tree-adjust-elements-to-elt (node undo-elt &optional below) - "Adjust buffer positions of undo elements, starting at NODE's -and going up the tree (or down the active branch if BELOW is -non-nil) and through the nodes' undo elements until we reach -UNDO-ELT. UNDO-ELT must appear somewhere in the undo changeset -of either NODE itself or some node above it in the tree." - (let ((delta (list (undo-delta undo-elt))) - (undo-list (undo-tree-node-undo node))) - ;; adjust elements until we reach UNDO-ELT - (while (and (car undo-list) - (not (eq (car undo-list) undo-elt))) - (setcar undo-list - (undo-tree-apply-deltas (car undo-list) delta -1)) - ;; move to next undo element in list, or to next node if we've run out - ;; of elements - (unless (car (setq undo-list (cdr undo-list))) - (if below - (setq node (nth (undo-tree-node-branch node) - (undo-tree-node-next node))) - (setq node (undo-tree-node-previous node))) - (setq undo-list (undo-tree-node-undo node)))))) - - - -(defun undo-tree-apply-deltas (undo-elt deltas &optional sgn) - ;; Apply DELTAS in order to UNDO-ELT, multiplying deltas by SGN - ;; (only useful value for SGN is -1). - (let (position offset) - (dolist (delta deltas) - (setq position (car delta) - offset (* (cdr delta) (or sgn 1))) - (cond - ;; POSITION - ((integerp undo-elt) - (when (>= undo-elt position) - (setq undo-elt (- undo-elt offset)))) - ;; nil (or any other atom) - ((atom undo-elt)) - ;; (TEXT . POSITION) - ((stringp (car undo-elt)) - (let ((text-pos (abs (cdr undo-elt))) - (point-at-end (< (cdr undo-elt) 0))) - (if (>= text-pos position) - (setcdr undo-elt (* (if point-at-end -1 1) - (- text-pos offset)))))) - ;; (BEGIN . END) - ((integerp (car undo-elt)) - (when (>= (car undo-elt) position) - (setcar undo-elt (- (car undo-elt) offset)) - (setcdr undo-elt (- (cdr undo-elt) offset)))) - ;; (nil PROPERTY VALUE BEG . END) - ((null (car undo-elt)) - (let ((tail (nthcdr 3 undo-elt))) - (when (>= (car tail) position) - (setcar tail (- (car tail) offset)) - (setcdr tail (- (cdr tail) offset))))) - )) - undo-elt)) - - - -(defun undo-tree-repeated-undo-in-region-p (start end) - ;; Return non-nil if undo-in-region between START and END is a repeated - ;; undo-in-region - (let ((node (undo-tree-current buffer-undo-tree))) - (and (setq node - (nth (undo-tree-node-branch node) (undo-tree-node-next node))) - (eq (undo-tree-node-undo-beginning node) start) - (eq (undo-tree-node-undo-end node) end)))) - - -(defun undo-tree-repeated-redo-in-region-p (start end) - ;; Return non-nil if undo-in-region between START and END is a repeated - ;; undo-in-region - (let ((node (undo-tree-current buffer-undo-tree))) - (and (eq (undo-tree-node-redo-beginning node) start) - (eq (undo-tree-node-redo-end node) end)))) - - -;; Return non-nil if undo-in-region between START and END is simply -;; reverting the last redo-in-region -(defalias 'undo-tree-reverting-undo-in-region-p - 'undo-tree-repeated-undo-in-region-p) - - -;; Return non-nil if redo-in-region between START and END is simply -;; reverting the last undo-in-region -(defalias 'undo-tree-reverting-redo-in-region-p - 'undo-tree-repeated-redo-in-region-p) - - - - -;;; ===================================================================== -;;; Undo-tree commands - -;;;###autoload -(define-minor-mode undo-tree-mode - "Toggle undo-tree mode. -With no argument, this command toggles the mode. -A positive prefix argument turns the mode on. -A negative prefix argument turns it off. - -Undo-tree-mode replaces Emacs' standard undo feature with a more -powerful yet easier to use version, that treats the undo history -as what it is: a tree. - -The following keys are available in `undo-tree-mode': - - \\{undo-tree-map} - -Within the undo-tree visualizer, the following keys are available: - - \\{undo-tree-visualizer-map}" - - nil ; init value - undo-tree-mode-lighter ; lighter - undo-tree-map ; keymap - - ;; if disabling `undo-tree-mode', rebuild `buffer-undo-list' from tree so - ;; Emacs undo can work - (if (not undo-tree-mode) - (undo-list-rebuild-from-tree) - (setq buffer-undo-tree nil))) - - -(defun turn-on-undo-tree-mode (&optional print-message) - "Enable `undo-tree-mode' in the current buffer, when appropriate. -Some major modes implement their own undo system, which should -not normally be overridden by `undo-tree-mode'. This command does -not enable `undo-tree-mode' in such buffers. If you want to force -`undo-tree-mode' to be enabled regardless, use (undo-tree-mode 1) -instead. - -The heuristic used to detect major modes in which -`undo-tree-mode' should not be used is to check whether either -the `undo' command has been remapped, or the default undo -keybindings (C-/ and C-_) have been overridden somewhere other -than in the global map. In addition, `undo-tree-mode' will not be -enabled if the buffer's `major-mode' appears in -`undo-tree-incompatible-major-modes'." - (interactive "p") - (if (or (key-binding [remap undo]) - (undo-tree-overridden-undo-bindings-p) - (memq major-mode undo-tree-incompatible-major-modes)) - (when print-message - (message "Buffer does not support undo-tree-mode;\ - undo-tree-mode NOT enabled")) - (undo-tree-mode 1))) - - -(defun undo-tree-overridden-undo-bindings-p () - "Returns t if default undo bindings are overridden, nil otherwise. -Checks if either of the default undo key bindings (\"C-/\" or -\"C-_\") are overridden in the current buffer by any keymap other -than the global one. (So global redefinitions of the default undo -key bindings do not count.)" - (let ((binding1 (lookup-key (current-global-map) [?\C-/])) - (binding2 (lookup-key (current-global-map) [?\C-_]))) - (global-set-key [?\C-/] 'undo) - (global-set-key [?\C-_] 'undo) - (unwind-protect - (or (and (key-binding [?\C-/]) - (not (eq (key-binding [?\C-/]) 'undo))) - (and (key-binding [?\C-_]) - (not (eq (key-binding [?\C-_]) 'undo)))) - (global-set-key [?\C-/] binding1) - (global-set-key [?\C-_] binding2)))) - - -;;;###autoload -(define-globalized-minor-mode global-undo-tree-mode - undo-tree-mode turn-on-undo-tree-mode) - - - -(defun undo-tree-undo (&optional arg) - "Undo changes. -Repeat this command to undo more changes. -A numeric ARG serves as a repeat count. - -In Transient Mark mode when the mark is active, only undo changes -within the current region. Similarly, when not in Transient Mark -mode, just \\[universal-argument] as an argument limits undo to -changes within the current region." - (interactive "*P") - ;; throw error if undo is disabled in buffer - (when (eq buffer-undo-list t) (error "No undo information in this buffer")) - (undo-tree-undo-1 arg) - ;; inform user if at branch point - (when (> (undo-tree-num-branches) 1) (message "Undo branch point!"))) - - -(defun undo-tree-undo-1 (&optional arg preserve-redo preserve-timestamps) - ;; Internal undo function. An active mark in `transient-mark-mode', or - ;; non-nil ARG otherwise, enables undo-in-region. Non-nil PRESERVE-REDO - ;; causes the existing redo record to be preserved, rather than replacing it - ;; with the new one generated by undoing. Non-nil PRESERVE-TIMESTAMPS - ;; disables updating of timestamps in visited undo-tree nodes. (This latter - ;; should *only* be used when temporarily visiting another undo state and - ;; immediately returning to the original state afterwards. Otherwise, it - ;; could cause history-discarding errors.) - (let ((undo-in-progress t) - (undo-in-region (and undo-tree-enable-undo-in-region - (or (region-active-p) - (and arg (not (numberp arg)))))) - pos current) - ;; transfer entries accumulated in `buffer-undo-list' to - ;; `buffer-undo-tree' - (undo-list-transfer-to-tree) - - (dotimes (i (or (and (numberp arg) (prefix-numeric-value arg)) 1)) - ;; check if at top of undo tree - (unless (undo-tree-node-previous (undo-tree-current buffer-undo-tree)) - (error "No further undo information")) - - ;; if region is active, or a non-numeric prefix argument was supplied, - ;; try to pull out a new branch of changes affecting the region - (when (and undo-in-region - (not (undo-tree-pull-undo-in-region-branch - (region-beginning) (region-end)))) - (error "No further undo information for region")) - - ;; remove any GC'd elements from node's undo list - (setq current (undo-tree-current buffer-undo-tree)) - (decf (undo-tree-size buffer-undo-tree) - (undo-list-byte-size (undo-tree-node-undo current))) - (setf (undo-tree-node-undo current) - (undo-list-clean-GCd-elts (undo-tree-node-undo current))) - (incf (undo-tree-size buffer-undo-tree) - (undo-list-byte-size (undo-tree-node-undo current))) - ;; undo one record from undo tree - (when undo-in-region - (setq pos (set-marker (make-marker) (point))) - (set-marker-insertion-type pos t)) - (primitive-undo 1 (undo-tree-copy-list (undo-tree-node-undo current))) - (undo-boundary) - - ;; if preserving old redo record, discard new redo entries that - ;; `primitive-undo' has added to `buffer-undo-list', and remove any GC'd - ;; elements from node's redo list - (if preserve-redo - (progn - (undo-list-pop-changeset) - (decf (undo-tree-size buffer-undo-tree) - (undo-list-byte-size (undo-tree-node-redo current))) - (setf (undo-tree-node-redo current) - (undo-list-clean-GCd-elts (undo-tree-node-redo current))) - (incf (undo-tree-size buffer-undo-tree) - (undo-list-byte-size (undo-tree-node-redo current)))) - ;; otherwise, record redo entries that `primitive-undo' has added to - ;; `buffer-undo-list' in current node's redo record, replacing - ;; existing entry if one already exists - (decf (undo-tree-size buffer-undo-tree) - (undo-list-byte-size (undo-tree-node-redo current))) - (setf (undo-tree-node-redo current) - (undo-list-pop-changeset 'discard-pos)) - (incf (undo-tree-size buffer-undo-tree) - (undo-list-byte-size (undo-tree-node-redo current)))) - - ;; rewind current node and update timestamp - (setf (undo-tree-current buffer-undo-tree) - (undo-tree-node-previous (undo-tree-current buffer-undo-tree))) - (unless preserve-timestamps - (setf (undo-tree-node-timestamp (undo-tree-current buffer-undo-tree)) - (current-time))) - - ;; if undoing-in-region, record current node, region and direction so we - ;; can tell if undo-in-region is repeated, and re-activate mark if in - ;; `transient-mark-mode'; if not, erase any leftover data - (if (not undo-in-region) - (undo-tree-node-clear-region-data current) - (goto-char pos) - ;; note: we deliberately want to store the region information in the - ;; node *below* the now current one - (setf (undo-tree-node-undo-beginning current) (region-beginning) - (undo-tree-node-undo-end current) (region-end)) - (set-marker pos nil))) - - ;; undo deactivates mark unless undoing-in-region - (setq deactivate-mark (not undo-in-region)))) - - - -(defun undo-tree-redo (&optional arg) - "Redo changes. A numeric ARG serves as a repeat count. - -In Transient Mark mode when the mark is active, only redo changes -within the current region. Similarly, when not in Transient Mark -mode, just \\[universal-argument] as an argument limits redo to -changes within the current region." - (interactive "*P") - ;; throw error if undo is disabled in buffer - (when (eq buffer-undo-list t) (error "No undo information in this buffer")) - (undo-tree-redo-1 arg) - ;; inform user if at branch point - (when (> (undo-tree-num-branches) 1) (message "Undo branch point!"))) - - -(defun undo-tree-redo-1 (&optional arg preserve-undo preserve-timestamps) - ;; Internal redo function. An active mark in `transient-mark-mode', or - ;; non-nil ARG otherwise, enables undo-in-region. Non-nil PRESERVE-UNDO - ;; causes the existing redo record to be preserved, rather than replacing it - ;; with the new one generated by undoing. Non-nil PRESERVE-TIMESTAMPS - ;; disables updating of timestamps in visited undo-tree nodes. (This latter - ;; should *only* be used when temporarily visiting another undo state and - ;; immediately returning to the original state afterwards. Otherwise, it - ;; could cause history-discarding errors.) - (let ((undo-in-progress t) - (redo-in-region (and undo-tree-enable-undo-in-region - (or (region-active-p) - (and arg (not (numberp arg)))))) - pos current) - ;; transfer entries accumulated in `buffer-undo-list' to - ;; `buffer-undo-tree' - (undo-list-transfer-to-tree) - - (dotimes (i (or (and (numberp arg) (prefix-numeric-value arg)) 1)) - ;; check if at bottom of undo tree - (when (null (undo-tree-node-next (undo-tree-current buffer-undo-tree))) - (error "No further redo information")) - - ;; if region is active, or a non-numeric prefix argument was supplied, - ;; try to pull out a new branch of changes affecting the region - (when (and redo-in-region - (not (undo-tree-pull-redo-in-region-branch - (region-beginning) (region-end)))) - (error "No further redo information for region")) - - ;; get next node (but DON'T advance current node in tree yet, in case - ;; redoing fails) - (setq current (undo-tree-current buffer-undo-tree) - current (nth (undo-tree-node-branch current) - (undo-tree-node-next current))) - ;; remove any GC'd elements from node's redo list - (decf (undo-tree-size buffer-undo-tree) - (undo-list-byte-size (undo-tree-node-redo current))) - (setf (undo-tree-node-redo current) - (undo-list-clean-GCd-elts (undo-tree-node-redo current))) - (incf (undo-tree-size buffer-undo-tree) - (undo-list-byte-size (undo-tree-node-redo current))) - ;; redo one record from undo tree - (when redo-in-region - (setq pos (set-marker (make-marker) (point))) - (set-marker-insertion-type pos t)) - (primitive-undo 1 (undo-tree-copy-list (undo-tree-node-redo current))) - (undo-boundary) - ;; advance current node in tree - (setf (undo-tree-current buffer-undo-tree) current) - - ;; if preserving old undo record, discard new undo entries that - ;; `primitive-undo' has added to `buffer-undo-list', and remove any GC'd - ;; elements from node's redo list - (if preserve-undo - (progn - (undo-list-pop-changeset) - (decf (undo-tree-size buffer-undo-tree) - (undo-list-byte-size (undo-tree-node-undo current))) - (setf (undo-tree-node-undo current) - (undo-list-clean-GCd-elts (undo-tree-node-undo current))) - (incf (undo-tree-size buffer-undo-tree) - (undo-list-byte-size (undo-tree-node-undo current)))) - ;; otherwise, record undo entries that `primitive-undo' has added to - ;; `buffer-undo-list' in current node's undo record, replacing - ;; existing entry if one already exists - (decf (undo-tree-size buffer-undo-tree) - (undo-list-byte-size (undo-tree-node-undo current))) - (setf (undo-tree-node-undo current) - (undo-list-pop-changeset 'discard-pos)) - (incf (undo-tree-size buffer-undo-tree) - (undo-list-byte-size (undo-tree-node-undo current)))) - - ;; update timestamp - (unless preserve-timestamps - (setf (undo-tree-node-timestamp current) (current-time))) - - ;; if redoing-in-region, record current node, region and direction so we - ;; can tell if redo-in-region is repeated, and re-activate mark if in - ;; `transient-mark-mode' - (if (not redo-in-region) - (undo-tree-node-clear-region-data current) - (goto-char pos) - (setf (undo-tree-node-redo-beginning current) (region-beginning) - (undo-tree-node-redo-end current) (region-end)) - (set-marker pos nil))) - - ;; redo deactivates the mark unless redoing-in-region - (setq deactivate-mark (not redo-in-region)))) - - - -(defun undo-tree-switch-branch (branch) - "Switch to a different BRANCH of the undo tree. -This will affect which branch to descend when *redoing* changes -using `undo-tree-redo'." - (interactive (list (or (and prefix-arg (prefix-numeric-value prefix-arg)) - (and (not (eq buffer-undo-list t)) - (or (undo-list-transfer-to-tree) t) - (let ((b (undo-tree-node-branch - (undo-tree-current - buffer-undo-tree)))) - (cond - ;; switch to other branch if only 2 - ((= (undo-tree-num-branches) 2) (- 1 b)) - ;; prompt if more than 2 - ((> (undo-tree-num-branches) 2) - (read-number - (format "Branch (0-%d, on %d): " - (1- (undo-tree-num-branches)) b))) - )))))) - ;; throw error if undo is disabled in buffer - (when (eq buffer-undo-list t) (error "No undo information in this buffer")) - ;; sanity check branch number - (when (<= (undo-tree-num-branches) 1) (error "Not at undo branch point")) - (when (or (< branch 0) (> branch (1- (undo-tree-num-branches)))) - (error "Invalid branch number")) - ;; transfer entries accumulated in `buffer-undo-list' to `buffer-undo-tree' - (undo-list-transfer-to-tree) - ;; switch branch - (setf (undo-tree-node-branch (undo-tree-current buffer-undo-tree)) - branch) - (message "Switched to branch %d" branch)) - - -(defun undo-tree-set (node &optional preserve-timestamps) - ;; Set buffer to state corresponding to NODE. Returns intersection point - ;; between path back from current node and path back from selected NODE. - ;; Non-nil PRESERVE-TIMESTAMPS disables updating of timestamps in visited - ;; undo-tree nodes. (This should *only* be used when temporarily visiting - ;; another undo state and immediately returning to the original state - ;; afterwards. Otherwise, it could cause history-discarding errors.) - (let ((path (make-hash-table :test 'eq)) - (n node)) - (puthash (undo-tree-root buffer-undo-tree) t path) - ;; build list of nodes leading back from selected node to root, updating - ;; branches as we go to point down to selected node - (while (progn - (puthash n t path) - (when (undo-tree-node-previous n) - (setf (undo-tree-node-branch (undo-tree-node-previous n)) - (undo-tree-position - n (undo-tree-node-next (undo-tree-node-previous n)))) - (setq n (undo-tree-node-previous n))))) - ;; work backwards from current node until we intersect path back from - ;; selected node - (setq n (undo-tree-current buffer-undo-tree)) - (while (not (gethash n path)) - (setq n (undo-tree-node-previous n))) - ;; ascend tree until intersection node - (while (not (eq (undo-tree-current buffer-undo-tree) n)) - (undo-tree-undo-1 nil nil preserve-timestamps)) - ;; descend tree until selected node - (while (not (eq (undo-tree-current buffer-undo-tree) node)) - (undo-tree-redo-1 nil nil preserve-timestamps)) - n)) ; return intersection node - - - -(defun undo-tree-save-state-to-register (register) - "Store current undo-tree state to REGISTER. -The saved state can be restored using -`undo-tree-restore-state-from-register'. -Argument is a character, naming the register." - (interactive "cUndo-tree state to register: ") - ;; throw error if undo is disabled in buffer - (when (eq buffer-undo-list t) (error "No undo information in this buffer")) - ;; transfer entries accumulated in `buffer-undo-list' to `buffer-undo-tree' - (undo-list-transfer-to-tree) - ;; save current node to REGISTER - (set-register - register (registerv-make - (undo-tree-make-register-data - (current-buffer) (undo-tree-current buffer-undo-tree)) - :print-func 'undo-tree-register-data-print-func)) - ;; record REGISTER in current node, for visualizer - (setf (undo-tree-node-register (undo-tree-current buffer-undo-tree)) - register)) - - - -(defun undo-tree-restore-state-from-register (register) - "Restore undo-tree state from REGISTER. -The state must be saved using `undo-tree-save-state-to-register'. -Argument is a character, naming the register." - (interactive "*cRestore undo-tree state from register: ") - ;; throw error if undo is disabled in buffer, or if register doesn't contain - ;; an undo-tree node - (let ((data (registerv-data (get-register register)))) - (cond - ((eq buffer-undo-list t) - (error "No undo information in this buffer")) - ((not (undo-tree-register-data-p data)) - (error "Register doesn't contain undo-tree state")) - ((not (eq (current-buffer) (undo-tree-register-data-buffer data))) - (error "Register contains undo-tree state for a different buffer"))) - ;; transfer entries accumulated in `buffer-undo-list' to `buffer-undo-tree' - (undo-list-transfer-to-tree) - ;; restore buffer state corresponding to saved node - (undo-tree-set (undo-tree-register-data-node data)))) - - - - -;;; ===================================================================== -;;; Persistent storage commands - -(defun undo-tree-make-history-save-file-name (file) - "Create the undo history file name for FILE. -Normally this is the file's name with `.' prepended and -`~undo-tree~' appended. - -A match for FILE is sought in `undo-tree-history-directory-alist'; -see the documentation of that variable. If the directory for the -backup doesn't exist, it is created." - (let* ((backup-directory-alist undo-tree-history-directory-alist) - (name (make-backup-file-name-1 file))) - (concat (file-name-directory name) "." (file-name-nondirectory name) - "~undo-tree~"))) - - -(defun undo-tree-save-history (&optional filename overwrite) - "Store undo-tree history to file. - -If optional argument FILENAME is omitted, default save file is -\"..~undo-tree\" if buffer is visiting a file. -Otherwise, prompt for one. - -If OVERWRITE is non-nil, any existing file will be overwritten -without asking for confirmation." - (interactive) - (when (eq buffer-undo-list t) (error "No undo information in this buffer")) - (undo-list-transfer-to-tree) - (when (and buffer-undo-tree (not (eq buffer-undo-tree t))) - (condition-case nil - (undo-tree-kill-visualizer) - (error (undo-tree-clear-visualizer-data buffer-undo-tree))) - (let ((buff (current-buffer)) - tree) - ;; get filename - (unless filename - (setq filename - (if buffer-file-name - (undo-tree-make-history-save-file-name buffer-file-name) - (expand-file-name (read-file-name "File to save in: ") nil)))) - (when (or (not (file-exists-p filename)) - overwrite - (yes-or-no-p (format "Overwrite \"%s\"? " filename))) - (unwind-protect - (progn - ;; transform undo-tree into non-circular structure, and make - ;; temporary copy - (undo-tree-decircle buffer-undo-tree) - (setq tree (copy-undo-tree buffer-undo-tree)) - ;; discard undo-tree object pool before saving - (setf (undo-tree-object-pool tree) nil) - ;; print undo-tree to file - ;; NOTE: We use `with-temp-buffer' instead of `with-temp-file' - ;; to allow `auto-compression-mode' to take effect, in - ;; case user has overridden or advised the default - ;; `undo-tree-make-history-save-file-name' to add a - ;; compressed file extension. - (with-auto-compression-mode - (with-temp-buffer - (prin1 (sha1 buff) (current-buffer)) - (terpri (current-buffer)) - (let ((print-circle t)) (prin1 tree (current-buffer))) - (write-region nil nil filename)))) - ;; restore circular undo-tree data structure - (undo-tree-recircle buffer-undo-tree)) - )))) - - - -(defun undo-tree-load-history (&optional filename noerror) - "Load undo-tree history from file. - -If optional argument FILENAME is null, default load file is -\"..~undo-tree\" if buffer is visiting a file. -Otherwise, prompt for one. - -If optional argument NOERROR is non-nil, return nil instead of -signaling an error if file is not found." - (interactive) - ;; get filename - (unless filename - (setq filename - (if buffer-file-name - (undo-tree-make-history-save-file-name buffer-file-name) - (expand-file-name (read-file-name "File to load from: ") nil)))) - - ;; attempt to read undo-tree from FILENAME - (catch 'load-error - (unless (file-exists-p filename) - (if noerror - (throw 'load-error nil) - (error "File \"%s\" does not exist; could not load undo-tree history" - filename))) - (let (buff hash tree) - (setq buff (current-buffer)) - (with-auto-compression-mode - (with-temp-buffer - (insert-file-contents filename) - (goto-char (point-min)) - (condition-case nil - (setq hash (read (current-buffer))) - (error - (kill-buffer nil) - (funcall (if noerror 'message 'error) - "Error reading undo-tree history from \"%s\"" filename) - (throw 'load-error nil))) - (unless (string= (sha1 buff) hash) - (kill-buffer nil) - (funcall (if noerror 'message 'error) - "Buffer has been modified; could not load undo-tree history") - (throw 'load-error nil)) - (condition-case nil - (setq tree (read (current-buffer))) - (error - (kill-buffer nil) - (funcall (if noerror 'message 'error) - "Error reading undo-tree history from \"%s\"" filename) - (throw 'load-error nil))) - (kill-buffer nil))) - ;; initialise empty undo-tree object pool - (setf (undo-tree-object-pool tree) - (make-hash-table :test 'eq :weakness 'value)) - ;; restore circular undo-tree data structure - (undo-tree-recircle tree) - (setq buffer-undo-tree tree)))) - - - -;; Versions of save/load functions for use in hooks -(defun undo-tree-save-history-hook () - (when (and undo-tree-mode undo-tree-auto-save-history - (not (eq buffer-undo-list t))) - (undo-tree-save-history nil t) nil)) - -(defun undo-tree-load-history-hook () - (when (and undo-tree-mode undo-tree-auto-save-history - (not (eq buffer-undo-list t))) - (undo-tree-load-history nil t))) - - - - -;;; ===================================================================== -;;; Visualizer drawing functions - -(defun undo-tree-visualize () - "Visualize the current buffer's undo tree." - (interactive "*") - (deactivate-mark) - ;; throw error if undo is disabled in buffer - (when (eq buffer-undo-list t) (error "No undo information in this buffer")) - ;; transfer entries accumulated in `buffer-undo-list' to `buffer-undo-tree' - (undo-list-transfer-to-tree) - ;; add hook to kill visualizer buffer if original buffer is changed - (add-hook 'before-change-functions 'undo-tree-kill-visualizer nil t) - ;; prepare *undo-tree* buffer, then draw tree in it - (let ((undo-tree buffer-undo-tree) - (buff (current-buffer)) - (display-buffer-mark-dedicated 'soft)) - (switch-to-buffer-other-window - (get-buffer-create undo-tree-visualizer-buffer-name)) - (setq undo-tree-visualizer-parent-buffer buff) - (setq undo-tree-visualizer-parent-mtime - (and (buffer-file-name buff) - (nth 5 (file-attributes (buffer-file-name buff))))) - (setq buffer-undo-tree undo-tree) - (setq undo-tree-visualizer-initial-node (undo-tree-current undo-tree)) - (setq undo-tree-visualizer-spacing - (undo-tree-visualizer-calculate-spacing)) - (make-local-variable 'undo-tree-visualizer-timestamps) - (make-local-variable 'undo-tree-visualizer-diff) - (set (make-local-variable 'undo-tree-visualizer-lazy-drawing) - (or (eq undo-tree-visualizer-lazy-drawing t) - (and (numberp undo-tree-visualizer-lazy-drawing) - (>= (undo-tree-count undo-tree) - undo-tree-visualizer-lazy-drawing)))) - (when undo-tree-visualizer-diff (undo-tree-visualizer-show-diff)) - (undo-tree-visualizer-mode) - (let ((inhibit-read-only t)) (undo-tree-draw-tree undo-tree)))) - - -(defun undo-tree-kill-visualizer (&rest _dummy) - ;; Kill visualizer. Added to `before-change-functions' hook of original - ;; buffer when visualizer is invoked. - (unless undo-tree-inhibit-kill-visualizer - (unwind-protect - (with-current-buffer undo-tree-visualizer-buffer-name - (undo-tree-visualizer-quit))))) - - - -(defun undo-tree-draw-tree (undo-tree) - ;; Draw undo-tree in current buffer starting from NODE (or root if nil). - (let ((node (if undo-tree-visualizer-lazy-drawing - (undo-tree-current undo-tree) - (undo-tree-root undo-tree)))) - (erase-buffer) - (undo-tree-clear-visualizer-data undo-tree) - (undo-tree-compute-widths node) - ;; lazy drawing starts vertically centred and displaced horizontally to - ;; the left (window-width/4), since trees will typically grow right - (if undo-tree-visualizer-lazy-drawing - (progn - (undo-tree-move-down (/ (window-height) 2)) - (undo-tree-move-forward (max 2 (/ (window-width) 4)))) ; left margin - ;; non-lazy drawing starts in centre at top of buffer - (undo-tree-move-down 1) ; top margin - (undo-tree-move-forward - (max (/ (window-width) 2) - (+ (undo-tree-node-char-lwidth node) - ;; add space for left part of left-most time-stamp - (if undo-tree-visualizer-timestamps - (/ (- undo-tree-visualizer-spacing 4) 2) - 0) - 2)))) ; left margin - ;; link starting node to its representation in visualizer - (setf (undo-tree-node-marker node) (make-marker)) - (set-marker-insertion-type (undo-tree-node-marker node) nil) - (move-marker (undo-tree-node-marker node) (point)) - ;; draw undo-tree - (let ((undo-tree-insert-face 'undo-tree-visualizer-default-face) - node-list) - (if (not undo-tree-visualizer-lazy-drawing) - (undo-tree-extend-down node t) - (undo-tree-extend-down node) - (undo-tree-extend-up node) - (setq node-list undo-tree-visualizer-needs-extending-down - undo-tree-visualizer-needs-extending-down nil) - (while node-list (undo-tree-extend-down (pop node-list))))) - ;; highlight active branch - (let ((undo-tree-insert-face 'undo-tree-visualizer-active-branch-face)) - (undo-tree-highlight-active-branch - (or undo-tree-visualizer-needs-extending-up - (undo-tree-root undo-tree)))) - ;; highlight current node - (undo-tree-draw-node (undo-tree-current undo-tree) 'current))) - - -(defun undo-tree-extend-down (node &optional bottom) - ;; Extend tree downwards starting from NODE and point. If BOTTOM is t, - ;; extend all the way down to the leaves. If BOTTOM is a node, extend down - ;; as far as that node. If BOTTOM is an integer, extend down as far as that - ;; line. Otherwise, only extend visible portion of tree. NODE is assumed to - ;; already have a node marker. Returns non-nil if anything was actually - ;; extended. - (let ((extended nil) - (cur-stack (list node)) - next-stack) - ;; don't bother extending if BOTTOM specifies an already-drawn node - (unless (and (undo-tree-node-p bottom) (undo-tree-node-marker bottom)) - ;; draw nodes layer by layer - (while (or cur-stack - (prog1 (setq cur-stack next-stack) - (setq next-stack nil))) - (setq node (pop cur-stack)) - ;; if node is within range being drawn... - (if (or (eq bottom t) - (and (undo-tree-node-p bottom) - (not (eq (undo-tree-node-previous node) bottom))) - (and (integerp bottom) - (>= bottom (line-number-at-pos - (undo-tree-node-marker node)))) - (and (null bottom) - (pos-visible-in-window-p (undo-tree-node-marker node) - nil t))) - ;; ...draw one layer of node's subtree (if not already drawn) - (progn - (unless (and (undo-tree-node-next node) - (undo-tree-node-marker - (nth (undo-tree-node-branch node) - (undo-tree-node-next node)))) - (goto-char (undo-tree-node-marker node)) - (undo-tree-draw-subtree node) - (setq extended t)) - (setq next-stack - (append (undo-tree-node-next node) next-stack))) - ;; ...otherwise, postpone drawing until later - (push node undo-tree-visualizer-needs-extending-down)))) - extended)) - - -(defun undo-tree-extend-up (node &optional top) - ;; Extend tree upwards starting from NODE. If TOP is t, extend all the way - ;; to root. If TOP is a node, extend up as far as that node. If TOP is an - ;; integer, extend up as far as that line. Otherwise, only extend visible - ;; portion of tree. NODE is assumed to already have a node marker. Returns - ;; non-nil if anything was actually extended. - (let ((extended nil) parent n) - ;; don't bother extending if TOP specifies an already-drawn node - (unless (and (undo-tree-node-p top) (undo-tree-node-marker top)) - (while node - (setq parent (undo-tree-node-previous node)) - ;; if we haven't reached root... - (if parent - ;; ...and node is within range being drawn... - (if (or (eq top t) - (and (undo-tree-node-p top) (not (eq node top))) - (and (integerp top) - (< top (line-number-at-pos - (undo-tree-node-marker node)))) - (and (null top) - ;; NOTE: check point in case window-start is outdated - (< (min (line-number-at-pos (point)) - (line-number-at-pos (window-start))) - (line-number-at-pos - (undo-tree-node-marker node))))) - ;; ...and it hasn't already been drawn - (when (not (undo-tree-node-marker parent)) - ;; link parent node to its representation in visualizer - (undo-tree-compute-widths parent) - (undo-tree-move-to-parent node) - (setf (undo-tree-node-marker parent) (make-marker)) - (set-marker-insertion-type - (undo-tree-node-marker parent) nil) - (move-marker (undo-tree-node-marker parent) (point)) - ;; draw subtree beneath parent - (setq undo-tree-visualizer-needs-extending-down - (nconc (delq node (undo-tree-draw-subtree parent)) - undo-tree-visualizer-needs-extending-down)) - (setq extended t)) - ;; ...otherwise, postpone drawing for later and exit - (setq undo-tree-visualizer-needs-extending-up (when parent node) - parent nil)) - - ;; if we've reached root, stop extending and add top margin - (setq undo-tree-visualizer-needs-extending-up nil) - (goto-char (undo-tree-node-marker node)) - (undo-tree-move-up 1) ; top margin - (delete-region (point-min) (line-beginning-position))) - ;; next iteration - (setq node parent))) - extended)) - - -(defun undo-tree-expand-down (from &optional to) - ;; Expand tree downwards. FROM is the node to start expanding from. Stop - ;; expanding at TO if specified. Otherwise, just expand visible portion of - ;; tree and highlight active branch from FROM. - (when undo-tree-visualizer-needs-extending-down - (let ((inhibit-read-only t) - node-list extended) - ;; extend down as far as TO node - (when to - (setq extended (undo-tree-extend-down from to)) - (goto-char (undo-tree-node-marker to)) - (redisplay t)) ; force redisplay to scroll buffer if necessary - ;; extend visible portion of tree downwards - (setq node-list undo-tree-visualizer-needs-extending-down - undo-tree-visualizer-needs-extending-down nil) - (when node-list - (dolist (n node-list) - (when (undo-tree-extend-down n) (setq extended t))) - ;; highlight active branch in newly-extended-down portion, if any - (when extended - (let ((undo-tree-insert-face - 'undo-tree-visualizer-active-branch-face)) - (undo-tree-highlight-active-branch from))))))) - - -(defun undo-tree-expand-up (from &optional to) - ;; Expand tree upwards. FROM is the node to start expanding from, TO is the - ;; node to stop expanding at. If TO node isn't specified, just expand visible - ;; portion of tree and highlight active branch down to FROM. - (when undo-tree-visualizer-needs-extending-up - (let ((inhibit-read-only t) - extended node-list) - ;; extend up as far as TO node - (when to - (setq extended (undo-tree-extend-up from to)) - (goto-char (undo-tree-node-marker to)) - ;; simulate auto-scrolling if close to top of buffer - (when (<= (line-number-at-pos (point)) scroll-margin) - (undo-tree-move-up (if (= scroll-conservatively 0) - (/ (window-height) 2) 3)) - (when (undo-tree-extend-up to) (setq extended t)) - (goto-char (undo-tree-node-marker to)) - (unless (= scroll-conservatively 0) (recenter scroll-margin)))) - ;; extend visible portion of tree upwards - (and undo-tree-visualizer-needs-extending-up - (undo-tree-extend-up undo-tree-visualizer-needs-extending-up) - (setq extended t)) - ;; extend visible portion of tree downwards - (setq node-list undo-tree-visualizer-needs-extending-down - undo-tree-visualizer-needs-extending-down nil) - (dolist (n node-list) (undo-tree-extend-down n)) - ;; highlight active branch in newly-extended-up portion, if any - (when extended - (let ((undo-tree-insert-face - 'undo-tree-visualizer-active-branch-face)) - (undo-tree-highlight-active-branch - (or undo-tree-visualizer-needs-extending-up - (undo-tree-root buffer-undo-tree)) - from)))))) - - - -(defun undo-tree-highlight-active-branch (node &optional end) - ;; Draw highlighted active branch below NODE in current buffer. Stop - ;; highlighting at END node if specified. - (let ((stack (list node))) - ;; draw active branch - (while stack - (setq node (pop stack)) - (unless (or (eq node end) - (memq node undo-tree-visualizer-needs-extending-down)) - (goto-char (undo-tree-node-marker node)) - (setq node (undo-tree-draw-subtree node 'active) - stack (nconc stack node)))))) - - -(defun undo-tree-draw-node (node &optional current) - ;; Draw symbol representing NODE in visualizer. If CURRENT is non-nil, node - ;; is current node. - (goto-char (undo-tree-node-marker node)) - (when undo-tree-visualizer-timestamps - (undo-tree-move-backward (/ undo-tree-visualizer-spacing 2))) - - (let* ((undo-tree-insert-face (and undo-tree-insert-face - (or (and (consp undo-tree-insert-face) - undo-tree-insert-face) - (list undo-tree-insert-face)))) - (register (undo-tree-node-register node)) - (unmodified (if undo-tree-visualizer-parent-mtime - (undo-tree-node-unmodified-p - node undo-tree-visualizer-parent-mtime) - (undo-tree-node-unmodified-p node))) - node-string) - ;; check node's register (if any) still stores appropriate undo-tree state - (unless (and register - (undo-tree-register-data-p - (registerv-data (get-register register))) - (eq node (undo-tree-register-data-node - (registerv-data (get-register register))))) - (setq register nil)) - ;; represent node by different symbols, depending on whether it's the - ;; current node, is saved in a register, or corresponds to an unmodified - ;; buffer - (setq node-string - (cond - (undo-tree-visualizer-timestamps - (undo-tree-timestamp-to-string - (undo-tree-node-timestamp node) - undo-tree-visualizer-relative-timestamps - current register)) - (register (char-to-string register)) - (unmodified "s") - (current "x") - (t "o")) - undo-tree-insert-face - (nconc - (cond - (current '(undo-tree-visualizer-current-face)) - (unmodified '(undo-tree-visualizer-unmodified-face)) - (register '(undo-tree-visualizer-register-face))) - undo-tree-insert-face)) - ;; draw node and link it to its representation in visualizer - (undo-tree-insert node-string) - (undo-tree-move-backward (if undo-tree-visualizer-timestamps - (1+ (/ undo-tree-visualizer-spacing 2)) - 1)) - (move-marker (undo-tree-node-marker node) (point)) - (put-text-property (point) (1+ (point)) 'undo-tree-node node))) - - -(defun undo-tree-draw-subtree (node &optional active-branch) - ;; Draw subtree rooted at NODE. The subtree will start from point. - ;; If ACTIVE-BRANCH is non-nil, just draw active branch below NODE. Returns - ;; list of nodes below NODE. - (let ((num-children (length (undo-tree-node-next node))) - node-list pos trunk-pos n) - ;; draw node itself - (undo-tree-draw-node node) - - (cond - ;; if we're at a leaf node, we're done - ((= num-children 0)) - - ;; if node has only one child, draw it (not strictly necessary to deal - ;; with this case separately, but as it's by far the most common case - ;; this makes the code clearer and more efficient) - ((= num-children 1) - (undo-tree-move-down 1) - (undo-tree-insert ?|) - (undo-tree-move-backward 1) - (undo-tree-move-down 1) - (undo-tree-insert ?|) - (undo-tree-move-backward 1) - (undo-tree-move-down 1) - (setq n (car (undo-tree-node-next node))) - ;; link next node to its representation in visualizer - (unless (markerp (undo-tree-node-marker n)) - (setf (undo-tree-node-marker n) (make-marker)) - (set-marker-insertion-type (undo-tree-node-marker n) nil)) - (move-marker (undo-tree-node-marker n) (point)) - ;; add next node to list of nodes to draw next - (push n node-list)) - - ;; if node has multiple children, draw branches - (t - (undo-tree-move-down 1) - (undo-tree-insert ?|) - (undo-tree-move-backward 1) - (move-marker (setq trunk-pos (make-marker)) (point)) - ;; left subtrees - (undo-tree-move-backward - (- (undo-tree-node-char-lwidth node) - (undo-tree-node-char-lwidth - (car (undo-tree-node-next node))))) - (move-marker (setq pos (make-marker)) (point)) - (setq n (cons nil (undo-tree-node-next node))) - (dotimes (i (/ num-children 2)) - (setq n (cdr n)) - (when (or (null active-branch) - (eq (car n) - (nth (undo-tree-node-branch node) - (undo-tree-node-next node)))) - (undo-tree-move-forward 2) - (undo-tree-insert ?_ (- trunk-pos pos 2)) - (goto-char pos) - (undo-tree-move-forward 1) - (undo-tree-move-down 1) - (undo-tree-insert ?/) - (undo-tree-move-backward 2) - (undo-tree-move-down 1) - ;; link node to its representation in visualizer - (unless (markerp (undo-tree-node-marker (car n))) - (setf (undo-tree-node-marker (car n)) (make-marker)) - (set-marker-insertion-type (undo-tree-node-marker (car n)) nil)) - (move-marker (undo-tree-node-marker (car n)) (point)) - ;; add node to list of nodes to draw next - (push (car n) node-list)) - (goto-char pos) - (undo-tree-move-forward - (+ (undo-tree-node-char-rwidth (car n)) - (undo-tree-node-char-lwidth (cadr n)) - undo-tree-visualizer-spacing 1)) - (move-marker pos (point))) - ;; middle subtree (only when number of children is odd) - (when (= (mod num-children 2) 1) - (setq n (cdr n)) - (when (or (null active-branch) - (eq (car n) - (nth (undo-tree-node-branch node) - (undo-tree-node-next node)))) - (undo-tree-move-down 1) - (undo-tree-insert ?|) - (undo-tree-move-backward 1) - (undo-tree-move-down 1) - ;; link node to its representation in visualizer - (unless (markerp (undo-tree-node-marker (car n))) - (setf (undo-tree-node-marker (car n)) (make-marker)) - (set-marker-insertion-type (undo-tree-node-marker (car n)) nil)) - (move-marker (undo-tree-node-marker (car n)) (point)) - ;; add node to list of nodes to draw next - (push (car n) node-list)) - (goto-char pos) - (undo-tree-move-forward - (+ (undo-tree-node-char-rwidth (car n)) - (if (cadr n) (undo-tree-node-char-lwidth (cadr n)) 0) - undo-tree-visualizer-spacing 1)) - (move-marker pos (point))) - ;; right subtrees - (move-marker trunk-pos (1+ trunk-pos)) - (dotimes (i (/ num-children 2)) - (setq n (cdr n)) - (when (or (null active-branch) - (eq (car n) - (nth (undo-tree-node-branch node) - (undo-tree-node-next node)))) - (goto-char trunk-pos) - (undo-tree-insert ?_ (- pos trunk-pos 1)) - (goto-char pos) - (undo-tree-move-backward 1) - (undo-tree-move-down 1) - (undo-tree-insert ?\\) - (undo-tree-move-down 1) - ;; link node to its representation in visualizer - (unless (markerp (undo-tree-node-marker (car n))) - (setf (undo-tree-node-marker (car n)) (make-marker)) - (set-marker-insertion-type (undo-tree-node-marker (car n)) nil)) - (move-marker (undo-tree-node-marker (car n)) (point)) - ;; add node to list of nodes to draw next - (push (car n) node-list)) - (when (cdr n) - (goto-char pos) - (undo-tree-move-forward - (+ (undo-tree-node-char-rwidth (car n)) - (if (cadr n) (undo-tree-node-char-lwidth (cadr n)) 0) - undo-tree-visualizer-spacing 1)) - (move-marker pos (point)))) - )) - ;; return list of nodes to draw next - (nreverse node-list))) - - -(defun undo-tree-node-char-lwidth (node) - ;; Return left-width of NODE measured in characters. - (if (= (length (undo-tree-node-next node)) 0) 0 - (- (* (+ undo-tree-visualizer-spacing 1) (undo-tree-node-lwidth node)) - (if (= (undo-tree-node-cwidth node) 0) - (1+ (/ undo-tree-visualizer-spacing 2)) 0)))) - - -(defun undo-tree-node-char-rwidth (node) - ;; Return right-width of NODE measured in characters. - (if (= (length (undo-tree-node-next node)) 0) 0 - (- (* (+ undo-tree-visualizer-spacing 1) (undo-tree-node-rwidth node)) - (if (= (undo-tree-node-cwidth node) 0) - (1+ (/ undo-tree-visualizer-spacing 2)) 0)))) - - -(defun undo-tree-insert (str &optional arg) - ;; Insert character or string STR ARG times, overwriting, and using - ;; `undo-tree-insert-face'. - (unless arg (setq arg 1)) - (when (characterp str) - (setq str (make-string arg str)) - (setq arg 1)) - (dotimes (i arg) (insert str)) - (setq arg (* arg (length str))) - (undo-tree-move-forward arg) - ;; make sure mark isn't active, otherwise `backward-delete-char' might - ;; delete region instead of single char if transient-mark-mode is enabled - (setq mark-active nil) - (backward-delete-char arg) - (when undo-tree-insert-face - (put-text-property (- (point) arg) (point) 'face undo-tree-insert-face))) - - -(defun undo-tree-move-down (&optional arg) - ;; Move down, extending buffer if necessary. - (let ((row (line-number-at-pos)) - (col (current-column)) - line) - (unless arg (setq arg 1)) - (forward-line arg) - (setq line (line-number-at-pos)) - ;; if buffer doesn't have enough lines, add some - (when (/= line (+ row arg)) - (cond - ((< arg 0) - (insert (make-string (- line row arg) ?\n)) - (forward-line (+ arg (- row line)))) - (t (insert (make-string (- arg (- line row)) ?\n))))) - (undo-tree-move-forward col))) - - -(defun undo-tree-move-up (&optional arg) - ;; Move up, extending buffer if necessary. - (unless arg (setq arg 1)) - (undo-tree-move-down (- arg))) - - -(defun undo-tree-move-forward (&optional arg) - ;; Move forward, extending buffer if necessary. - (unless arg (setq arg 1)) - (let (n) - (cond - ((>= arg 0) - (setq n (- (line-end-position) (point))) - (if (> n arg) - (forward-char arg) - (end-of-line) - (insert (make-string (- arg n) ? )))) - ((< arg 0) - (setq arg (- arg)) - (setq n (- (point) (line-beginning-position))) - (when (< (- n 2) arg) ; -2 to create left-margin - ;; no space left - shift entire buffer contents right! - (let ((pos (move-marker (make-marker) (point)))) - (set-marker-insertion-type pos t) - (goto-char (point-min)) - (while (not (eobp)) - (insert-before-markers (make-string (- arg -2 n) ? )) - (forward-line 1)) - (goto-char pos))) - (backward-char arg))))) - - -(defun undo-tree-move-backward (&optional arg) - ;; Move backward, extending buffer if necessary. - (unless arg (setq arg 1)) - (undo-tree-move-forward (- arg))) - - -(defun undo-tree-move-to-parent (node) - ;; Move to position of parent of NODE, extending buffer if necessary. - (let* ((parent (undo-tree-node-previous node)) - (n (undo-tree-node-next parent)) - (l (length n)) p) - (goto-char (undo-tree-node-marker node)) - (unless (= l 1) - ;; move horizontally - (setq p (undo-tree-position node n)) - (cond - ;; node in centre subtree: no horizontal movement - ((and (= (mod l 2) 1) (= p (/ l 2)))) - ;; node in left subtree: move right - ((< p (/ l 2)) - (setq n (nthcdr p n)) - (undo-tree-move-forward - (+ (undo-tree-node-char-rwidth (car n)) - (/ undo-tree-visualizer-spacing 2) 1)) - (dotimes (i (- (/ l 2) p 1)) - (setq n (cdr n)) - (undo-tree-move-forward - (+ (undo-tree-node-char-lwidth (car n)) - (undo-tree-node-char-rwidth (car n)) - undo-tree-visualizer-spacing 1))) - (when (= (mod l 2) 1) - (setq n (cdr n)) - (undo-tree-move-forward - (+ (undo-tree-node-char-lwidth (car n)) - (/ undo-tree-visualizer-spacing 2) 1)))) - (t ;; node in right subtree: move left - (setq n (nthcdr (/ l 2) n)) - (when (= (mod l 2) 1) - (undo-tree-move-backward - (+ (undo-tree-node-char-rwidth (car n)) - (/ undo-tree-visualizer-spacing 2) 1)) - (setq n (cdr n))) - (dotimes (i (- p (/ l 2) (mod l 2))) - (undo-tree-move-backward - (+ (undo-tree-node-char-lwidth (car n)) - (undo-tree-node-char-rwidth (car n)) - undo-tree-visualizer-spacing 1)) - (setq n (cdr n))) - (undo-tree-move-backward - (+ (undo-tree-node-char-lwidth (car n)) - (/ undo-tree-visualizer-spacing 2) 1))))) - ;; move vertically - (undo-tree-move-up 3))) - - -(defun undo-tree-timestamp-to-string - (timestamp &optional relative current register) - ;; Convert TIMESTAMP to string (either absolute or RELATVE time), indicating - ;; if it's the CURRENT node and/or has an associated REGISTER. - (if relative - ;; relative time - (let ((time (floor (float-time - (subtract-time (current-time) timestamp)))) - n) - (setq time - ;; years - (if (> (setq n (/ time 315360000)) 0) - (if (> n 999) "-ages" (format "-%dy" n)) - (setq time (% time 315360000)) - ;; days - (if (> (setq n (/ time 86400)) 0) - (format "-%dd" n) - (setq time (% time 86400)) - ;; hours - (if (> (setq n (/ time 3600)) 0) - (format "-%dh" n) - (setq time (% time 3600)) - ;; mins - (if (> (setq n (/ time 60)) 0) - (format "-%dm" n) - ;; secs - (format "-%ds" (% time 60))))))) - (setq time (concat - (if current "*" " ") - time - (if register (concat "[" (char-to-string register) "]") - " "))) - (setq n (length time)) - (if (< n 9) - (concat (make-string (- 9 n) ? ) time) - time)) - ;; absolute time - (concat (if current "*" " ") - (format-time-string "%H:%M:%S" timestamp) - (if register - (concat "[" (char-to-string register) "]") - " ")))) - - - - -;;; ===================================================================== -;;; Visualizer commands - -(defun undo-tree-visualizer-mode () - "Major mode used in undo-tree visualizer. - -The undo-tree visualizer can only be invoked from a buffer in -which `undo-tree-mode' is enabled. The visualizer displays the -undo history tree graphically, and allows you to browse around -the undo history, undoing or redoing the corresponding changes in -the parent buffer. - -Within the undo-tree visualizer, the following keys are available: - - \\{undo-tree-visualizer-map}" - (interactive) - (setq major-mode 'undo-tree-visualizer-mode) - (setq mode-name "undo-tree-visualizer-mode") - (use-local-map undo-tree-visualizer-map) - (setq truncate-lines t) - (setq cursor-type nil) - (setq buffer-read-only t) - (setq undo-tree-visualizer-selected-node nil) - (when undo-tree-visualizer-diff (undo-tree-visualizer-update-diff))) - - - -(defun undo-tree-visualize-undo (&optional arg) - "Undo changes. A numeric ARG serves as a repeat count." - (interactive "p") - (let ((old (undo-tree-current buffer-undo-tree)) - current) - ;; unhighlight old current node - (let ((undo-tree-insert-face 'undo-tree-visualizer-active-branch-face) - (inhibit-read-only t)) - (undo-tree-draw-node old)) - ;; undo in parent buffer - (switch-to-buffer-other-window undo-tree-visualizer-parent-buffer) - (deactivate-mark) - (unwind-protect - (let ((undo-tree-inhibit-kill-visualizer t)) (undo-tree-undo-1 arg)) - (setq current (undo-tree-current buffer-undo-tree)) - (switch-to-buffer-other-window undo-tree-visualizer-buffer-name) - ;; when using lazy drawing, extend tree upwards as required - (when undo-tree-visualizer-lazy-drawing - (undo-tree-expand-up old current)) - ;; highlight new current node - (let ((inhibit-read-only t)) (undo-tree-draw-node current 'current)) - ;; update diff display, if any - (when undo-tree-visualizer-diff (undo-tree-visualizer-update-diff))))) - - -(defun undo-tree-visualize-redo (&optional arg) - "Redo changes. A numeric ARG serves as a repeat count." - (interactive "p") - (let ((old (undo-tree-current buffer-undo-tree)) - current) - ;; unhighlight old current node - (let ((undo-tree-insert-face 'undo-tree-visualizer-active-branch-face) - (inhibit-read-only t)) - (undo-tree-draw-node (undo-tree-current buffer-undo-tree))) - ;; redo in parent buffer - (switch-to-buffer-other-window undo-tree-visualizer-parent-buffer) - (deactivate-mark) - (unwind-protect - (let ((undo-tree-inhibit-kill-visualizer t)) (undo-tree-redo-1 arg)) - (setq current (undo-tree-current buffer-undo-tree)) - (switch-to-buffer-other-window undo-tree-visualizer-buffer-name) - ;; when using lazy drawing, extend tree downwards as required - (when undo-tree-visualizer-lazy-drawing - (undo-tree-expand-down old current)) - ;; highlight new current node - (let ((inhibit-read-only t)) (undo-tree-draw-node current 'current)) - ;; update diff display, if any - (when undo-tree-visualizer-diff (undo-tree-visualizer-update-diff))))) - - -(defun undo-tree-visualize-switch-branch-right (arg) - "Switch to next branch of the undo tree. -This will affect which branch to descend when *redoing* changes -using `undo-tree-redo' or `undo-tree-visualizer-redo'." - (interactive "p") - ;; un-highlight old active branch below current node - (goto-char (undo-tree-node-marker (undo-tree-current buffer-undo-tree))) - (let ((undo-tree-insert-face 'undo-tree-visualizer-default-face) - (inhibit-read-only t)) - (undo-tree-highlight-active-branch (undo-tree-current buffer-undo-tree))) - ;; increment branch - (let ((branch (undo-tree-node-branch (undo-tree-current buffer-undo-tree)))) - (setf (undo-tree-node-branch (undo-tree-current buffer-undo-tree)) - (cond - ((>= (+ branch arg) (undo-tree-num-branches)) - (1- (undo-tree-num-branches))) - ((<= (+ branch arg) 0) 0) - (t (+ branch arg)))) - (let ((inhibit-read-only t)) - ;; highlight new active branch below current node - (goto-char (undo-tree-node-marker (undo-tree-current buffer-undo-tree))) - (let ((undo-tree-insert-face 'undo-tree-visualizer-active-branch-face)) - (undo-tree-highlight-active-branch (undo-tree-current buffer-undo-tree))) - ;; re-highlight current node - (undo-tree-draw-node (undo-tree-current buffer-undo-tree) 'current)))) - - -(defun undo-tree-visualize-switch-branch-left (arg) - "Switch to previous branch of the undo tree. -This will affect which branch to descend when *redoing* changes -using `undo-tree-redo' or `undo-tree-visualizer-redo'." - (interactive "p") - (undo-tree-visualize-switch-branch-right (- arg))) - - -(defun undo-tree-visualizer-quit () - "Quit the undo-tree visualizer." - (interactive) - (undo-tree-clear-visualizer-data buffer-undo-tree) - ;; remove kill visualizer hook from parent buffer - (unwind-protect - (with-current-buffer undo-tree-visualizer-parent-buffer - (remove-hook 'before-change-functions 'undo-tree-kill-visualizer t)) - ;; kill diff buffer, if any - (when undo-tree-visualizer-diff (undo-tree-visualizer-hide-diff)) - (let ((parent undo-tree-visualizer-parent-buffer) - window) - ;; kill visualizer buffer - (kill-buffer nil) - ;; switch back to parent buffer - (unwind-protect - (if (setq window (get-buffer-window parent)) - (select-window window) - (switch-to-buffer parent)))))) - - -(defun undo-tree-visualizer-abort () - "Quit the undo-tree visualizer and return buffer to original state." - (interactive) - (let ((node undo-tree-visualizer-initial-node)) - (undo-tree-visualizer-quit) - (undo-tree-set node))) - - -(defun undo-tree-visualizer-set (&optional pos) - "Set buffer to state corresponding to undo tree node -at POS, or point if POS is nil." - (interactive) - (unless pos (setq pos (point))) - (let ((node (get-text-property pos 'undo-tree-node))) - (when node - ;; set parent buffer to state corresponding to node at POS - (switch-to-buffer-other-window undo-tree-visualizer-parent-buffer) - (let ((undo-tree-inhibit-kill-visualizer t)) (undo-tree-set node)) - (switch-to-buffer-other-window undo-tree-visualizer-buffer-name) - ;; re-draw undo tree - (let ((inhibit-read-only t)) (undo-tree-draw-tree buffer-undo-tree)) - (when undo-tree-visualizer-diff (undo-tree-visualizer-update-diff))))) - - -(defun undo-tree-visualizer-mouse-set (pos) - "Set buffer to state corresponding to undo tree node -at mouse event POS." - (interactive "@e") - (undo-tree-visualizer-set (event-start (nth 1 pos)))) - - -(defun undo-tree-visualize-undo-to-x (&optional x) - "Undo to last branch point, register, or saved state. -If X is 'branch, undo to last branch point. If X is 'register, -undo to last register. If X is 'saved, undo to last saved state. - -Interactively, a single \\[universal-argument] specifies -`branch', a double \\[universal-argument] \[universal-argument] -spcified `saved', and a negative prefix argument specifies -`register'." - (interactive "P") - (when (and (called-interactively-p 'any) x) - (setq x (prefix-numeric-value x) - x (cond - ((< x 0) 'register) - ((<= x 4) 'branch) - (t 'saved)))) - (let ((current (undo-tree-current buffer-undo-tree)) - r) - (while (and (undo-tree-node-previous current) - (or (undo-tree-visualize-undo) t) - (setq current (undo-tree-current buffer-undo-tree)) - ;; branch point - (not (or (and (or (null x) (eq x 'branch)) - (> (undo-tree-num-branches) 1)) - ;; register - (and (or (null x) (eq x 'register)) - (setq r (undo-tree-node-register current)) - (undo-tree-register-data-p - (setq r (registerv-data (get-register r)))) - (eq current (undo-tree-register-data-node r))) - ;; saved state - (and (or (null x) (eq x 'saved)) - (undo-tree-node-unmodified-p current)) - )))))) - - -(defun undo-tree-visualize-redo-to-x (&optional x) - "Redo to next branch point or register. -If X is the symbol `branch', redo to next branch point ignoring -registers. If X is the symbol 'register', redo to next register, -ignoring branch points. - -Interactively, a positive prefix argument specifies `branch', and -a negative prefix argument specifies `register'." - (interactive "P") - (when (and (called-interactively-p 'any) x) - (setq x (prefix-numeric-value x) - x (cond - ((< x 0) 'register) - ((<= x 4) 'branch) - (t 'saved)))) - (let ((current (undo-tree-current buffer-undo-tree)) - r) - (while (and (undo-tree-node-next current) - (or (undo-tree-visualize-redo) t) - (setq current (undo-tree-current buffer-undo-tree)) - ;; branch point - (not (or (and (or (null x) (eq x 'branch)) - (> (undo-tree-num-branches) 1)) - ;; register - (and (or (null x) (eq x 'register)) - (setq r (undo-tree-node-register current)) - (undo-tree-register-data-p - (setq r (registerv-data (get-register r)))) - (eq current (undo-tree-register-data-node r))) - ;; saved state - (and (or (null x) (eq x 'saved)) - (undo-tree-node-unmodified-p current)) - )))))) - - -(defun undo-tree-visualizer-toggle-timestamps () - "Toggle display of time-stamps." - (interactive) - (setq undo-tree-visualizer-timestamps (not undo-tree-visualizer-timestamps)) - (setq undo-tree-visualizer-spacing (undo-tree-visualizer-calculate-spacing)) - ;; redraw tree - (let ((inhibit-read-only t)) (undo-tree-draw-tree buffer-undo-tree))) - - -(defun undo-tree-visualizer-scroll-left (&optional arg) - (interactive "p") - (scroll-left (or arg 1) t)) - - -(defun undo-tree-visualizer-scroll-right (&optional arg) - (interactive "p") - (scroll-right (or arg 1) t)) - - -(defun undo-tree-visualizer-scroll-up (&optional arg) - (interactive "P") - (if (or (and (numberp arg) (< arg 0)) (eq arg '-)) - (undo-tree-visualizer-scroll-down arg) - ;; scroll up and expand newly-visible portion of tree - (unwind-protect - (scroll-up-command arg) - (undo-tree-expand-down - (nth (undo-tree-node-branch (undo-tree-current buffer-undo-tree)) - (undo-tree-node-next (undo-tree-current buffer-undo-tree))))) - ;; signal error if at eob - (when (and (not undo-tree-visualizer-needs-extending-down) (eobp)) - (scroll-up)))) - - -(defun undo-tree-visualizer-scroll-down (&optional arg) - (interactive "P") - (if (or (and (numberp arg) (< arg 0)) (eq arg '-)) - (undo-tree-visualizer-scroll-up arg) - ;; ensure there's enough room at top of buffer to scroll - (let ((scroll-lines - (or arg (- (window-height) next-screen-context-lines))) - (window-line (1- (line-number-at-pos (window-start))))) - (when (and undo-tree-visualizer-needs-extending-up - (< window-line scroll-lines)) - (let ((inhibit-read-only t)) - (goto-char (point-min)) - (undo-tree-move-up (- scroll-lines window-line))))) - ;; scroll down and expand newly-visible portion of tree - (unwind-protect - (scroll-down-command arg) - (undo-tree-expand-up - (undo-tree-node-previous (undo-tree-current buffer-undo-tree)))) - ;; signal error if at bob - (when (and (not undo-tree-visualizer-needs-extending-down) (bobp)) - (scroll-down)))) - - - - -;;; ===================================================================== -;;; Visualizer selection mode - -(defun undo-tree-visualizer-selection-mode () - "Major mode used to select nodes in undo-tree visualizer." - (interactive) - (setq major-mode 'undo-tree-visualizer-selection-mode) - (setq mode-name "undo-tree-visualizer-selection-mode") - (use-local-map undo-tree-visualizer-selection-map) - (setq cursor-type 'box) - (setq undo-tree-visualizer-selected-node - (undo-tree-current buffer-undo-tree)) - ;; erase diff (if any), as initially selected node is identical to current - (when undo-tree-visualizer-diff - (let ((buff (get-buffer undo-tree-diff-buffer-name)) - (inhibit-read-only t)) - (when buff (with-current-buffer buff (erase-buffer)))))) - - -(defun undo-tree-visualizer-select-previous (&optional arg) - "Move to previous node." - (interactive "p") - (let ((node undo-tree-visualizer-selected-node)) - (catch 'top - (dotimes (i arg) - (unless (undo-tree-node-previous node) (throw 'top t)) - (setq node (undo-tree-node-previous node)))) - ;; when using lazy drawing, extend tree upwards as required - (when undo-tree-visualizer-lazy-drawing - (undo-tree-expand-up undo-tree-visualizer-selected-node node)) - ;; update diff display, if any - (when (and undo-tree-visualizer-diff - (not (eq node undo-tree-visualizer-selected-node))) - (undo-tree-visualizer-update-diff node)) - ;; move to selected node - (goto-char (undo-tree-node-marker node)) - (setq undo-tree-visualizer-selected-node node))) - - -(defun undo-tree-visualizer-select-next (&optional arg) - "Move to next node." - (interactive "p") - (let ((node undo-tree-visualizer-selected-node)) - (catch 'bottom - (dotimes (i arg) - (unless (nth (undo-tree-node-branch node) (undo-tree-node-next node)) - (throw 'bottom t)) - (setq node - (nth (undo-tree-node-branch node) (undo-tree-node-next node))))) - ;; when using lazy drawing, extend tree upwards as required - (when undo-tree-visualizer-lazy-drawing - (undo-tree-expand-down undo-tree-visualizer-selected-node node)) - ;; update diff display, if any - (when (and undo-tree-visualizer-diff - (not (eq node undo-tree-visualizer-selected-node))) - (undo-tree-visualizer-update-diff node)) - ;; move to selected node - (goto-char (undo-tree-node-marker node)) - (setq undo-tree-visualizer-selected-node node))) - - -(defun undo-tree-visualizer-select-right (&optional arg) - "Move right to a sibling node." - (interactive "p") - (let ((node undo-tree-visualizer-selected-node) - end) - (goto-char (undo-tree-node-marker undo-tree-visualizer-selected-node)) - (setq end (line-end-position)) - (catch 'end - (dotimes (i arg) - (while (or (null node) (eq node undo-tree-visualizer-selected-node)) - (forward-char) - (setq node (get-text-property (point) 'undo-tree-node)) - (when (= (point) end) (throw 'end t))))) - (goto-char (undo-tree-node-marker - (or node undo-tree-visualizer-selected-node))) - (when (and undo-tree-visualizer-diff node - (not (eq node undo-tree-visualizer-selected-node))) - (undo-tree-visualizer-update-diff node)) - (when node (setq undo-tree-visualizer-selected-node node)))) - - -(defun undo-tree-visualizer-select-left (&optional arg) - "Move left to a sibling node." - (interactive "p") - (let ((node (get-text-property (point) 'undo-tree-node)) - beg) - (goto-char (undo-tree-node-marker undo-tree-visualizer-selected-node)) - (setq beg (line-beginning-position)) - (catch 'beg - (dotimes (i arg) - (while (or (null node) (eq node undo-tree-visualizer-selected-node)) - (backward-char) - (setq node (get-text-property (point) 'undo-tree-node)) - (when (= (point) beg) (throw 'beg t))))) - (goto-char (undo-tree-node-marker - (or node undo-tree-visualizer-selected-node))) - (when (and undo-tree-visualizer-diff node - (not (eq node undo-tree-visualizer-selected-node))) - (undo-tree-visualizer-update-diff node)) - (when node (setq undo-tree-visualizer-selected-node node)))) - - - -;;; ===================================================================== -;;; Visualizer diff display - -(defun undo-tree-visualizer-toggle-diff () - "Toggle diff display in undo-tree visualizer." - (interactive) - (if undo-tree-visualizer-diff - (undo-tree-visualizer-hide-diff) - (undo-tree-visualizer-show-diff))) - - -(defun undo-tree-visualizer-selection-toggle-diff () - "Toggle diff display in undo-tree visualizer selection mode." - (interactive) - (if undo-tree-visualizer-diff - (undo-tree-visualizer-hide-diff) - (let ((node (get-text-property (point) 'undo-tree-node))) - (when node (undo-tree-visualizer-show-diff node))))) - - -(defun undo-tree-visualizer-show-diff (&optional node) - ;; show visualizer diff display - (setq undo-tree-visualizer-diff t) - (let ((buff (with-current-buffer undo-tree-visualizer-parent-buffer - (undo-tree-diff node))) - (display-buffer-mark-dedicated 'soft) - win) - (setq win (split-window)) - (set-window-buffer win buff) - (shrink-window-if-larger-than-buffer win))) - - -(defun undo-tree-visualizer-hide-diff () - ;; hide visualizer diff display - (setq undo-tree-visualizer-diff nil) - (let ((win (get-buffer-window undo-tree-diff-buffer-name))) - (when win (with-selected-window win (kill-buffer-and-window))))) - - -(defun undo-tree-diff (&optional node) - ;; Create diff between current state and NODE (or previous state, if NODE is - ;; null). Returns buffer containing diff. - (let (tmpfile buff) - ;; generate diff - (let ((undo-tree-inhibit-kill-visualizer t) - (current (undo-tree-current buffer-undo-tree))) - (undo-tree-set (or node (undo-tree-node-previous current) current) - 'preserve-timestamps) - (setq tmpfile (diff-file-local-copy (current-buffer))) - (undo-tree-set current 'preserve-timestamps)) - (setq buff (diff-no-select - (current-buffer) tmpfile nil 'noasync - (get-buffer-create undo-tree-diff-buffer-name))) - ;; delete process messages and useless headers from diff buffer - (with-current-buffer buff - (goto-char (point-min)) - (delete-region (point) (1+ (line-end-position 3))) - (goto-char (point-max)) - (forward-line -2) - (delete-region (point) (point-max)) - (setq cursor-type nil) - (setq buffer-read-only t)) - buff)) - - -(defun undo-tree-visualizer-update-diff (&optional node) - ;; update visualizer diff display to show diff between current state and - ;; NODE (or previous state, if NODE is null) - (with-current-buffer undo-tree-visualizer-parent-buffer - (undo-tree-diff node)) - (let ((win (get-buffer-window undo-tree-diff-buffer-name))) - (when win - (balance-windows) - (shrink-window-if-larger-than-buffer win)))) - -;;;; ChangeLog: - -;; 2012-09-25 Toby S. Cubitt -;; -;; Updated undo-tree package to version 0.5.5. -;; -;; Small bug-fix to avoid hooks triggering an error when trying to save undo -;; history in a buffer where undo is disabled. -;; -;; 2012-09-11 Toby S. Cubitt -;; -;; Updated undo-tree package to version 0.5.4 -;; -;; Bug-fixes and improvements to persistent history storage. -;; -;; 2012-07-18 Toby S. Cubitt -;; -;; Update undo-tree to version 0.5.3 -;; -;; * undo-tree.el: Cope gracefully with undo boundaries being deleted -;; (cf. bug#11774). Allow customization of directory to which undo history is -;; saved. -;; -;; 2012-05-24 Toby S. Cubitt -;; -;; updated undo-tree package to version 0.5.2 -;; -;; * undo-tree.el: add diff view feature in undo-tree visualizer. -;; -;; 2012-05-02 Toby S. Cubitt -;; -;; undo-tree.el: Update package to version 0.4 -;; -;; 2012-04-20 Toby S. Cubitt -;; -;; undo-tree.el: Update package to version 0.3.4 -;; -;; * undo-tree.el (undo-list-pop-changeset): fix pernicious bug causing undo -;; history to be lost. -;; (buffer-undo-tree): set permanent-local property. -;; (undo-tree-enable-undo-in-region): add new customization option allowing -;; undo-in-region to be disabled. -;; -;; 2012-01-26 Toby S. Cubitt -;; -;; undo-tree.el: Fixed copyright attribution and Emacs status. -;; -;; 2012-01-26 Toby S. Cubitt -;; -;; undo-tree.el: Update package to version 0.3.3 -;; -;; 2011-09-17 Stefan Monnier -;; -;; Add undo-tree.el -;; - - - - -(provide 'undo-tree) - -;;; undo-tree.el ends here diff --git a/init.el b/init.el index b378c353..156fdaea 100644 --- a/init.el +++ b/init.el @@ -24,6 +24,37 @@ (add-to-list 'custom-theme-load-path "~/.emacs.d/elpa/") (load-theme 'zenburn t) +;; ============================================================================= +;; ELPA +;; ============================================================================= + +(require 'package) +(add-to-list 'package-archives + '("marmalade" . "http://marmalade-repo.org/packages/")) +(add-to-list 'package-archives + '("melpa" . "http://melpa.milkbox.net/packages/") t) +(package-initialize) + +(defvar my-packages '(ctags ctags-update evil flymake mo-git-blame multiple-cursors no-easy-keys starter-kit-bindings starter-kit-ruby starter-kit magit ido-ubiquitous smex find-file-in-project idle-highlight-mode paredit inf-ruby undo-tree rainbow-delimiters) + "A list of packages to ensure are installed at launch.") + +(defun ensure-package-installed (packages) + "Assure every package is installed, ask for installation if it’s not. +Return a list of installed packages or nil for every package not installed." + (mapcar + (lambda (package) + (if (package-installed-p package) + package + (progn (message (format "Installing package %s." package)) + (package-install package)))) + packages)) + +;; fetch the list of packages available +(unless package-archive-contents + (package-refresh-contents)) + +(ensure-package-installed my-packages) + ;; ============================================================================= ;; General Emacs Options ;; ============================================================================= @@ -204,35 +235,6 @@ (global-set-key (kbd "C-<") 'mc/mark-previous-like-this) (global-set-key (kbd "C-c <") 'mc/mark-all-like-this) -;; ============================================================================= -;; ELPA -;; ============================================================================= - -(require 'package) -(add-to-list 'package-archives - '("marmalade" . "http://marmalade-repo.org/packages/")) -(add-to-list 'package-archives - '("melpa" . "http://melpa.milkbox.net/packages/") t) -(package-initialize) - -;; (when (not package-archive-contents) -;; (package-refresh-contents)) - -;; Add in your own as you wish: -;; (defvar my-packages '(starter-kit starter-kit-bindings) -;; "A list of packages to ensure are installed at launch.") - -;; (when (not package-archive-contents) -;; (package-refresh-contents)) - -;; ;; Add in your own as you wish: -;; (defvar my-packages '(starter-kit starter-kit-lisp starter-kit-bindings) -;; "A list of packages to ensure are installed at launch.") - -;; (dolist (p my-packages) -;; (when (not (package-installed-p p)) -;; (package-install p))) - ;; ============================================================================= ;; elisp Helpers ;; =============================================================================