From: David Masterson <dsmasterson@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: help-gnu-emacs@gnu.org
Subject: Re: use-package :after ??
Date: Wed, 10 May 2023 20:24:18 -0700 [thread overview]
Message-ID: <SJ0PR03MB545518ADED80E5BFB478CC13A2749@SJ0PR03MB5455.namprd03.prod.outlook.com> (raw)
In-Reply-To: <SJ0PR03MB54550CE65E19003962A19A9EA2779@SJ0PR03MB5455.namprd03.prod.outlook.com> (David Masterson's message of "Wed, 10 May 2023 16:56:35 -0700")
Wow, i need to proofread more...
David Masterson <dsmasterson@gmail.com> writes:
> Hi Eli,
>
> I'm still confused about where the problem is, but I'll try to explain.
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
>>> From: David Masterson <dsmasterson@gmail.com>
>>> Date: Sun, 07 May 2023 17:05:57 -0700
>>>
>>> This might be a documentation problem...
>
> I have a fairly lengthy .emacs (probably nowhere near as complex as
> yours) that I've setup use-package to speed up starting Emacs. I've
> (mostly) alphabetized my packages and use-package them in sequence.
> I've set to deferred loading and I'm using :after to get subpackages to
> load when the main package loads (ie: org-ac <- org).
>
> My current problem is that org-ac is not loading after first using org
> even though I've added the :after flag on org-ac. If I hand load og-ac,
> everthing is fine.
>
>>> I'm not sure I understand ":after" (and a few other related things) in
>>> use-package. The info docs talk about it ensuring that the current
>>> package is loaded after the other listed packages, but it's not quite
>>> explicit (to me) about what that means. I interpret it in two possible
>>> ways:
>
> The key section is 3.5 in use-package infodoc.
>
>>> 1. If any of the listed packages are not loaded currently, then the
>>> current package will not be loaded. Period.
>>> 2. #1 + "magic" will be done to ensure that, once the listed packages
>>> are loaded, the current package will be (auto?) loaded.
>>
>> Which parts of the documentation make the answer to this question less
>> than obvious? There should be no need to expand the use-package
>> macros to understand what it is doing; just reading the documentation
>> should be enough (and it is for me, FWIW).
>
> Section 3.1 talks about load and autoload, but could be extended to talk
> about how use-package uses autoload to make things happen -- at least by
> mentioning what use-package things (like :con fig) will happen at
> autoload versus when the use-package is called.
>
> In section 3.5, the first sentence talks about "configure", but
> shouldn't it really be "load and configure"? Also, the example is not
> really good because it says that "':after' is not strictly necessary"
> in this case. Better to reverse it (put ivy-avy first) and say what
> will happen in both the demand and deferred cases (I don't use it, but
> I guess this should also be done in 3.4 and 3.6).
>
>>> My goal is to organize my .emacs loading of 25+ packages to only load if
>>> needed. That means (almost) all packages are deferred at startup and
>>> will load itself and subpackages (minor modes, etc.) when I try to call
>>> the package. This is what I hoped :after was for.
>>
>> AFAIU, :after is not about deferral, it's about the conditions to
>> load. use-package has other features for deferral, like :defer and
>> use-package-always-defer.
>>
>> And for loading when needed you have autoloads, of course.
>
> Yes, :after is about when to load. I'm looking to figure out why org-ac
> didn't load when I needed it for org. I need more time to play with it.
>
>>> Can someone advise on the proper use of ":after" and how to get
>>> appropriate subpackages to also load when the main package is loaded.
>>> For instance:
>>>
>>> (use-package org-ac :after org)
>>> (use-package org)
>>
>> What is unclear or not self-evident about the above?
>
> From the macroexpand, I now understand some of the "magic" of autoload.
> I'm still missing how the :config (etc.) happens after the autoload to
> ensure that the package is configured. That's important in helping me
> look for side-effects in the :config that didn't work with autoload
> (ie. maybe I need :demand somewhere).
One thing I left out was that org-ac also depends on auto-complete-pcmp
making the :after more complicated -- namely does order make a
difference in how things should be loaded?
--
David Masterson
next prev parent reply other threads:[~2023-05-11 3:24 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-08 0:05 use-package :after ?? David Masterson
2023-05-08 2:44 ` Ruijie Yu via Users list for the GNU Emacs text editor
2023-05-08 4:05 ` David Masterson
2023-05-08 4:25 ` Ruijie Yu via Users list for the GNU Emacs text editor
2023-05-08 5:20 ` David Masterson
2023-05-08 12:19 ` Eli Zaretskii
2023-05-10 23:56 ` David Masterson
2023-05-11 3:24 ` David Masterson [this message]
2023-05-11 6:14 ` Eli Zaretskii
2023-05-11 21:24 ` David Masterson
2023-05-12 1:18 ` Ruijie Yu via Users list for the GNU Emacs text editor
2023-05-12 6:33 ` Eli Zaretskii
2023-05-12 6:38 ` Emanuel Berg
2023-05-12 5:59 ` Eli Zaretskii
2023-05-12 6:54 ` David Masterson
2023-05-12 7:22 ` Eli Zaretskii
2023-05-15 6:03 ` David Masterson
2023-05-15 11:36 ` Eli Zaretskii
2023-05-15 22:19 ` David Masterson
2023-05-16 16:16 ` Eli Zaretskii
[not found] ` <87pm72m8rc.fsf@penguin>
2023-05-15 6:16 ` David Masterson
2023-05-15 11:42 ` Eli Zaretskii
2023-05-15 22:27 ` David Masterson
2023-05-16 16:19 ` Eli Zaretskii
2023-05-16 20:44 ` David Masterson
2023-05-17 1:40 ` David Masterson
2023-05-17 11:42 ` Eli Zaretskii
2023-05-17 20:30 ` David Masterson
2023-05-18 10:36 ` Eli Zaretskii
2023-05-18 12:41 ` Lynn Winebarger
2023-05-19 2:40 ` David Masterson
2023-05-19 3:03 ` David Masterson
2023-05-11 5:54 ` Eli Zaretskii
2023-05-11 22:04 ` David Masterson
2023-05-12 6:14 ` Eli Zaretskii
2023-05-12 6:31 ` Emanuel Berg
2023-05-12 6:56 ` David Masterson
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=SJ0PR03MB545518ADED80E5BFB478CC13A2749@SJ0PR03MB5455.namprd03.prod.outlook.com \
--to=dsmasterson@gmail.com \
--cc=eliz@gnu.org \
--cc=help-gnu-emacs@gnu.org \
/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.
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).