unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* checkdoc (was: mh-e 6.2 imminent)
  2002-10-24  8:21       ` Miles Bader
@ 2002-10-24  9:28         ` Stefan Monnier
  2002-10-24 11:13           ` Kim F. Storm
  0 siblings, 1 reply; 28+ messages in thread
From: Stefan Monnier @ 2002-10-24  9:28 UTC (permalink / raw)
  Cc: Stefan Monnier, Bill Wohler, emacs-devel, mh-e-devel

> I've never heard of this `convention,' and indeed, it sounds kind of
> dumb -- a `-flag' suffix doesn't really add any useful information
> (if you know the _meaning_ of a variable, then you already know whether
> it's boolean or not, and if you don't know the meaning, well, then it
> hardly helps you to know that it's boolean!).

It's sadly even mentioned in the elisp doc :-(

	work/emacs-0% grep -C flag lispref/tips.texi 
	@item
	If a user option variable records a true-or-false condition, give it a
	name that ends in @samp{-flag}.
	[...]

Luckily it's rarely folowed.

> Why on earth does checkdoc try to enforce this?  Can we take that out?

I'd be happy to.

> [I have my own agendas of course -- I'd like to make checkdoc complain
> if people use a `-p' suffix for variables, or a `-face' suffix for
> faces...]

Agreed for the `-p'.  For `-face', I'm still not sure either way.


	Stefan

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-24  9:28         ` checkdoc (was: mh-e 6.2 imminent) Stefan Monnier
@ 2002-10-24 11:13           ` Kim F. Storm
  2002-10-24 14:45             ` Miles Bader
  0 siblings, 1 reply; 28+ messages in thread
From: Kim F. Storm @ 2002-10-24 11:13 UTC (permalink / raw)
  Cc: Miles Bader, Bill Wohler, emacs-devel, mh-e-devel

"Stefan Monnier" <monnier+gnu/emacs@rum.cs.yale.edu> writes:

re. removing check for -flag, count me in!

> 
> > [I have my own agendas of course -- I'd like to make checkdoc complain
> > if people use a `-p' suffix for variables, or a `-face' suffix for
> > faces...]
> 
> Agreed for the `-p'.  For `-face', I'm still not sure either way.

Well, I agree with Miles that formally, the -face suffix is redundant
since faces have their own namespace.

However, when you want to customize a group, I think having the face
suffix makes a big difference to the user.  

E.g. try customize-group on ido; there you will see the following
headings to customize ido's faces:

	Ido First Match Face: (sample) [Show Face]
	
	Ido Only Match Face: (sample) [Show Face]
	
	Ido Subdir Face: (sample) [Show Face]
	
	Ido Indicator Face: (sample) [Show Face]

which I definitely prefer to 

	Ido First Match: (sample) [Show Face]
	
	Ido Only Match: (sample) [Show Face]
	
	Ido Subdir: (sample) [Show Face]
	
	Ido Indicator: (sample) [Show Face]

Also, for code maintenance, I personally think having the -face suffix
on faces makes the code easier to read!

So in my option -face suffix is preferable, and I would actually
argue in favour of _recommending_ using it (which most lisp
packages seem to do anyway)!

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 28+ messages in thread

* RE:  checkdoc (was: mh-e 6.2 imminent)
@ 2002-10-24 12:52 Eric M. Ludlam
  2002-10-24 13:33 ` Stefan Monnier
  2002-11-02  2:51 ` Bill Wohler
  0 siblings, 2 replies; 28+ messages in thread
From: Eric M. Ludlam @ 2002-10-24 12:52 UTC (permalink / raw)
  Cc: miles, wohler, emacs-devel, mh-e-devel

Hi,

  Every suggestion from the Emacs Lisp reference manual that could be
easily tested, and auto-fixed was put into checkdoc.  This has oft
provided contention over if the tests were good or bad.  I opted not
to post judgment and have no personal stake in the different tests.

  Every test in the checkdoc code is prefixed with a comment that
specifies why the test is there, thus a quote from the manual is
there, or I wrote in "Addendum" when I added something I thought was
lacking.

  I do recommend changing the manual if you want to hack out a test
though.

  Lastly, checkdoc's original organic growth lead to some lack of
configurability.  I have a reconstituted checkdoc engine, but never
finished porting the tests.  The engine would keep every test in it's
own function, and the test selection would be customizable via a
simple list.  Lute.Kamstra@cwi.nl offered to take that engine, and
finish porting the tests.  I don't know what the current state is.
It will be a long task though.

Eric

>> I've never heard of this `convention,' and indeed, it sounds kind of
>> dumb -- a `-flag' suffix doesn't really add any useful information
>> (if you know the _meaning_ of a variable, then you already know whether
>> it's boolean or not, and if you don't know the meaning, well, then it
>> hardly helps you to know that it's boolean!).
>
>It's sadly even mentioned in the elisp doc :-(
>
>	work/emacs-0% grep -C flag lispref/tips.texi 
>	@item
>	If a user option variable records a true-or-false condition, give it a
>	name that ends in @samp{-flag}.
>	[...]
>
>Luckily it's rarely folowed.
>
>> Why on earth does checkdoc try to enforce this?  Can we take that out?
>
>I'd be happy to.
>
>> [I have my own agendas of course -- I'd like to make checkdoc complain
>> if people use a `-p' suffix for variables, or a `-face' suffix for
>> faces...]
>
>Agreed for the `-p'.  For `-face', I'm still not sure either way.
>
>
>	Stefan
>

