From: Drew Adams <drew.adams@oracle.com>
To: Jim Porter <jporterbugs@gmail.com>, Ihor Radchenko <yantar92@posteo.net>
Cc: "eliz@gnu.org" <eliz@gnu.org>,
"emacs-devel@gnu.org" <emacs-devel@gnu.org>,
"emacs-orgmode@gnu.org" <emacs-orgmode@gnu.org>
Subject: RE: [External] : Re: Adding custom providers for thingatpt.el (was: [PATCH] Add support for 'thing-at-point' to get URL at point)
Date: Tue, 30 Apr 2024 21:10:41 +0000 [thread overview]
Message-ID: <SJ0PR10MB5488187562A0FEE7F16EE324F31A2@SJ0PR10MB5488.namprd10.prod.outlook.com> (raw)
In-Reply-To: <2f344439-d0d6-a3e5-963c-773bb5c833d6@gmail.com>
> I've also fixed a bug in EWW and bug-reference-mode
> where it would return nil for (thing-at-point 'url)
> if point was at the *end* of a URL.
By "at the end" I assume you really mean just
_after_ a URL, i.e., no longer on/at the URL.
FWIW, that's actually _superior_ behavior.
Unfortunately however, Emacs has chosen the
behavior you describe here:
> It's now consistent with how 'thing-at-point'
> works by default.
> (If you have two consecutive URLs and point
> is between them...it'll prefer the second one.)
Which is better! It's what "at point" means.
(Yes, technically point is between the chars.)
And with a block cursor the cursor is on the
second thing, not the first.
And `C-x =' describes the current "cursor
position" (aka point), and it describes - wait
for it - not the char before point but the char
after point, IOW, colloquially the char at point.
And `forward-sexp', `forward-word', `forward-thing',
etc. advance just _past_ the thing. The cursor
is then _not_ on the thing, and unless the thing
is immediately followed by another thing, there's
_no_ thing at point.
Unfortunately, Emacs maintainers decided that
thingatpt.el isn't useful for anything except
obtaining something to use as a default value for
user input. The opinion was that no one ever
wants/needs to get nil, telling them that there's
no thing at point. Better, they think, to always
try to get a thing at point OR at (1- point).
This awful Emacs behavior defeats the successive
use of functions that do something with the next
thing at point, in precisely the case you cited:
when the next thing butts up against the previous
thing.
In particular, these important use cases are
defeated by the behavior chosen for Emacs:
1. To find out _whether there is_, in fact,
a THING at point. AT POINT - not point OR
(point - 1).
2. IF there really is a THING at point, to
return it (or its bounds).
See bug #9300, " `bounds-of-thing-at-point'
does not return nil when just after THING".
___
Library thingatpt+.el fixes this, providing
more useful behavior for thing-at-point, and
making more use cases possible.
It also provides functions for picking up a
thing that's _near_ point (where "near" can
be specified).
That's what Emacs _should_ do for the only
use case it even cares about, which is trying
to get a thing for use as a default value for
input. Getting a thing near point is quite
different from getting a thing _at point_.
___
https://www.emacswiki.org/emacs/download/thingatpt%2b.el
next prev parent reply other threads:[~2024-04-30 21:11 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-06 19:45 [PATCH] Add support for 'thing-at-point' to get URL at point Jim Porter
2023-11-06 19:56 ` Jim Porter
2023-11-06 20:11 ` Adding custom providers for thingatpt.el (was: [PATCH] Add support for 'thing-at-point' to get URL at point) Ihor Radchenko
2023-11-06 20:53 ` Jim Porter
2024-02-05 15:07 ` Ihor Radchenko
2024-02-05 22:44 ` Jim Porter
2024-02-05 22:56 ` Ihor Radchenko
2024-02-06 12:26 ` Eli Zaretskii
2024-02-06 12:38 ` Ihor Radchenko
2024-02-06 12:47 ` Eli Zaretskii
2024-04-12 12:41 ` Ihor Radchenko
2024-04-12 22:30 ` Jim Porter
2024-04-29 4:26 ` Jim Porter
2024-04-29 18:14 ` Ihor Radchenko
2024-04-30 4:42 ` Jim Porter
2024-04-30 11:39 ` Ihor Radchenko
2024-04-30 18:27 ` Jim Porter
2024-04-30 21:10 ` Drew Adams [this message]
2024-05-07 1:08 ` RE: [External] : " Jim Porter
2024-05-07 1:52 ` Drew Adams
2024-05-07 12:20 ` Eli Zaretskii
2024-05-07 15:16 ` Drew Adams
2024-05-07 16:10 ` Jim Porter
2024-05-07 18:01 ` Eli Zaretskii
2024-05-18 8:26 ` Eli Zaretskii
2024-05-20 1:34 ` Jim Porter
2024-05-20 2:33 ` Jim Porter
2024-05-20 10:41 ` Ihor Radchenko
2024-05-20 20:32 ` Jim Porter
2024-05-25 14:09 ` Ihor Radchenko
2024-05-26 5:33 ` Jim Porter
2024-05-26 12:56 ` Ihor Radchenko
2024-05-26 17:03 ` Jim Porter
2024-05-21 10:32 ` Adding custom providers for thingatpt.el Max Nikulin
2024-05-21 16:24 ` Jim Porter
2024-05-22 13:30 ` Max Nikulin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=SJ0PR10MB5488187562A0FEE7F16EE324F31A2@SJ0PR10MB5488.namprd10.prod.outlook.com \
--to=drew.adams@oracle.com \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=emacs-orgmode@gnu.org \
--cc=jporterbugs@gmail.com \
--cc=yantar92@posteo.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.