From: stardiviner <numbchild@gmail.com>
To: emacs-orgmode@gnu.org
Cc: Nicolas Goaziou <mail@nicolasgoaziou.fr>,
Kaushal Modi <kaushal.modi@gmail.com>
Subject: Re: [RFC] Replace lambda functions added to org-mode-hook with named funcs
Date: Sun, 06 Oct 2019 17:54:40 +0800 [thread overview]
Message-ID: <87sgo6i4gv.fsf@gmail.com> (raw)
In-Reply-To: <8946ae80757155f64bd5dcaddf547732@webmail.orcon.net.nz>
I propose one vote for this too. This give user better understanding. Some times
I check out the variable org-mode-hook's value for troubleshooting, the
meaningful function names can help me read quickly.
Phil Sainty <psainty@orcon.net.nz> writes:
> On Fri, Oct 5, 2018, 6:42 AM Nicolas Goaziou <address@hidden> wrote:
>> Kaushal Modi <address@hidden> writes:
>> > I propose to replace such lamba functions with named functions.
>> > Here's an example of diff on maint branch, after making one such change:
>> >
>> > -;; Remove overlays when changing major mode
>> > -(add-hook 'org-mode-hook
>> > - (lambda () (add-hook 'change-major-mode-hook
>> > - 'org-show-block-all 'append 'local)))
>> > +(defun org--unfold-all-blocks-on-major-mode-change ()
>> > + "Remove overlays when changing major mode."
>> > + (add-hook 'change-major-mode-hook #'org-show-block-all 'append 'local))
>> > +(add-hook 'org-mode-hook #'org--unfold-all-blocks-on-major-mode-change)
>>
>> If that's a function added to `org-mode-hook', it is not useful to
>> add "on major mode change".
>
> Certainly it's useful. Or at least in general it's a common *pattern*
> for a major mode to add a function to `change-major-mode-hook' so that
> if the user changes from that major mode to some other major mode, the
> function will be called and can put the buffer into a sensible state
> before the replacement mode function is called.
>
> The only curious thing about it to me is that this code is being run
> via `org-mode-hook' rather than in the `org-mode' body; but maybe
> there's some reason for that.
>
>
> Regarding the general issue:
>
> Grep shows me all of the following instances in the master branch
> (commit d215c3a8c0b4c027), where a lambda is added to a hook variable
> (a few of them in the form of commented suggestions to the user).
>
> It's never a good idea; all of these should be changed to use named
> functions, IMO.
>
>
> -Phil
>
>
> -*- grep -*-
> ./ob-core.el:1429:(add-hook 'org-mode-hook
> ./ob-haskell.el:66: (add-hook 'inferior-haskell-hook
> ./ol-w3m.el:171:(add-hook
> ./ol-w3m.el:176:(add-hook
> ./org-agenda.el:2246: (add-hook 'filter-buffer-substring-functions
> ./org-agenda.el:2935: (add-hook
> ./org-attach.el:697:;; (add-hook
> ./org-compat.el:813: (add-hook 'imenu-after-jump-hook
> ./org-compat.el:817: (add-hook 'org-mode-hook
> ./org-compat.el:880: (add-hook 'speedbar-visiting-tag-hook
> ./org-crypt.el:144: (add-hook 'auto-save-hook
> ./org-crypt.el:267: (add-hook
> ./org-ctags.el:196:(add-hook 'org-mode-hook
> ./org-ctags.el:59:;; (add-hook 'org-mode-hook
> ./org-indent.el:188: (add-hook 'filter-buffer-substring-functions
> ./org-mouse.el:1085:(add-hook 'org-agenda-mode-hook
> ./org-mouse.el:856:(add-hook 'org-mode-hook
> ./org-src.el:745: (add-hook \\='org-src-mode-hook
> ./org.el:15697: (add-hook 'after-save-hook
> ./org.el:18978:(add-hook 'occur-mode-find-occurrence-hook
> ./org.el:21221:(add-hook 'org-mode-hook ;remove overlays when changing major
> mode
> ./org.el:2916: (add-hook \\='org-capture-mode-hook
--
[ stardiviner ]
I try to make every word tell the meaning what I want to express.
Blog: https://stardiviner.github.io/
IRC(freenode): stardiviner, Matrix: stardiviner
GPG: F09F650D7D674819892591401B5DF1C95AE89AC3
next prev parent reply other threads:[~2019-10-06 10:03 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-01 5:00 [RFC] Replace lambda functions added to org-mode-hook with named funcs Phil Sainty
2019-10-06 9:54 ` stardiviner [this message]
-- strict thread matches above, loose matches on Subject: below --
2018-10-04 15:10 Kaushal Modi
2018-10-05 10:42 ` Nicolas Goaziou
2018-10-06 13:42 ` Kaushal Modi
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87sgo6i4gv.fsf@gmail.com \
--to=numbchild@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=kaushal.modi@gmail.com \
--cc=mail@nicolasgoaziou.fr \
/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.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.