emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/modus-vivendi-theme 0c4f871 029/110: Major review of ED


From: Stefan Monnier
Subject: [elpa] externals/modus-vivendi-theme 0c4f871 029/110: Major review of EDIFF (superior UI/semantics)
Date: Wed, 29 Apr 2020 21:40:00 -0400 (EDT)

branch: externals/modus-vivendi-theme
commit 0c4f871516cbe0001f1443bf4e848d59934f870e
Author: Protesilaos Stavrou <address@hidden>
Commit: Protesilaos Stavrou <address@hidden>

    Major review of EDIFF (superior UI/semantics)
    
    This patch has a two-fold effect:
    
    1. Allow `ediff' to use the new customisation option for subtle diffs,
       which was introduced in commit 88489ed.
    
    2. Use colours that are consistent with the semantics of each element.
       This means to make things similar to how a regular diff would look
       (using variations of red and green).  For three-way comparisons, we
       have variations of red, green, and yellow.
    
    Furthermore, a new set of "neutral" diff colours is added to each
    theme's palette.  These are currently used by `ediff' to style the
    unfocused diff hunks and the common ancestor where appropriate.
    
    Overall, `ediff' should now feel consistent with all other modes that
    display similar output.  Additional refinements are still possible,
    provided there is user feedback to that end.
---
 README.org              | 18 +++++++++---------
 modus-operandi-theme.el | 50 ++++++++++++++++++++++++++++++++-----------------
 modus-vivendi-theme.el  | 50 ++++++++++++++++++++++++++++++++-----------------
 3 files changed, 75 insertions(+), 43 deletions(-)

diff --git a/README.org b/README.org
index 9cb252b..a377efd 100644
--- a/README.org
+++ b/README.org
@@ -161,15 +161,15 @@ theme of your choice):
 
 (setq modus-vivendi-theme-distinct-org-blocks nil)
 
-;; Display `diff-mode' and `magit' diff buffers with fewer background
-;; colours (the default is to use colour-coded backgrounds for line-wise
-;; highlights).  This means that only accented foreground values are
-;; used for affected lines: green for added, red for removed, yellow for
-;; changed.  "Refined" changes (word-wise highlights) still use a
-;; background value which is, nonetheless, more subtle than its default
-;; equivalent.  For `magit' an extra set of tweaks are introduced for
-;; the effect of highlighting the current diff hunk, so as to remain
-;; consistent with the overall experience of this tool.
+;; Display `diff-mode', `ediff', and `magit' diff buffers with fewer
+;; background colours (the default is to use colour-coded backgrounds
+;; for line-wise highlights).  This means that only accented foreground
+;; values are used for affected lines: green for added, red for removed,
+;; yellow for changed.  "Refined" changes (word-wise highlights) still
+;; use a background value which is, nonetheless, more subtle than its
+;; default equivalent.  For `magit' an extra set of tweaks are
+;; introduced for the effect of highlighting the current diff hunk, so
+;; as to remain consistent with the overall experience of this tool.
 (setq modus-operandi-theme-subtle-diffs nil)
 
 (setq modus-vivendi-theme-subtle-diffs nil)
