diff options
Diffstat (limited to 'configs/shared/emacs/.emacs.d/elpa/doom-themes-20180720.438/doom-themes-common.el')
-rw-r--r-- | configs/shared/emacs/.emacs.d/elpa/doom-themes-20180720.438/doom-themes-common.el | 1377 |
1 files changed, 1377 insertions, 0 deletions
diff --git a/configs/shared/emacs/.emacs.d/elpa/doom-themes-20180720.438/doom-themes-common.el b/configs/shared/emacs/.emacs.d/elpa/doom-themes-20180720.438/doom-themes-common.el new file mode 100644 index 000000000000..e91518fc1ad2 --- /dev/null +++ b/configs/shared/emacs/.emacs.d/elpa/doom-themes-20180720.438/doom-themes-common.el @@ -0,0 +1,1377 @@ +;;; doom-themes-common.el -*- lexical-binding: t; -*- + +(defvar doom-themes-common-faces + '(;; --- custom faces ----------------------- + (doom-modeline-error + :background (doom-darken red 0.25) + :foreground base0 + :distant-foreground base0) + + ;; --- base faces ------------------------- + (bold :weight 'bold :foreground (unless bold base8)) + (italic :slant 'italic) + (bold-italic :inherit '(bold italic)) + + (default :background bg :foreground fg) + (fringe :inherit 'default :foreground base4) + (region :background region :foreground nil :distant-foreground (doom-darken fg 0.2)) + (highlight :background highlight :foreground base0 :distant-foreground base8) + (cursor :background highlight) + (shadow :foreground base5) + (minibuffer-prompt :foreground highlight) + (tooltip :background base3 :foreground fg) + (secondary-selection :background grey) + (lazy-highlight :background dark-blue :foreground base8 :distant-foreground base0 :weight 'bold) + (match :foreground green :background base0 :weight 'bold) + (trailing-whitespace :background red) + (nobreak-space :inherit 'default :underline nil) + (vertical-border :background vertical-bar :foreground vertical-bar) + (link :foreground highlight :underline t :weight 'bold) + + (error :foreground error) + (warning :foreground warning) + (success :foreground success) + + (font-lock-builtin-face :foreground builtin) + (font-lock-comment-face :foreground comments) + (font-lock-comment-delimiter-face :inherit 'font-lock-comment-face) + (font-lock-doc-face :inherit 'font-lock-comment-face :foreground doc-comments) + (font-lock-constant-face :foreground constants) + (font-lock-function-name-face :foreground functions) + (font-lock-keyword-face :foreground keywords) + (font-lock-string-face :foreground strings) + (font-lock-type-face :foreground type) + (font-lock-variable-name-face :foreground variables) + (font-lock-warning-face :inherit 'warning) + (font-lock-negation-char-face :inherit 'bold :foreground operators) + (font-lock-preprocessor-face :inherit 'bold :foreground operators) + (font-lock-preprocessor-char-face :inherit 'bold :foreground operators) + (font-lock-regexp-grouping-backslash :inherit 'bold :foreground operators) + (font-lock-regexp-grouping-construct :inherit 'bold :foreground operators) + + ;; mode-line / header-line + (mode-line :background bg :foreground fg :distant-foreground bg) + (mode-line-inactive :background bg-alt :foreground fg-alt :distant-foreground bg-alt) + (mode-line-emphasis :foreground highlight :distant-foreground bg) + (mode-line-highlight :inherit 'highlight :distant-foreground bg) + (mode-line-buffer-id :weight 'bold) + (header-line :inherit 'mode-line :distant-foreground bg) + + ;; 1. Line number faces must explicitly disable its text style attributes + ;; because nearby faces may "bleed" into the line numbers otherwise. + ;; 2. All other line number plugin faces should &inherit from these. + (line-number + :inherit 'default + :foreground base5 :distant-foreground nil + :weight 'normal :italic nil :underline nil :strike-through nil) + (line-number-current-line + :inherit '(hl-line default) + :foreground fg :distant-foreground nil + :weight 'normal :italic nil :underline nil :strike-through nil) + + + ;; --- built-in plugin faces -------------- + ;; cperl + (cperl-array-face :weight 'bold :inherit 'font-lock-variable-name-face) + (cperl-hash-face :weight 'bold :slant 'italic :inherit 'font-lock-variable-name-face) + (cperl-nonoverridable-face :inherit 'font-lock-builtin-face) + + ;; compilation + (compilation-column-number :inherit 'font-lock-comment-face) + (compilation-line-number :foreground highlight) + (compilation-error :inherit 'error :weight 'bold) + (compilation-warning :inherit 'warning :slant 'italic) + (compilation-info :inherit 'success) + (compilation-mode-line-exit :inherit 'compilation-info) + (compilation-mode-line-fail :inherit 'compilation-error) + + ;; custom + (custom-button :foreground blue :background bg :box '(:line-width 1 :style none)) + (custom-button-unraised :foreground violet :background bg :box '(:line-width 1 :style none)) + (custom-button-pressed-unraised :foreground bg :background violet :box '(:line-width 1 :style none)) + (custom-button-pressed :foreground bg :background blue :box '(:line-width 1 :style none)) + (custom-button-mouse :foreground bg :background blue :box '(:line-width 1 :style none)) + + (custom-variable-button :foreground green :underline t) + (custom-saved :foreground green :background (doom-blend green bg 0.2) :bold bold) + (custom-comment :foreground fg :background region) + (custom-comment-tag :foreground grey) + (custom-modified :foreground blue :background (doom-blend blue bg 0.2)) + (custom-variable-tag :foreground magenta) + (custom-visibility :foreground blue :underline nil) + (custom-group-subtitle :foreground red) + (custom-group-tag :foreground violet) + (custom-group-tag-1 :foreground blue) + (custom-set :foreground yellow :background bg) + (custom-themed :foreground yellow :background bg) + (custom-invalid :foreground red :background (doom-blend red bg 0.2)) + (custom-variable-obsolete :foreground grey :background bg) + (custom-state :foreground green :background (doom-blend green bg 0.2)) + (custom-changed :foreground blue :background bg) + + ;; dired + (dired-directory :foreground builtin) + (dired-ignored :foreground comments) + (dired-flagged :foreground red) + (dired-header :foreground blue :weight 'bold) + (dired-mark :foreground orange :weight 'bold) + (dired-marked :foreground magenta :weight 'bold) + (dired-perm-write :foreground fg :underline t) + (dired-symlink :foreground cyan :weight 'bold) + (dired-warning :foreground warning) + + ;; ediff + (ediff-fine-diff-A :background (doom-blend selection bg 0.7) :weight 'bold) + (ediff-fine-diff-B :inherit 'ediff-fine-diff-A) + (ediff-fine-diff-C :inherit 'ediff-fine-diff-A) + (ediff-current-diff-A :background (doom-blend selection bg 0.3)) + (ediff-current-diff-B :inherit 'ediff-current-diff-A) + (ediff-current-diff-C :inherit 'ediff-current-diff-A) + (ediff-even-diff-A :inherit 'hl-line) + (ediff-even-diff-B :inherit 'ediff-even-diff-A) + (ediff-even-diff-C :inherit 'ediff-even-diff-A) + (ediff-odd-diff-A :inherit 'ediff-even-diff-A) + (ediff-odd-diff-B :inherit 'ediff-odd-diff-A) + (ediff-odd-diff-C :inherit 'ediff-odd-diff-A) + + ;; elfeed + (elfeed-log-debug-level-face :foreground comments) + (elfeed-log-error-level-face :inherit 'error) + (elfeed-log-info-level-face :inherit 'success) + (elfeed-log-warn-level-face :inherit 'warning) + (elfeed-search-date-face :foreground violet) + (elfeed-search-feed-face :foreground blue) + (elfeed-search-tag-face :foreground comments) + (elfeed-search-title-face :foreground comments) + (elfeed-search-filter-face :foreground violet) + (elfeed-search-unread-count-face :foreground yellow) + (elfeed-search-unread-title-face :foreground fg :weight 'bold) + + ;; eshell + (eshell-prompt :foreground highlight :weight 'bold) + (eshell-ls-archive :foreground magenta) + (eshell-ls-backup :foreground yellow) + (eshell-ls-clutter :foreground red) + (eshell-ls-directory :foreground blue) + (eshell-ls-executable :foreground green) + (eshell-ls-missing :foreground red) + (eshell-ls-product :foreground orange) + (eshell-ls-readonly :foreground orange) + (eshell-ls-special :foreground violet) + (eshell-ls-symlink :foreground cyan) + (eshell-ls-unreadable :foreground base5) + + ;; flx-ido + (flx-highlight-face :weight 'bold :foreground yellow :underline nil) + + ;; hl-line + (hl-line :background bg-alt) + + ;; ido + (ido-first-match :foreground orange) + (ido-indicator :foreground red :background bg) + (ido-only-match :foreground green) + (ido-subdir :foreground violet) + (ido-virtual :foreground comments) + + ;; isearch + (isearch :background highlight :foreground base0 :weight 'bold) + + ;; linum + ((linum &inherit line-number)) + + ;; message + (message-header-name :foreground green) + (message-header-subject :foreground highlight :weight 'bold) + (message-header-to :foreground highlight :weight 'bold) + (message-header-cc :inherit 'message-header-to :foreground (doom-darken highlight 0.15)) + (message-header-other :foreground violet) + (message-header-newsgroups :foreground yellow) + (message-header-xheader :foreground doc-comments) + (message-separator :foreground comments) + (message-mml :foreground comments :slant 'italic) + (message-cited-text :foreground magenta) + + ;; term + (term :foreground fg) + (term-bold :weight 'bold) + (term-color-black :background base0 :foreground base0) + (term-color-red :background red :foreground red) + (term-color-green :background green :foreground green) + (term-color-yellow :background yellow :foreground yellow) + (term-color-blue :background blue :foreground blue) + (term-color-magenta :background magenta :foreground magenta) + (term-color-cyan :background cyan :foreground cyan) + (term-color-white :background base8 :foreground base8) + + ;; window-divider + (window-divider :inherit 'vertical-border) + (window-divider-first-pixel :inherit 'window-divider) + (window-divider-last-pixel :inherit 'window-divider) + + + ;; --- plugin faces ----------------------- + ;; all-the-icons + (all-the-icons-red :foreground red) + (all-the-icons-lred :foreground (doom-lighten red 0.3)) + (all-the-icons-dred :foreground (doom-darken red 0.3)) + (all-the-icons-green :foreground green) + (all-the-icons-lgreen :foreground (doom-lighten green 0.3)) + (all-the-icons-dgreen :foreground (doom-darken green 0.3)) + (all-the-icons-yellow :foreground yellow) + (all-the-icons-lyellow :foreground (doom-lighten yellow 0.3)) + (all-the-icons-dyellow :foreground (doom-darken yellow 0.3)) + (all-the-icons-blue :foreground blue) + (all-the-icons-blue-alt :foreground teal) + (all-the-icons-lblue :foreground (doom-lighten blue 0.3)) + (all-the-icons-dblue :foreground dark-blue) + (all-the-icons-maroon :foreground magenta) + (all-the-icons-lmaroon :foreground (doom-lighten magenta 0.3)) + (all-the-icons-dmaroon :foreground (doom-darken magenta 0.3)) + (all-the-icons-purple :foreground violet) + (all-the-icons-lpurple :foreground (doom-lighten violet 0.3)) + (all-the-icons-dpurple :foreground (doom-darken violet 0.3)) + (all-the-icons-cyan :foreground cyan) + (all-the-icons-cyan-alt :foreground cyan) + (all-the-icons-lcyan :foreground (doom-lighten cyan 0.3)) + (all-the-icons-dcyan :foreground dark-cyan) + (all-the-icons-pink :foreground (doom-lighten red 0.35)) + (all-the-icons-lpink :foreground (doom-lighten red 0.55)) + (all-the-icons-dpink :foreground red) + (all-the-icons-silver :foreground grey) + (all-the-icons-lsilver :foreground (doom-lighten grey 0.3)) + (all-the-icons-dsilver :foreground (doom-darken grey 0.3)) + + ;; avy + (avy-background-face :foreground comments) + (avy-lead-face :background highlight :foreground bg :distant-foreground fg :weight 'bold) + (avy-lead-face-0 + (&all :inherit 'avy-lead-face) + (&dark :background (doom-lighten highlight 0.3)) + (&light :background (doom-darken highlight 0.3))) + (avy-lead-face-1 + (&all :inherit 'avy-lead-face) + (&dark :background (doom-lighten highlight 0.6)) + (&light :background (doom-darken highlight 0.6))) + (avy-lead-face-2 + (&all :inherit 'avy-lead-face) + (&dark :background (doom-lighten highlight 0.9)) + (&light :background (doom-darken highlight 0.9))) + + ;; bookmark+ + (bmkp-*-mark :foreground bg :background yellow) + (bmkp->-mark :foreground yellow) + (bmkp-D-mark :foreground bg :background red) + (bmkp-X-mark :foreground red) + (bmkp-a-mark :background red) + (bmkp-bad-bookmark :foreground bg :background yellow) + (bmkp-bookmark-file :foreground violet :background bg-alt) + (bmkp-bookmark-list :background bg-alt) + (bmkp-buffer :foreground blue) + (bmkp-desktop :foreground bg :background violet) + (bmkp-file-handler :background red) + (bmkp-function :foreground green) + (bmkp-gnus :foreground orange) + (bmkp-heading :foreground yellow) + (bmkp-info :foreground cyan) + (bmkp-light-autonamed :foreground bg-alt :background cyan) + (bmkp-light-autonamed-region :foreground bg-alt :background red) + (bmkp-light-fringe-autonamed :foreground bg-alt :background violet) + (bmkp-light-fringe-non-autonamed :foreground bg-alt :background green) + (bmkp-light-mark :foreground bg :background cyan) + (bmkp-light-non-autonamed :foreground bg :background violet) + (bmkp-light-non-autonamed-region :foreground bg :background red) + (bmkp-local-directory :foreground bg :background violet) + (bmkp-local-file-with-region :foreground yellow) + (bmkp-local-file-without-region :foreground comments) + (bmkp-man :foreground violet) + (bmkp-no-jump :foreground comments) + (bmkp-no-local :foreground yellow) + (bmkp-non-file :foreground green) + (bmkp-remote-file :foreground orange) + (bmkp-sequence :foreground blue) + (bmkp-su-or-sudo :foreground red) + (bmkp-t-mark :foreground violet) + (bmkp-url :foreground blue :underline t) + (bmkp-variable-list :foreground green) + + ;; calfw + (cfw:face-title :foreground blue :weight 'bold :height 2.0 :inherit 'variable-pitch) + (cfw:face-header :foreground (doom-blend blue bg 0.8) :weight 'bold) + (cfw:face-sunday :foreground (doom-blend red bg 0.8) :weight 'bold) + (cfw:face-saturday :foreground (doom-blend red bg 0.8) :weight 'bold) + (cfw:face-holiday :foreground nil :background bg-alt :weight 'bold) + (cfw:face-grid :foreground vertical-bar) + (cfw:face-periods :foreground yellow) + (cfw:face-toolbar :foreground nil :background nil) + (cfw:face-toolbar-button-off :foreground base6 :weight 'bold :inherit 'variable-pitch) + (cfw:face-toolbar-button-on :foreground blue :weight 'bold :inherit 'variable-pitch) + (cfw:face-default-content :foreground fg) + (cfw:face-day-title :foreground fg :weight 'bold) + (cfw:face-today-title :foreground bg :background blue :weight 'bold) + (cfw:face-default-day :weight 'bold) + (cfw:face-today :foreground nil :background nil :weight 'bold) + (cfw:face-annotation :foreground violet) + (cfw:face-disable :foreground grey) + (cfw:face-select :background region) + + ;; company + (company-tooltip :inherit 'tooltip) + (company-tooltip-common :foreground highlight :distant-foreground base0 :weight 'bold) + (company-tooltip-search :background highlight :foreground bg :distant-foreground fg :weight 'bold) + (company-tooltip-search-selection :background (doom-darken selection 0.25)) + (company-tooltip-selection :background selection :weight 'bold) + (company-tooltip-mouse :background magenta :foreground bg :distant-foreground fg) + (company-tooltip-annotation :foreground violet :distant-foreground bg) + (company-scrollbar-bg :inherit 'tooltip) + (company-scrollbar-fg :background highlight) + (company-preview :foreground comments) + (company-preview-common :background base3 :foreground highlight) + (company-preview-search :inherit 'company-tooltip-search) + (company-template-field :inherit 'match) + + ;; company-box + (company-box-candidate :foreground fg) + + ;; circe + (circe-fool :foreground doc-comments) + (circe-highlight-nick-face :weight 'bold :foreground constants) + (circe-prompt-face :weight 'bold :foreground highlight) + (circe-server-face :foreground comments) + (circe-my-message-face :weight 'bold) + + ;; diff-hl + (diff-hl-change :foreground vc-modified) + (diff-hl-delete :foreground vc-deleted) + (diff-hl-insert :foreground vc-added) + + ;; diff-mode + (diff-added :inherit 'hl-line :foreground green) + (diff-changed :foreground violet) + (diff-context + (&dark :foreground (doom-darken fg 0.12)) + (&light :foreground (doom-lighten fg 0.12))) + (diff-removed :foreground red :background base3) + (diff-header :foreground cyan :background nil) + (diff-file-header :foreground blue :background nil) + (diff-hunk-header :foreground violet) + (diff-refine-added :inherit 'diff-added :inverse-video t) + (diff-refine-changed :inherit 'diff-changed :inverse-video t) + (diff-refine-removed :inherit 'diff-removed :inverse-video t) + + ;; dired+ + (diredp-file-name :foreground base8) + (diredp-dir-name :foreground base8 :weight 'bold) + (diredp-ignored-file-name :foreground base5) + (diredp-compressed-file-suffix :foreground base5) + (diredp-symlink :foreground violet) + (diredp-dir-heading :foreground blue :weight 'bold) + (diredp-file-suffix :foreground violet) + (diredp-read-priv :foreground magenta) + (diredp-write-priv :foreground green) + (diredp-exec-priv :foreground yellow) + (diredp-rare-priv :foreground red :weight 'bold) + (diredp-dir-priv :foreground blue :weight 'bold) + (diredp-no-priv :foreground base5) + (diredp-number :foreground magenta) + (diredp-date-time :foreground blue) + + ;; dired-k + (dired-k-directory :foreground blue) + + ;; dired-subtree + (dired-subtree-depth-1-face :background (doom-darken bg-alt 0.02)) + (dired-subtree-depth-2-face :background (doom-darken bg-alt 0.04)) + (dired-subtree-depth-3-face :background (doom-darken bg-alt 0.06)) + (dired-subtree-depth-4-face :background (doom-darken bg-alt 0.08)) + (dired-subtree-depth-5-face :background (doom-darken bg-alt 0.10)) + (dired-subtree-depth-6-face :background (doom-darken bg-alt 0.12)) + + ;; diredfl + (diredfl-autofile-name :foreground base4 :background bg-alt) + (diredfl-compressed-file-name :foreground yellow :background bg-alt) + (diredfl-compressed-file-suffix :foreground (doom-blend orange bg-alt 0.6) :background bg-alt) + (diredfl-date-time :foreground cyan :background bg-alt :weight 'light) + (diredfl-deletion :foreground red :background (doom-blend red bg-alt 0.2) :weight 'bold) + (diredfl-deletion-file-name :foreground red :background (doom-blend red bg-alt 0.2)) + (diredfl-dir-heading :foreground blue :background bg-alt :weight 'bold) + (diredfl-dir-name :foreground blue :background bg-alt) + (diredfl-dir-priv :foreground blue :background bg-alt) + (diredfl-exec-priv :foreground green :background bg-alt) + (diredfl-executable-tag :foreground green :background bg-alt) + (diredfl-file-name :foreground fg :background bg-alt) + (diredfl-file-suffix :foreground (doom-blend fg bg-alt 0.6) :background bg-alt) + (diredfl-flag-mark :foreground yellow :background (doom-blend yellow bg-alt 0.2) :weight 'bold) + (diredfl-flag-mark-line :background (doom-blend yellow bg-alt 0.1)) + (diredfl-ignored-file-name :foreground comments :background bg-alt) + (diredfl-link-priv :foreground violet :background bg-alt) + (diredfl-no-priv :foreground fg :background bg-alt) + (diredfl-number :foreground orange :background bg-alt) + (diredfl-other-priv :foreground magenta :background bg-alt) + (diredfl-rare-priv :foreground fg :background bg-alt) + (diredfl-read-priv :foreground yellow :background bg-alt) + (diredfl-symlink :foreground violet :background bg-alt) + (diredfl-tagged-autofile-name :foreground base5 :background bg-alt) + (diredfl-write-priv :foreground red :background bg-alt) + + ;; elscreen + (elscreen-tab-background-face :background bg) + (elscreen-tab-control-face :background bg :foreground bg) + (elscreen-tab-current-screen-face :background bg-alt :foreground fg) + (elscreen-tab-other-screen-face :background bg :foreground fg-alt) + + ;; erc + (erc-button :weight 'bold :underline t) + (erc-default-face :inherit 'default) + (erc-action-face :weight 'bold) + (erc-command-indicator-face :weight 'bold) + (erc-direct-msg-face :foreground magenta) + (erc-error-face :inherit 'error) + (erc-header-line :background (doom-darken bg-alt 0.15) :foreground highlight) + (erc-input-face :foreground green) + (erc-current-nick-face :foreground green :weight 'bold) + (erc-timestamp-face :foreground blue :weight 'bold) + (erc-nick-default-face :weight 'bold) + (erc-nick-msg-face :foreground magenta) + (erc-nick-prefix-face :inherit 'erc-nick-default-face) + (erc-my-nick-face :foreground green :weight 'bold) + (erc-my-nick-prefix-face :inherit 'erc-my-nick-face) + (erc-notice-face :foreground comments) + (erc-prompt-face :foreground highlight :weight 'bold) + + ;; evil + (evil-ex-info :foreground error :slant 'italic) + (evil-ex-substitute-matches :background base0 :foreground red :strike-through t :weight 'bold) + (evil-ex-substitute-replacement :background base0 :foreground green :weight 'bold) + (evil-search-highlight-persist-highlight-face :inherit 'lazy-highlight) + + ;; evil-mc + (evil-mc-cursor-default-face :background magenta :foreground base0 :inverse-video nil) + (evil-mc-region-face :inherit 'region) + (evil-mc-cursor-bar-face :height 1 :background magenta :foreground base0) + (evil-mc-cursor-hbar-face :underline `(:color ,highlight)) + + ;; evil-snipe + (evil-snipe-first-match-face :foreground highlight :background dark-blue :weight 'bold) + (evil-snipe-matches-face :foreground highlight :underline t :weight 'bold) + + ;; evil-googles + (evil-goggles-default-face :inherit 'region) + + ;; flycheck + (flycheck-error :underline `(:style wave :color ,red)) + (flycheck-warning :underline `(:style wave :color ,yellow)) + (flycheck-info :underline `(:style wave :color ,green)) + + ;; flycheck-posframe + (flycheck-posframe-face :inherit 'default) + (flycheck-posframe-background-face :background bg-alt) + (flycheck-posframe-error-face :inherit 'flycheck-posframe-face :foreground error) + (flycheck-posframe-info-face :inherit 'flycheck-posframe-face :foreground fg) + (flycheck-posframe-warning-face :inherit 'flycheck-posframe-face :foreground warning) + + ;; flymake + (flymake-error :underline `(:style wave :color ,red)) + (flymake-note :underline `(:style wave :color ,green)) + (flymake-warning :underline `(:style wave :color ,orange)) + + ;; flyspell + (flyspell-incorrect :underline `(:style wave :color ,error) :inherit 'unspecified) + + ;; git-commit + (git-commit-summary :foreground strings) + (git-commit-overlong-summary :inherit 'error :background base0 :slant 'italic :weight 'bold) + (git-commit-nonempty-second-line :inherit 'git-commit-overlong-summary) + (git-commit-note :foreground cyan :slant 'italic) + (git-commit-pseudo-header :foreground doc-comments :slant 'italic) + (git-commit-known-pseudo-header :foreground doc-comments :weight 'bold :slant 'italic) + (git-commit-comment-branch-local :foreground magenta) + (git-commit-comment-branch-remote :foreground green) + (git-commit-comment-detached :foreground orange) + (git-commit-comment-heading :foreground keywords) + (git-commit-comment-file :foreground violet) + (git-commit-comment-action) + + ;; git-gutter + (git-gutter:modified :foreground vc-modified) + (git-gutter:added :foreground vc-added) + (git-gutter:deleted :foreground vc-deleted) + + ;; git-gutter+ + (git-gutter+-modified :foreground vc-modified :background nil) + (git-gutter+-added :foreground vc-added :background nil) + (git-gutter+-deleted :foreground vc-deleted :background nil) + + ;; git-gutter-fringe + ((git-gutter-fr:modified &inherit git-gutter:modified)) + ((git-gutter-fr:added &inherit git-gutter:added)) + ((git-gutter-fr:deleted &inherit git-gutter:deleted)) + + ;; gnus + (gnus-group-mail-1 :weight 'bold :foreground fg) + (gnus-group-mail-2 :inherit 'gnus-group-mail-1) + (gnus-group-mail-3 :inherit 'gnus-group-mail-1) + (gnus-group-mail-1-empty :foreground base5) + (gnus-group-mail-2-empty :inherit 'gnus-group-mail-1-empty) + (gnus-group-mail-3-empty :inherit 'gnus-group-mail-1-empty) + (gnus-group-news-1 :inherit 'gnus-group-mail-1) + (gnus-group-news-2 :inherit 'gnus-group-news-1) + (gnus-group-news-3 :inherit 'gnus-group-news-1) + (gnus-group-news-4 :inherit 'gnus-group-news-1) + (gnus-group-news-5 :inherit 'gnus-group-news-1) + (gnus-group-news-6 :inherit 'gnus-group-news-1) + (gnus-group-news-1-empty :inherit 'gnus-group-mail-1-empty) + (gnus-group-news-2-empty :inherit 'gnus-groupnews-1-empty) + (gnus-group-news-3-empty :inherit 'gnus-groupnews-1-empty) + (gnus-group-news-4-empty :inherit 'gnus-groupnews-1-empty) + (gnus-group-news-5-empty :inherit 'gnus-groupnews-1-empty) + (gnus-group-news-6-empty :inherit 'gnus-groupnews-1-empty) + (gnus-group-mail-low :inherit 'gnus-group-mail-1 :weight 'normal) + (gnus-group-mail-low-empty :inherit 'gnus-group-mail-1-empty) + (gnus-group-news-low :inherit 'gnus-group-mail-1 :foreground base5) + (gnus-group-news-low-empty :inherit 'gnus-group-news-low :weight 'normal) + (gnus-header-content :inherit 'message-header-other) + (gnus-header-from :inherit 'message-header-other) + (gnus-header-name :inherit 'message-header-name) + (gnus-header-newsgroups :inherit 'message-header-other) + (gnus-header-subject :inherit 'message-header-subject) + (gnus-summary-cancelled :foreground red :strike-through t) + (gnus-summary-high-ancient :foreground (doom-lighten base5 0.2) :inherit 'italic) + (gnus-summary-high-read :foreground (doom-lighten fg 0.2)) + (gnus-summary-high-ticked :foreground (doom-lighten magenta 0.2)) + (gnus-summary-high-unread :foreground (doom-lighten green 0.2)) + (gnus-summary-low-ancient :foreground (doom-darken base5 0.2) :inherit 'italic) + (gnus-summary-low-read :foreground (doom-darken fg 0.2)) + (gnus-summary-low-ticked :foreground (doom-darken magenta 0.2)) + (gnus-summary-low-unread :foreground (doom-darken green 0.2)) + (gnus-summary-normal-ancient :foreground base5 :inherit 'italic) + (gnus-summary-normal-read :foreground fg) + (gnus-summary-normal-ticked :foreground magenta) + (gnus-summary-normal-unread :foreground green :inherit 'bold) + (gnus-summary-selected :foreground blue :weight 'bold) + (gnus-cite-1 :foreground violet) + (gnus-cite-2 :foreground violet) + (gnus-cite-3 :foreground violet) + (gnus-cite-4 :foreground green) + (gnus-cite-5 :foreground green) + (gnus-cite-6 :foreground green) + (gnus-cite-7 :foreground magenta) + (gnus-cite-8 :foreground magenta) + (gnus-cite-9 :foreground magenta) + (gnus-cite-10 :foreground yellow) + (gnus-cite-11 :foreground yellow) + (gnus-signature :foreground yellow) + (gnus-x-face :background base5 :foreground fg) + + ;; helm + (helm-selection + (&all :inherit 'bold :background selection) + (&dark :distant-foreground highlight) + (&light :distant-foreground base0)) + (helm-match :foreground highlight :distant-foreground base8 :underline t) + (helm-source-header :background base2 :foreground base5) + (helm-swoop-target-line-face :foreground highlight :inverse-video t) + (helm-visible-mark :inherit '(bold highlight)) + (helm-ff-file :foreground fg) + (helm-ff-prefix :foreground keywords) + (helm-ff-dotted-directory :foreground grey) + (helm-ff-directory :foreground variables) + (helm-ff-executable :foreground base8 :inherit 'italic) + (helm-grep-match :foreground highlight :distant-foreground red) + (helm-grep-file :foreground methods) + (helm-grep-lineno :foreground base5) + (helm-grep-finish :foreground green) + (helm-swoop-target-line-face :foreground highlight :inverse-video t) + (helm-swoop-target-line-block-face :foreground yellow) + (helm-swoop-target-word-face :foreground green :inherit 'bold) + (helm-swoop-target-number-face :foreground base5) + + ;; helpful + (helpful-heading :weight 'bold :height 1.2) + + ;; hideshow + (+doom-folded-face :inherit 'font-lock-comment-face + :weight 'light + :background (doom-darken bg 0.125)) + + ;; highlight-indentation-mode + (highlight-indentation-face :inherit 'hl-line) + (highlight-indentation-current-column-face :background base1) + (highlight-indentation-guides-odd-face :inherit 'highlight-indentation-face) + (highlight-indentation-guides-even-face :inherit 'highlight-indentation-face) + + ;; highlight-quoted-mode + (highlight-quoted-symbol :foreground type) + (highlight-quoted-quote :foreground operators) + + ;; highlight-numbers-mode + (highlight-numbers-number :inherit 'bold :foreground numbers) + + ;; hlinum + (linum-highlight-face :foreground fg :distant-foreground nil :weight 'normal) + + ;; hl-todo + (hl-todo :foreground red :weight 'bold) + + ;; hydra + (hydra-face-red :foreground red :weight 'bold) + (hydra-face-blue :foreground blue :weight 'bold) + (hydra-face-amaranth :foreground magenta :weight 'bold) + (hydra-face-pink :foreground violet :weight 'bold) + (hydra-face-teal :foreground teal :weight 'bold) + + ;; iedit + (iedit-occurrence :foreground magenta :weight 'bold :inverse-video t) + (iedit-read-only-occurrence :inherit 'region) + + ;; imenu-list + ;; (imenu-list-entry-face) + (imenu-list-entry-face-0 :foreground highlight) + (imenu-list-entry-subalist-face-0 :inherit 'imenu-list-entry-face-0 :weight 'bold) + (imenu-list-entry-face-1 :foreground green) + (imenu-list-entry-subalist-face-1 :inherit 'imenu-list-entry-face-1 :weight 'bold) + (imenu-list-entry-face-2 :foreground yellow) + (imenu-list-entry-subalist-face-2 :inherit 'imenu-list-entry-face-2 :weight 'bold) + + ;; indent-guide + ((indent-guide-face &inherit highlight-indentation-face)) + + ;; ivy + (ivy-current-match :background region :distant-foreground nil) + (ivy-minibuffer-match-face-1 + :background nil + :foreground (doom-lighten grey 0.14) + :weight 'light) + (ivy-minibuffer-match-face-2 + :inherit 'ivy-minibuffer-match-face-1 + :foreground magenta :background base1 :weight 'semi-bold) + (ivy-minibuffer-match-face-3 + :inherit 'ivy-minibuffer-match-face-2 + :foreground green :weight 'semi-bold) + (ivy-minibuffer-match-face-4 + :inherit 'ivy-minibuffer-match-face-2 + :foreground yellow :weight 'semi-bold) + (ivy-minibuffer-match-highlight :foreground violet) + (ivy-highlight-face :foreground violet) + (ivy-confirm-face :foreground success) + (ivy-match-required-face :foreground error) + (ivy-virtual :inherit 'italic :foreground doc-comments) + (ivy-modified-buffer :inherit 'bold :foreground vc-modified) + + ;; ivy-posframe + (ivy-posframe :background (doom-darken bg-alt 0.2)) + + ;; jabber + (jabber-activity-face :foreground red :weight 'bold) + (jabber-activity-personal-face :foreground blue :weight 'bold) + (jabber-chat-error :foreground red :weight 'bold) + (jabber-chat-prompt-foreign :foreground red :weight 'bold) + (jabber-chat-prompt-local :foreground blue :weight 'bold) + (jabber-chat-prompt-system :foreground green :weight 'bold) + (jabber-chat-text-foreign :foreground fg) + (jabber-chat-text-local :foreground fg) + (jabber-rare-time-face :foreground green) + (jabber-roster-user-away :foreground yellow) + (jabber-roster-user-chatty :foreground green :weight 'bold) + (jabber-roster-user-dnd :foreground red) + (jabber-roster-user-error :foreground red) + (jabber-roster-user-offline :foreground fg) + (jabber-roster-user-online :foreground green :weight 'bold) + (jabber-roster-user-xa :foreground cyan) + + ;; linum-relative + ((linum-relative-current-face &inherit line-number-current-line)) + + ;; lui + (lui-time-stamp-face :foreground violet) + (lui-highlight-face :foreground highlight) + (lui-button-face :foreground builtin :underline t) + + ;; multiple cursors + (mc/cursor-face :inherit 'cursor) + + ;; nav-flash + (nav-flash-face :background selection :foreground base8 :weight 'bold) + + ;; neotree + (neo-root-dir-face :foreground strings :background bg :box `(:line-width 4 :color ,bg)) + (neo-file-link-face :foreground fg) + (neo-dir-link-face :foreground highlight) + (neo-expand-btn-face :foreground highlight) + (neo-vc-edited-face :foreground yellow) + (neo-vc-added-face :foreground green) + (neo-vc-removed-face :foreground red :strike-through t) + (neo-vc-conflict-face :foreground magenta :weight 'bold) + (neo-vc-ignored-face :foreground comments) + (doom-neotree-dir-face :foreground highlight) + (doom-neotree-file-face :foreground base8) + (doom-neotree-hidden-file-face :foreground comments) + (doom-neotree-text-file-face :foreground fg) + (doom-neotree-data-file-face :foreground violet) + (doom-neotree-media-file-face :inherit 'doom-neotree-hidden-file-face) + + ;; nlinum + ((nlinum-current-line &inherit line-number-current-line)) + + ;; nlinum-hl + ((nlinum-hl-face &inherit line-number-current-line)) + + ;; nlinum-relative + ((nlinum-relative-current-face &inherit line-number-current-line)) + + ;; lsp + ;; TODO Add light versions + (lsp-face-highlight-textual :background dark-blue :foreground base8 :distant-foreground base0 :weight 'bold) + (lsp-face-highlight-read :background dark-blue :foreground base8 :distant-foreground base0 :weight 'bold) + (lsp-face-highlight-write :background dark-blue :foreground base8 :distant-foreground base0 :weight 'bold) + (lsp-ui-peek-filename :inherit 'doom-modeline-buffer-file) + (lsp-ui-peek-header :foreground fg :background (doom-lighten bg 0.1) :bold bold) + (lsp-ui-peek-selection :foreground bg :background blue :bold bold) + (lsp-ui-peek-list :background (doom-darken bg 0.1)) + (lsp-ui-peek-peek :background (doom-darken bg 0.1)) + (lsp-ui-peek-highlight :inherit 'lsp-ui-peek-header :background region :foreground bg :box t) + (lsp-ui-peek-line-number :foreground success) + + ;; magit + (magit-bisect-bad :foreground red) + (magit-bisect-good :foreground green) + (magit-bisect-skip :foreground orange) + (magit-blame-date :foreground red) + (magit-blame-heading :foreground orange :background base3) + (magit-branch-current :foreground blue) + (magit-branch-local :foreground cyan) + (magit-branch-remote :foreground green) + (magit-cherry-equivalent :foreground violet) + (magit-cherry-unmatched :foreground cyan) + (magit-diff-added :foreground (doom-darken green 0.2) :background (doom-blend green bg 0.1)) + (magit-diff-added-highlight :foreground green :background (doom-blend green bg 0.2) :weight 'bold) + (magit-diff-base :foreground (doom-darken orange 0.2) :background (doom-blend orange bg 0.1)) + (magit-diff-base-highlight :foreground orange :background (doom-blend orange bg 0.2) :weight 'bold) + (magit-diff-context :foreground (doom-darken fg 0.4) :background bg) + (magit-diff-context-highlight :foreground fg :background bg-alt) + (magit-diff-file-heading :foreground fg :weight 'bold) + (magit-diff-file-heading-selection :foreground magenta :background dark-blue :weight 'bold) + (magit-diff-hunk-heading :foreground bg :background (doom-blend violet bg 0.3)) + (magit-diff-hunk-heading-highlight :foreground bg :background violet :weight 'bold) + (magit-diff-removed :foreground (doom-darken red 0.2) :background (doom-blend red base3 0.1)) + (magit-diff-removed-highlight :foreground red :background (doom-blend red base3 0.2) :weight 'bold) + (magit-diff-lines-heading :foreground yellow :background red) + (magit-diffstat-added :foreground green) + (magit-diffstat-removed :foreground red) + (magit-dimmed :foreground comments) + (magit-hash :foreground comments) + (magit-header-line :background dark-blue :foreground base8 :weight 'bold + :box `(:line-width 3 :color ,dark-blue)) + (magit-log-author :foreground orange) + (magit-log-date :foreground blue) + (magit-log-graph :foreground comments) + (magit-process-ng :inherit 'error) + (magit-process-ok :inherit 'success) + (magit-reflog-amend :foreground magenta) + (magit-reflog-checkout :foreground blue) + (magit-reflog-cherry-pick :foreground green) + (magit-reflog-commit :foreground green) + (magit-reflog-merge :foreground green) + (magit-reflog-other :foreground cyan) + (magit-reflog-rebase :foreground magenta) + (magit-reflog-remote :foreground cyan) + (magit-reflog-reset :inherit 'error) + (magit-refname :foreground comments) + (magit-section-heading :foreground blue :weight 'bold) + (magit-section-heading-selection :foreground orange :weight 'bold) + (magit-section-highlight :inherit 'hl-line) + (magit-sequence-drop :foreground red) + (magit-sequence-head :foreground blue) + (magit-sequence-part :foreground orange) + (magit-sequence-stop :foreground green) + (magit-signature-bad :inherit 'error) + (magit-signature-error :inherit 'error) + (magit-signature-expired :foreground orange) + (magit-signature-good :inherit 'success) + (magit-signature-revoked :foreground magenta) + (magit-signature-untrusted :foreground yellow) + (magit-tag :foreground yellow) + (magit-filename :foreground violet) + (magit-section-secondary-heading :foreground violet :weight 'bold) + + ;; mic-paren + (paren-face-match :foreground red :background base0 :weight 'ultra-bold) + (paren-face-mismatch :foreground base0 :background red :weight 'ultra-bold) + (paren-face-no-match :inherit 'paren-face-mismatch :weight 'ultra-bold) + + ;; parenface + (paren-face :foreground comments) + + ;; perspective + (persp-selected-face :foreground blue :weight 'bold) + + ;; persp-mode + (persp-face-lighter-buffer-not-in-persp :foreground warning :slant 'italic) + (persp-face-lighter-nil-persp :foreground comments) + + ;; popup + (popup-face :inherit 'tooltip) + (popup-tip-face :inherit 'popup-face :foreground violet :background base0) + (popup-selection-face :background selection) + + ;; rainbow-delimiters + (rainbow-delimiters-depth-1-face :foreground blue) + (rainbow-delimiters-depth-2-face :foreground magenta) + (rainbow-delimiters-depth-3-face :foreground green) + (rainbow-delimiters-depth-4-face :foreground orange) + (rainbow-delimiters-depth-5-face :foreground violet) + (rainbow-delimiters-depth-6-face :foreground yellow) + (rainbow-delimiters-depth-7-face :foreground teal) + (rainbow-delimiters-unmatched-face :foreground red :weight 'bold :inverse-video t) + (rainbow-delimiters-mismatched-face :inherit 'rainbow-delimiters-unmatched-face) + + ;; re-builder + (reb-match-0 :foreground orange :inverse-video t) + (reb-match-1 :foreground magenta :inverse-video t) + (reb-match-2 :foreground green :inverse-video t) + (reb-match-3 :foreground yellow :inverse-video t) + + ;; show-paren + ((show-paren-match &inherit paren-face-match)) + ((show-paren-mismatch &inherit paren-face-mismatch)) + + ;; smartparens + (sp-pair-overlay-face :background region) + + ;; smartparens + ((sp-show-pair-match-face &inherit show-paren-match)) + ((sp-show-pair-mismatch-face &inherit show-paren-mismatch)) + + ;; smerge-tool + (smerge-lower :background (doom-blend green bg 0.2)) + (smerge-upper :background (doom-blend red base3 0.2)) + (smerge-base :background (doom-blend blue bg 0.2)) + (smerge-markers :background comments :foreground bg :distant-foreground fg :weight 'bold) + ;; Emacs <25 compatibility + ((smerge-mine &inherit smerge-upper)) + ((smerge-other &inherit smerge-lower)) + + ;; solaire-mode + (solaire-default-face :inherit 'default :background bg-alt) + (solaire-hl-line-face :inherit 'hl-line :background bg) + (solaire-org-hide-face :foreground bg-alt) + + ;; stripe-buffer + (stripe-highlight + (&light :background base5) + (&dark :background base3)) + + ;; swiper + (swiper-line-face :background blue :foreground base0) + (swiper-match-face-1 :inherit 'unspecified :background base0 :foreground base5) + (swiper-match-face-2 :inherit 'unspecified :background orange :foreground base0 :weight 'bold) + (swiper-match-face-3 :inherit 'unspecified :background magenta :foreground base0 :weight 'bold) + (swiper-match-face-4 :inherit 'unspecified :background green :foreground base0 :weight 'bold) + + ;; tabbar + (tabbar-default :foreground bg :background bg :height 1.0) + (tabbar-highlight :foreground fg :background selection :distant-foreground bg) + (tabbar-button :foreground fg :background bg) + (tabbar-button-highlight :inherit 'tabbar-button :inverse-video t) + (tabbar-modified :inherit 'tabbar-default :foreground red :weight 'bold) + (tabbar-unselected :inherit 'tabbar-default :foreground base5) + (tabbar-unselected-modified :inherit 'tabbar-modified) + (tabbar-selected + :inherit 'tabbar-default :weight 'bold + :foreground fg :background bg-alt) + (tabbar-selected-modified :inherit 'tabbar-selected :foreground green) + + ;; tldr + (tldr-command-itself :foreground bg :background green :weight 'semi-bold) + (tldr-title :foreground yellow :bold t :height 1.4) + (tldr-description :foreground fg :weight 'semi-bold) + (tldr-introduction :foreground (doom-blend blue bg 0.8) :weight 'semi-bold) + (tldr-code-block :foreground green :background region :weight 'semi-bold) + (tldr-command-argument :foreground fg :background region ) + + ;; treemacs + (treemacs-root-face :inherit 'font-lock-string-face :weight 'bold :height 1.2) + (treemacs-file-face :foreground fg) + (treemacs-directory-face :foreground fg) + (treemacs-tags-face :foreground highlight) + (treemacs-git-modified-face :foreground violet) + (treemacs-git-added-face :foreground green) + (treemacs-git-conflict-face :foreground red) + (treemacs-git-untracked-face :inherit 'font-lock-doc-face) + + ;; twittering-mode + (twitter-divider ; custom face in Doom Emacs + (&light :underline '(:color (doom-lighten vertical-bar 0.2))) + (&dark :underline '(:color (doom-darken vertical-bar 0.2)))) + + ;; undo-tree + (undo-tree-visualizer-default-face :foreground base5) + (undo-tree-visualizer-current-face :foreground green :weight 'bold) + (undo-tree-visualizer-unmodified-face :foreground base5) + (undo-tree-visualizer-active-branch-face :foreground blue) + (undo-tree-visualizer-register-face :foreground yellow) + + ;; vimish-fold + (vimish-fold-overlay :inherit 'font-lock-comment-face :background base0 :weight 'light) + (vimish-fold-fringe :foreground magenta) + + ;; volatile-highlights + (vhl/default-face :background grey) + + ;; wgrep + (wgrep-face :weight 'bold :foreground green :background base5) + (wgrep-delete-face :foreground base3 :background red) + (wgrep-done-face :foreground blue) + (wgrep-file-face :foreground comments) + (wgrep-reject-face :foreground red :weight 'bold) + + ;; which-func + (which-func :foreground blue) + + ;; which-key + (which-key-key-face :foreground green) + (which-key-group-description-face :foreground violet) + (which-key-command-description-face :foreground blue) + (which-key-local-map-description-face :foreground magenta) + + ;; whitespace + (whitespace-empty :background base3) + (whitespace-space :foreground base4) + (whitespace-tab :foreground base4 :background (unless indent-tabs-mode base3)) + (whitespace-newline :foreground base4) + (whitespace-indentation :foreground red :background yellow) + (whitespace-trailing :inherit 'trailing-whitespace) + (whitespace-line :background base0 :foreground red :weight 'bold) + + ;; workgroups2 + (wg-current-workgroup-face :foreground base0 :background highlight) + (wg-other-workgroup-face :foreground base5) + (wg-divider-face :foreground grey) + (wg-brace-face :foreground highlight) + + ;; yasnippet + (yas-field-highlight-face :inherit 'match) + + + ;; --- major-mode faces ------------------- + ;; auctex (latex-mode) + (font-latex-bold-face :inherit 'bold) + (font-latex-italic-face :inherit 'italic) + (font-latex-math-face :foreground blue) + (font-latex-sectioning-0-face :foreground blue :weight 'ultra-bold :height 1.4) + (font-latex-sectioning-1-face :foreground magenta :weight 'semi-bold :height 1.2) + (font-latex-sectioning-2-face :foreground violet :weight 'semi-bold) + (font-latex-sectioning-3-face :foreground (doom-lighten blue 0.3) :weight 'semi-bold) + (font-latex-sectioning-4-face :foreground (doom-lighten magenta 0.3) :weight 'semi-bold) + (font-latex-sectioning-5-face :foreground (doom-lighten violet 0.3) :weight 'semi-bold) + (font-latex-script-char-face :foreground dark-blue) + (font-latex-string-face :inherit 'font-lock-string-face) + (font-latex-warning-face :inherit 'font-lock-warning-face) + (font-latex-verbatim-face :inherit 'fixed-pitch :foreground violet :slant 'italic) + + ;; elixir-mode + (elixir-atom-face (&light :foreground dark-blue) + (&dark :foreground cyan)) + (elixir-attribute-face :foreground violet) + + ;; enh-ruby-mode + (enh-ruby-op-face :foreground operators) + (enh-ruby-string-delimiter-face :inherit 'font-lock-string-face) + (enh-ruby-heredoc-delimiter-face :inherit 'font-lock-string-face) + (enh-ruby-regexp-face :foreground constants) + (enh-ruby-regexp-delimiter-face :inherit 'enh-ruby-regexp-face) + (erm-syn-errline :underline `(:style wave :color ,error)) + (erm-syn-warnline :underline `(:style wave :color ,warning)) + + ;; jdee-mode + (jdee-font-lock-number-face :foreground numbers) + (jdee-font-lock-operator-face :foreground operators) + (jdee-font-lock-constant-face :inherit 'font-lock-constant-face) + (jdee-font-lock-constructor-face :foreground methods) + (jdee-font-lock-public-face :inherit 'font-lock-keyword-face) + (jdee-font-lock-protected-face :inherit 'font-lock-keyword-face) + (jdee-font-lock-private-face :inherit 'font-lock-keyword-face) + (jdee-font-lock-modifier-face :inherit 'font-lock-type-face) + (jdee-font-lock-doc-tag-face :foreground violet) + (jdee-font-lock-italic-face :inherit 'italic) + (jdee-font-lock-bold-face :inherit 'bold) + (jdee-font-lock-link-face :foreground blue :italic nil :underline t) + + ;; js2-mode + (js2-function-param :foreground variables) + (js2-function-call :foreground functions) + (js2-object-property :foreground violet) + (js2-jsdoc-tag :foreground doc-comments) + + ;; ledger-mode + (ledger-font-posting-date-face :foreground blue) + (ledger-font-posting-amount-face :foreground yellow) + (ledger-font-posting-account-face :foreground base8) + (ledger-font-payee-cleared-face :foreground violet :weight 'bold :height 1.2) + (ledger-font-payee-uncleared-face :foreground base5 :weight 'bold :height 1.2) + (ledger-font-xact-highlight-face :background base0) + + ;; makefile-*-mode + (makefile-targets :foreground blue) + + ;; markdown-mode + (markdown-header-face :inherit 'bold :foreground highlight) + (markdown-header-delimiter-face :inherit 'markdown-header-face) + (markdown-metadata-key-face :foreground red) + (markdown-list-face :foreground red) + (markdown-link-face :inherit 'bold :foreground blue) + (markdown-url-face :foreground magenta :weight 'normal) + (markdown-italic-face :inherit 'italic :foreground violet) + (markdown-bold-face :inherit 'bold :foreground orange) + (markdown-markup-face :foreground operators) + (markdown-blockquote-face :inherit 'italic :foreground doc-comments) + (markdown-pre-face :foreground strings) + (markdown-code-face :background base3) + (markdown-inline-code-face :inherit '(markdown-code-face markdown-pre-face)) + + ;; notmuch + ;; (notmuch-crypto-decryption :foreground blue-l) + ;; (notmuch-crypto-part-header :foreground yellow-l) + ;; (notmuch-crypto-signature-bad :foreground red-l) + ;; (notmuch-crypto-signature-good :foreground base1) + ;; (notmuch-crypto-signature-good-key :foreground aqua-l) + ;; (notmuch-crypto-signature-unknown :foreground yellow) + ;; (notmuch-hello-logo-background :foreground fg) + (notmuch-message-summary-face :foreground grey :background nil) + (notmuch-search-count :foreground comments) + (notmuch-search-date :foreground numbers :weight 'bold) + (notmuch-search-flagged-face :foreground (doom-blend red base4 0.5)) + (notmuch-search-matching-authors :foreground blue :weight 'bold) + (notmuch-search-non-matching-authors :foreground blue) + (notmuch-search-subject :foreground fg) + (notmuch-search-unread-face :foreground base8) + (notmuch-tag-added :foreground green :weight 'normal) + (notmuch-tag-deleted :foreground red :weight 'normal) + (notmuch-tag-face :foreground yellow :weight 'normal) + (notmuch-tag-flagged :foreground yellow :weight 'normal) + (notmuch-tag-unread :foreground yellow :weight 'normal) + (notmuch-tree-match-author-face :foreground blue :weight 'bold) + (notmuch-tree-match-date-face :foreground numbers :weight 'bold) + (notmuch-tree-match-face :foreground fg) + (notmuch-tree-match-subject-face :foreground fg) + (notmuch-tree-match-tag-face :foreground yellow) + (notmuch-tree-match-tree-face :foreground comments) + (notmuch-tree-no-match-author-face :foreground blue) + (notmuch-tree-no-match-date-face :foreground numbers) + (notmuch-tree-no-match-face :foreground base5) + (notmuch-tree-no-match-subject-face :foreground base5) + (notmuch-tree-no-match-tag-face :foreground yellow) + (notmuch-tree-no-match-tree-face :foreground yellow) + (notmuch-wash-cited-text :foreground base4) + (notmuch-wash-toggle-button :foreground fg) + + ;; outline + (outline-1 :inherit 'org-level-1) + (outline-2 :inherit 'org-level-2) + (outline-3 :inherit 'org-level-3) + (outline-4 :inherit 'org-level-4) + (outline-5 :inherit 'org-level-5) + (outline-6 :inherit 'org-level-6) + (outline-7 :inherit 'org-level-7) + (outline-8 :inherit 'org-level-8) + + ;; org-mode + (org-archived :foreground doc-comments) + (org-block :background base3) + (org-block-background :background base3) + (org-block-begin-line :foreground comments :background base3) + (org-block-end-line :inherit 'org-block-begin-line) + (org-checkbox :inherit 'org-todo) + (org-checkbox-statistics-done :inherit 'org-done) + (org-checkbox-statistics-todo :inherit 'org-todo) + (org-code :foreground orange) + (org-date :foreground yellow) + (org-default :inherit 'variable-pitch) + (org-document-info :foreground builtin) + (org-document-title :foreground builtin :weight 'bold) + (org-done :inherit 'org-headline-done :bold 'inherit) + (org-ellipsis :underline nil :background nil :foreground grey) + (org-footnote :foreground orange) + (org-formula :foreground cyan) + (org-headline-done :foreground base5) + (org-hide :foreground bg) + + (org-level-1 :foreground blue :background base3 :weight 'ultra-bold :height 1.25) + (org-level-2 :foreground magenta :weight 'semi-bold) + (org-level-3 :foreground violet :weight 'semi-bold) + (org-level-4 :foreground (doom-lighten blue 0.25) :weight 'semi-bold) + (org-level-5 :foreground (doom-lighten magenta 0.25) :weight 'semi-bold) + (org-level-6 :foreground (doom-lighten blue 0.5) :weight 'semi-bold) + (org-level-7 :foreground (doom-lighten magenta 0.5) :weight 'semi-bold) + (org-level-8 :foreground (doom-lighten blue 0.8) :weight 'semi-bold) + + (org-list-dt :foreground highlight) + (org-meta-line :foreground doc-comments) + (org-priority :foreground red) + (org-property-value :foreground doc-comments) + (org-quote :background base3 :slant 'italic) + (org-special-keyword :foreground doc-comments) + (org-table :foreground violet) + (org-tag :foreground doc-comments :weight 'normal) + (org-ref-cite-face :foreground yellow :weight 'light :underline t) + (org-todo :foreground highlight :bold 'inherit) + (org-verbatim :foreground green) + (org-warning :foreground warning) + + ;; org-agenda + (org-agenda-done :inherit 'org-done) + (org-agenda-dimmed-todo-face :foreground comments) + (org-agenda-date :foreground violet :weight 'ultra-bold) + (org-agenda-date-today :foreground (doom-lighten violet 0.4) :weight 'ultra-bold) + (org-agenda-date-weekend :foreground (doom-darken violet 0.4) :weight 'ultra-bold) + (org-agenda-structure :foreground fg :weight 'ultra-bold) + (org-agenda-clocking :background (doom-blend blue bg 0.2)) + (org-upcoming-deadline :foreground (doom-blend fg bg 0.8)) + (org-upcoming-distant-deadline :foreground (doom-blend fg bg 0.5)) + (org-scheduled :foreground fg) + (org-scheduled-today :foreground base7) + (org-scheduled-previously :foreground base8) + (org-time-grid :foreground comments) + (org-sexp-date :foreground fg) + + ;; org-habit + (org-habit-clear-face :weight 'bold :background bg-alt :foreground bg-alt) + (org-habit-clear-future-face :weight 'bold :background bg-alt :foreground bg-alt) + (org-habit-ready-face :weight 'bold :background (doom-blend blue bg-alt 0.5) :foreground (doom-blend blue bg-alt 0.5)) + (org-habit-ready-future-face :weight 'bold :background (doom-blend blue bg-alt 0.5) :foreground (doom-blend blue bg-alt 0.5)) + (org-habit-alert-face :weight 'bold :background (doom-blend yellow bg-alt 0.5) :foreground (doom-blend yellow bg-alt 0.5)) + (org-habit-alert-future-face :weight 'bold :background (doom-blend yellow bg-alt 0.5) :foreground (doom-blend yellow bg-alt 0.5)) + (org-habit-overdue-face :weight 'bold :background (doom-blend red bg-alt 0.5) :foreground (doom-blend red bg-alt 0.5)) + (org-habit-overdue-future-face :weight 'bold :background (doom-blend red bg-alt 0.5) :foreground (doom-blend red bg-alt 0.5)) + + ;; rpm-spec-mode + (rpm-spec-macro-face :foreground yellow) + (rpm-spec-var-face :foreground violet) + (rpm-spec-tag-face :foreground blue) + (rpm-spec-obsolete-tag-face :foreground red) + (rpm-spec-package-face :foreground orange) + (rpm-spec-dir-face :foreground green) + (rpm-spec-doc-face :foreground orange) + (rpm-spec-ghost-face :foreground comments) + (rpm-spec-section-face :foreground magenta) + + ;; typescript-mode + (typescript-jsdoc-tag :foreground doc-comments) + (typescript-jsdoc-type :foreground (doom-darken doc-comments 0.15)) + (typescript-jsdoc-value :foreground (doom-lighten doc-comments 0.15)) + + ;; sh-mode + (sh-heredoc :inherit 'font-lock-string-face :weight 'normal) + (sh-quoted-exec :inherit 'font-lock-preprocessor-face) + + ;; web-mode + (web-mode-doctype-face :foreground comments) + (web-mode-html-tag-face :foreground methods) + (web-mode-html-tag-bracket-face :foreground methods) + (web-mode-html-attr-name-face :foreground type) + (web-mode-html-entity-face :foreground cyan :inherit 'italic) + (web-mode-block-control-face :foreground orange) + (web-mode-html-tag-bracket-face :foreground operators)) + "TODO") + +(defvar doom-themes-common-vars + '((ansi-color-names-vector + (vconcat (mapcar #'doom-color '(base0 red green yellow blue magenta cyan base8)))) + + (fci-rule-color (doom-color 'base5)) + + (jdee-db-spec-breakpoint-face-colors `(cons ,(doom-color 'base0) ,(doom-color 'grey))) + (jdee-db-requested-breakpoint-face-colors `(cons ,(doom-color 'base0) ,(doom-color 'green))) + (jdee-db-active-breakpoint-face-colors `(cons ,(doom-color 'base0) ,(doom-color 'highlight))) + + (vc-annotate-color-map + `(list (cons 20 ,(doom-color 'green)) + (cons 40 ,(doom-blend 'yellow 'green (/ 1.0 3))) + (cons 60 ,(doom-blend 'yellow 'green (/ 2.0 3))) + (cons 80 ,(doom-color 'yellow)) + (cons 100 ,(doom-blend 'orange 'yellow (/ 1.0 3))) + (cons 120 ,(doom-blend 'orange 'yellow (/ 2.0 3))) + (cons 140 ,(doom-color 'orange)) + (cons 160 ,(doom-blend 'magenta 'orange (/ 1.0 3))) + (cons 180 ,(doom-blend 'magenta 'orange (/ 2.0 3))) + (cons 200 ,(doom-color 'magenta)) + (cons 220 ,(doom-blend 'red 'magenta (/ 1.0 3))) + (cons 240 ,(doom-blend 'red 'magenta (/ 2.0 3))) + (cons 260 ,(doom-color 'red)) + (cons 280 ,(doom-blend 'grey 'red (/ 1.0 4))) + (cons 300 ,(doom-blend 'grey 'red (/ 2.0 4))) + (cons 320 ,(doom-blend 'grey 'red (/ 3.0 4))) + (cons 340 ,(doom-color 'base5)) + (cons 360 ,(doom-color 'base5)))) + (vc-annotate-very-old-color nil) + (vc-annotate-background (doom-color 'bg))) + "TODO") + + +;; +;; Library +;; + +(defvar doom-themes--colors) +(defvar doom--min-colors '(257 256 16)) +(defvar doom--quoted-p nil) +(defvar doom-themes--faces nil) + +(defun doom-themes--colors-p (item) + (declare (pure t) (side-effect-free t)) + (when item + (cond ((listp item) + (let ((car (car item))) + (cond ((memq car '(quote doom-color)) nil) + + ((memq car '(backquote \`)) + (let ((doom--quoted-p t)) + (doom-themes--colors-p (cdr item)))) + + ((eq car '\,) + (let (doom--quoted-p) + (doom-themes--colors-p (cdr item)))) + + ((or (doom-themes--colors-p car) + (doom-themes--colors-p (cdr-safe item))))))) + + ((and (symbolp item) + (not (keywordp item)) + (not doom--quoted-p) + (not (equal (substring (symbol-name item) 0 1) "-")) + (assq item doom-themes--colors)))))) + +(defun doom-themes--apply-faces (new-faces &optional default-faces) + (declare (pure t) (side-effect-free t)) + (let ((default-faces (or default-faces doom-themes-common-faces)) + (faces (make-hash-table :test #'eq :size (+ (length default-faces) (length new-faces)))) + (directives (make-hash-table :test #'eq))) + (dolist (spec (append (mapcar #'copy-sequence default-faces) new-faces)) + (if (listp (car spec)) + (cl-destructuring-bind (face action &optional arg) (car spec) + (unless (assq face new-faces) + (puthash face (list action arg (cdr spec)) + directives))) + (puthash (car spec) (cdr spec) faces))) + (cl-loop for face being the hash-keys of directives + for (action target spec) = (gethash face directives) + unless (memq action '(&inherit &extend &override)) + do (error "Invalid operation (%s) for '%s' face" action face) + if (eq (car spec) 'quote) + do (error "Can't extend literal face spec (for '%s')" face) + ;; TODO Add &all/&light/&dark extension support + else if (memq (car spec) '(&all &light &dark)) + do (error "Can't extend face with &all, &light or &dark specs (for '%s')" face) + else do + (puthash face + (let ((old-spec (gethash (or target face) faces)) + (plist spec)) + ;; remove duplicates + (while (keywordp (car plist)) + (setq old-spec (plist-put old-spec (car plist) (cadr plist)) + plist (cddr plist))) + old-spec) + faces)) + (let (results) + (maphash (lambda (face plist) + (when (keywordp (car plist)) + ;; TODO Clean up duplicates in &all/&light/&dark blocks + (dolist (prop (append (unless doom-themes-enable-bold '(:weight normal :bold nil)) + (unless doom-themes-enable-italic '(:slant normal :italic nil)))) + (when (and (plist-member plist prop) + (not (eq (plist-get plist prop) 'inherit))) + (plist-put plist prop + (if (memq prop '(:weight :slant)) + (quote 'normal)))))) + (push (cons face plist) results)) + faces) + (nreverse results)))) + +(defun doom-themes--colorize (item type) + (declare (pure t) (side-effect-free t)) + (when item + (let ((doom--quoted-p doom--quoted-p)) + (cond ((listp item) + (cond ((memq (car item) '(quote doom-color)) + item) + ((eq (car item) 'doom-ref) + (doom-themes--colorize + (apply #'doom-ref (cdr item)) type)) + ((let* ((item (append item nil)) + (car (car item)) + (doom--quoted-p + (cond ((memq car '(backquote \`)) t) + ((eq car '\,) nil) + (t doom--quoted-p)))) + (cons car + (cl-loop + for i in (cdr item) + collect (doom-themes--colorize i type))))))) + + ((and (symbolp item) + (not (keywordp item)) + (not doom--quoted-p) + (not (equal (substring (symbol-name item) 0 1) "-")) + (assq item doom-themes--colors)) + `(doom-color ',item ',type)) + + (item))))) + +(defun doom-themes--build-face (face) + (declare (pure t) (side-effect-free t)) + `(list + ',(car face) + ,(let ((face-body (cdr face))) + (cond ((keywordp (car face-body)) + (let ((real-attrs face-body) + defs) + (if (doom-themes--colors-p real-attrs) + (dolist (cl doom--min-colors `(list ,@(nreverse defs))) + (push `(list '((class color) (min-colors ,cl)) + (list ,@(doom-themes--colorize real-attrs cl))) + defs)) + `(list (list 't (list ,@real-attrs)))))) + + ((memq (car-safe (car face-body)) '(quote backquote \`)) + (car face-body)) + + ((let (all-attrs defs) + (dolist (attrs face-body `(list ,@(nreverse defs))) + (cond ((eq (car attrs) '&all) + (setq all-attrs (append all-attrs (cdr attrs)))) + + ((memq (car attrs) '(&dark &light)) + (let ((bg (if (eq (car attrs) '&dark) 'dark 'light)) + (real-attrs (append all-attrs (cdr attrs) '()))) + (cond ((doom-themes--colors-p real-attrs) + (dolist (cl doom--min-colors) + (push `(list '((class color) (min-colors ,cl) (background ,bg)) + (list ,@(doom-themes--colorize real-attrs cl))) + defs))) + + ((push `(list '((background ,bg)) (list ,@real-attrs)) + defs))))))))))))) + + +;; +;; Public functions +;; + +(defun doom-themes-prepare-facelist (custom-faces) + "Return an alist of face definitions for `custom-theme-set-faces'. + +Faces in EXTRA-FACES override the default faces." + (declare (pure t) (side-effect-free t)) + (setq doom-themes--faces (doom-themes--apply-faces custom-faces)) + (mapcar #'doom-themes--build-face doom-themes--faces)) + +(defun doom-themes-prepare-varlist (vars) + "Return an alist of variable definitions for `custom-theme-set-variables'. + +Variables in EXTRA-VARS override the default ones." + (declare (pure t) (side-effect-free t)) + (cl-loop for (var val) in (append doom-themes-common-vars vars) + collect `(list ',var ,val))) + +(provide 'doom-themes-common) +;;; doom-themes-common.el ends here |