help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Execute code in use-package


From: Joe Riel
Subject: Re: Execute code in use-package
Date: Fri, 16 Dec 2016 11:50:47 -0800

On Fri, 16 Dec 2016 10:12:44 -0800
John Mastro <address@hidden> wrote:

> Joe Riel <address@hidden> wrote:
> > In my old .emacs file, I auto-load and run a command in
> > a package by doing
> >
> > (autoload 'mds "mds" "Restart the Maple Debugger server" t)
> > (mds) ; start the server
> >
> > Having converted to use-package, I wrote
> >
> > (use-package mds
> >   :commands (mds)
> >   ;; start the debugger server
> >   :config (mds))
> >
> > Alas, that doesn't work.  I have to manually execute the mds command
> > after launching emacs to start the server.  I've read the documentation
> > for use-package, but cannot figure out how to properly do this.
> 
> This should work:
> 
> (use-package mds
>   :config (mds))
> 
> In other words, remove ":commands", which implicitly causes loading (and
> thus evaluation of the :config block) to be deferred.
> 
>         John

Alas, that doesn't work.  The server does not start and now the mds command
is not assigned so I cannot manually start it.  

What I found that does work is changing :config to :init, that is,

(use-package mds
  :commands (mds)
  :init (mds))

On reflection that might make sense.  What confuses me is that :init runs
code before the package is loaded.  However, I assume that :commands (mds)
ensures that mds is auto-loaded, so the call to (mds) then auto-loads and
runs mds.

-- 
Joe Riel




reply via email to

[Prev in Thread] Current Thread [Next in Thread]