2

In my config file, I set properties for some faces used by my setup of Doom Emacs. These properties are promptly ignored when Emacs is loaded, and what I see is how things were before. I'm guessing that Doom overwrites my changes—however, seeing as it's rather big, I'd prefer to not leaf through its code in search of these faces, and instead have Emacs tell me when they're changed like it can do with variables via debug-on-variable-change. But, faces aren't variables, debug-on-variable-change doesn't work on them, and I don't see a debug-on-face-change.

Is there a ‘watch for changes’ facility for faces?

Drew
  • 77,472
  • 10
  • 114
  • 243
aaa
  • 436
  • 3
  • 9
  • To be clear, I think your question is whether Emacs has a face-watchers functionality. The answer is no. If your question is instead how to debug, to find what is altering (or not altering) some face, then please edit your question to make that clear. – Drew Mar 09 '23 at 16:03
  • To debug the changes, start by using emacs -Q (no init file). Then bisect your init file (1/2, 1/4, 1/8,...) to locate the problem. – Drew Mar 09 '23 at 16:05
  • @Drew Your guess in the first comment is right—so you might as well post it as an answer. As for bisecting the init file—as I mentioned, I'm using Doom which has quite a lot of code and is modular on top of that. – aaa Mar 18 '23 at 07:40
  • Done.................... – Drew Mar 18 '23 at 15:25
  • Bisecting is still likely the way to go - it's a binary search, so it picks up speed. You can also try advising functions or entering them using M-x debug-on-entry, or set breakpoints to the debugger anywhere you like, by inserting (debug) where you want to enter the debugger. – Drew Mar 18 '23 at 15:26
  • Ah, advises could be the way to go, thanks. – aaa Mar 18 '23 at 15:51

1 Answers1

2

No, Emacs does not have a face-watchers functionality.

Drew
  • 77,472
  • 10
  • 114
  • 243