-- 
          Eric Ludlam:                 zappo@gnu.org, eric@siege-engine.com
   Home: http://www.ludlam.net            Siege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net               GNU: www.gnu.org

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-24 12:52 checkdoc (was: mh-e 6.2 imminent) Eric M. Ludlam
@ 2002-10-24 13:33 ` Stefan Monnier
  2002-10-24 20:13   ` Re[2]: " Eric M. Ludlam
  2002-11-02  2:51 ` Bill Wohler
  1 sibling, 1 reply; 28+ messages in thread
From: Stefan Monnier @ 2002-10-24 13:33 UTC (permalink / raw)
  Cc: monnier+gnu/emacs, miles, wohler, emacs-devel, mh-e-devel

>   Every suggestion from the Emacs Lisp reference manual that could be
> easily tested, and auto-fixed was put into checkdoc.  This has oft
> provided contention over if the tests were good or bad.  I opted not
> to post judgment and have no personal stake in the different tests.

And I agree with your approach.  The only problem I can see really
(besides those in the coding convention ;-), is that when a
test fails, the testing is aborted.  That is unfortunate when
I want to leave one argument unmentioned but would still want
to check that the symbols are properly quoted.

Also that means that C-u checkdoc-current-buffer RET does not
actually list all the issues.  Maybe there's a way to configure
it differently, but it I didn't see it.


	Stefan

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-24 11:13           ` Kim F. Storm
@ 2002-10-24 14:45             ` Miles Bader
  2002-10-24 16:15               ` Kim F. Storm
  0 siblings, 1 reply; 28+ messages in thread
From: Miles Bader @ 2002-10-24 14:45 UTC (permalink / raw)
  Cc: Stefan Monnier, Miles Bader, Bill Wohler, emacs-devel, mh-e-devel

On Thu, Oct 24, 2002 at 01:13:11PM +0200, Kim F. Storm wrote:
> However, when you want to customize a group, I think having the face
> suffix makes a big difference to the user.  
> 
> E.g. try customize-group on ido; there you will see the following
> headings to customize ido's faces:
> 
> 	Ido First Match Face: (sample) [Show Face]
> 
> which I definitely prefer to 
> 
> 	Ido First Match: (sample) [Show Face]

Have you tried it with a non `-face' face?  Customize-face will automatically
put in a `face:' after the name to make it more clear.

> So in my option -face suffix is preferable, and I would actually
> argue in favour of _recommending_ using it (which most lisp
> packages seem to do anyway)!

No, it's probably more about half and half.  In particular, the `base' faces
(those defined in faces.el) don't use it.

As far as I can figure, the use of `-face' results from people confusing
faces with variables that point to faces; it seems that the latter used to
be more common than they are now (e.g. the variables and faces used by
font-lock).

-Miles
-- 
P.S.  All information contained in the above letter is false,
      for reasons of military security.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-24 14:45             ` Miles Bader
@ 2002-10-24 16:15               ` Kim F. Storm
  2002-10-24 23:30                 ` Miles Bader
  2002-10-25  5:35                 ` Richard Stallman
  0 siblings, 2 replies; 28+ messages in thread
From: Kim F. Storm @ 2002-10-24 16:15 UTC (permalink / raw)
  Cc: Stefan Monnier, Miles Bader, Bill Wohler, emacs-devel, mh-e-devel

Miles Bader <miles@gnu.org> writes:

> Have you tried it with a non `-face' face?  Customize-face will automatically
> put in a `face:' after the name to make it more clear.

Obviuosly not :-)

> 
> > So in my option -face suffix is preferable, and I would actually
> > argue in favour of _recommending_ using it (which most lisp
> > packages seem to do anyway)!
> 
> No, it's probably more about half and half.  In particular, the `base' faces
> (those defined in faces.el) don't use it.

Gnus/message/customize/widget/diff/ediff/font-lock all use the -face suffix.
Only the basic faces seem not to use the -face suffix.

> 
> As far as I can figure, the use of `-face' results from people confusing
> faces with variables that point to faces; it seems that the latter used to
> be more common than they are now (e.g. the variables and faces used by
> font-lock).

True.

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re[2]: checkdoc (was: mh-e 6.2 imminent)
  2002-10-24 13:33 ` Stefan Monnier
