http-emacs-dev
[Top][All Lists]
Advanced

[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)

Attachment: pgpDibr5OQmSo.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]