I have a Emacs extension that creates a buffer named *erl-output*
. This buffer gets created with only fundamental-mode
by default. Is there any way to automatically enable compilation-minor-mode
on that buffer?
views:
498answers:
2To automatically change major modes you can add the following to your .emacs file:
(add-to-list 'auto-mode-alist '("^\\*erl-output\\*$" . my-major-mode))
This won't work for you; it's for major mode selection and you're after minor mode selection.
Instead you could try a Hook. The manual says:
A hook is a Lisp variable which holds a list of functions, to be called on some well-defined occasion.
So you should be able to write a function which sets the minor mode when required. Looking at the List of Standard Hooks I think you should be trying temp-buffer-setup-hook
or temp-buffer-show-hook
.
You'll have to write a function which checks the buffer name and sets the mode if required, and add it to the hook using something like the following in your .emacs
:
(add-hook 'temp-buffer-setup-hook 'my-func-to-set-mode)
Since your extension is creating the buffer, why not just add:
(compilation-mode)
(or (compilation-minor-mode)
if you're really set on the minor mode idea) in the code that's creating the *erl-output*
buffer. You can edit the source for the mode, or use advice around the creation routine...