Eu tenho o modo foo e habilitaria o modo barra menor para ele. Então, de que maneira é mais comum e preferível?
UMA
(add-hook 'foo-mode-hook 'bar-minor-mode)
B
(add-hook 'foo-mode-hook (lambda ()
"Turn on `bar-minor-mode' mode."
(bar-minor-mode 1)))
C
(defun bar-minor-mode-on ()
"Turn on `bar-minor-mode' mode."
(interactive)
(bar-minor-mode 1))
(add-hook 'foo-mode-hook 'bar-minor-mode-on)
D
• variante C, mas função empurrada para montante
E
• variante C, mas função armazenada na receita do plugin
hooks
minor-mode
Netsu
fonte
fonte
Respostas:
Depende de quais versões do Emacs você está usando (ou direcionando). Se você estiver usando exclusivamente o Emacs 24+, poderá usar com segurança a variante A:
Isso é do arquivo NEWS, mas de acordo com os comentários, é uma boa prática usar a citação de funções para símbolos de funções, como:
Se o código precisar ser executado no Emacs 23 (ou anterior), eu iria com a variante C, pois pessoalmente não gosto de ver funções anônimas em variáveis de gancho. (Não sei se entendi o que você quer dizer com variantes D & E, lembre-se).
fonte
Aqui está mais uma maneira de fazer isso que tem algumas vantagens, assumindo que você está editando sua própria configuração, não um pacote que você distribui.
A vantagem é que tudo é armazenado em um gancho; portanto, para desativar algumas coisas, você não precisa fazer
remove-hook
, mas comentar algumas coisas emcustom-foo-hook
e C-M-x.Você pode até escrever um comando que salta de qualquer modo para seu gancho personalizado.
fonte
add-hook
instruções para cada modo secundário a ser ativado. Eu queria enfatizar que ter apenas umaadd-hook
afirmação é uma vantagem.Por que você definiria um novo comando que faz exatamente o que
bar-minor-mode
faz?Começando com 24.1, todos esses itens são completamente equivalentes; portanto, use o menos redundante: opção A
fonte