unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#20419: 25.0.50; doc string of `recenter-last-op`
@ 2015-04-24 17:16 Drew Adams
  2015-04-25  7:35 ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Drew Adams @ 2015-04-24 17:16 UTC (permalink / raw)
  To: 20419

The doc string says that these are the possible values:

"`top', `middle', `bottom', integer or float numbers."

It should also mention `nil', say what `nil' means, and perhaps even say
that `nil' is the default value.

A user reading things like the binding of this variable to nil in
`perform-replace' is not helped by consulting the variable's doc.



In GNU Emacs 25.0.50.1 (i686-pc-mingw32)
 of 2014-10-20 on LEG570
Bzr revision: 118168 rgm@gnu.org-20141020195941-icp42t8ttcnud09g
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --enable-checking=yes,glyphs CPPFLAGS=-DGLYPH_DEBUG=1'





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

* bug#20419: 25.0.50; doc string of `recenter-last-op`
  2015-04-24 17:16 Drew Adams
@ 2015-04-25  7:35 ` Eli Zaretskii
  0 siblings, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2015-04-25  7:35 UTC (permalink / raw)
  To: Drew Adams; +Cc: 20419

> Date: Fri, 24 Apr 2015 10:16:11 -0700 (PDT)
> From: Drew Adams <drew.adams@oracle.com>
> 
> The doc string says that these are the possible values:
> 
> "`top', `middle', `bottom', integer or float numbers."
> 
> It should also mention `nil', say what `nil' means, and perhaps even say
> that `nil' is the default value.

How do you see that nil has any meaning whatsoever?





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

* bug#20419: 25.0.50; doc string of `recenter-last-op`
       [not found] ` <<83tww4y81l.fsf@gnu.org>
@ 2015-04-25 14:29   ` Drew Adams
  2015-04-25 14:55     ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Drew Adams @ 2015-04-25 14:29 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 20419

> > The doc string says that these are the possible values:
> > "`top', `middle', `bottom', integer or float numbers."
> > It should also mention `nil', say what `nil' means, and
> > perhaps even say that `nil' is the default value.
> 
> How do you see that nil has any meaning whatsoever?

`nil' means that the next `recenter-top-bottom' starts with
the first element of `recenter-positions'.

It has the effect (meaning) that, as the two comments in that
replace.el code take the trouble to say, it "resets recenter
cycling order to initial position".

With that info added to the doc string, those comments can be
removed, and Lisp users will understand immediately that they
can do the same thing: bind it to nil to get that effect.





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

* bug#20419: 25.0.50; doc string of `recenter-last-op`
  2015-04-25 14:29   ` Drew Adams
@ 2015-04-25 14:55     ` Eli Zaretskii
  0 siblings, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2015-04-25 14:55 UTC (permalink / raw)
  To: Drew Adams; +Cc: 20419-done

> Date: Sat, 25 Apr 2015 07:29:20 -0700 (PDT)
> From: Drew Adams <drew.adams@oracle.com>
> Cc: 20419@debbugs.gnu.org
> 
> > > The doc string says that these are the possible values:
> > > "`top', `middle', `bottom', integer or float numbers."
> > > It should also mention `nil', say what `nil' means, and
> > > perhaps even say that `nil' is the default value.
> > 
> > How do you see that nil has any meaning whatsoever?
> 
> `nil' means that the next `recenter-top-bottom' starts with
> the first element of `recenter-positions'.

Yuck!  Why not set it to the first member of recenter-positions to
begin with?

FWIW, I consider this, including the exposure of this variable as some
kind of knob for other Lisp packages, bad style.  You should be
demanding cleaning this up instead of documenting it.

Fixed under protest.





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

* bug#20419: 25.0.50; doc string of `recenter-last-op`
       [not found] ` <<83iockxnog.fsf@gnu.org>
