unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: Dmitry Gutov <dgutov@yandex.ru>, Eli Zaretskii <eliz@gnu.org>
Cc: tino.calancha@gmail.com, 21391@debbugs.gnu.org
Subject: bug#21391: 24.5; `thing-at-point' should return a string
Date: Wed, 9 Nov 2016 16:40:09 -0800 (PST)	[thread overview]
Message-ID: <8c2b4b8b-0e49-42af-a98d-d82006f90354@default> (raw)
In-Reply-To: <1c17de6b-2297-6e7e-9b06-e84b5b6df3eb@yandex.ru>

> > (get 'number 'thing-at-point) returns `number-at-point', which
> > is 100% reasonable.
> 
> Not at all. As I've explained previously.

No, you have not.  This is the whole point of symbol property
`thing-at-point', and it always has been.

What do YOU think is the point of putting property `thing-at-point'
on a THING type?

> > Not wanting someone to use (thing-at-point 'number) to return
> > a number via (get 'number 'thing-at-point) is one thing.
> > And it is already addressed by what I proposed.
> 
> I must have missed that proposal.

I showed three possibilities, and I pointed out which one I prefer.
The bug thread is there, in case you really missed it.

> > Not wanting to let (get 'number 'thing-at-point) to return a
> > function that returns a number is quite another thing altogether.
> > And it is totally uncalled for.
> 
> Isn't that one and the same?

Of course not.  The use of (get 'number 'thing-at-point) in the
definition of `thing-at-point' is only _one_ use of it.  That's
apparently what you've missed from the beginning: the point of
symbol property `thing-at-point'.

You will see things like this in thingatpt.el:

(put 'url 'thing-at-point 'thing-at-point-url-at-point)

(put 'email 'thing-at-point
     (lambda ()
       (let ((boundary-pair (bounds-of-thing-at-point 'email)))
         (if boundary-pair
             (buffer-substring-no-properties
              (car boundary-pair) (cdr boundary-pair))))))

(put 'number 'thing-at-point 'number-at-point)

And that's only a few predefined uses of it.  One of the main
points of the library is to provide tools that you can use to
define your functions that implement providing a THING at point.
And by that I do not mean just a string at point that names a
thing - I mean a Lisp THING (list, sexp, number, color name,
file name,... whatever).

It is irrelevant to the design of thingatpt.el, and its intended
use cases, that the THINGs defined for `url' and `email' are
string values.  They are no more "normal" cases for the design
than is `number'.  What is important is that the design provides
this functionality for _any_ kind of THING - any Lisp value.

Examples of other THING-returning definitions:

(put 'list 'thing-at-point 'my-list-at-point)
(put 'unquoted-list 'thing-at-point 'my-unquoted-list-at-point)
(put 'non-nil-symbol-name 'thing-at-point 'my-non-nil-symbol-name-at-point)
(put 'symbol-name 'thing-at-point 'my-symbol-name-at-point)
(put 'region-or-word 'thing-at-point 'my-region-or-word-at-point)
(put 'color 'thing-at-point 'my-color-at-point)
(put 'decimal-number 'thing-at-point 'my-number-at-point-decimal)
(put 'hex-number 'thing-at-point 'my-number-at-point-hex)
(put 'string 'thing-at-point 'my-string-at-point)

Some of those THING types are strings; some are lists; some are
symbols; some are numbers.  The THING possibilities are limitless.

Practically the entire design of thingatpt.el revolves around
putting properties on THING-type symbols and function symbols.
This includes property `thing-at-point'.

> > I disagreed with it strongly in the context of bug #9300, where
> > you were the lone voice proclaiming it.  You apparently view the only
> > use of this functionality as returning a string near (not at)
> > point that can be used as an input default value.  thingatpt.el is much
> > more than that.  It is very important that it be able to be used
> > to test whether there (really) is a given THING _at_ point (not
> > just somewhere near point).
> 
> That seems orthogonal to the current discussion.

