Making highlight-sexp follow modus-themes-toggle
| elisp, emacsmodus-themes-get-color-value function. Yay! Also, it turns out that I need to update the overlay in all the buffers.
Prot just added a
I'm experimenting with using the highlight-sexp
minor mode to
highlight my current s-expression, since I sometimes get confused
about what I'm modifying with smartparens. The highlight-sexp
background colour is hardcoded in the variable
hl-sexp-background-color
, and will probably look terrible if you use
a light background. I wanted it to adapt when I use
modus-themes-toggle
. Here's how that works:
(use-package highlight-sexp :quelpa (highlight-sexp :repo "daimrod/highlight-sexp" :fetcher github :version original) :hook (emacs-lisp-mode . highlight-sexp-mode) :config (defun my-hl-sexp-update-overlay () (when (overlayp hl-sexp-overlay) (overlay-put hl-sexp-overlay 'face `(:background ,(if (fboundp 'modus-themes-get-color-value) (modus-themes-get-color-value 'bg-inactive) (car (assoc-default 'bg-inactive (modus-themes--current-theme-palette)))))))) (defun my-hl-sexp-update-all-overlays () (dolist (buf (buffer-list)) (with-current-buffer buf (when highlight-sexp-mode (my-hl-sexp-update-overlay))))) (advice-add 'hl-sexp-create-overlay :after 'my-hl-sexp-update-overlay) (advice-add 'modus-themes-toggle :after 'my-hl-sexp-update-all-overlays))
This is what it looks like:
This is part of my Emacs configuration.
You can comment with Disqus or you can e-mail me at sacha@sachachua.com.