Subject: bug#4097: issues with js2-mode faces

From: Dan Nicolaescu <[email-masked]>
Date: Wed, 12 Aug 2009 00:00:12 -0700 (PDT)

Steve Yegge <[email-masked]> writes:

  > On Sun, Aug 9, 2009 at 11:00 AM, Dan Nicolaescu <[email-masked]> wrote:
  > 
  > 
  >     js2-mode uses -face suffix for faces.
  > 
  >     We are not using this suffix anymore and the tree has been cleaned up of
  >     such with backward compatibility code added.  This is new code, so
  >     there's little point in having the suffix...
  > 
  > 
  > Agree; I'll fix it.  The docs (info pages) are incorrect on a relevant point,
  > incidentally; they claim that defining variables whose value is set to the
  > face of the same name is popular but obsolete; the reality is that
  > font-lock-add-keywords requires the variable definitions.

It shouldn't require, if you have a situation where it does, please
report it to [email-masked]

  > 
  >     Also, instead of defining a new js2-error-face why not just use
  >     font-lock-warning-face?
  > 
  > 
  > Why not just define a font-lock-error-face instead?

That's a separate issue.  You want a face with a red foreground, right?
Currently that is font-lock-warning-face.

  > Other modes
  > (such as compilation) define their own error faces.  Fix it in Emacs
  > and the modes will follow.

The issue with compilation is that it uses yellow for
compilation-warning and red for compilation-error (good choices), but
font-lock-warning-face is red.  So we'd need to define a new
font-lock-error-face that is red, replace all the existing uses of
font-lock-warning-face with font-lock-error-face and change
font-lock-warning-face to be yellow.  I'll propose that.
But meanwhile, there's not reason for js2-mode to define a new face
instead of using font-lock-warning-face.