ambevar-dotfiles/.emacs.d/theme.el

142 lines
5.8 KiB
EmacsLisp

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; THEME
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; To find the variable associated to a currently used color, place the cursor
;; on it and call 'customize-face'.
(set-face-foreground 'font-lock-builtin-face "color-75" )
(set-face-bold-p 'font-lock-builtin-face t )
(set-face-foreground 'font-lock-comment-delimiter-face "color-242" )
(set-face-foreground 'font-lock-comment-face "color-242" )
(set-face-foreground 'font-lock-constant-face "color-105" )
(set-face-foreground 'font-lock-doc-face "color-28" )
(set-face-foreground 'font-lock-function-name-face "color-75" )
(set-face-bold-p 'font-lock-function-name-face t )
(set-face-foreground 'font-lock-keyword-face "brightred" )
(set-face-bold-p 'font-lock-keyword-face t )
(set-face-foreground 'font-lock-preprocessor-face "color-99" )
(set-face-foreground 'font-lock-string-face "color-39" )
(set-face-foreground 'font-lock-type-face "color-166" )
(set-face-foreground 'font-lock-variable-name-face "brightyellow" )
(set-face-foreground 'font-lock-warning-face "DarkOrange" )
;; General
(set-face-foreground 'link "brightblue" )
(set-face-underline-p 'link t)
(set-face-foreground 'minibuffer-prompt "brightcyan" )
(set-face-background 'region "color-17")
(set-face-foreground 'region "white")
(set-face-foreground 'error "red")
(set-face-bold-p 'error t)
(set-face-background 'shadow "color-234" ) ;; For line numbers.
;; Ediff
(add-hook
'ediff-mode-hook
(lambda ()
;; '(ediff-current-diff-A ((t (:background "color-22" :foreground "brightwhite"))))
;; '(ediff-current-diff-B ((t (:background "Yellow" :foreground "black"))))
;; '(ediff-odd-diff-A ((t (:background "Grey" :foreground "black")))))
(set-face-background 'ediff-current-diff-A "color-22")
(set-face-foreground 'ediff-current-diff-A "brightwhite")
(set-face-background 'ediff-current-diff-B "Yellow")
(set-face-foreground 'ediff-current-diff-B "black")
(set-face-background 'ediff-odd-diff-A "Grey")
(set-face-foreground 'ediff-odd-diff-A "black")
))
;; Show paren.
(set-face-background 'show-paren-match-face (face-background 'default))
(set-face-foreground 'show-paren-match-face "#def")
(set-face-attribute 'show-paren-match-face nil :weight 'extra-bold)
;; Make Emacs and Mutt colors fit.
(font-lock-add-keywords
'mail-mode
'(
("^From:" . font-lock-preprocessor-face)
("^Subject:" . font-lock-warning-face)
("^In-Reply-To:" . font-lock-builtin-face)
;; Mail addresses.
("\\([[:alnum:]._-]+@[[:alnum:]]+.[[:alnum:]]+\\)" 1 font-lock-string-face)
;; Quote
("^\> *\\([^\> ]\\).*$" . font-lock-doc-face)
;; Quote1
("^\> *\> *\\([^\> ]\\).*$" . font-lock-constant-face)
("^\> *\> *\> *\\([^\> ]\\).*$" . font-lock-type-face)
("^\> *\> *\> *\> *\\([^\> ]\\).*$" . font-lock-variable-name-face)
("^\> *\> *\> *\> *\> *\\([^\> ]\\).*$" . font-lock-comment-face)
("^\> *\> *\> *\> *\> *\> *\\([^\> ]\\).*$" . font-lock-comment-face)
("^\> *\> *\> *\> *\> *\> *\> *\\([^\> ]\\).*$" . font-lock-comment-face)
("^\> *\> *\> *\> *\> *\> *\> *\> *\\([^\> ]\\).*$" . font-lock-comment-face)
;; Signature
("^--.*\\(\n.*\\)*" . font-lock-comment-face)
))
;; General purpose. Hightlight the following:
;; Digits, FIXME, TODO.
;; FIXME: Digits regex are not perfect, and may make emacs slow. Sure?
(mapcar
(lambda (mode)
(font-lock-add-keywords
mode
'(
;; ("[^[:digit:][:space:]][[:space:]]*\\(-\\)[[:digit:]]+" 1 font-lock-constant-face)
;; ("\\(0x[[:digit:]a-fA-F]+\\)[^[:alnum:]_]" 1 font-lock-constant-face)
;; ("[^[:alnum:]_]\\([[:digit:]]*\\.?[[:digit:]]+\\)[^[:alnum:]_.]" 1 font-lock-constant-face)
("\\<\\(FIXME\\):" 1 font-lock-warning-face prepend)
("\\<\\(TODO\\):" 1 font-lock-warning-face prepend)
("\\<\\(WARNING\\):" 1 font-lock-warning-face prepend)
)))
'( text-mode
sh-mode emacs-lisp-mode lua-mode
c-mode python-mode
latex-mode html-mode texinfo-mode))
;; FIXME: fix C functions color.
;; (font-lock-add-keywords
;; 'c-mode
;; '(
;; ("&" . font-lock-keyword-face)
;; ("\\<\\(and\\|or\\|not\\)\\>" . font-lock-keyword-face)
;; ))
;; C-mode printf highlight.
;; (defvar font-lock-format-specifier-face 'font-lock-format-specifier-face
;; "Face name to use for format specifiers.")
;; (defface font-lock-format-specifier-face
;; '((t (:foreground "OrangeRed1")))
;; "Font Lock mode face used to highlight format specifiers."
;; :group 'font-lock-faces)
;; FIXME: disable highlighting outside of string.
;; (add-hook
;; 'c-mode-common-hook
;; (lambda ()
;; (font-lock-add-keywords
;; nil
;; '(("[^%]\\(%\\([[:digit:]]+\\$\\)?[-+' #0*]*\\([[:digit:]]*\\|\\*\\|\\*[[:digit:]]+\\$\\)\\(\\.\\([[:digit:]]*\\|\\*\\|\\*[[:digit:]]+\\$\\)\\)?\\([hlLjzt]\\|ll\\|hh\\)?\\([aAbdiuoxXDOUfFeEgGcCsSpn]\\|\\[\\^?.[^]]*\\]\\)\\)"
;; 1 font-lock-format-specifier-face t)
;; ("\\(%%\\)"
;; 1 font-lock-format-specifier-face t)) )))
;; FIXME: Does not work.
;; (add-hook
;; 'c-mode-common-hook
;; (set-face-foreground 'compilation-column-number "magenta")
;; )
;; Old/useless.
;; (set-face-background 'lazy-highlight "brightgreen" )
;; (set-face-background 'secondary-selection "SkyBlue4")
;; (set-face-background 'trailing-whitespace "red1")
;; (set-face-background 'vertical-border "color-17")
;; (set-face-foreground 'warning "DarkOrange")
;; (set-face-bold-p 'warning t)
;; (set-face-foreground 'nobreak-space "cyan")
;; (set-face-foreground 'success "Green1")
;; (set-face-bold-p 'success t)