@ 2002-10-24 20:13   ` Eric M. Ludlam
  0 siblings, 0 replies; 28+ messages in thread
From: Eric M. Ludlam @ 2002-10-24 20:13 UTC (permalink / raw)
  Cc: miles, wohler, emacs-devel, mh-e-devel

>>> "Stefan Monnier" <monnier+gnu/emacs@rum.cs.yale.edu> seems to think that:
>>   Every suggestion from the Emacs Lisp reference manual that could be
>> easily tested, and auto-fixed was put into checkdoc.  This has oft
>> provided contention over if the tests were good or bad.  I opted not
>> to post judgment and have no personal stake in the different tests.
>
>And I agree with your approach.  The only problem I can see really
>(besides those in the coding convention ;-), is that when a
>test fails, the testing is aborted.  That is unfortunate when
>I want to leave one argument unmentioned but would still want
>to check that the symbols are properly quoted.
>
>Also that means that C-u checkdoc-current-buffer RET does not
>actually list all the issues.  Maybe there's a way to configure
>it differently, but it I didn't see it.
  [ ... ]

Yes, the mechanism is not very flexible which is why I had originally
started trying to rearchitect the insides.  I guess I couldn't fathom
why anyone would not want to fix all the problems. ;)

The prefix argument should allow more than one error message per doc
string, with a few exceptions in some cascading style checks.
Perhaps it broke somewhere in its history.

Eric

-- 
          Eric Ludlam:                 zappo@gnu.org, eric@siege-engine.com
   Home: http://www.ludlam.net            Siege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net               GNU: www.gnu.org

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-24 16:15               ` Kim F. Storm
@ 2002-10-24 23:30                 ` Miles Bader
  2002-10-25  5:35                 ` Richard Stallman
  1 sibling, 0 replies; 28+ messages in thread
From: Miles Bader @ 2002-10-24 23:30 UTC (permalink / raw)
  Cc: Stefan Monnier, Miles Bader, Bill Wohler, emacs-devel, mh-e-devel

On Thu, Oct 24, 2002 at 06:15:42PM +0200, Kim F. Storm wrote:
> Gnus/message/customize/widget/diff/ediff/font-lock all use the -face suffix.
> Only the basic faces seem not to use the -face suffix.

A quick grep shows:  out of 498 defface's 312 use `-face', so 3/5.

-Miles
-- 
P.S.  All information contained in the above letter is false,
      for reasons of military security.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-24 16:15               ` Kim F. Storm
  2002-10-24 23:30                 ` Miles Bader
@ 2002-10-25  5:35                 ` Richard Stallman
  2002-10-25  9:23                   ` Kim F. Storm
  1 sibling, 1 reply; 28+ messages in thread
From: Richard Stallman @ 2002-10-25  5:35 UTC (permalink / raw)
  Cc: miles, monnier+gnu/emacs, miles, wohler, emacs-devel, mh-e-devel

    Gnus/message/customize/widget/diff/ediff/font-lock all use the -face suffix.
    Only the basic faces seem not to use the -face suffix.

Perhaps we should rename the others for greater consistency.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-25  5:35                 ` Richard Stallman
@ 2002-10-25  9:23                   ` Kim F. Storm
  2002-10-26 20:15                     ` Richard Stallman
  0 siblings, 1 reply; 28+ messages in thread
From: Kim F. Storm @ 2002-10-25  9:23 UTC (permalink / raw)
  Cc: miles, monnier+gnu/emacs, miles, wohler, emacs-devel, mh-e-devel

Richard Stallman <rms@gnu.org> writes:

>     Gnus/message/customize/widget/diff/ediff/font-lock all use the -face suffix.
>     Only the basic faces seem not to use the -face suffix.
> 
> Perhaps we should rename the others for greater consistency.

Given Miles' statistics, that's +300 face names to be changed!

Since some (many?) of those are user customizeable, changing their
name would be problematic -- so I suggest leaving things as they are!


-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-25  9:23                   ` Kim F. Storm
@ 2002-10-26 20:15                     ` Richard Stallman
  2002-10-26 23:03                       ` Kim F. Storm
  0 siblings, 1 reply; 28+ messages in thread
From: Richard Stallman @ 2002-10-26 20:15 UTC (permalink / raw)
  Cc: miles, monnier+gnu/emacs, miles, wohler, emacs-devel, mh-e-devel

    Given Miles' statistics, that's +300 face names to be changed!

    Since some (many?) of those are user customizeable, changing their
    name would be problematic -- so I suggest leaving things as they are!

We could make an alias mechanism for faces.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-26 20:15                     ` Richard Stallman
@ 2002-10-26 23:03                       ` Kim F. Storm
  2002-10-28 19:19                         ` Richard Stallman
  0 siblings, 1 reply; 28+ messages in thread
From: Kim F. Storm @ 2002-10-26 23:03 UTC (permalink / raw)
  Cc: miles, monnier+gnu/emacs, miles, wohler, emacs-devel, mh-e-devel

Richard Stallman <rms@gnu.org> writes:

>     Given Miles' statistics, that's +300 face names to be changed!
> 
>     Since some (many?) of those are user customizeable, changing their
>     name would be problematic -- so I suggest leaving things as they are!
> 
> We could make an alias mechanism for faces.

Yes, but I still feel we could spend our time better on other things
than renaming and creating aliases for 300+ faces -- if the _users_
will never see the difference (as Miles pointed out, customize adds
"Face" to the face name if its missing...

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-26 23:03                       ` Kim F. Storm
@ 2002-10-28 19:19                         ` Richard Stallman
  2002-10-28 19:38                           ` Henrik Enberg
  0 siblings, 1 reply; 28+ messages in thread