@ 2015-04-25 16:12   ` Drew Adams
  2015-04-25 16:14     ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Drew Adams @ 2015-04-25 16:12 UTC (permalink / raw)
  To: Eli Zaretskii, Drew Adams; +Cc: 20419-done

> > > > The doc string says that these are the possible values:
> > > > "`top', `middle', `bottom', integer or float numbers."
> > > > It should also mention `nil', say what `nil' means, and
> > > > perhaps even say that `nil' is the default value.
> > >
> > > How do you see that nil has any meaning whatsoever?
> >
> > `nil' means that the next `recenter-top-bottom' starts with
> > the first element of `recenter-positions'.
> 
> Yuck!  Why not set it to the first member of recenter-positions to
> begin with?
> 
> FWIW, I consider this, including the exposure of this variable as
> some kind of knob for other Lisp packages, bad style.  You should be
> demanding cleaning this up instead of documenting it.
> 
> Fixed under protest.

Point taken.  A better design (for its use in `perform-replace')
might bind `recenter-last-op' to the car of `recenter-positions'.
(The code also resets it later in `perform-replace'.  That setq
would also need to be changed, the same way.)

Or get rid of `recenter-last-op' and just have code bind and
set option `recenter-positions'...  But Emacs dev generally
doesn't like to do that, even locally.

As long as we have something like `recenter-last-op', it is
like `kill-ring-yank-pointer': it will be used by other code
and needs to be documented.

Please consider filing that bug report/enhancement request (or
consider fixing it in the context of this one), if you like.

But the behavior of nil remains unchanged.  It still needs to
be mentioned in the doc string, as long as it has the effect
it has.  Thanks for having fixed that.





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

* bug#20419: 25.0.50; doc string of `recenter-last-op`
  2015-04-25 16:12   ` Drew Adams
@ 2015-04-25 16:14     ` Eli Zaretskii
  0 siblings, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2015-04-25 16:14 UTC (permalink / raw)
  To: Drew Adams; +Cc: 20419

> Date: Sat, 25 Apr 2015 09:12:07 -0700 (PDT)
> From: Drew Adams <drew.adams@oracle.com>
> Cc: 20419-done@debbugs.gnu.org
> 
> > Yuck!  Why not set it to the first member of recenter-positions to
> > begin with?
> > 
> > FWIW, I consider this, including the exposure of this variable as
> > some kind of knob for other Lisp packages, bad style.  You should be
> > demanding cleaning this up instead of documenting it.
> > 
> > Fixed under protest.
> 
> Point taken.  A better design (for its use in `perform-replace')
> might bind `recenter-last-op' to the car of `recenter-positions'.

I'd rather suggest to have a simple function, recenter-reset-cycle,
say, and then hide its internals inside window.el.





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

* bug#20419: 25.0.50; doc string of `recenter-last-op`
       [not found] ` <<83fv7oxk0q.fsf@gnu.org>
@ 2015-04-25 16:33   ` Drew Adams
  0 siblings, 0 replies; 7+ messages in thread
From: Drew Adams @ 2015-04-25 16:33 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 20419

> I'd rather suggest to have a simple function, recenter-reset-cycle,
> say, and then hide its internals inside window.el.

Do you really think that is better than the kind of thing we do
with/for `kill-ring-yank-pointer' and `search-ring-yank-pointer'?
That code intentionally exposes the pointer variable.

If you are sure, go for it.  You might want to change the existing 
code for that uses `*-ring-yank-pointer' similarly.

I assume you would introduce another (internal) variable, which
would get modified in place of the user option, or which would
be a pointer (like `recenter-last-op' is now) to its current
(last-used) index.

Anyway, whether you do something like you propose or not, as
long as we have the current design, the doc bug fix you made
is helpful.





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

end of thread, other threads:[~2015-04-25 16:33 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <<45b241f3-fe0d-4147-8726-0c06361f2199@default>
     [not found] ` <<83fv7oxk0q.fsf@gnu.org>
2015-04-25 16:33   ` bug#20419: 25.0.50; doc string of `recenter-last-op` Drew Adams
     [not found] <<162fcb99-b1ac-4afa-8c95-e8d171f07153@default>
     [not found] ` <<83iockxnog.fsf@gnu.org>
2015-04-25 16:12   ` Drew Adams
2015-04-25 16:14     ` Eli Zaretskii
     [not found] <<3c528679-060f-45ce-994c-fdbaada6de9d@default>
     [not found] ` <<83tww4y81l.fsf@gnu.org>
2015-04-25 14:29   ` Drew Adams
2015-04-25 14:55     ` Eli Zaretskii
2015-04-24 17:16 Drew Adams
2015-04-25  7:35 ` Eli Zaretskii

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).