On Mon, 2024-06-10 at 15:55 +0300, Eli Zaretskii wrote: > tags 71469 notabug > thanks > > > From: Konstantin Kharlamov > > Date: Mon, 10 Jun 2024 14:59:37 +0300 > > > >      (defface test-face > >        '((t (:inherit bold))) > >        "Test face.") > > > >      (define-derived-mode my-mode fundamental-mode "My Mode" > >        "A minimal mode that highlights 'hello world' text." > >        (font-lock-add-keywords nil '(("hello world" 0 test-face))) > > From the ELisp manual: > >    Each element of ‘font-lock-keywords’ should have one of these > forms: >    [...] >   ‘(MATCHER . FACESPEC)’ >        In this kind of element, FACESPEC is an expression whose value >        specifies the face to use for highlighting.  In the simplest > case, >        FACESPEC is a Lisp variable (a symbol) whose value is a face > name. >        > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > IOW, there's a difference between a symbol of a variable whose value > is a face name, and that face name itself. > > This works for me: > >   (defface test-face >     '((t (:inherit bold))) >     "Test face.") >   (defvar test-face 'test-face >     "Face name to use for My Mode.") > >   (define-derived-mode my-mode fundamental-mode "My Mode" >     "A minimal mode that highlights 'hello world' text." >     (font-lock-add-keywords nil '(("hello world" 0 test-face))) >     (font-lock-flush)) >   (add-to-list 'auto-mode-alist (cons "test.txt" 'my-mode)) >   (provide 'my-mode) Ooh, I see, thank you! So using e.g. a `'test-face` also makes it work. I'm wondering if it would be okay to mention such nuance in the "standard faces" documentation, such as with the attached patch? I think it would be really helpful, because the nuance of how it works is not obvious at all (it would be much easier if none of the faces such as font-lock-keyword-face, would be defining a variable). I've spent for about an hour on this trying in different ways to make it work, and I also think it wasn't the first time I stumbled upon this. Having the "standard faces" mention that interaction nuance I think could be helpful for people in the future.