[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Emacs-diffs] master b75fb81 1/4: Extend button.el to take callback
From: |
Lars Ingebrigtsen |
Subject: |
Re: [Emacs-diffs] master b75fb81 1/4: Extend button.el to take callback data |
Date: |
Thu, 01 Aug 2019 18:12:51 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
"Basil L. Contovounesios" <address@hidden> writes:
> I don't understand what you mean by "recreate the data" or "looking at
> the extent of the buttons".
>
> If an action function depends on some data associated with its button,
> then it is up to the creator or modifier of the button to tag it with
> that data. The action function then need only do a property lookup via
> button-get.
Here's a typical usage:
(make-text-button start (point)
'face 'rcirc-url
'follow-link t
'rcirc-url url
'action (lambda (button)
(browse-url (button-get button 'rcirc-url))))
with the "button knows the data" change, it's:
(make-text-button start (point)
'face 'rcirc-url
'follow-link t
'burron-data url
'action #'browse-url)
That looks like an interface improvement to me.
> Alternatively, action functions can also be closures.
They can be, in lexical packages.
> I don't mind the name 'button-data', and I wasn't worried about naming
> collisions.
>
> What I'm worried about is the existence of buttons in the wild, whose
> existing action functions will break if said buttons happen to be given
> a button-data property. This seems unnecessarily brittle and
> backward-incompatible, in exchange for what seems like an insufficiently
> useful convenience. Unless I'm missing something, that is.
But you said you're not worried about naming collisions? How would
these buttons then "happen to be given" that property?
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no