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

[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: Basil L. Contovounesios
Subject: bug#41682: makefile-gmake-mode does not trigger "eval-after-load"'s hooks
Date: Wed, 03 Jun 2020 11:21:10 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

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?

-- 
Basil





reply via email to

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