It points to the fact that you apparently have only a limited view
of what thingatpt.el is for and what features it provides.  You've
missed two for two, so far - and important ones, at that.





  reply	other threads:[~2016-11-10  0:40 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-01  1:59 bug#21391: 24.5; `thing-at-point' returns error when called with arguments 'number t Tino Calancha
2015-09-05  8:23 ` Eli Zaretskii
2016-10-13  7:00 ` bug#21391: 24.5; `thing-at-point' returns error when called with arguments 'number t) Tino Calancha
2016-11-04 16:31   ` Drew Adams
2016-11-04 18:31     ` Andreas Röhler
2016-11-04 19:27       ` Drew Adams
2016-11-04 20:21         ` Drew Adams
2016-11-07  9:30           ` Andreas Röhler
2016-11-07 15:00             ` Drew Adams
2016-11-07 15:01             ` Drew Adams
2016-11-04 20:03     ` Drew Adams
2016-11-07  3:17       ` bug#21391: 24.5; `thing-at-point' should return a string Tino Calancha
2016-11-07 15:14         ` Eli Zaretskii
2016-11-07 19:12           ` Dmitry Gutov
2016-11-07 19:47             ` Eli Zaretskii
2016-11-07 19:51               ` Dmitry Gutov
2016-11-07 20:02                 ` Eli Zaretskii
2016-11-07 20:03                   ` Dmitry Gutov
2016-11-08 13:15                     ` Tino Calancha
2016-11-08 15:05                     ` Eli Zaretskii
2016-11-09  0:04                       ` Dmitry Gutov
2016-11-09  6:43                         ` Andreas Röhler
2016-11-09 15:45                         ` Eli Zaretskii
2016-11-09 23:30                           ` Dmitry Gutov
2016-11-10 16:08                             ` Eli Zaretskii
2016-11-10 16:19                               ` Dmitry Gutov
2016-11-10 17:13                                 ` Eli Zaretskii
2016-11-10 17:28                                   ` Dmitry Gutov
2016-11-10 18:49                                     ` Eli Zaretskii
2016-11-10 18:55                                       ` Dmitry Gutov
2016-11-10 19:59                                         ` Eli Zaretskii
2016-11-10 21:12                                           ` Dmitry Gutov
2016-11-11 10:07                                             ` Tino Calancha
2016-11-11 10:57                                               ` Eli Zaretskii
2016-11-11 14:13                                                 ` Tino Calancha
2016-11-11 14:35                                                   ` Eli Zaretskii
2016-11-11 14:46                                                     ` Dmitry Gutov
2016-11-11 14:51                                                       ` Eli Zaretskii
2016-11-11 14:57                                                         ` Dmitry Gutov
2016-11-11 15:31                                                           ` Eli Zaretskii
2016-11-11 15:05                                                         ` Tino Calancha
2016-11-11 15:37                                                           ` Eli Zaretskii
2016-11-14  1:52                                                             ` Dmitry Gutov
2016-11-14  2:43                                                               ` Drew Adams
2016-11-14 10:26                                                                 ` Andreas Röhler
2016-11-14 15:19                                                                   ` Drew Adams
2016-11-16 13:49                                                                     ` Andreas Röhler
2016-11-16 14:45                                                                       ` Drew Adams
2016-11-14 15:36                                                                   ` Eli Zaretskii
2016-11-15  7:18                                                                     ` Andreas Röhler
2016-11-14 15:34                                                                 ` Eli Zaretskii
2016-11-10 18:27                                 ` Drew Adams
2016-11-09 17:58                         ` Drew Adams
2016-11-09 23:35                           ` Dmitry Gutov
2016-11-10  0:40                             ` Drew Adams [this message]
2016-11-10  8:55                               ` Dmitry Gutov
2020-08-24 18:32                       ` Lars Ingebrigtsen
     [not found]                     ` <<83inrygggr.fsf@gnu.org>
2016-11-08 16:31                       ` Drew Adams
     [not found]                       ` <<cc2e7eab-e58d-db76-b5ed-0ec9871fad9d@yandex.ru>
     [not found]                         ` <<83y40sfyij.fsf@gnu.org>
     [not found]                           ` <<76505436-e66c-0ed3-6d7a-ce654f38ef30@yandex.ru>
     [not found]                             ` <<83bmxnfhbi.fsf@gnu.org>
     [not found]                               ` <<73600483-1df5-597c-6066-232189bbdd4a@yandex.ru>
     [not found]                                 ` <<834m3ffeb9.fsf@gnu.org>
     [not found]                                   ` <<fcb1bcf1-20f0-3eda-1c33-df7ba085d487@yandex.ru>
     [not found]                                     ` <<83twbfdvav.fsf@gnu.org>
     [not found]                                       ` <<73be4b9d-2df8-cc83-b873-398cb7dd043b@yandex.ru>
     [not found]                                         ` <<83pom3ds3e.fsf@gnu.org>
     [not found]                                           ` <<ef67e387-0302-1aaa-4764-cab2d3337a2c@yandex.ru>
     [not found]                                             ` <<alpine.DEB.2.20.1611111851250.21428@calancha-pc>
     [not found]                                               ` <<83bmxme12w.fsf@gnu.org>
     [not found]                                                 ` <<alpine.DEB.2.20.1611112313020.23900@calancha-pc>
     [not found]                                                   ` <<834m3edqyr.fsf@gnu.org>
     [not found]                                                     ` <<6dbea00c-3bde-6ec3-b109-7aa205bedb5f@yandex.ru>
     [not found]                                                       ` <<8337iydq8z.fsf@gnu.org>
     [not found]                                                         ` <<alpine.DEB.2.20.1611112355090.24203@calancha-pc>
     [not found]                                                           ` <<83y40qc9jv.fsf@gnu.org>
     [not found]                                                             ` <<df484e47-dbd7-06d5-5987-a067185d3e00@yandex.ru>
     [not found]                                                               ` <<bd8f220e-6ac2-4996-91ed-7bcf4cc5413f@default>
     [not found]                                                                 ` <<83a8d2hy8f.fsf@gnu.org>
2016-11-14 16:24                                                                   ` Drew Adams
2016-11-14 16:44                                                                     ` Eli Zaretskii
2016-11-08  8:22                   ` Andreas Röhler
     [not found]       ` <<874m3krnb6.fsf_-_@gmail.com>
     [not found]         ` <<83a8dbiaps.fsf@gnu.org>
2016-11-07 16:10           ` Drew Adams
2016-11-07 18:04             ` Eli Zaretskii
2016-11-07 17:22       ` bug#21391: 24.5; `thing-at-point' returns error when called with arguments 'number t) Andreas Röhler
2016-11-07 17:37         ` Drew Adams
2016-11-08  8:43           ` Andreas Röhler
2016-11-08 16:31             ` Drew Adams
     [not found]       ` <<<874m3krnb6.fsf_-_@gmail.com>
     [not found]         ` <<<83a8dbiaps.fsf@gnu.org>
     [not found]           ` <<123efdfd-3a87-4b39-9567-a56ecc3ea82e@default>
     [not found]             ` <<831syni2u1.fsf@gnu.org>
2016-11-07 18:37               ` bug#21391: 24.5; `thing-at-point' should return a string Drew Adams
     [not found] <<<<alpine.LRH.2.20.1509011056480.5317@calancha-ilc.kek.jp>
     [not found] ` <<<<83pom7gjhl.fsf@gnu.org>
     [not found]   ` <<<<0a8d76e4-4d1b-a26d-2b76-a2d9384d9f72@yandex.ru>
     [not found]     ` <<<<83mvhbgitf.fsf@gnu.org>
     [not found]       ` <<<<25bb22e8-1388-275a-d0da-7e698acdf6da@yandex.ru>
     [not found]         ` <<<<83inrygggr.fsf@gnu.org>
     [not found]           ` <<<<cc2e7eab-e58d-db76-b5ed-0ec9871fad9d@yandex.ru>
     [not found]             ` <<<<83y40sfyij.fsf@gnu.org>
     [not found]               ` <<<<76505436-e66c-0ed3-6d7a-ce654f38ef30@yandex.ru>
     [not found]                 ` <<<<83bmxnfhbi.fsf@gnu.org>
     [not found]                   ` <<<<73600483-1df5-597c-6066-232189bbdd4a@yandex.ru>
     [not found]                     ` <<<<834m3ffeb9.fsf@gnu.org>
     [not found]                       ` <<<<fcb1bcf1-20f0-3eda-1c33-df7ba085d487@yandex.ru>
     [not found]                         ` <<<<83twbfdvav.fsf@gnu.org>
     [not found]                           ` <<<<73be4b9d-2df8-cc83-b873-398cb7dd043b@yandex.ru>
     [not found]                             ` <<<<83pom3ds3e.fsf@gnu.org>
     [not found]                               ` <<<<ef67e387-0302-1aaa-4764-cab2d3337a2c@yandex.ru>
     [not found]                                 ` <<<<alpine.DEB.2.20.1611111851250.21428@calancha-pc>
     [not found]                                   ` <<<<83bmxme12w.fsf@gnu.org>
     [not found]                                     ` <<<<alpine.DEB.2.20.1611112313020.23900@calancha-pc>
     [not found]                                       ` <<<<834m3edqyr.fsf@gnu.org>
     [not found]                                         ` <<<<6dbea00c-3bde-6ec3-b109-7aa205bedb5f@yandex.ru>
     [not found]                                           ` <<<<8337iydq8z.fsf@gnu.org>
     [not found]                                             ` <<<<alpine.DEB.2.20.1611112355090.24203@calancha-pc>
     [not found]                                               ` <<<<83y40qc9jv.fsf@gnu.org>
     [not found]                                                 ` <<<<df484e47-dbd7-06d5-5987-a067185d3e00@yandex.ru>
     [not found]                                                   ` <<<<bd8f220e-6ac2-4996-91ed-7bcf4cc5413f@default>
     [not found]                                                     ` <<<<83a8d2hy8f.fsf@gnu.org>
     [not found]                                                       ` <<<5a6ddd21-ebf9-42bf-9fb6-7fc9e037b3ed@default>
     [not found]                                                         ` <<<83zil2ggf7.fsf@gnu.org>
     [not found]                                                           ` <<fe942899-b2b4-4add-9f80-87ddf53bc680@default>
     [not found]                                                             ` <<83wpg6gc8h.fsf@gnu.org>
2016-11-14 18:54                                                               ` Drew Adams
     [not found] <<<alpine.LRH.2.20.1509011056480.5317@calancha-ilc.kek.jp>
     [not found] ` <<<83pom7gjhl.fsf@gnu.org>
     [not found]   ` <<<0a8d76e4-4d1b-a26d-2b76-a2d9384d9f72@yandex.ru>
     [not found]     ` <<<83mvhbgitf.fsf@gnu.org>
     [not found]       ` <<<25bb22e8-1388-275a-d0da-7e698acdf6da@yandex.ru>
     [not found]         ` <<<83inrygggr.fsf@gnu.org>
     [not found]           ` <<<cc2e7eab-e58d-db76-b5ed-0ec9871fad9d@yandex.ru>
     [not found]             ` <<<83y40sfyij.fsf@gnu.org>
     [not found]               ` <<<76505436-e66c-0ed3-6d7a-ce654f38ef30@yandex.ru>
     [not found]                 ` <<<83bmxnfhbi.fsf@gnu.org>
     [not found]                   ` <<<73600483-1df5-597c-6066-232189bbdd4a@yandex.ru>
     [not found]                     ` <<<834m3ffeb9.fsf@gnu.org>
     [not found]                       ` <<<fcb1bcf1-20f0-3eda-1c33-df7ba085d487@yandex.ru>
     [not found]                         ` <<<83twbfdvav.fsf@gnu.org>
     [not found]                           ` <<<73be4b9d-2df8-cc83-b873-398cb7dd043b@yandex.ru>
     [not found]                             ` <<<83pom3ds3e.fsf@gnu.org>
     [not found]                               ` <<<ef67e387-0302-1aaa-4764-cab2d3337a2c@yandex.ru>
     [not found]                                 ` <<<alpine.DEB.2.20.1611111851250.21428@calancha-pc>
     [not found]                                   ` <<<83bmxme12w.fsf@gnu.org>
     [not found]                                     ` <<<alpine.DEB.2.20.1611112313020.23900@calancha-pc>
     [not found]                                       ` <<<834m3edqyr.fsf@gnu.org>
     [not found]                                         ` <<<6dbea00c-3bde-6ec3-b109-7aa205bedb5f@yandex.ru>
     [not found]                                           ` <<<8337iydq8z.fsf@gnu.org>
     [not found]                                             ` <<<alpine.DEB.2.20.1611112355090.24203@calancha-pc>
     [not found]                                               ` <<<83y40qc9jv.fsf@gnu.org>
     [not found]                                                 ` <<<df484e47-dbd7-06d5-5987-a067185d3e00@yandex.ru>
     [not found]                                                   ` <<<bd8f220e-6ac2-4996-91ed-7bcf4cc5413f@default>
     [not found]                                                     ` <<<83a8d2hy8f.fsf@gnu.org>
     [not found]                                                       ` <<5a6ddd21-ebf9-42bf-9fb6-7fc9e037b3ed@default>
     [not found]                                                         ` <<83zil2ggf7.fsf@gnu.org>
2016-11-14 17:33                                                           ` Drew Adams
2016-11-14 18:14                                                             ` Eli Zaretskii
     [not found] <<alpine.LRH.2.20.1509011056480.5317@calancha-ilc.kek.jp>
     [not found] ` <<83pom7gjhl.fsf@gnu.org>
     [not found]   ` <<0a8d76e4-4d1b-a26d-2b76-a2d9384d9f72@yandex.ru>
     [not found]     ` <<83mvhbgitf.fsf@gnu.org>

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8c2b4b8b-0e49-42af-a98d-d82006f90354@default \
    --to=drew.adams@oracle.com \
    --cc=21391@debbugs.gnu.org \
    --cc=dgutov@yandex.ru \
    --cc=eliz@gnu.org \
    --cc=tino.calancha@gmail.com \
    /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 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).