[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3] RFC: eldoc-documentation-functions hook
From: |
Mark Oteiza |
Subject: |
Re: [PATCH v3] RFC: eldoc-documentation-functions hook |
Date: |
Mon, 18 Jul 2016 17:27:45 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) |
Stefan Monnier <address@hidden> writes:
>>>> Applied with some wording changes as 5811404
>>> I don't think we have reached any consensus.
>> The problem is not just that it introduces a gratuitous incompatiblity,
>> but that it's a regression since you can't use things like :around nor
>> choose precedence (as in add-function's `depth') with add-hook.
There was never a need. The state of eldoc shows this, as it is exactly
an emulation of what run-hook-with-args-until-success does. Alas, I'm
repeating myself.
> I know of 3 motivations to replace foo-function with foo-functions:
>
> - habit and consistency: Emacs has used add-hook for many many years, so
> having to start using add-function is inconvenient. That is true and
> I don't have a good argument against this, except that foo-function
> also have existed for many years so the fact that you can't use
> add-hook on them is not really new. What is new is that you can use
> add-function on them.
Usually foo-function holds a function symbol. If one had a desire to
add-hook on foo-function whose value is #'bar, then perhaps bar should
run a hook; but then perhaps foo-function is just a layer of indirection
and you really should just have a hook.
> - C-h v foo-function RET gives a value that's unreadable. That is true
> and we should improve it. I don't think there's anything really hard
> about doing so, so it's a transient motivation and it'd be better to
> fix `C-h v' than to circumvent the problem by using foo-functions.
Yes, we should not have to read bytecode or (at best) RTFS to decipher
what foo-function is doing.
> - (add-function :before (local 'foo-function) #'toto) is more verbose
> than (add-hook 'foo-functions #'toto nil t). That's true. But the
> difference is not very large. We could try and reduce it, but I'm not
> sure it's worth the trouble, especially since the fact that you can
> choose between (say) :before and :around is one of the main benefits of
> foo-function over foo-functions.
Which is great if that flexibility is even necessary. Advice is useful,
no doubt; however, IME the only place I thought advice was the best
solution was tacking onto a process filter. As I recall, there was an
interesting discussion on process API, but I can't find it now.
The verbosity of writing advice isn't so bad; using advice even when the
circumstance doesn't call for it is. To cite an example, is the
following somehow different from just using setq-local?
http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/textmodes/tex-mode.el#n1262
PS: I'd have suggested a more graceful change like that of
pre-redisplay-function(s)
http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=84e0b7d
But even then you end up with two (somewhat) disjoint APIs; for
instance, no degree of precedence will put your advice between function
symbols in the hook.
Re: [PATCH v3] RFC: eldoc-documentation-functions hook, Stefan Monnier, 2016/07/17
- Re: [PATCH v3] RFC: eldoc-documentation-functions hook, Stefan Monnier, 2016/07/17
- Re: [PATCH v3] RFC: eldoc-documentation-functions hook,
Mark Oteiza <=
- Re: [PATCH v3] RFC: eldoc-documentation-functions hook, Stefan Monnier, 2016/07/18
- Re: [PATCH v3] RFC: eldoc-documentation-functions hook, Mark Oteiza, 2016/07/19
- Re: [PATCH v3] RFC: eldoc-documentation-functions hook, Clément Pit--Claudel, 2016/07/19
- Re: [PATCH v3] RFC: eldoc-documentation-functions hook, John Wiegley, 2016/07/20
- Re: [PATCH v3] RFC: eldoc-documentation-functions hook, Mark Oteiza, 2016/07/20
Re: [PATCH v3] RFC: eldoc-documentation-functions hook, Clément Pit--Claudel, 2016/07/07