diff --git a/modus-operandi-theme.el b/modus-operandi-theme.el
index 1cb2709..feca84f 100644
--- a/modus-operandi-theme.el
+++ b/modus-operandi-theme.el
@@ -386,7 +386,7 @@ between foreground and background is >= 7:1)."
   :type 'boolean)
 
 (defcustom modus-operandi-theme-subtle-diffs nil
-  "Use fewer background colours in `diff-mode' and related."
+  "Use fewer/dim backgrounds in `diff-mode', `ediff',`magit'."
   :type 'boolean)
 
 (defmacro modus-operandi-theme-diffs (subtle-bg subtle-fg intense-bg 
intense-fg)
@@ -521,13 +521,16 @@ AMOUNT is a customisation option."
       (bg-hl-line "#f1f2f6")
       (bg-paren-match "#efcabf")
       (bg-region "#bcbcbc")
+
       (bg-tab-active "#ababab")
       (bg-tab-inactive "#dadada")
       (fg-tab-active "#000077")
+
       (fg-window-divider-inner "#888888")
       (fg-window-divider-outer "#585858")
       (fg-header "#2a2a2a") (bg-header "#e5e5e5")
       (fg-whitespace "#645060") (bg-whitespace "#fff8fc")
+
       (fg-diff-heading "#043355") (bg-diff-heading "#b7c2dd")
       (fg-diff-added "#004500") (bg-diff-added "#d4fad4")
       (fg-diff-changed "#524200") (bg-diff-changed "#fcefcf")
@@ -538,6 +541,11 @@ AMOUNT is a customisation option."
       (fg-diff-focus-added "#002c00") (bg-diff-focus-added "#bbeabb")
       (fg-diff-focus-changed "#392900") (bg-diff-focus-changed "#ecdfbf")
       (fg-diff-focus-removed "#4a0000") (bg-diff-focus-removed "#efcbcf")
+
+      (fg-diff-neutral-0 "#040404") (bg-diff-neutral-0 "#979797")
+      (fg-diff-neutral-1 "#252525") (bg-diff-neutral-1 "#b0b0b0")
+      (fg-diff-neutral-2 "#3a3a3a") (bg-diff-neutral-2 "#cccccc")
+
       (fg-mark "#005040") (bg-mark "#a0f0cf")
       (fg-mark-del "#840040") (bg-mark-del "#ffccbb")
       (fg-mark-other "#782900") (bg-mark-other "#f5d88f")
@@ -1191,22 +1199,30 @@ AMOUNT is a customisation option."
    `(ebdb-role-defunct ((,class (:foreground ,fg-alt))))
    `(eieio-custom-slot-tag-face ((,class (:foreground ,red-alt))))
    ;;;; ediff
-   `(ediff-current-diff-A ((,class (:inherit modus-theme-special-warm))))
-   `(ediff-current-diff-Ancestor ((,class (:background ,bg-alt :foreground 
,fg-main))))
-   `(ediff-current-diff-B ((,class (:inherit modus-theme-special-cold))))
-   `(ediff-current-diff-C ((,class (:inherit modus-theme-special-mild))))
-   `(ediff-even-diff-A ((,class (:inherit modus-theme-subtle-yellow))))
-   `(ediff-even-diff-Ancestor ((,class (:background ,bg-inactive :foreground 
,fg-main))))
-   `(ediff-even-diff-B ((,class (:inherit modus-theme-subtle-cyan))))
-   `(ediff-even-diff-C ((,class (:inherit modus-theme-subtle-green))))
-   `(ediff-fine-diff-A ((,class (:inherit modus-theme-intense-yellow))))
-   `(ediff-fine-diff-Ancestor ((,class (:inherit 
modus-theme-intense-magenta))))
-   `(ediff-fine-diff-B ((,class (:inherit modus-theme-intense-cyan))))
-   `(ediff-fine-diff-C ((,class (:inherit modus-theme-intense-green))))
-   `(ediff-odd-diff-A ((,class (:inherit modus-theme-refine-yellow))))
-   `(ediff-odd-diff-Ancestor ((,class (:background ,bg-active :foreground 
,fg-main))))
-   `(ediff-odd-diff-B ((,class (:inherit modus-theme-refine-cyan))))
-   `(ediff-odd-diff-C ((,class (:inherit modus-theme-refine-green))))
+   `(ediff-current-diff-A ((,class ,(modus-operandi-theme-diffs
+                                     bg-alt red
+                                     bg-diff-removed fg-diff-removed))))
+   `(ediff-current-diff-Ancestor ((,class ,(modus-operandi-theme-diffs
+                                            bg-alt fg-special-cold
+                                            bg-special-cold fg-special-cold))))
+   `(ediff-current-diff-B ((,class ,(modus-operandi-theme-diffs
+                                     bg-alt green
+                                     bg-diff-added fg-diff-added))))
+   `(ediff-current-diff-C ((,class ,(modus-operandi-theme-diffs
+                                     bg-alt yellow
+                                     bg-diff-changed fg-diff-changed))))
+   `(ediff-even-diff-A ((,class (:background ,bg-diff-neutral-1 :foreground 
,fg-diff-neutral-1))))
+   `(ediff-even-diff-Ancestor ((,class (:background ,bg-diff-neutral-2 
:foreground ,fg-diff-neutral-1))))
+   `(ediff-even-diff-B ((,class (:background ,bg-diff-neutral-1 :foreground 
,fg-diff-neutral-1))))
+   `(ediff-even-diff-C ((,class (:background ,bg-diff-neutral-2 :foreground 
,fg-diff-neutral-2))))
+   `(ediff-fine-diff-A ((,class (:background ,bg-diff-focus-removed 
:foreground ,fg-diff-focus-removed))))
+   `(ediff-fine-diff-Ancestor ((,class (:inherit modus-theme-refine-cyan))))
+   `(ediff-fine-diff-B ((,class (:background ,bg-diff-focus-added :foreground 
,fg-diff-focus-added))))
+   `(ediff-fine-diff-C ((,class (:background ,bg-diff-focus-changed 
:foreground ,fg-diff-focus-changed))))
+   `(ediff-odd-diff-A ((,class (:background ,bg-diff-neutral-2 :foreground 
,fg-diff-neutral-2))))
+   `(ediff-odd-diff-Ancestor ((,class (:background ,bg-diff-neutral-0 
:foreground ,fg-diff-neutral-0))))
+   `(ediff-odd-diff-B ((,class (:background ,bg-diff-neutral-2 :foreground 
,fg-diff-neutral-2))))
+   `(ediff-odd-diff-C ((,class (:background ,bg-diff-neutral-1 :foreground 
,fg-diff-neutral-1))))
    ;;;; eldoc-box
    `(eldoc-box-body ((,class (:background ,bg-alt :foreground ,fg-main))))
    `(eldoc-box-border ((,class (:background ,fg-alt))))
diff --git a/modus-vivendi-theme.el b/modus-vivendi-theme.el
index 9f0c146..bb678ce 100644
--- a/modus-vivendi-theme.el
+++ b/modus-vivendi-theme.el
@@ -386,7 +386,7 @@ between foreground and background is >= 7:1)."
   :type 'boolean)
 
 (defcustom modus-vivendi-theme-subtle-diffs nil
-  "Use fewer background colours in `diff-mode' and related."
+  "Use fewer/dim backgrounds in `diff-mode', `ediff',`magit'."
   :type 'boolean)
 
 (defmacro modus-vivendi-theme-diffs (subtle-bg subtle-fg intense-bg intense-fg)
@@ -521,13 +521,16 @@ AMOUNT is a customisation option."
       (bg-hl-line "#151823")
       (bg-paren-match "#6e3a50")
       (bg-region "#3c3c3c")
+
       (bg-tab-active "#484848")
       (bg-tab-inactive "#2f2f2f")
       (fg-tab-active "#99efff")
+
       (fg-window-divider-inner "#646464")
       (fg-window-divider-outer "#969696")
       (fg-header "#dddddd") (bg-header "#2a2a2a")
       (fg-whitespace "#a4959f") (bg-whitespace "#170016")
+
       (fg-diff-heading "#dadffe") (bg-diff-heading "#304466")
       (fg-diff-added "#94ba94") (bg-diff-added "#0a280a")
       (fg-diff-changed "#b0ba9f") (bg-diff-changed "#2a2000")
@@ -538,6 +541,11 @@ AMOUNT is a customisation option."
       (fg-diff-focus-added "#b4ddb4") (bg-diff-focus-added "#203d20")
       (fg-diff-focus-changed "#d0daaf") (bg-diff-focus-changed "#4a3a10")
       (fg-diff-focus-removed "#eebdba") (bg-diff-focus-removed "#5e2526")
+
+      (fg-diff-neutral-0 "#fcfcfc") (bg-diff-neutral-0 "#575757")
+      (fg-diff-neutral-1 "#dddddd") (bg-diff-neutral-1 "#454545")
+      (fg-diff-neutral-2 "#bfbfbf") (bg-diff-neutral-2 "#313131")
+
       (fg-mark "#60cfa2") (bg-mark "#002f2f")
       (fg-mark-del "#ff99aa") (bg-mark-del "#5a0000")
       (fg-mark-other "#f0aa20") (bg-mark-other "#3f2210")
@@ -1191,22 +1199,30 @@ AMOUNT is a customisation option."
    `(ebdb-role-defunct ((,class (:foreground ,fg-alt))))
    `(eieio-custom-slot-tag-face ((,class (:foreground ,red-alt))))
    ;;;; ediff
-   `(ediff-current-diff-A ((,class (:inherit modus-theme-special-warm))))
-   `(ediff-current-diff-Ancestor ((,class (:background ,bg-alt :foreground 
,fg-main))))
-   `(ediff-current-diff-B ((,class (:inherit modus-theme-special-cold))))
-   `(ediff-current-diff-C ((,class (:inherit modus-theme-special-mild))))
-   `(ediff-even-diff-A ((,class (:inherit modus-theme-subtle-yellow))))
-   `(ediff-even-diff-Ancestor ((,class (:background ,bg-inactive :foreground 
,fg-main))))
-   `(ediff-even-diff-B ((,class (:inherit modus-theme-subtle-cyan))))
-   `(ediff-even-diff-C ((,class (:inherit modus-theme-subtle-green))))
-   `(ediff-fine-diff-A ((,class (:inherit modus-theme-intense-yellow))))
-   `(ediff-fine-diff-Ancestor ((,class (:inherit 
modus-theme-intense-magenta))))
-   `(ediff-fine-diff-B ((,class (:inherit modus-theme-intense-cyan))))
-   `(ediff-fine-diff-C ((,class (:inherit modus-theme-intense-green))))
-   `(ediff-odd-diff-A ((,class (:inherit modus-theme-refine-yellow))))
-   `(ediff-odd-diff-Ancestor ((,class (:background ,bg-active :foreground 
,fg-main))))
-   `(ediff-odd-diff-B ((,class (:inherit modus-theme-refine-cyan))))
-   `(ediff-odd-diff-C ((,class (:inherit modus-theme-refine-green))))
+   `(ediff-current-diff-A ((,class ,(modus-vivendi-theme-diffs
+                                     bg-alt red
+                                     bg-diff-removed fg-diff-removed))))
+   `(ediff-current-diff-Ancestor ((,class ,(modus-vivendi-theme-diffs
+                                            bg-alt fg-special-cold
+                                            bg-special-cold fg-special-cold))))
+   `(ediff-current-diff-B ((,class ,(modus-vivendi-theme-diffs
+                                     bg-alt green
+                                     bg-diff-added fg-diff-added))))
+   `(ediff-current-diff-C ((,class ,(modus-vivendi-theme-diffs
+                                     bg-alt yellow
+                                     bg-diff-changed fg-diff-changed))))
+   `(ediff-even-diff-A ((,class (:background ,bg-diff-neutral-1 :foreground 
,fg-diff-neutral-1))))
+   `(ediff-even-diff-Ancestor ((,class (:background ,bg-diff-neutral-2 
:foreground ,fg-diff-neutral-1))))
+   `(ediff-even-diff-B ((,class (:background ,bg-diff-neutral-1 :foreground 
,fg-diff-neutral-1))))
+   `(ediff-even-diff-C ((,class (:background ,bg-diff-neutral-2 :foreground 
,fg-diff-neutral-2))))
+   `(ediff-fine-diff-A ((,class (:background ,bg-diff-focus-removed 
:foreground ,fg-diff-focus-removed))))
+   `(ediff-fine-diff-Ancestor ((,class (:inherit modus-theme-refine-cyan))))
+   `(ediff-fine-diff-B ((,class (:background ,bg-diff-focus-added :foreground 
,fg-diff-focus-added))))
+   `(ediff-fine-diff-C ((,class (:background ,bg-diff-focus-changed 
:foreground ,fg-diff-focus-changed))))
+   `(ediff-odd-diff-A ((,class (:background ,bg-diff-neutral-2 :foreground 
,fg-diff-neutral-2))))
+   `(ediff-odd-diff-Ancestor ((,class (:background ,bg-diff-neutral-0 
:foreground ,fg-diff-neutral-0))))
+   `(ediff-odd-diff-B ((,class (:background ,bg-diff-neutral-2 :foreground 
,fg-diff-neutral-2))))
+   `(ediff-odd-diff-C ((,class (:background ,bg-diff-neutral-1 :foreground 
,fg-diff-neutral-1))))
    ;;;; eldoc-box
    `(eldoc-box-body ((,class (:background ,bg-alt :foreground ,fg-main))))
    `(eldoc-box-border ((,class (:background ,fg-alt))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]