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?
To 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)
(add-to-list 'auto-mode-alist '("^\\*erl-output\\*$" . compilation-mode))
It is not created with compilation-mode
. If I manually create a buffer with `(get-buffer-create "erl-output") the mode still doesn't get set –
Develop auto-mode-alist
are applied to file names, not buffer names. So even if a major mode were required here, the proposed solution would not help. –
Spiritism 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...
compilation-mode
seems to make the buffer read only. The extension writes to the buffer occasionally. –
Develop A related case, where the buffer is created from a file. For example, a build system that creates a file such as results.compile.log, you can add a new major mode,
(define-derived-mode compile-log-mode fundamental-mode
"CompilateLog"
(compilation-minor-mode))
then update `auto-mode-alist' with something like
(add-to-list 'auto-mode-alist '("\\.compile\\.log\\'" . compile-log-mode))
© 2022 - 2024 — McMap. All rights reserved.
compile.el
but didn't find anything useful there. – Developcompilation-minor-mode
? Why not the major mode? – Anderegg"Enable compilation-minor-mode to be able to click the links"
. I'll take a look at just usingcompilation-mode
– Develop