[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/modus-vivendi-theme 0ff98fd 34/73: New CUSTOM OPTION fo
From: |
Stefan Monnier |
Subject: |
[elpa] externals/modus-vivendi-theme 0ff98fd 34/73: New CUSTOM OPTION for completion UIs (major entry) |
Date: |
Wed, 26 Aug 2020 09:20:57 -0400 (EDT) |
branch: externals/modus-vivendi-theme
commit 0ff98fd156d55279b66ed9e3dd047952e3b9f48c
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>
New CUSTOM OPTION for completion UIs (major entry)
---
README.org | 49 +++++---
modus-operandi-theme.el | 295 +++++++++++++++++++++++++++++++++++++++---------
modus-vivendi-theme.el | 295 +++++++++++++++++++++++++++++++++++++++---------
3 files changed, 512 insertions(+), 127 deletions(-)
diff --git a/README.org b/README.org
index b021425..6d249ac 100644
--- a/README.org
+++ b/README.org
@@ -615,33 +615,48 @@ relying on an accented foreground colour.
*This option is new. Please send feedback.*
-** Option for intense standard completions
+** Option for "moderate" or "opinionated" completion UIs
:PROPERTIES:
:CUSTOM_ID: h:5b0b1e66-8287-4f3f-ba14-011c29320a3f
:END:
Symbol names:
-+ =modus-operandi-theme-intense-standard-completions=
-+ =modus-vivendi-theme-intense-standard-completions=
++ =modus-operandi-theme-completions=
++ =modus-vivendi-theme-completions=
Possible values:
1. =nil= (default)
-2. =t=
-
-Display faces for built-in completion frameworks, such as =icomplete=,
-with a combination of background and foreground colours. This covers
-every completion interface that either is part of the upstream Emacs
-distribution or extends some built-in library. For example, =orderless=
-is a powerful completion style that can be used with core Emacs. So it
-also is covered by this customisation option.
+2. =moderate=
+3. =opinionated=
+
+This is a special option that has different effects depending on the
+completion UI. The interfaces can be grouped in two categories: (i)
+those that only or mostly use foreground colours for their interaction
+model, and (ii) those that combine background and foreground values for
+some of their metaphors. The former category encompasses the built-in
+tools, namely, Icomplete and Ido, as well as packages like Orderless and
+Flx. The latter covers Ivy, Helm, Selectrum, and similar.
+
+The symbol =moderate= will apply a combination of background and
+foreground that is fairly subtle. For Icomplete and friends this
+constitutes a departure from their default aesthetics, however the
+difference is small. While Ivy et al will appear slightly different
+than their original looks, as they are toned down a bit.
+
+The symbol =opinionated= will apply colour combinations that refashion the
+completion UI. For the Icomplete camp this means that intense
+background and foreground combinations are used: in effect their looks
+emulate those of Ivy and co. in their original style. Whereas the other
+group of packages will revert to an even more nuanced aesthetic with
+some additional changes to the choice of hues.
+
+To appreciate the scope of this customisation option, you should spend
+some time with every one of the =nil= (default), =moderate=, and =opinionated=
+possibilities.
-With this enabled, Icomplete and others will use similar UI metaphors to
-those of =ivy=, =helm=, =selectrum= (among others).
-
-The default is to only use foreground colour values for the various
-matching characters or items of standard completion tools.
+*This option is new. Please send feedback.*
** Option for variable-pitch fonts in headings
:PROPERTIES:
@@ -696,7 +711,7 @@ being available.
modus-operandi-theme-intense-hl-line t
modus-operandi-theme-intense-paren-match t
modus-operandi-theme-prompts 'subtle ; {nil,'subtle,'intense}
- modus-operandi-theme-intense-standard-completions t
+ modus-operandi-theme-completions 'moderate ;
{nil,'moderate,'opinionated}
modus-operandi-theme-subtle-diffs t
modus-operandi-theme-org-blocks 'greyscale ; {nil,'greyscale,'rainbow}
modus-operandi-theme-variable-pitch-headings t
diff --git a/modus-operandi-theme.el b/modus-operandi-theme.el
index 2ef6ef2..695ad49 100644
--- a/modus-operandi-theme.el
+++ b/modus-operandi-theme.el
@@ -53,7 +53,7 @@
;; modus-operandi-theme-faint-syntax (boolean)
;; modus-operandi-theme-intense-hl-line (boolean)
;; modus-operandi-theme-intense-paren-match (boolean)
-;; modus-operandi-theme-intense-standard-completions (boolean)
+;; modus-operandi-theme-completions (choice)
;; modus-operandi-theme-override-colors-alist (alist)
;;
;; The default scale is as follows (it can be customised as well):
@@ -572,10 +572,40 @@ association list)."
"Use fewer/dim backgrounds in `diff-mode', `ediff',`magit'."
:type 'boolean)
+(define-obsolete-variable-alias
'modus-operandi-theme-intense-standard-completions
+ 'modus-operandi-theme-completions "`modus-operandi-theme' 0.12.0")
+
(defcustom modus-operandi-theme-intense-standard-completions nil
"Use prominent backgrounds for Icomplete, Ido, or similar."
:type 'boolean)
+(defcustom modus-operandi-theme-completions nil
+ "Apply special styles to the UI of completion frameworks.
+This concerns Icomplete, Ivy, Helm, Selectrum, Ido, as well as
+any other tool meant to enhance their experience. The effect
+will vary depending on the completion framework.
+
+Nil means to remain faithful to the metaphors that each UI
+establishes. For example, Icomplete and Ido only use foreground
+colours to style their matches, whereas Ivy or Helm rely on an
+aesthetic that combines coloured backgrounds with appropriate
+text colour.
+
+Option `moderate' will apply a combination of background and
+foreground that is fairly subtle. For Icomplete and the like,
+this constitutes a departure from their standard style. While
+Ivy, Helm, and the others, will use less pronounced colours for
+applicable contexts.
+
+Option `opinionated' will apply colour combinations that
+refashion the completion UI. So Icomplete et al will now use
+styles that resemble the defaults of Ivy and co., while the
+latter group will revert to an even more nuanced aesthetic."
+ :type '(choice
+ (const :tag "Respect the framework's established aesthetic
(default)" nil)
+ (const :tag "Subtle backgrounds for various elements" moderate)
+ (const :tag "Radical alternative to the framework's looks"
opinionated)))
+
(defcustom modus-operandi-theme-prompts nil
"Use subtle or intense styles for minibuffer and REPL prompts.
@@ -748,16 +778,44 @@ should be one of the dedicated foregrounds for diffs"
(list :background subtle-bg :foreground subtle-fg)
(list :background intense-bg :foreground intense-fg)))
-(defun modus-operandi-theme-completions (subtle-fg intense-bg intense-fg)
- "Combinations for `modus-operandi-theme-intense-standard-completions'.
+(defun modus-operandi-theme-standard-completions (mainfg subtlebg intensebg
intensefg)
+ "Combinations for `modus-operandi-theme-completions'.
+These are intended for Icomplete, Ido, and related.
-SUBTLE-FG should be an appropriate accent value. INTENSE-BG
-should be one of the accented backgrounds. INTENSE-FG should be
-one of the foreground intended to be combined with the
-aforementioned background."
- (if modus-operandi-theme-intense-standard-completions
- (list :background intense-bg :foreground intense-fg)
- (list :foreground subtle-fg)))
+MAINFG is an accented foreground value. SUBTLEBG is an accented
+background value that can be combined with MAINFG. INTENSEBG and
+INTENSEFG are accented colours that are designed to be used in
+tandem."
+ (cond
+ ((eq modus-operandi-theme-completions 'opinionated)
+ (list :background intensebg :foreground intensefg))
+ ((eq modus-operandi-theme-completions 'moderate)
+ (list :background subtlebg :foreground mainfg))
+ (t
+ (list :foreground mainfg))))
+
+(defun modus-operandi-theme-extra-completions (subtleface intenseface altface
&optional altfg bold)
+ "Combinations for `modus-operandi-theme-completions'.
+These are intended for Helm, Ivy, Selectrum, etc.
+
+SUBTLEFACE and INTENSEFACE are custom theme faces that combine a
+background and foreground value. The difference between the two
+is a matter of degree.
+
+ALTFACE is a combination of colours that represents a departure
+from the UI's default aesthetics. Optional ALTFG is meant to be
+used in tandem with it.
+
+Optional BOLD will apply a heavier weight to the text."
+ (cond
+ ((eq modus-operandi-theme-completions 'opinionated)
+ (list :inherit (list altface bold) :foreground (if altfg
+ altfg
+ 'unspecified)))
+ ((eq modus-operandi-theme-completions 'moderate)
+ (list :inherit (list subtleface bold)))
+ (t
+ (list :inherit (list intenseface bold)))))
(defun modus-operandi-theme-scale (amount)
"Scale heading by AMOUNT.
@@ -1452,11 +1510,13 @@ Also bind `class' to ((class color) (min-colors 89))."
`(compilation-warning ((,class ,@(modus-operandi-theme-bold-weight)
:foreground ,yellow)))
;;;;; completions
`(completions-annotations ((,class :foreground ,fg-special-cold :slant
,modus-theme-slant)))
- `(completions-common-part ((,class ,@(modus-operandi-theme-completions
- cyan-alt-other green-refine-bg
green-refine-fg))))
+ `(completions-common-part ((,class
,@(modus-operandi-theme-standard-completions
+ cyan-alt-other cyan-nuanced-bg
+ green-refine-bg green-refine-fg))))
`(completions-first-difference ((,class :inherit bold
- ,@(modus-operandi-theme-completions
- blue-alt-other blue-intense-bg
fg-main))))
+
,@(modus-operandi-theme-standard-completions
+ blue-alt-other blue-nuanced-bg
+ blue-intense-bg fg-main))))
;;;;; counsel
`(counsel-active-mode ((,class :foreground ,magenta-alt-other)))
`(counsel-application-name ((,class :foreground ,red-alt-other)))
@@ -2005,7 +2065,12 @@ Also bind `class' to ((class color) (min-colors 89))."
;;;;; flyspell-correct
`(flyspell-correct-highlight-face ((,class :inherit
modus-theme-refine-green)))
;;;;; flx
- `(flx-highlight-face ((,class :inherit modus-theme-intense-magenta)))
+ `(flx-highlight-face ((,class ,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-magenta
+ 'modus-theme-intense-magenta
+ 'modus-theme-nuanced-magenta
+ magenta-alt-other
+ 'bold))))
;;;;; freeze-it
`(freeze-it-show ((,class :background ,bg-dim :foreground
,fg-special-warm)))
;;;;; frog-menu
@@ -2256,7 +2321,11 @@ Also bind `class' to ((class color) (min-colors 89))."
`(helm-eshell-prompts-promptidx ((,class :foreground ,cyan-active)))
`(helm-etags-file ((,class :foreground ,fg-dim :underline t)))
`(helm-ff-backup-file ((,class :foreground ,fg-alt)))
- `(helm-ff-denied ((,class :inherit modus-theme-intense-red)))
+ `(helm-ff-denied ((,class ,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-red
+ 'modus-theme-intense-red
+ 'modus-theme-nuanced-red
+ red))))
`(helm-ff-directory ((,class :inherit helm-buffer-directory)))
`(helm-ff-dirs ((,class :inherit bold :foreground ,blue-alt-other)))
`(helm-ff-dotted-directory ((,class :inherit bold :background ,bg-alt
:foreground ,fg-alt)))
@@ -2265,10 +2334,22 @@ Also bind `class' to ((class color) (min-colors 89))."
`(helm-ff-file ((,class :foreground ,fg-main)))
`(helm-ff-file-extension ((,class :foreground ,fg-special-warm)))
`(helm-ff-invalid-symlink ((,class :foreground ,red :underline t)))
- `(helm-ff-pipe ((,class :inherit modus-theme-subtle-magenta)))
- `(helm-ff-prefix ((,class :inherit modus-theme-subtle-yellow)))
+ `(helm-ff-pipe ((,class ,@(modus-operandi-theme-extra-completions
+ 'modus-theme-refine-magenta
+ 'modus-theme-subtle-magenta
+ 'modus-theme-nuanced-magenta
+ magenta))))
+ `(helm-ff-prefix ((,class ,@(modus-operandi-theme-extra-completions
+ 'modus-theme-refine-yellow
+ 'modus-theme-subtle-yellow
+ 'modus-theme-nuanced-yellow
+ yellow-alt-other))))
`(helm-ff-socket ((,class :foreground ,red-alt-other)))
- `(helm-ff-suid ((,class :inherit modus-theme-refine-red)))
+ `(helm-ff-suid ((,class ,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-red
+ 'modus-theme-refine-red
+ 'modus-theme-nuanced-yellow
+ red-alt))))
`(helm-ff-symlink ((,class :foreground ,cyan :underline t)))
`(helm-ff-truename ((,class :foreground ,blue-alt-other)))
`(helm-grep-cmd-line ((,class :foreground ,yellow-alt-other)))
@@ -2278,20 +2359,53 @@ Also bind `class' to ((class color) (min-colors 89))."
`(helm-grep-match ((,class :inherit modus-theme-special-calm)))
`(helm-header ((,class :inherit bold :foreground ,fg-special-cold)))
`(helm-header-line-left-margin ((,class :inherit bold :foreground
,yellow-intense)))
- `(helm-history-deleted ((,class :inherit (modus-theme-intense-red bold))))
+ `(helm-history-deleted ((,class ,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-red
+ 'modus-theme-intense-red
+ 'modus-theme-nuanced-red
+ red
+ 'bold))))
`(helm-history-remote ((,class :foreground ,red-alt-other)))
`(helm-lisp-completion-info ((,class :foreground ,fg-special-warm)))
- `(helm-lisp-show-completion ((,class :inherit modus-theme-refine-yellow)))
+ `(helm-lisp-show-completion ((,class
,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-yellow
+ 'modus-theme-refine-yellow
+ 'modus-theme-nuanced-yellow
+ yellow
+ 'bold))))
`(helm-locate-finish ((,class :foreground ,green-active)))
- `(helm-match ((,class :inherit (modus-theme-refine-cyan bold))))
- `(helm-match-item ((,class :inherit modus-theme-subtle-cyan)))
+ `(helm-match ((,class ,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-cyan
+ 'modus-theme-refine-cyan
+ 'modus-theme-nuanced-cyan
+ cyan
+ 'bold))))
+ `(helm-match-item ((,class ,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-neutral
+ 'modus-theme-subtle-cyan
+ 'modus-theme-nuanced-cyan
+ cyan-alt-other))))
`(helm-minibuffer-prompt ((,class :inherit minibuffer-prompt)))
`(helm-moccur-buffer ((,class :foreground ,cyan-alt-other :underline t)))
- `(helm-mode-prefix ((,class :inherit modus-theme-intense-magenta)))
+ `(helm-mode-prefix ((,class ,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-magenta
+ 'modus-theme-intense-magenta
+ 'modus-theme-nuanced-magenta
+ magenta-alt
+ 'bold))))
`(helm-non-file-buffer ((,class :foreground ,fg-alt)))
`(helm-prefarg ((,class :foreground ,red-active)))
- `(helm-resume-need-update ((,class :inherit modus-theme-refine-magenta)))
- `(helm-selection ((,class :inherit (modus-theme-refine-blue bold))))
+ `(helm-resume-need-update ((,class ,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-magenta
+ 'modus-theme-refine-magenta
+ 'modus-theme-nuanced-magenta
+ magenta-alt-other))))
+ `(helm-selection ((,class ,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-blue
+ 'modus-theme-refine-blue
+ 'modus-theme-special-warm
+ nil
+ 'bold))))
`(helm-selection-line ((,class :inherit modus-theme-special-cold)))
`(helm-separator ((,class :foreground ,fg-special-mild)))
`(helm-time-zone-current ((,class :foreground ,green)))
@@ -2312,7 +2426,12 @@ Also bind `class' to ((class color) (min-colors 89))."
`(helm-ls-git-renamed-modified-face ((,class :foreground ,magenta)))
`(helm-ls-git-untracked-face ((,class :foreground ,fg-special-cold)))
;;;;; helm-switch-shell
- `(helm-switch-shell-new-shell-face ((,class :inherit
(modus-theme-refine-magenta bold))))
+ `(helm-switch-shell-new-shell-face ((,class
,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-magenta
+ 'modus-theme-refine-magenta
+ 'modus-theme-nuanced-magenta
+ magenta-alt-other
+ 'bold))))
;;;;; helm-xref
`(helm-xref-file-name ((,class :inherit bold :foreground ,fg-special-cold)))
`(helm-xref-file-name ((,class :foreground ,fg-special-warm)))
@@ -2389,19 +2508,22 @@ Also bind `class' to ((class color) (min-colors 89))."
`(hyperlist-toplevel ((,class :inherit bold :foreground ,fg-main)))
;;;;; icomplete
`(icomplete-first-match ((,class :inherit bold
- ,@(modus-operandi-theme-completions
- magenta magenta-intense-bg fg-main))))
+
,@(modus-operandi-theme-standard-completions
+ magenta magenta-nuanced-bg
+ magenta-intense-bg fg-main))))
;;;;; icomplete-vertical
`(icomplete-vertical-separator ((,class :foreground ,fg-alt)))
;;;;; ido-mode
`(ido-first-match ((,class :inherit bold
- ,@(modus-operandi-theme-completions
- magenta magenta-subtle-bg fg-main))))
+ ,@(modus-operandi-theme-standard-completions
+ magenta magenta-nuanced-bg
+ magenta-subtle-bg fg-main))))
`(ido-incomplete-regexp ((,class :inherit error)))
`(ido-indicator ((,class :inherit modus-theme-subtle-yellow)))
`(ido-only-match ((,class :inherit bold
- ,@(modus-operandi-theme-completions
- magenta-intense magenta-intense-bg fg-main))))
+ ,@(modus-operandi-theme-standard-completions
+ magenta-intense red-nuanced-bg
+ magenta-intense-bg fg-main))))
`(ido-subdir ((,class :foreground ,blue-alt-other)))
`(ido-virtual ((,class :foreground ,yellow-alt-other)))
;;;;; iedit
@@ -2485,18 +2607,46 @@ Also bind `class' to ((class color) (min-colors 89))."
`(ivy-action ((,class :inherit bold :foreground ,red-alt)))
`(ivy-completions-annotations ((,class :foreground ,fg-special-cold :slant
,modus-theme-slant)))
`(ivy-confirm-face ((,class :foreground ,cyan)))
- `(ivy-current-match ((,class ,@(and (>= emacs-major-version 27) '(:extend
t))
- :inherit (modus-theme-intense-cyan bold))))
+ `(ivy-current-match ((,class ,@(modus-operandi-theme-extra-completions
+ 'modus-theme-refine-cyan
+ 'modus-theme-intense-cyan
+ 'modus-theme-special-warm
+ nil
+ 'bold))))
`(ivy-cursor ((,class :background ,fg-main :foreground ,bg-main)))
`(ivy-grep-info ((,class :foreground ,cyan-alt)))
`(ivy-grep-line-number ((,class :foreground ,fg-special-warm)))
`(ivy-highlight-face ((,class :foreground ,magenta)))
`(ivy-match-required-face ((,class :inherit error)))
- `(ivy-minibuffer-match-face-1 ((,class :inherit
modus-theme-intense-neutral)))
- `(ivy-minibuffer-match-face-2 ((,class :inherit (modus-theme-refine-green
bold))))
- `(ivy-minibuffer-match-face-3 ((,class :inherit (modus-theme-refine-cyan
bold))))
- `(ivy-minibuffer-match-face-4 ((,class :inherit (modus-theme-refine-magenta
bold))))
- `(ivy-minibuffer-match-highlight ((,class :inherit (modus-theme-subtle-blue
bold))))
+ `(ivy-minibuffer-match-face-1 ((,class
,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-neutral
+ 'modus-theme-intense-neutral
+ 'modus-theme-subtle-neutral
+ fg-alt))))
+ `(ivy-minibuffer-match-face-2 ((,class
,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-green
+ 'modus-theme-refine-green
+ 'modus-theme-nuanced-green
+ green-alt-other
+ 'bold))))
+ `(ivy-minibuffer-match-face-3 ((,class
,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-cyan
+ 'modus-theme-refine-cyan
+ 'modus-theme-nuanced-cyan
+ cyan-alt-other
+ 'bold))))
+ `(ivy-minibuffer-match-face-4 ((,class
,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-magenta
+ 'modus-theme-refine-magenta
+ 'modus-theme-nuanced-magenta
+ magenta-alt-other
+ 'bold))))
+ `(ivy-minibuffer-match-highlight ((,class
,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-blue
+ 'modus-theme-intense-blue
+ 'modus-theme-nuanced-blue
+ blue-alt-other
+ 'bold))))
`(ivy-modified-buffer ((,class :foreground ,yellow :slant
,modus-theme-slant)))
`(ivy-modified-outside-buffer ((,class :foreground ,yellow-alt :slant
,modus-theme-slant)))
`(ivy-org ((,class :foreground ,cyan-alt-other)))
@@ -2505,7 +2655,11 @@ Also bind `class' to ((class color) (min-colors 89))."
`(ivy-separator ((,class :foreground ,fg-alt)))
`(ivy-subdir ((,class :foreground ,blue-alt-other)))
`(ivy-virtual ((,class :foreground ,magenta-alt-other)))
- `(ivy-yanked-word ((,class :inherit modus-theme-refine-blue)))
+ `(ivy-yanked-word ((,class ,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-blue
+ 'modus-theme-refine-blue
+ 'modus-theme-nuanced-blue
+ blue-alt))))
;;;;; ivy-posframe
`(ivy-posframe ((,class :background ,bg-dim :foreground ,fg-main)))
`(ivy-posframe-border ((,class :background ,bg-active)))
@@ -2999,17 +3153,21 @@ Also bind `class' to ((class color) (min-colors 89))."
,@(modus-operandi-theme-bold-weight))))
;;;;; orderless
`(orderless-match-face-0 ((,class :inherit bold
- ,@(modus-operandi-theme-completions
- blue-alt blue-refine-bg
blue-refine-fg))))
+
,@(modus-operandi-theme-standard-completions
+ blue-alt blue-nuanced-bg
+ blue-refine-bg blue-refine-fg))))
`(orderless-match-face-1 ((,class :inherit bold
- ,@(modus-operandi-theme-completions
- magenta-alt magenta-refine-bg
magenta-refine-fg))))
+
,@(modus-operandi-theme-standard-completions
+ magenta-alt magenta-nuanced-bg
+ magenta-refine-bg magenta-refine-fg))))
`(orderless-match-face-2 ((,class :inherit bold
- ,@(modus-operandi-theme-completions
- green-alt-other green-refine-bg
green-refine-fg))))
+
,@(modus-operandi-theme-standard-completions
+ green-alt-other green-nuanced-bg
+ green-refine-bg green-refine-fg))))
`(orderless-match-face-3 ((,class :inherit bold
- ,@(modus-operandi-theme-completions
- yellow-alt-other yellow-refine-bg
yellow-refine-fg))))
+
,@(modus-operandi-theme-standard-completions
+ yellow-alt-other yellow-nuanced-bg
+ yellow-refine-bg yellow-refine-fg))))
;;;;; org
`(org-agenda-calendar-event ((,class :foreground ,fg-main)))
`(org-agenda-calendar-sexp ((,class :foreground ,cyan-alt)))
@@ -3388,17 +3546,44 @@ Also bind `class' to ((class color) (min-colors 89))."
`(sallet-buffer-read-only ((,class :foreground ,yellow-alt)))
`(sallet-buffer-size ((,class :foreground ,fg-special-calm)))
`(sallet-buffer-special ((,class :foreground ,magenta-alt-other)))
- `(sallet-flx-match ((,class :inherit modus-theme-refine-cyan)))
+ `(sallet-flx-match ((,class ,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-cyan
+ 'modus-theme-refine-cyan
+ 'modus-theme-nuanced-cyan
+ cyan-alt-other))))
`(sallet-recentf-buffer-name ((,class :foreground ,blue-nuanced)))
`(sallet-recentf-file-path ((,class :foreground ,fg-special-mild)))
- `(sallet-regexp-match ((,class :inherit modus-theme-refine-magenta)))
+ `(sallet-regexp-match ((,class ,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-magenta
+ 'modus-theme-refine-magenta
+ 'modus-theme-nuanced-magenta
+ magenta-alt-other))))
`(sallet-source-header ((,class :inherit bold :foreground ,red-alt
,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4))))
- `(sallet-substring-match ((,class :inherit modus-theme-refine-blue)))
+ `(sallet-substring-match ((,class ,@(modus-operandi-theme-extra-completions
+ 'modus-theme-subtle-blue
+ 'modus-theme-refine-blue
+ 'modus-theme-nuanced-blue
+ blue-alt-other))))
;;;;; selectrum
- `(selectrum-current-candidate ((,class :inherit
modus-theme-intense-magenta)))
- `(selectrum-primary-highlight ((,class :inherit (modus-theme-refine-blue
bold))))
- `(selectrum-secondary-highlight ((,class :inherit (modus-theme-refine-cyan
bold))))
+ `(selectrum-current-candidate ((,class
,@(modus-operandi-theme-extra-completions
+ 'modus-theme-refine-magenta
+ 'modus-theme-intense-magenta
+ 'modus-theme-nuanced-magenta
+ magenta
+ 'bold))))
+ `(selectrum-primary-highlight ((,class
,@(modus-operandi-theme-extra-completions
+ 'modus-theme-refine-blue
+ 'modus-theme-intense-blue
+ 'modus-theme-nuanced-blue
+ blue
+ 'bold))))
+ `(selectrum-secondary-highlight ((,class
,@(modus-operandi-theme-extra-completions
+ 'modus-theme-refine-cyan
+ 'modus-theme-intense-cyan
+ 'modus-theme-nuanced-cyan
+ cyan
+ 'bold))))
;;;;; semantic
`(semantic-complete-inline-face ((,class :foreground ,fg-special-warm
:underline t)))
`(semantic-decoration-on-private-members-face ((,class :inherit
modus-theme-refine-cyan)))
diff --git a/modus-vivendi-theme.el b/modus-vivendi-theme.el
index 68ca57c..7d7d298 100644
--- a/modus-vivendi-theme.el
+++ b/modus-vivendi-theme.el
@@ -53,7 +53,7 @@
;; modus-vivendi-theme-faint-syntax (boolean)
;; modus-vivendi-theme-intense-hl-line (boolean)
;; modus-vivendi-theme-intense-paren-match (boolean)
-;; modus-vivendi-theme-intense-standard-completions (boolean)
+;; modus-vivendi-theme-completions (choice)
;; modus-vivendi-theme-override-colors-alist (alist)
;;
;; The default scale is as follows (it can be customised as well):
@@ -572,10 +572,40 @@ association list)."
"Use fewer/dim backgrounds in `diff-mode', `ediff',`magit'."
:type 'boolean)
+(define-obsolete-variable-alias
'modus-vivendi-theme-intense-standard-completions
+ 'modus-vivendi-theme-completions "`modus-vivendi-theme' 0.12.0")
+
(defcustom modus-vivendi-theme-intense-standard-completions nil
"Use prominent backgrounds for Icomplete, Ido, or similar."
:type 'boolean)
+(defcustom modus-vivendi-theme-completions nil
+ "Apply special styles to the UI of completion frameworks.
+This concerns Icomplete, Ivy, Helm, Selectrum, Ido, as well as
+any other tool meant to enhance their experience. The effect
+will vary depending on the completion framework.
+
+Nil means to remain faithful to the metaphors that each UI
+establishes. For example, Icomplete and Ido only use foreground
+colours to style their matches, whereas Ivy or Helm rely on an
+aesthetic that combines coloured backgrounds with appropriate
+text colour.
+
+Option `moderate' will apply a combination of background and
+foreground that is fairly subtle. For Icomplete and the like,
+this constitutes a departure from their standard style. While
+Ivy, Helm, and the others, will use less pronounced colours for
+applicable contexts.
+
+Option `opinionated' will apply colour combinations that
+refashion the completion UI. So Icomplete et al will now use
+styles that resemble the defaults of Ivy and co., while the
+latter group will revert to an even more nuanced aesthetic."
+ :type '(choice
+ (const :tag "Respect the framework's established aesthetic
(default)" nil)
+ (const :tag "Subtle backgrounds for various elements" moderate)
+ (const :tag "Radical alternative to the framework's looks"
opinionated)))
+
(defcustom modus-vivendi-theme-prompts nil
"Use subtle or intense styles for minibuffer and REPL prompts.
@@ -748,16 +778,44 @@ should be one of the dedicated foregrounds for diffs"
(list :background subtle-bg :foreground subtle-fg)
(list :background intense-bg :foreground intense-fg)))
-(defun modus-vivendi-theme-completions (subtle-fg intense-bg intense-fg)
- "Combinations for `modus-vivendi-theme-intense-standard-completions'.
+(defun modus-vivendi-theme-standard-completions (mainfg subtlebg intensebg
intensefg)
+ "Combinations for `modus-vivendi-theme-completions'.
+These are intended for Icomplete, Ido, and related.
-SUBTLE-FG should be an appropriate accent value. INTENSE-BG
-should be one of the accented backgrounds. INTENSE-FG should be
-one of the foreground intended to be combined with the
-aforementioned background."
- (if modus-vivendi-theme-intense-standard-completions
- (list :background intense-bg :foreground intense-fg)
- (list :foreground subtle-fg)))
+MAINFG is an accented foreground value. SUBTLEBG is an accented
+background value that can be combined with MAINFG. INTENSEBG and
+INTENSEFG are accented colours that are designed to be used in
+tandem."
+ (cond
+ ((eq modus-vivendi-theme-completions 'opinionated)
+ (list :background intensebg :foreground intensefg))
+ ((eq modus-vivendi-theme-completions 'moderate)
+ (list :background subtlebg :foreground mainfg))
+ (t
+ (list :foreground mainfg))))
+
+(defun modus-vivendi-theme-extra-completions (subtleface intenseface altface
&optional altfg bold)
+ "Combinations for `modus-vivendi-theme-completions'.
+These are intended for Helm, Ivy, Selectrum, etc.
+
+SUBTLEFACE and INTENSEFACE are custom theme faces that combine a
+background and foreground value. The difference between the two
+is a matter of degree.
+
+ALTFACE is a combination of colours that represents a departure
+from the UI's default aesthetics. Optional ALTFG is meant to be
+used in tandem with it.
+
+Optional BOLD will apply a heavier weight to the text."
+ (cond
+ ((eq modus-vivendi-theme-completions 'opinionated)
+ (list :inherit (list altface bold) :foreground (if altfg
+ altfg
+ 'unspecified)))
+ ((eq modus-vivendi-theme-completions 'moderate)
+ (list :inherit (list subtleface bold)))
+ (t
+ (list :inherit (list intenseface bold)))))
(defun modus-vivendi-theme-scale (amount)
"Scale heading by AMOUNT.
@@ -1452,11 +1510,13 @@ Also bind `class' to ((class color) (min-colors 89))."
`(compilation-warning ((,class ,@(modus-vivendi-theme-bold-weight)
:foreground ,yellow)))
;;;;; completions
`(completions-annotations ((,class :foreground ,fg-special-cold :slant
,modus-theme-slant)))
- `(completions-common-part ((,class ,@(modus-vivendi-theme-completions
- cyan-alt-other green-refine-bg
green-refine-fg))))
+ `(completions-common-part ((,class
,@(modus-vivendi-theme-standard-completions
+ cyan-alt-other cyan-nuanced-bg
+ green-refine-bg green-refine-fg))))
`(completions-first-difference ((,class :inherit bold
- ,@(modus-vivendi-theme-completions
- blue-alt-other blue-intense-bg
fg-main))))
+
,@(modus-vivendi-theme-standard-completions
+ blue-alt-other blue-nuanced-bg
+ blue-intense-bg fg-main))))
;;;;; counsel
`(counsel-active-mode ((,class :foreground ,magenta-alt-other)))
`(counsel-application-name ((,class :foreground ,red-alt-other)))
@@ -2005,7 +2065,12 @@ Also bind `class' to ((class color) (min-colors 89))."
;;;;; flyspell-correct
`(flyspell-correct-highlight-face ((,class :inherit
modus-theme-refine-green)))
;;;;; flx
- `(flx-highlight-face ((,class :inherit modus-theme-intense-magenta)))
+ `(flx-highlight-face ((,class ,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-magenta
+ 'modus-theme-intense-magenta
+ 'modus-theme-nuanced-magenta
+ magenta-alt-other
+ 'bold))))
;;;;; freeze-it
`(freeze-it-show ((,class :background ,bg-dim :foreground
,fg-special-warm)))
;;;;; frog-menu
@@ -2256,7 +2321,11 @@ Also bind `class' to ((class color) (min-colors 89))."
`(helm-eshell-prompts-promptidx ((,class :foreground ,cyan-active)))
`(helm-etags-file ((,class :foreground ,fg-dim :underline t)))
`(helm-ff-backup-file ((,class :foreground ,fg-alt)))
- `(helm-ff-denied ((,class :inherit modus-theme-intense-red)))
+ `(helm-ff-denied ((,class ,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-red
+ 'modus-theme-intense-red
+ 'modus-theme-nuanced-red
+ red))))
`(helm-ff-directory ((,class :inherit helm-buffer-directory)))
`(helm-ff-dirs ((,class :inherit bold :foreground ,blue-alt-other)))
`(helm-ff-dotted-directory ((,class :inherit bold :background ,bg-alt
:foreground ,fg-alt)))
@@ -2265,10 +2334,22 @@ Also bind `class' to ((class color) (min-colors 89))."
`(helm-ff-file ((,class :foreground ,fg-main)))
`(helm-ff-file-extension ((,class :foreground ,fg-special-warm)))
`(helm-ff-invalid-symlink ((,class :foreground ,red :underline t)))
- `(helm-ff-pipe ((,class :inherit modus-theme-subtle-magenta)))
- `(helm-ff-prefix ((,class :inherit modus-theme-subtle-yellow)))
+ `(helm-ff-pipe ((,class ,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-refine-magenta
+ 'modus-theme-subtle-magenta
+ 'modus-theme-nuanced-magenta
+ magenta))))
+ `(helm-ff-prefix ((,class ,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-refine-yellow
+ 'modus-theme-subtle-yellow
+ 'modus-theme-nuanced-yellow
+ yellow-alt-other))))
`(helm-ff-socket ((,class :foreground ,red-alt-other)))
- `(helm-ff-suid ((,class :inherit modus-theme-refine-red)))
+ `(helm-ff-suid ((,class ,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-red
+ 'modus-theme-refine-red
+ 'modus-theme-nuanced-yellow
+ red-alt))))
`(helm-ff-symlink ((,class :foreground ,cyan :underline t)))
`(helm-ff-truename ((,class :foreground ,blue-alt-other)))
`(helm-grep-cmd-line ((,class :foreground ,yellow-alt-other)))
@@ -2278,20 +2359,53 @@ Also bind `class' to ((class color) (min-colors 89))."
`(helm-grep-match ((,class :inherit modus-theme-special-calm)))
`(helm-header ((,class :inherit bold :foreground ,fg-special-cold)))
`(helm-header-line-left-margin ((,class :inherit bold :foreground
,yellow-intense)))
- `(helm-history-deleted ((,class :inherit (modus-theme-intense-red bold))))
+ `(helm-history-deleted ((,class ,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-red
+ 'modus-theme-intense-red
+ 'modus-theme-nuanced-red
+ red
+ 'bold))))
`(helm-history-remote ((,class :foreground ,red-alt-other)))
`(helm-lisp-completion-info ((,class :foreground ,fg-special-warm)))
- `(helm-lisp-show-completion ((,class :inherit modus-theme-refine-yellow)))
+ `(helm-lisp-show-completion ((,class
,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-yellow
+ 'modus-theme-refine-yellow
+ 'modus-theme-nuanced-yellow
+ yellow
+ 'bold))))
`(helm-locate-finish ((,class :foreground ,green-active)))
- `(helm-match ((,class :inherit (modus-theme-refine-cyan bold))))
- `(helm-match-item ((,class :inherit modus-theme-subtle-cyan)))
+ `(helm-match ((,class ,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-cyan
+ 'modus-theme-refine-cyan
+ 'modus-theme-nuanced-cyan
+ cyan
+ 'bold))))
+ `(helm-match-item ((,class ,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-neutral
+ 'modus-theme-subtle-cyan
+ 'modus-theme-nuanced-cyan
+ cyan-alt-other))))
`(helm-minibuffer-prompt ((,class :inherit minibuffer-prompt)))
`(helm-moccur-buffer ((,class :foreground ,cyan-alt-other :underline t)))
- `(helm-mode-prefix ((,class :inherit modus-theme-intense-magenta)))
+ `(helm-mode-prefix ((,class ,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-magenta
+ 'modus-theme-intense-magenta
+ 'modus-theme-nuanced-magenta
+ magenta-alt
+ 'bold))))
`(helm-non-file-buffer ((,class :foreground ,fg-alt)))
`(helm-prefarg ((,class :foreground ,red-active)))
- `(helm-resume-need-update ((,class :inherit modus-theme-refine-magenta)))
- `(helm-selection ((,class :inherit (modus-theme-refine-blue bold))))
+ `(helm-resume-need-update ((,class ,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-magenta
+ 'modus-theme-refine-magenta
+ 'modus-theme-nuanced-magenta
+ magenta-alt-other))))
+ `(helm-selection ((,class ,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-blue
+ 'modus-theme-refine-blue
+ 'modus-theme-special-warm
+ nil
+ 'bold))))
`(helm-selection-line ((,class :inherit modus-theme-special-cold)))
`(helm-separator ((,class :foreground ,fg-special-mild)))
`(helm-time-zone-current ((,class :foreground ,green)))
@@ -2312,7 +2426,12 @@ Also bind `class' to ((class color) (min-colors 89))."
`(helm-ls-git-renamed-modified-face ((,class :foreground ,magenta)))
`(helm-ls-git-untracked-face ((,class :foreground ,fg-special-cold)))
;;;;; helm-switch-shell
- `(helm-switch-shell-new-shell-face ((,class :inherit
(modus-theme-refine-magenta bold))))
+ `(helm-switch-shell-new-shell-face ((,class
,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-magenta
+ 'modus-theme-refine-magenta
+ 'modus-theme-nuanced-magenta
+ magenta-alt-other
+ 'bold))))
;;;;; helm-xref
`(helm-xref-file-name ((,class :inherit bold :foreground ,fg-special-cold)))
`(helm-xref-file-name ((,class :foreground ,fg-special-warm)))
@@ -2389,19 +2508,22 @@ Also bind `class' to ((class color) (min-colors 89))."
`(hyperlist-toplevel ((,class :inherit bold :foreground ,fg-main)))
;;;;; icomplete
`(icomplete-first-match ((,class :inherit bold
- ,@(modus-vivendi-theme-completions
- magenta magenta-intense-bg fg-main))))
+ ,@(modus-vivendi-theme-standard-completions
+ magenta magenta-nuanced-bg
+ magenta-intense-bg fg-main))))
;;;;; icomplete-vertical
`(icomplete-vertical-separator ((,class :foreground ,fg-alt)))
;;;;; ido-mode
`(ido-first-match ((,class :inherit bold
- ,@(modus-vivendi-theme-completions
- magenta magenta-subtle-bg fg-main))))
+ ,@(modus-vivendi-theme-standard-completions
+ magenta magenta-nuanced-bg
+ magenta-subtle-bg fg-main))))
`(ido-incomplete-regexp ((,class :inherit error)))
`(ido-indicator ((,class :inherit modus-theme-subtle-yellow)))
`(ido-only-match ((,class :inherit bold
- ,@(modus-vivendi-theme-completions
- magenta-intense magenta-intense-bg fg-main))))
+ ,@(modus-vivendi-theme-standard-completions
+ magenta-intense red-nuanced-bg
+ magenta-intense-bg fg-main))))
`(ido-subdir ((,class :foreground ,blue-alt-other)))
`(ido-virtual ((,class :foreground ,yellow-alt-other)))
;;;;; iedit
@@ -2485,18 +2607,46 @@ Also bind `class' to ((class color) (min-colors 89))."
`(ivy-action ((,class :inherit bold :foreground ,red-alt)))
`(ivy-completions-annotations ((,class :foreground ,fg-special-cold :slant
,modus-theme-slant)))
`(ivy-confirm-face ((,class :foreground ,cyan)))
- `(ivy-current-match ((,class ,@(and (>= emacs-major-version 27) '(:extend
t))
- :inherit (modus-theme-intense-cyan bold))))
+ `(ivy-current-match ((,class ,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-refine-cyan
+ 'modus-theme-intense-cyan
+ 'modus-theme-special-warm
+ nil
+ 'bold))))
`(ivy-cursor ((,class :background ,fg-main :foreground ,bg-main)))
`(ivy-grep-info ((,class :foreground ,cyan-alt)))
`(ivy-grep-line-number ((,class :foreground ,fg-special-warm)))
`(ivy-highlight-face ((,class :foreground ,magenta)))
`(ivy-match-required-face ((,class :inherit error)))
- `(ivy-minibuffer-match-face-1 ((,class :inherit
modus-theme-intense-neutral)))
- `(ivy-minibuffer-match-face-2 ((,class :inherit (modus-theme-refine-green
bold))))
- `(ivy-minibuffer-match-face-3 ((,class :inherit (modus-theme-refine-cyan
bold))))
- `(ivy-minibuffer-match-face-4 ((,class :inherit (modus-theme-refine-magenta
bold))))
- `(ivy-minibuffer-match-highlight ((,class :inherit (modus-theme-subtle-blue
bold))))
+ `(ivy-minibuffer-match-face-1 ((,class
,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-neutral
+ 'modus-theme-intense-neutral
+ 'modus-theme-subtle-neutral
+ fg-alt))))
+ `(ivy-minibuffer-match-face-2 ((,class
,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-green
+ 'modus-theme-refine-green
+ 'modus-theme-nuanced-green
+ green-alt-other
+ 'bold))))
+ `(ivy-minibuffer-match-face-3 ((,class
,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-cyan
+ 'modus-theme-refine-cyan
+ 'modus-theme-nuanced-cyan
+ cyan-alt-other
+ 'bold))))
+ `(ivy-minibuffer-match-face-4 ((,class
,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-magenta
+ 'modus-theme-refine-magenta
+ 'modus-theme-nuanced-magenta
+ magenta-alt-other
+ 'bold))))
+ `(ivy-minibuffer-match-highlight ((,class
,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-blue
+ 'modus-theme-intense-blue
+ 'modus-theme-nuanced-blue
+ blue-alt-other
+ 'bold))))
`(ivy-modified-buffer ((,class :foreground ,yellow :slant
,modus-theme-slant)))
`(ivy-modified-outside-buffer ((,class :foreground ,yellow-alt :slant
,modus-theme-slant)))
`(ivy-org ((,class :foreground ,cyan-alt-other)))
@@ -2505,7 +2655,11 @@ Also bind `class' to ((class color) (min-colors 89))."
`(ivy-separator ((,class :foreground ,fg-alt)))
`(ivy-subdir ((,class :foreground ,blue-alt-other)))
`(ivy-virtual ((,class :foreground ,magenta-alt-other)))
- `(ivy-yanked-word ((,class :inherit modus-theme-refine-blue)))
+ `(ivy-yanked-word ((,class ,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-blue
+ 'modus-theme-refine-blue
+ 'modus-theme-nuanced-blue
+ blue-alt))))
;;;;; ivy-posframe
`(ivy-posframe ((,class :background ,bg-dim :foreground ,fg-main)))
`(ivy-posframe-border ((,class :background ,bg-active)))
@@ -2999,17 +3153,21 @@ Also bind `class' to ((class color) (min-colors 89))."
,@(modus-vivendi-theme-bold-weight))))
;;;;; orderless
`(orderless-match-face-0 ((,class :inherit bold
- ,@(modus-vivendi-theme-completions
- blue-alt blue-refine-bg
blue-refine-fg))))
+
,@(modus-vivendi-theme-standard-completions
+ blue-alt blue-nuanced-bg
+ blue-refine-bg blue-refine-fg))))
`(orderless-match-face-1 ((,class :inherit bold
- ,@(modus-vivendi-theme-completions
- magenta-alt magenta-refine-bg
magenta-refine-fg))))
+
,@(modus-vivendi-theme-standard-completions
+ magenta-alt magenta-nuanced-bg
+ magenta-refine-bg magenta-refine-fg))))
`(orderless-match-face-2 ((,class :inherit bold
- ,@(modus-vivendi-theme-completions
- green-alt-other green-refine-bg
green-refine-fg))))
+
,@(modus-vivendi-theme-standard-completions
+ green-alt-other green-nuanced-bg
+ green-refine-bg green-refine-fg))))
`(orderless-match-face-3 ((,class :inherit bold
- ,@(modus-vivendi-theme-completions
- yellow-alt-other yellow-refine-bg
yellow-refine-fg))))
+
,@(modus-vivendi-theme-standard-completions
+ yellow-alt-other yellow-nuanced-bg
+ yellow-refine-bg yellow-refine-fg))))
;;;;; org
`(org-agenda-calendar-event ((,class :foreground ,fg-main)))
`(org-agenda-calendar-sexp ((,class :foreground ,cyan-alt)))
@@ -3388,17 +3546,44 @@ Also bind `class' to ((class color) (min-colors 89))."
`(sallet-buffer-read-only ((,class :foreground ,yellow-alt)))
`(sallet-buffer-size ((,class :foreground ,fg-special-calm)))
`(sallet-buffer-special ((,class :foreground ,magenta-alt-other)))
- `(sallet-flx-match ((,class :inherit modus-theme-refine-cyan)))
+ `(sallet-flx-match ((,class ,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-cyan
+ 'modus-theme-refine-cyan
+ 'modus-theme-nuanced-cyan
+ cyan-alt-other))))
`(sallet-recentf-buffer-name ((,class :foreground ,blue-nuanced)))
`(sallet-recentf-file-path ((,class :foreground ,fg-special-mild)))
- `(sallet-regexp-match ((,class :inherit modus-theme-refine-magenta)))
+ `(sallet-regexp-match ((,class ,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-magenta
+ 'modus-theme-refine-magenta
+ 'modus-theme-nuanced-magenta
+ magenta-alt-other))))
`(sallet-source-header ((,class :inherit bold :foreground ,red-alt
,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4))))
- `(sallet-substring-match ((,class :inherit modus-theme-refine-blue)))
+ `(sallet-substring-match ((,class ,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-subtle-blue
+ 'modus-theme-refine-blue
+ 'modus-theme-nuanced-blue
+ blue-alt-other))))
;;;;; selectrum
- `(selectrum-current-candidate ((,class :inherit
modus-theme-intense-magenta)))
- `(selectrum-primary-highlight ((,class :inherit (modus-theme-refine-blue
bold))))
- `(selectrum-secondary-highlight ((,class :inherit (modus-theme-refine-cyan
bold))))
+ `(selectrum-current-candidate ((,class
,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-refine-magenta
+ 'modus-theme-intense-magenta
+ 'modus-theme-nuanced-magenta
+ magenta
+ 'bold))))
+ `(selectrum-primary-highlight ((,class
,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-refine-blue
+ 'modus-theme-intense-blue
+ 'modus-theme-nuanced-blue
+ blue
+ 'bold))))
+ `(selectrum-secondary-highlight ((,class
,@(modus-vivendi-theme-extra-completions
+ 'modus-theme-refine-cyan
+ 'modus-theme-intense-cyan
+ 'modus-theme-nuanced-cyan
+ cyan
+ 'bold))))
;;;;; semantic
`(semantic-complete-inline-face ((,class :foreground ,fg-special-warm
:underline t)))
`(semantic-decoration-on-private-members-face ((,class :inherit
modus-theme-refine-cyan)))
- [elpa] externals/modus-vivendi-theme 35391ae 21/73: Add support for built-in 'file-name-shadow' face, (continued)
- [elpa] externals/modus-vivendi-theme 35391ae 21/73: Add support for built-in 'file-name-shadow' face, Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme 042bac1 22/73: Add support for PKGBUILD-MODE, Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme dc8c584 07/73: Further tweaks to Magit Blame (extend a5e1325ca), Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme 1bd6fd6 12/73: Use accented background for notmuch message folds, Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme 0e9be20 13/73: Add support for org-table-sticky-header, Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme cf0a1f2 17/73: Add support for Emacs 27 line number ticks, Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme 05844a1 18/73: Let 'hl-todo' keywords use optional slant, Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme ac475d8 28/73: Add support for SEMANTIC, Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme e92f6bd 31/73: Internal: indentation changes in the README, Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme 7ec9258 33/73: Internal: minor doc correction, Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme 0ff98fd 34/73: New CUSTOM OPTION for completion UIs (major entry),
Stefan Monnier <=
- [elpa] externals/modus-vivendi-theme 781189c 38/73: Review powerline faces, Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme ed2b435 39/73: Review generic completion faces, Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme 66470fe 41/73: Review mu4e-draft-face, Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme ae0e8c2 45/73: Refine powerline faces (extend commit 781189c59), Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme 26a2118 47/73: Add support for 'doom-modeline-debug-visual' face, Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme b87714e 42/73: Add external projects (ports) section to README, Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme 58d35d7 43/73: Internal: indentation fixes in README, Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme 673191c 58/73: Merge branch 'master' into 'master', Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme 74af9df 61/73: Tweak magit-tag face, Stefan Monnier, 2020/08/26
- [elpa] externals/modus-vivendi-theme 405e7e0 66/73: Remove a couple outdated notes in the README, Stefan Monnier, 2020/08/26