On Wed, Jul 22, 2009 at 11:23 AM, Stefan Monnier
<address@hidden> wrote:
> I have a minor mode that wishes to disable itself when the buffer becomes
> writable, but I do not see a way to do it.
Indeed, there is no such hook. I can think of two ways to get something
similar:
- use the usual post-command-hook to check the state of the
variable and react accordingly.
- if your minor mode is mostly a bunch of key-bindings, you can do what
I did in diff-mode and use buffer-read-only as the minor-mode
variable:
[...]
;; Neat trick from Dave Love to add more bindings in read-only mode:
(lexical-let ((ro-bind (cons 'buffer-read-only diff-mode-shared-map)))
(add-to-list 'minor-mode-overriding-map-alist ro-bind)
;; Turn off this little trick in case the buffer is put in view-mode.
(add-hook 'view-mode-hook
(lambda ()
(setq minor-mode-overriding-map-alist
(delq ro-bind minor-mode-overriding-map-alist)))
nil t))
[...]
-- Stefan