protesilaos / modus-themes

Highly accessible themes for GNU Emacs, conforming with the highest standard for colour contrast between background and foreground values (WCAG AAA).
https://protesilaos.com/emacs/modus-themes
GNU General Public License v3.0
523 stars 28 forks source link

Missing support for combobulate #108

Open DamienCassou opened 4 weeks ago

DamienCassou commented 4 weeks ago

combobulate introduces some faces that I'm sure look nice on @mickeynp's configuration, but are unreadable on modus-operandi. This is how combobulate-query-highlight-serene-shade-face looks for me for example when combined with hl-line:

image

Here is how it looks on a non-active line:

image

protesilaos commented 4 weeks ago

Hello @DamienCassou!

I thought combobulate was not widely available yet because there is no package for it. Anyway, I am happy to add support for it, though I need a way to test it. What languages do you use it for and is there anything in particular I need to set up for it?

DamienCassou commented 4 weeks ago

I would let you decide if combobulate should be supported or not, you are the boss :-).

I'm using it with js-ts-mode major mode which is built into Emacs 29 but requires treesit support and the javascript treesitter grammar. I don't think there is anything else to setup but feel free to contact me if you can't make it work.

-- Damien Cassou

"Success is the ability to go from one failure to another without losing enthusiasm." --Winston Churchill

protesilaos commented 2 weeks ago

From: Damien Cassou @.***> Date: Tue, 11 Jun 2024 05:03:31 -0700

I would let you decide if combobulate should be supported or not, you are the boss :-).

I'm using it with js-ts-mode major mode which is built into Emacs 29 but requires treesit support and the javascript treesitter grammar. I don't think there is anything else to setup but feel free to contact me if you can't make it work.

Just to note that I rebuilt Emacs with support for tree-sitter. I will review this either later today or during the weekend.

-- Protesilaos Stavrou https://protesilaos.com

protesilaos commented 2 weeks ago

Hello @DamienCassou!

There is a lot to learn with this package, as I am not familiar with the intended workflow. Anyway, I put together some styles based on how the original faces looked and what their documentation described. Some may need to be reviewed. Here is what you can try:

(modus-themes-with-colors
  (custom-set-faces
   `(combobulate-active-indicator-face ((,c :foreground ,fg-main)))
   `(combobulate-dimmed-indicator-face ((,c :inherit shadow)))
   `(combobulate-error-indicator-face ((,c :inherit error)))
   `(combobulate-query-highlight-fiery-flames-face ((,c :inherit modus-themes-intense-red)))
   `(combobulate-query-highlight-gleaming-gold-face ((,c :inherit modus-themes-intense-yellow)))
   `(combobulate-query-highlight-majestic-mercury-face ((,c :inherit modus-themes-intense-cyan)))
   `(combobulate-query-highlight-mysterious-mauve-face ((,c :inherit modus-themes-intense-magenta)))
   `(combobulate-query-highlight-radiant-rind-face ((,c :inherit modus-themes-subtle-red)))
   `(combobulate-query-highlight-regal-ripples-face ((,c :inherit modus-themes-intense-blue)))
   `(combobulate-query-highlight-serene-shade-face ((,c :inherit modus-themes-subtle-green)))
   `(combobulate-query-highlight-silver-shadows-face ((,c :background ,bg-active :foreground ,fg-main)))
   `(combobulate-query-highlight-vibrant-veggie-face ((,c :inherit modus-themes-intense-green)))
   `(combobulate-query-query-anonymous-face ((,c :inherit modus-themes-bold :foreground ,fg-alt)))
   `(combobulate-query-query-builtin-face ((,c :inherit font-lock-builtin-face)))
   `(combobulate-query-query-constant-face ((,c :inherit font-lock-constant-face)))
   `(combobulate-query-query-doc-markup-face ((,c :inherit font-lock-doc-markup-face)))
   `(combobulate-query-query-keyword-face ((,c :inherit font-lock-keyword-face)))
   `(combobulate-query-query-predicate-builtin-face ((,c :inherit bold)))
   `(combobulate-query-query-string-face ((,c :inherit font-lock-string-face)))
   `(combobulate-refactor-choice-face ((,c :inherit modus-themes-slant :foreground ,info)))
   `(combobulate-refactor-cursor-face ((,c :foreground ,cursor)))
   `(combobulate-refactor-field-face ((,c :background ,bg-inactive :foreground ,fg-main :extend nil)))
   `(combobulate-refactor-highlight-face ((,c :inherit highlight)))
   `(combobulate-refactor-inactive-choice-face ((,c :inherit modus-themes-slant :foreground ,fg-dim)))
   `(combobulate-refactor-inactive-field-face ((,c :background ,bg-dim :foreground ,fg-dim :extend nil)))
   `(combobulate-refactor-label-face ((,c :inherit modus-themes-search-replace)))
   `(combobulate-tree-branch-face ((,c :inherit shadow)))
   `(combobulate-tree-highlighted-node-face ((,c :inherit success)))
   `(combobulate-tree-normal-node-face ((,c :foreground ,fg-main)))
   `(combobulate-tree-pulse-node-face ((,c :background ,bg-blue-intense :extend t)))))
DamienCassou commented 2 weeks ago

Thank you very much Prot. This is much better. I had to replace ,c with ,class and get rid of some lines which seem incompatible with my version of modus-themes.