* bug#29373: 24.5; doc string of `self-insert-uses-region-functions'
[not found] ` <<83h8tk9chp.fsf@gnu.org>
@ 2017-11-24 16:43 ` Drew Adams
2017-11-24 17:07 ` Eli Zaretskii
0 siblings, 1 reply; 6+ messages in thread
From: Drew Adams @ 2017-11-24 16:43 UTC (permalink / raw)
To: Eli Zaretskii, Drew Adams; +Cc: 29373-done
> -----Original Message-----
> From: Eli Zaretskii [mailto:eliz@gnu.org]
> Sent: Friday, November 24, 2017 2:51 AM
> To: Drew Adams <drew.adams@oracle.com>
> Cc: 29373-done@debbugs.gnu.org
> Subject: Re: bug#29373: 24.5; doc string of `self-insert-uses-region-
> functions'
>
> > Date: Mon, 20 Nov 2017 18:56:15 -0800 (PST)
> > From: Drew Adams <drew.adams@oracle.com>
> >
> > Two lines of the doc string are too long.
>
> Longer than 79 characters? I didn't find any such lines.
Where do you see 79 as the recommended max length?
Traditionaly it has been 70, IIRC.
From (elisp) `Documentation Tips':
Format the documentation string so that it fits in an Emacs window
on an 80-column screen. It is a good idea for most lines to be no
wider than 60 characters. The first line should not be wider than
67 characters or it will look bad in the output of 'apropos'.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Documentation-Tips.html
1 out of the 5 lines is less than 61 chars - not most.
But if you're happy with the lengths as is, fine.
> > The doc string is close to incomprehensible.
>
> Such derogatory remarks are best kept out of bug reports. The facts
> are grave enough to tell we should fix this.
Nothing derogatory intended. That's a summary of the
problem - lack of clarity overall. For me, at least,
the wording of this doc is not very understandable.
I have no idea who wrote it, nor do I care. It's not
about blaming or attacking anyone. It's about calling
your attention to what I, at least, think is a doc
string that needs some love (improvement). And the
overall problem is not the technical content; it is
the lack of clarity - comprehensibility. To me, at
least.
Anyway, I'm sure you made an improvement, whatever
change you made. Thanks for that.
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#29373: 24.5; doc string of `self-insert-uses-region-functions'
2017-11-24 16:43 ` bug#29373: 24.5; doc string of `self-insert-uses-region-functions' Drew Adams
@ 2017-11-24 17:07 ` Eli Zaretskii
0 siblings, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2017-11-24 17:07 UTC (permalink / raw)
To: Drew Adams; +Cc: 29373
> Date: Fri, 24 Nov 2017 08:43:05 -0800 (PST)
> From: Drew Adams <drew.adams@oracle.com>
> Cc: 29373-done@debbugs.gnu.org
>
> > > Two lines of the doc string are too long.
> >
> > Longer than 79 characters? I didn't find any such lines.
>
> Where do you see 79 as the recommended max length?
Sometimes it's impossible to limit a line to 70 characters without
incurring worse problems. This is one such case.
> > > The doc string is close to incomprehensible.
> >
> > Such derogatory remarks are best kept out of bug reports. The facts
> > are grave enough to tell we should fix this.
>
> Nothing derogatory intended.
That sentence could simply be omitted without any effect on the
report. May I suggest that you try to refrain from such unneeded
remarks?
> That's a summary of the problem - lack of clarity overall.
"Lack of clarity" would be fine (although it, too, adds nothing).
"Incomprehensible" is not a summary.
> I have no idea who wrote it, nor do I care. It's not
> about blaming or attacking anyone. It's about calling
> your attention to what I, at least, think is a doc
> string that needs some love (improvement).
What you said in the rest of the report is enough to drawing
attention.
^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <<<d8b52361-9340-4a18-b2fd-557c78c382d7@default>]
* bug#29373: 24.5; doc string of `self-insert-uses-region-functions'
@ 2017-11-21 2:56 Drew Adams
2017-11-24 10:50 ` Eli Zaretskii
0 siblings, 1 reply; 6+ messages in thread
From: Drew Adams @ 2017-11-21 2:56 UTC (permalink / raw)
To: 29373
Two lines of the doc string are too long.
The doc string is close to incomprehensible.
Special hook to tell if `self-insert-command' will use the region.
It must be called via `run-hook-with-args-until-success' with no arguments.
Any `post-self-insert-command' which consumes the region should
register a function on this hook so that things like `delete-selection-mode'
can refrain from consuming the region.
HOW does this hook "tell if `self-insert-command' will use the region"?
What does a function on this hook need to do or return, to tell that?
And what does it mean for `self-insert-command' to "use the region"?
What does "any `post-self-insert-command'" even mean? What is meant by
"consumes the region"? Does "consume" mean the same thing in each
occurrence here? What is meant by "registering" a function on a hook?
Is this ONLY about `delete-selection-mode'? If not, what else is it
for?
A guess is that this is just a way to conditionalize the treatment of
`self-insert-command' by `delete-selection-mode'. In some mode
(`electric-pair-mode'), you want to use a certain function as the value
of property `delete-selection' for symbol `self-insert-command'.
If so, then things would likely be clearer if that was said.
In that case, it needs to be understood that `delete-selection-mode'
checks the value of property `delete-selection' on
`self-insert-command', and if that value is nil or is a function that
returns nil then `delete-selection-mode' does nothing.
Say that, together with the fact that the function value of property
`delete-selection-mode' for `self-insert-command' runs the hook
functions in order, returning nil if any of them returns non-nil.
So a function on the hook should return non-nil when its aim is to
prevent deletion of the region by `self-insert-command'. Say that.
Looking at the uses in the Emacs code, the aim seems to be only to
prevent deletion of the region by `delete-selection-mode' before
`self-insert-command' does its thing. Whether `self-insert-command'
"uses" the region or "consumes" it, or even deletes it or ignores it, is
irrelevant, AFAICT. All that matters is that this gives you a way to
decide conditionally whether `delete-selection-mode' deletes the region
on its pre-hook.
In GNU Emacs 24.5.1 (i686-pc-mingw32)
of 2015-04-11 on LEG570
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
`configure --prefix=/c/usr --host=i686-pc-mingw32'
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#29373: 24.5; doc string of `self-insert-uses-region-functions'
2017-11-21 2:56 Drew Adams
@ 2017-11-24 10:50 ` Eli Zaretskii
0 siblings, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2017-11-24 10:50 UTC (permalink / raw)
To: Drew Adams; +Cc: 29373-done
> Date: Mon, 20 Nov 2017 18:56:15 -0800 (PST)
> From: Drew Adams <drew.adams@oracle.com>
>
> Two lines of the doc string are too long.
Longer than 79 characters? I didn't find any such lines.
> The doc string is close to incomprehensible.
Such derogatory remarks are best kept out of bug reports. The facts
are grave enough to tell we should fix this.
> Special hook to tell if `self-insert-command' will use the region.
> It must be called via `run-hook-with-args-until-success' with no arguments.
> Any `post-self-insert-command' which consumes the region should
> register a function on this hook so that things like `delete-selection-mode'
> can refrain from consuming the region.
>
> HOW does this hook "tell if `self-insert-command' will use the region"?
> What does a function on this hook need to do or return, to tell that?
> And what does it mean for `self-insert-command' to "use the region"?
>
> What does "any `post-self-insert-command'" even mean? What is meant by
> "consumes the region"? Does "consume" mean the same thing in each
> occurrence here? What is meant by "registering" a function on a hook?
post-self-insert-command really meant to refer to post-self-insert-hook.
> A guess is that this is just a way to conditionalize the treatment of
> `self-insert-command' by `delete-selection-mode'. In some mode
> (`electric-pair-mode'), you want to use a certain function as the value
> of property `delete-selection' for symbol `self-insert-command'.
>
> If so, then things would likely be clearer if that was said.
I clarified that.
> In that case, it needs to be understood that `delete-selection-mode'
> checks the value of property `delete-selection' on
> `self-insert-command', and if that value is nil or is a function that
> returns nil then `delete-selection-mode' does nothing.
The first part was already in delsel.el. I made clear that
self-insert-command uses this hook via delete-selection-uses-region-p.
> Say that, together with the fact that the function value of property
> `delete-selection-mode' for `self-insert-command' runs the hook
> functions in order, returning nil if any of them returns non-nil.
This is the usual behavior of run-hook-with-args-until-success.
> So a function on the hook should return non-nil when its aim is to
> prevent deletion of the region by `self-insert-command'. Say that.
Done.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-11-25 23:56 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <<d8b52361-9340-4a18-b2fd-557c78c382d7@default>
[not found] ` <<83h8tk9chp.fsf@gnu.org>
2017-11-24 16:43 ` bug#29373: 24.5; doc string of `self-insert-uses-region-functions' Drew Adams
2017-11-24 17:07 ` Eli Zaretskii
[not found] <<<d8b52361-9340-4a18-b2fd-557c78c382d7@default>
[not found] ` <<<83h8tk9chp.fsf@gnu.org>
[not found] ` <<86584c33-6e52-4cf5-8e22-bb9952b296b2@default>
[not found] ` <<83y3mv8v1r.fsf@gnu.org>
2017-11-24 17:33 ` Drew Adams
2017-11-25 23:56 ` Noam Postavsky
2017-11-21 2:56 Drew Adams
2017-11-24 10:50 ` 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).