[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Http-emacs-dev] hook(s) confusion
From: |
David Hansen |
Subject: |
[Http-emacs-dev] hook(s) confusion |
Date: |
Thu, 08 Apr 2004 03:54:04 +0200 |
User-agent: |
Gnus/5.110002 (No Gnus v0.2) Emacs/21.3.50 (gnu/linux) |
Hi again,
i have
(defun dh-simple-wiki-edit-mode-hook ()
(auto-fill-mode -1)
(simple-wiki-delayed-longlines-mode-on))
(add-hook 'simple-wiki-edit-mode-hooks 'dh-simple-wiki-edit-mode-hook)
in my ~/.emacs (note the "s" in -hooks) and wondered why it
isn't working. OK, i just figured out why:
`simple-wiki-edit-mode' is derived from `simple-wiki-mode'
is derived from `text-mode'.
Now if you set the major mode to `simple-wiki-edit-mode'
emacs first runs `simple-wiki-edit-mode-hooks' (note the
"s" again). That's because of the (run-hooks ...) in
(define-derived-mode simple-wiki-edit-mode simple-wiki-mode "Wiki-Edit"
"Edit URL using `simple-wiki-mode'.
\\{simple-wiki-edit-mode-map}"
(run-hooks 'simple-wiki-edit-mode-hooks)
)
Next emacs runs `text-mode-hook', `simple-wiki-mode-hook'
and `simple-wiki-edit-mode-hook' (note the missing "s").
This happens automatically due to the `define-derived-mode':
,----[ C-h f define-derived-mode RET ]
|
| [...]
|
| The new mode runs the hook constructed by the function
| `derived-mode-hook-name'.
|
`----
As i turn on auto-fill-mode in text-mode-hook (as maybe the
most users do) i still have enabled auto-fill-mode.
If it's intended to introduce `simple-wiki-edit-mode-hooks'
you should change the documentation and tell the user to
better use `simple-wiki-edit-mode-hook' to turn off
`auto-fill-mode'.
I don't see any reasons for this new hook and IMHO it is a
common naming convention to call the variable "-hook". The
attached patch removes all references to
`simple-wiki-edit-mode-hooks' (and replaces them with
`simple-wiki-edit-mode-hook' where needed).
-- David
diff -x CVS -ruN http-emacs/simple-wiki-edit.el
http-emacs-new/simple-wiki-edit.el
--- http-emacs/simple-wiki-edit.el 2003-07-01 18:33:13.000000000 +0200
+++ http-emacs-new/simple-wiki-edit.el 2004-04-08 03:49:31.000000000 +0200
@@ -33,14 +33,13 @@
;; If your auto-fill-mode is usually on, you might want to turn it off
;; Also consider using longlines.el
-;; (defvar simple-wiki-edit-mode-hooks)
-;; (add-hook 'simple-wiki-edit-mode-hooks 'turn-off-auto-fill)
-;; (add-hook 'simple-wiki-edit-mode-hooks
+;; (add-hook 'simple-wiki-edit-mode-hook 'turn-off-auto-fill)
+;; (add-hook 'simple-wiki-edit-mode-hook
;; 'simple-wiki-delayed-longlines-mode-on)
;; (add-hook 'simple-wiki-save-before-hooks 'longlines-mode-off)
;; in which case, also customize simple-wiki-fill-column back to 70
;; using pcomplete within the page:
-;; (add-hook 'simple-wiki-edit-mode-hooks 'pcomplete-simple-wiki-setup)
+;; (add-hook 'simple-wiki-edit-mode-hook 'pcomplete-simple-wiki-setup)
;; and thereafter, use C-/ to pcomplete pages at point and M-/ for
;; dabbrev-compltion
;; Consider also (setq pcomplete-ignore-case t)
@@ -78,7 +77,8 @@
(make-variable-buffer-local 'simple-wiki-minor-p)
-(defcustom simple-wiki-edit-mode-hooks nil "")
+(defcustom simple-wiki-edit-mode-hook nil
+ "Hook run when entering Wiki-Edit mode.")
(defcustom simple-wiki-save-before-hooks nil "")
@@ -93,9 +93,8 @@
(define-derived-mode simple-wiki-edit-mode simple-wiki-mode "Wiki-Edit"
"Edit URL using `simple-wiki-mode'.
-\\{simple-wiki-edit-mode-map}"
- (run-hooks 'simple-wiki-edit-mode-hooks)
- )
+\\{simple-wiki-edit-mode-map}")
+
(define-key simple-wiki-edit-mode-map (kbd "C-c C-c") 'simple-wiki-save)
(define-key simple-wiki-edit-mode-map (kbd "C-c C-o") 'simple-wiki-open)
pgpDibr5OQmSo.pgp
Description: PGP signature
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Http-emacs-dev] hook(s) confusion,
David Hansen <=