[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#41682: makefile-gmake-mode does not trigger "eval-after-load"'s hook
From: |
Konstantin Kharlamov |
Subject: |
bug#41682: makefile-gmake-mode does not trigger "eval-after-load"'s hooks |
Date: |
Sun, 07 Jun 2020 00:41:26 +0300 |
User-agent: |
Evolution 3.36.3 |
On Sun, 2020-06-07 at 00:39 +0300, Konstantin Kharlamov wrote:
> On Wed, 2020-06-03 at 11:21 +0100, Basil L. Contovounesios wrote:
> > tags 41682 + notabug
> > quit
> >
> > Konstantin Kharlamov <hi-angel@yandex.ru> writes:
> >
> > > Functions added with (eval-after-load 'makefile-gmake-mode …) do
> > > not
> > > trigger when the mode is enabled
> >
> > I think you've misunderstood what eval-after-load does.
> >
> > 'makefile-gmake-mode' is a major mode function defined in the file
> > make-mode.el which provides the named feature 'make-mode'. See
> > (info "(elisp) Named Features") and (info "(elisp) Hooks for
> > Loading").
> >
> > https://www.gnu.org/software/emacs/manual/html_node/elisp/Named-Features.html
> > https://www.gnu.org/software/emacs/manual/html_node/elisp/Hooks-for-Loading.html
> >
> > eval-after-load, and its newer, preferred sibling with-eval-after-
> > load,
> > register some Lisp to be run when a file or named feature is or has
> > already been loaded.
> >
> > If you want to register some Lisp to run only once, after make-
> > mode.el
> > is loaded (and makefile-gmake-mode has been defined), then you
> > should
> > write:
> >
> > (with-eval-after-load 'make-mode
> > (foo)
> > (bar))
> >
> > If you want to register some Lisp to run every time makefile-gmake-
> > mode
> > is enabled, then you should write:
> >
> > (add-hook 'makefile-gmake-mode-hook #'foo)
> >
> > If you want to register some Lisp to run every time any make-
> > mode.el
> > major mode is enabled, then you should write:
> >
> > (add-hook 'makefile-mode-hook #'foo)
> >
> > Is there some other case you're trying to address, or can this bug
> > be
> > closed?
> >
>
> Thank you, I migrated my emacs config to use the `with-eval-after-
> load`
> you suggested, but stumbled upon a problem that it doesn't seem to
> work
> with python-mode. I tried as an argument `'python`, `'python-mode`,
> ``python.el`, `"python"`, `"python.el"` — none of that works for me.
> The code I'm trying to execute is simply:
>
> (with-eval-after-load 'python
> '(modify-syntax-entry ?_ "w" python-mode-syntax-table))
>
> Simply removing the "with-" makes it work. Is there anything special
> about this macro I should know?
I should add, according to documentation at least one of `'python.el`
or `"python.el"` should be working.