GNU bug report logs - #12213
24.1; Cannot customize help-argument-name face

Previous Next

Package: emacs;

Reported by: Raffaele Ricciardi <rfflrccrd <at> gmail.com>

Date: Thu, 16 Aug 2012 19:10:02 UTC

Severity: minor

Found in version 24.1

Done: Chong Yidong <cyd <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Raffaele Ricciardi <rfflrccrd <at> gmail.com>
To: Glenn Morris <rgm <at> gnu.org>
Cc: 12213 <at> debbugs.gnu.org
Subject: bug#12213: 24.1; Cannot customize help-argument-name face
Date: Fri, 17 Aug 2012 09:09:55 +0100
On 08/17/2012 08:15 AM, Glenn Morris wrote:
> Raffaele Ricciardi wrote:
>
>> - emacs -Q
>> - M-x customize-face RET help-argument-name RET
>> - set face foreground (i.e. "yellow")
>> - click on "Set for this session"
>> - M-x describe-face RET help-argument-name RET
>> - all the fields in the face specification are "unspecified"
> [...]
>> In GNU Emacs 24.1.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1)
>>   of 2012-06-12 on debian
>
> Thanks for the report, but I cannot reproduce this on x86_64.
> I tried on RHEL6 and Debian testing, GTK and Lucid toolkits, and it
> works fine for me.

I have isolated a contributory cause: the bug shows up only when I use a 
bitmap
font.  With a TrueType font, everything works. At first.

No matter the kind of font used, my Emacs behaves weirdly in regard to the
`help-argument-name' face.  `describe-face' correctly describes the 
face, but
if I use it in `font-lock-add-keywords', then the `default' face gets used
instead.  This is strange because Help mode does use the face as expected.

How to reproduce:

 - emacs -Q

 - evaluate:

(defun rr-Info-mode-highlight-argument-names ()
  "Highlight argument names the way they are highlighted in Help mode."
  ;; To avoid highlighting uppercase single letters in the text, highlight
  ;; only symbols more than one character long.
  (font-lock-add-keywords nil
                          '(("\\_<[A-Z][-A-Z[:digit:]]+\\_>"
                             . help-argument-name))))

(add-hook 'Info-mode-hook #'rr-Info-mode-highlight-argument-names)

 - C-h S define-minor-mode RET

Place the cursor over an uppercase argument name, and:

M-x describe-face RET

Emacs says the `default' face is being used.  Now, replace the
`help-argument-name' face with 'font-lock-comment-face' in the hook 
above and
retry.  The highlighting now works.

Moreover, if I "recreate" the face as a copy of the `default' face - 
e.g. by using
`copy-face' - beforehand, then customizations become persistent with a 
bitmap
font as well, but `font-lock-add-keywords' keeps using the `default' 
face instead.

Hope this helps.

Incidentally, I think that the default `help-argument-name' face or any 
other
face looking the same as the 'default' face is an undesirable feature. 
Every
face should look different from `default', to let users know they can 
customize
them. I understand that choosing a color for every face may be a lot of 
work,
but then having a default foreground color that is different from 
`default' when
defining a new face in the Emacs standard libraries would be enough.  If you
want to keep the default foreground color, then I suggest that you use other
attributes like Underline, Weight, etc.

> (There seems to be an implicit "click on Show All
> Attributes" in the recipe.)

Indeed there is.  Sorry for the oversight.

Cheers.




This bug report was last modified 12 years and 331 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.