Subject: Re: bug#79106: [PATCH] Add new optional keywords to use-package

From: John Wiegley <[email-masked]>
Date: Sat, 23 Aug 2025 14:53:24 -0700

>>>>> Eli Zaretskii <[email-masked]> writes:

> Ping!  John, please respond.

My apologies, I didn’t see this message asking for my input. Thank you for the
prompt!

>> AFAIU, the keywords are considered useless and perhaps unnecessary, and
>> actually, they are, most of them can be useless and redundant or confusing,
>> but to remember, most of these keywords are ideas and concepts that people
>> asked for in use-package and could not be implemented due to lack of time
>> or had to be eliminated.
>> 
>> Based on the comments here and in emacs-devel, the only keyword i think
>> should be in core would be :hook+.
>> 
>> And this is based on a recent comment in use-package bug tracker on github:
>> 
>> ---
>>   I myself have a wrapper around use-package for various reasons and I'll
>>   be adding support for this as I don't like having things like:
>> 
>>     :config
>>     ;; TODO: neo/use-package could support dept in :hook
>>     (add-hook 'after-init-hook 'neo/desktop-restore 99) ; :hook doesn't support depth
>> 
>>   but if it were supported by use-package it could benefit more people.
>> ---
> 
> John, would you please chime in and tel what you think about this?

Personally, I think that “extra” features shouldn’t be in Core, but rather in
ELPA. What’s in core should either be what is vital, or what is likely to be
used by the majority of users. Many of the keywords in this submission do not
satisfy either criteria.

The desire to specify hook depth is a motivating reason to extend the behavior
of `:hook`. I’m not sure we should add a new keyword, `:hook+`. I think we
should extend the parsing of `:hook` so that the following are supported:

  (SYM)
  (SYM . FUNC)
  (SYMS . FUNC)
  (SYMS FUNC KEYS)

Where KEYS would initially include `:depth N`, and leaves the door open to
further keywords if necessary.

Note that another feature requested in the past is the ability to specify
FUNCS as a list instead of just FUNC, but that would become impossible if we
went with the above scheme. I’m not sure how much I like the MANY<->MANY
possibility of both SYMS and FUNCS anyway.

-- 
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2