From: Richard Stallman @ 2002-10-28 19:19 UTC (permalink / raw)
  Cc: miles, monnier+gnu/emacs, miles, wohler, emacs-devel, mh-e-devel

    Yes, but I still feel we could spend our time better on other things
    than renaming and creating aliases for 300+ faces -- if the _users_
    will never see the difference (as Miles pointed out, customize adds
    "Face" to the face name if its missing...

You may be right.  But we can still document a convention for this,
for the future.

One interesting question is, are there cases where ending a face name
with -face is actually beneficial?  What do people think?

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-28 19:19                         ` Richard Stallman
@ 2002-10-28 19:38                           ` Henrik Enberg
  2002-10-28 21:37                             ` Miles Bader
                                               ` (2 more replies)
  0 siblings, 3 replies; 28+ messages in thread
From: Henrik Enberg @ 2002-10-28 19:38 UTC (permalink / raw)
  Cc: storm, miles, monnier+gnu/emacs, miles, wohler, emacs-devel,
	mh-e-devel

Richard Stallman <rms@gnu.org> writes:

> One interesting question is, are there cases where ending a face name
> with -face is actually beneficial?  What do people think?

I think it's pretty natural to end them with -face.  For one thing, it
makes it easy to look up with apropos.  And take something like
`font-lock-keyword-face', what would be a better name?  the current
name is self-documenting.

-- 
Booting... /vmemacs.el

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-28 19:38                           ` Henrik Enberg
@ 2002-10-28 21:37                             ` Miles Bader
  2002-10-28 23:19                               ` Kim F. Storm
                                                 ` (2 more replies)
  2002-10-28 21:53                             ` Kim F. Storm
  2002-10-29 11:28                             ` Richard Stallman
  2 siblings, 3 replies; 28+ messages in thread
From: Miles Bader @ 2002-10-28 21:37 UTC (permalink / raw)
  Cc: rms, storm, monnier+gnu/emacs, miles, wohler, emacs-devel,
	mh-e-devel

On Mon, Oct 28, 2002 at 08:38:10PM +0100, Henrik Enberg wrote:
> I think it's pretty natural to end them with -face.  And take something
> like `font-lock-keyword-face', what would be a better name?

`font-lock-keyword'

[e.g., (setq font-lock-keyword-face 'font-lock-keyword) ]

> the current name is self-documenting.

If we ended every variable in `-variable', they would all be "self
documenting" too.

The question is whether this is useful property, more than it is an annoying
one (and I think you'll agree that calling every variable foo-variable would
be really annoying!).

When I look at source code [I just did this using grep] that refers to
constant face names, which is the main place where this matters, I see
things like:

   (defface foo-face ...)

   (defvar blah-blah-face 'foo-face)

   (put-text-property X Y 'face 'foo-face)

   (set-face-foreground 'foo-face "...")

   (copy-face 'foo-face)

   (let ((face (make-face 'foo-face))) ...)

   (cons 'foo-face list-of-faces)

Note that all these cases, the `-face' in the face name doesn't help at all,
because the variable/function/macro/property two which the constant face is
being assigned/passed almost always _explicitly_ makes it clear that a face
is being operated upon.  In the `-face' suffix seems redundant, because it's
entirely obvious -- even to someone who doesn't understand what the source
code does! -- that it's a face being manipulated.

I find the above situation pretty typical.

The main exception, as far as I can see, is font-lock specifications, which
generally look like indecipherable gobs of hair, so the face names tend to
stand out as the one thing who's meaning is obvious.

So to summarize, I don't think such face names really help at all, they just
make the source code ugly.

-Miles
-- 
P.S.  All information contained in the above letter is false,
      for reasons of military security.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-28 19:38                           ` Henrik Enberg
  2002-10-28 21:37                             ` Miles Bader
@ 2002-10-28 21:53                             ` Kim F. Storm
  2002-10-29  1:20                               ` Miles Bader
  2002-10-29 11:29                               ` Richard Stallman
  2002-10-29 11:28                             ` Richard Stallman
  2 siblings, 2 replies; 28+ messages in thread
From: Kim F. Storm @ 2002-10-28 21:53 UTC (permalink / raw)
  Cc: rms, miles, monnier+gnu/emacs, miles, wohler, emacs-devel,
	mh-e-devel

Henrik Enberg <henrik@enberg.org> writes:

> Richard Stallman <rms@gnu.org> writes:
> 
> > One interesting question is, are there cases where ending a face name
> > with -face is actually beneficial?  What do people think?
> 
> I think it's pretty natural to end them with -face.  For one thing, it
> makes it easy to look up with apropos.  And take something like
> `font-lock-keyword-face', what would be a better name?  the current
> name is self-documenting.

In general, I prefer the -face suffix for the same reasons as Henrik.

The only place where I really don't like the -face suffix is in the
output from M-x list-faces-display.

BTW, that list doesn't use the same names as used by Customize -- which
replaces dashes by spaces and adds "Face" if missing.

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-28 21:37                             ` Miles Bader
@ 2002-10-28 23:19                               ` Kim F. Storm
  2002-10-28 23:22                                 ` Miles Bader
  2002-10-29 11:07                               ` Henrik Enberg
  2002-10-29 14:31                               ` Stefan Monnier
  2 siblings, 1 reply; 28+ messages in thread
From: Kim F. Storm @ 2002-10-28 23:19 UTC (permalink / raw)
  Cc: Henrik Enberg, rms, monnier+gnu/emacs, miles, wohler, emacs-devel,
	mh-e-devel

Miles Bader <miles@gnu.org> writes:

> On Mon, Oct 28, 2002 at 08:38:10PM +0100, Henrik Enberg wrote:
> > I think it's pretty natural to end them with -face.  And take something
> > like `font-lock-keyword-face', what would be a better name?
> 
> `font-lock-keyword'
> 
> [e.g., (setq font-lock-keyword-face 'font-lock-keyword) ]
> 
> > the current name is self-documenting.
> 
> If we ended every variable in `-variable', they would all be "self
> documenting" too.
> 
> The question is whether this is useful property, more than it is an annoying
> one (and I think you'll agree that calling every variable foo-variable would
> be really annoying!).

Of course we don't need that .... as long as we call the faces -face :-)

> 
> When I look at source code [I just did this using grep] that refers to
> constant face names, which is the main place where this matters, I see
> things like:
> 
>    (defface foo-face ...)
> 
>    (defvar blah-blah-face 'foo-face)
> 
>    (put-text-property X Y 'face 'foo-face)
> 
>    (set-face-foreground 'foo-face "...")
> 
>    (copy-face 'foo-face)
> 
>    (let ((face (make-face 'foo-face))) ...)
> 
>    (cons 'foo-face list-of-faces)
> 
> Note that all these cases, the `-face' in the face name doesn't help at all,

.. except if you need to grep for all uses of a given face.  I find
it more precise to grep for FOO-face rather than FOO -- which for some
FOO gives a lot of false matches.

Try to find all uses of the region and mouse faces...  I bet that you
get numerous false hits that you wouldn't have got had they been named
region-face and mouse-face.  

> because the variable/function/macro/property two which the constant face is
> being assigned/passed almost always _explicitly_ makes it clear that a face
> is being operated upon.  In the `-face' suffix seems redundant, because it's
> entirely obvious -- even to someone who doesn't understand what the source
> code does! -- that it's a face being manipulated.
> 
> I find the above situation pretty typical.

And I like all of them better than the non -face alternatives!

> 
> The main exception, as far as I can see, is font-lock specifications, which
> generally look like indecipherable gobs of hair, so the face names tend to
> stand out as the one thing who's meaning is obvious.

I fully agree re. font-lock!!

> 
> So to summarize, I don't think such face names really help at all, they just
> make the source code ugly.

Well, FWIW, I disagree.

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-28 23:19                               ` Kim F. Storm
@ 2002-10-28 23:22                                 ` Miles Bader
  2002-10-29  0:46                                   ` Kim F. Storm
  0 siblings, 1 reply; 28+ messages in thread
From: Miles Bader @ 2002-10-28 23:22 UTC (permalink / raw)
  Cc: Henrik Enberg, rms, monnier+gnu/emacs, miles, wohler, emacs-devel,
	mh-e-devel

On Tue, Oct 29, 2002 at 12:19:13AM +0100, Kim F. Storm wrote:
> Try to find all uses of the region and mouse faces...  I bet that you
> get numerous false hits that you wouldn't have got had they been named
> region-face and mouse-face.  

Because of the property I've already noted -- that uses of constant faces
almost always occur in contexts where the use of a face is _explicit_,
e.g. accompanying a variable or function called `...-face' -- I can do this:

  grep "face.*'region" ...

which in fact works quite well.

One way you can test this is to pick some existing face called `foo-face',
and grep for both "foo-face" and "face.*foo" in the sources.  It's best to
pick a face that _doesn't_ have an identically-named variable, because
otherwise you tend to get lots of false hits in the `foo-face' case

[this is a problem, incidentally, with faces like `foo-face' -- code such as
font-lock tends to be even more confusing because there are _identical_
symbols being used for both variables and faces, in ways that are not that
easy to distinguish at first glance; I think it would actually be _more_
clear if only the variables were called `foo-face']

Here's an example:

First using the `-face' suffix:

   grep -nH "gnus-cite-attribution-face" lisp/gnus/*.el
   lisp/gnus/gnus-cite.el:126:(defface gnus-cite-attribution-face '((t
   lisp/gnus/gnus-cite.el:130:(defcustom gnus-cite-attribution-face 'gnus-cite-attribution-face
   lisp/gnus/gnus-cite.el:317:corresponding citation merged with `gnus-cite-attribution-face'.
   lisp/gnus/gnus-cite.el:367:	(gnus-cite-add-face number skip gnus-cite-attribution-face))
   lisp/gnus/gnus-cite.el:375:	(gnus-cite-add-face number skip gnus-cite-attribution-face)))))

Now without it:

   grep -nH "face.*gnus-cite-attribution" lisp/gnus/*.el
   lisp/gnus/gnus-cite.el:126:(defface gnus-cite-attribution-face '((t
   lisp/gnus/gnus-cite.el:130:(defcustom gnus-cite-attribution-face 'gnus-cite-attribution-face
   lisp/gnus/gnus-cite.el:367:	(gnus-cite-add-face number skip gnus-cite-attribution-face))
   lisp/gnus/gnus-cite.el:375:	(gnus-cite-add-face number skip gnus-cite-attribution-face)))))

Note that the second catches all the same cases except a mention in a
doc-string.

-Miles
-- 
Come now, if we were really planning to harm you, would we be waiting here, 
 beside the path, in the very darkest part of the forest?

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-28 23:22                                 ` Miles Bader
@ 2002-10-29  0:46                                   ` Kim F. Storm
  0 siblings, 0 replies; 28+ messages in thread
From: Kim F. Storm @ 2002-10-29  0:46 UTC (permalink / raw)
  Cc: Henrik Enberg, rms, monnier+gnu/emacs, miles, wohler, emacs-devel,
	mh-e-devel

Miles Bader <miles@gnu.org> writes:

> On Tue, Oct 29, 2002 at 12:19:13AM +0100, Kim F. Storm wrote:
> > Try to find all uses of the region and mouse faces...  I bet that you
> > get numerous false hits that you wouldn't have got had they been named
> > region-face and mouse-face.  
> 
> Because of the property I've already noted -- that uses of constant faces
> almost always occur in contexts where the use of a face is _explicit_,
> e.g. accompanying a variable or function called `...-face' -- I can do this:
> 
>   grep "face.*'region" ...
> 
> which in fact works quite well.

But fails if face and region are on different lines...

> 
> One way you can test this is to pick some existing face called `foo-face',
> and grep for both "foo-face" and "face.*foo" in the sources.  It's best to
> pick a face that _doesn't_ have an identically-named variable, because
> otherwise you tend to get lots of false hits in the `foo-face' case

I think it is a matter of taste whether those identically named
variables are false hits.

> 
> [this is a problem, incidentally, with faces like `foo-face' -- code such as
> font-lock tends to be even more confusing because there are _identical_
> symbols being used for both variables and faces, in ways that are not that
> easy to distinguish at first glance; I think it would actually be _more_
> clear if only the variables were called `foo-face']
> 
> Here's an example:
> 
> First using the `-face' suffix:
> 
>    grep -nH "gnus-cite-attribution-face" lisp/gnus/*.el
>    lisp/gnus/gnus-cite.el:126:(defface gnus-cite-attribution-face '((t
>    lisp/gnus/gnus-cite.el:130:(defcustom gnus-cite-attribution-face 'gnus-cite-attribution-face
>    lisp/gnus/gnus-cite.el:317:corresponding citation merged with `gnus-cite-attribution-face'.
>    lisp/gnus/gnus-cite.el:367:	(gnus-cite-add-face number skip gnus-cite-attribution-face))
>    lisp/gnus/gnus-cite.el:375:	(gnus-cite-add-face number skip gnus-cite-attribution-face)))))
> 
> Now without it:
> 
>    grep -nH "face.*gnus-cite-attribution" lisp/gnus/*.el
>    lisp/gnus/gnus-cite.el:126:(defface gnus-cite-attribution-face '((t
>    lisp/gnus/gnus-cite.el:130:(defcustom gnus-cite-attribution-face 'gnus-cite-attribution-face
>    lisp/gnus/gnus-cite.el:367:	(gnus-cite-add-face number skip gnus-cite-attribution-face))
>    lisp/gnus/gnus-cite.el:375:	(gnus-cite-add-face number skip gnus-cite-attribution-face)))))
> 
> Note that the second catches all the same cases except a mention in a
> doc-string.

I don't have problems separating those in general -- a face is usually
quoted, a variable is not.


I think somebody else should express their opinions -- as you and I
obviously cannot agree on this (IMHO non-)issue.

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-28 21:53                             ` Kim F. Storm
@ 2002-10-29  1:20                               ` Miles Bader
  2002-10-29 11:29                               ` Richard Stallman
  1 sibling, 0 replies; 28+ messages in thread
From: Miles Bader @ 2002-10-29  1:20 UTC (permalink / raw)
  Cc: Henrik Enberg, rms, monnier+gnu/emacs, wohler, emacs-devel,
	mh-e-devel

storm@cua.dk (Kim F. Storm) writes:
> BTW, that list doesn't use the same names as used by Customize -- which
> replaces dashes by spaces and adds "Face" if missing.

[though the added "face" is actually visually distinct -- it's in a
different font, and is lower case (all words in the `pretty' names
generated by customize are capitalized).  In other words, the point is
not to make it look like `face' is part of the name, but simply to make
clear that it's a face being customized.]

-Miles
-- 
Quidquid latine dictum sit, altum viditur.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-28 21:37                             ` Miles Bader
  2002-10-28 23:19                               ` Kim F. Storm
@ 2002-10-29 11:07                               ` Henrik Enberg
  2002-10-29 14:31                               ` Stefan Monnier
  2 siblings, 0 replies; 28+ messages in thread
From: Henrik Enberg @ 2002-10-29 11:07 UTC (permalink / raw)
  Cc: rms, storm, monnier+gnu/emacs, miles, wohler, emacs-devel,
	mh-e-devel

Miles Bader <miles@gnu.org> writes:

> On Mon, Oct 28, 2002 at 08:38:10PM +0100, Henrik Enberg wrote:
>> I think it's pretty natural to end them with -face.  And take something
>> like `font-lock-keyword-face', what would be a better name?
>
> `font-lock-keyword'
>
> [e.g., (setq font-lock-keyword-face 'font-lock-keyword) ]
>
>> the current name is self-documenting.
>
> If we ended every variable in `-variable', they would all be "self
> documenting" too.

No, that would just be silly.  There is no need to to over-consistent.

> The question is whether this is useful property, more than it is an annoying
> one (and I think you'll agree that calling every variable foo-variable would
> be really annoying!).
>
> When I look at source code [I just did this using grep] that refers to
> constant face names, which is the main place where this matters, I see
> things like:
>
>    (defface foo-face ...)

[...]

>    (cons 'foo-face list-of-faces)
>
> Note that all these cases, the `-face' in the face name doesn't help at all,
> because the variable/function/macro/property two which the constant face is
> being assigned/passed almost always _explicitly_ makes it clear that a face
> is being operated upon.  In the `-face' suffix seems redundant, because it's
> entirely obvious -- even to someone who doesn't understand what the source
> code does! -- that it's a face being manipulated.

It _is_ pretty redundant when writing code, but from a user perspective,
it make them easier to find,  I think a typical user is more likely to
use ``C-h v'' and apropos than to grep the source code.

-- 
Booting... /vmemacs.el

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-28 19:38                           ` Henrik Enberg
  2002-10-28 21:37                             ` Miles Bader
  2002-10-28 21:53                             ` Kim F. Storm
@ 2002-10-29 11:28                             ` Richard Stallman
  2002-10-29 12:55                               ` Miles Bader
  2002-11-02  0:58                               ` Henrik Enberg
  2 siblings, 2 replies; 28+ messages in thread
From: Richard Stallman @ 2002-10-29 11:28 UTC (permalink / raw)
  Cc: storm, miles, monnier+gnu/emacs, miles, wohler, emacs-devel,
	mh-e-devel

    I think it's pretty natural to end them with -face.  For one thing, it
    makes it easy to look up with apropos.  And take something like
    `font-lock-keyword-face', what would be a better name?  the current
    name is self-documenting.

But we don't want to end all of them with `face'.  It would be a pain
in the neck if faces like `italic' and `underline' ended that way.

Have you actually used this to look them up with apropos?

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-28 21:53                             ` Kim F. Storm
  2002-10-29  1:20                               ` Miles Bader
@ 2002-10-29 11:29                               ` Richard Stallman
  1 sibling, 0 replies; 28+ messages in thread
From: Richard Stallman @ 2002-10-29 11:29 UTC (permalink / raw)
  Cc: henrik, miles, monnier+gnu/emacs, miles, wohler, emacs-devel,
	mh-e-devel

    The only place where I really don't like the -face suffix is in the
    output from M-x list-faces-display.

    BTW, that list doesn't use the same names as used by Customize -- which
    replaces dashes by spaces and adds "Face" if missing.

We could make it change dashes to spaces and *remove* "Face" at the
end.  However, that might cause confusion if programmers use it
to find the actual Lisp names of faces they want to use.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-29 11:28                             ` Richard Stallman
@ 2002-10-29 12:55                               ` Miles Bader
  2002-11-02  0:58                               ` Henrik Enberg
  1 sibling, 0 replies; 28+ messages in thread
From: Miles Bader @ 2002-10-29 12:55 UTC (permalink / raw)
  Cc: henrik, storm, monnier+gnu/emacs, miles, wohler, emacs-devel,
	mh-e-devel

On Tue, Oct 29, 2002 at 06:28:58AM -0500, Richard Stallman wrote:
> Have you actually used this to look them up with apropos?

You know, if searching for faces is truly a problem (it isn't for me -- there
are so few of them that I usually just use `list-faces-display'), we could
add an `apropos-face' command...  [Perhaps it makes sense to do that
regardless, since it _is_ a separate namespace, and adding specialized
apropos commands isn't hard.]

-Miles
-- 
P.S.  All information contained in the above letter is false,
      for reasons of military security.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-28 21:37                             ` Miles Bader
  2002-10-28 23:19                               ` Kim F. Storm
  2002-10-29 11:07                               ` Henrik Enberg
@ 2002-10-29 14:31                               ` Stefan Monnier
  2 siblings, 0 replies; 28+ messages in thread
From: Stefan Monnier @ 2002-10-29 14:31 UTC (permalink / raw)
  Cc: Henrik Enberg, rms, storm, monnier+gnu/emacs, miles, wohler,
	emacs-devel, mh-e-devel

> The main exception, as far as I can see, is font-lock specifications, which
> generally look like indecipherable gobs of hair, so the face names tend to
> stand out as the one thing who's meaning is obvious.

Most font-lock specifications don't use face names but variable names.
So it's actually not an exception,


	Stefan

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-29 11:28                             ` Richard Stallman
  2002-10-29 12:55                               ` Miles Bader
@ 2002-11-02  0:58                               ` Henrik Enberg
  2002-11-05  4:26                                 ` Miles Bader
  1 sibling, 1 reply; 28+ messages in thread
From: Henrik Enberg @ 2002-11-02  0:58 UTC (permalink / raw)
  Cc: storm, miles, monnier+gnu/emacs, miles, wohler, emacs-devel,
	mh-e-devel

Richard Stallman <rms@gnu.org> writes:

>     I think it's pretty natural to end them with -face.  For one thing, it
>     makes it easy to look up with apropos.  And take something like
>     `font-lock-keyword-face', what would be a better name?  the current
>     name is self-documenting.
>
> But we don't want to end all of them with `face'.  It would be a pain
> in the neck if faces like `italic' and `underline' ended that way.

Those kinds on names are pretty common when it comes to
typography, but names like font-lock-keyword or diff-added would be
less clear.

> Have you actually used this to look them up with apropos?

Occasionally, when I was a newbie, though I didn't know about
list-faces-display then.  I think Miles idea about an appropos-face
command sounds useful. 

-- 
Booting... /vmemacs.el

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-10-24 12:52 checkdoc (was: mh-e 6.2 imminent) Eric M. Ludlam
  2002-10-24 13:33 ` Stefan Monnier
@ 2002-11-02  2:51 ` Bill Wohler
  1 sibling, 0 replies; 28+ messages in thread
From: Bill Wohler @ 2002-11-02  2:51 UTC (permalink / raw)
  Cc: monnier+gnu/emacs, miles, emacs-devel, mh-e-devel

"Eric M. Ludlam" <eric@siege-engine.com> writes:

>   I do recommend changing the manual if you want to hack out a test
> though.

  Definitely. The manual and checkdoc should be kept in sync and not
  play different tunes.

--
Bill Wohler <wohler@newt.com>  http://www.newt.com/wohler/  GnuPG ID:610BD9AD
Maintainer of comp.mail.mh FAQ and mh-e. Vote Libertarian!
If you're passed on the right, you're in the wrong lane.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: checkdoc (was: mh-e 6.2 imminent)
  2002-11-02  0:58                               ` Henrik Enberg
@ 2002-11-05  4:26                                 ` Miles Bader
  0 siblings, 0 replies; 28+ messages in thread
From: Miles Bader @ 2002-11-05  4:26 UTC (permalink / raw)
  Cc: rms, storm, monnier+gnu/emacs, wohler, emacs-devel, mh-e-devel

Henrik Enberg <henrik@enberg.org> writes:
> > But we don't want to end all of them with `face'.  It would be a pain
> > in the neck if faces like `italic' and `underline' ended that way.
> 
> Those kinds on names are pretty common when it comes to
> typography, but names like font-lock-keyword or diff-added would be
> less clear.

Well, less clear when you mention them out-of-context, but the point
I've been trying to make is that face names are almost always used in a
context where their meaning is pretty obvious.  [In other words, don't
just say `less clear,' say `less clear in such-and-such a circumstance.']

-Miles
-- 
"1971 pickup truck; will trade for guns"

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2002-11-05  4:26 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-10-24 12:52 checkdoc (was: mh-e 6.2 imminent) Eric M. Ludlam
2002-10-24 13:33 ` Stefan Monnier
2002-10-24 20:13   ` Re[2]: " Eric M. Ludlam
2002-11-02  2:51 ` Bill Wohler
  -- strict thread matches above, loose matches on Subject: below --
2002-10-21  7:26 mh-e 6.2 imminent Bill Wohler
2002-10-22  3:13 ` Richard Stallman
2002-10-23 19:48   ` Bill Wohler
2002-10-24  7:25     ` Stefan Monnier
2002-10-24  8:21       ` Miles Bader
2002-10-24  9:28         ` checkdoc (was: mh-e 6.2 imminent) Stefan Monnier
2002-10-24 11:13           ` Kim F. Storm
2002-10-24 14:45             ` Miles Bader
2002-10-24 16:15               ` Kim F. Storm
2002-10-24 23:30                 ` Miles Bader
2002-10-25  5:35                 ` Richard Stallman
2002-10-25  9:23                   ` Kim F. Storm
2002-10-26 20:15                     ` Richard Stallman
2002-10-26 23:03                       ` Kim F. Storm
2002-10-28 19:19                         ` Richard Stallman
2002-10-28 19:38                           ` Henrik Enberg
2002-10-28 21:37                             ` Miles Bader
2002-10-28 23:19                               ` Kim F. Storm
2002-10-28 23:22                                 ` Miles Bader
2002-10-29  0:46                                   ` Kim F. Storm
2002-10-29 11:07                               ` Henrik Enberg
2002-10-29 14:31                               ` Stefan Monnier
2002-10-28 21:53                             ` Kim F. Storm
2002-10-29  1:20                               ` Miles Bader
2002-10-29 11:29                               ` Richard Stallman
2002-10-29 11:28                             ` Richard Stallman
2002-10-29 12:55                               ` Miles Bader
2002-11-02  0:58                               ` Henrik Enberg
2002-11-05  4:26                                 ` Miles Bader

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).