changeset 15788:e8e74fb6da7d

(help-font-lock-keywords): Use font-lock-function-name-face for variables, too. (help-mode): Set font-lock-defaults to provide bindings for local fontification functions. (help-fontify-buffer-function): New function.
author Richard M. Stallman <rms@gnu.org>
date Sat, 27 Jul 1996 02:44:27 +0000
parents d5dd4b891c3e
children 992fcf417a49
files lisp/help.el
diffstat 1 files changed, 27 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/help.el	Fri Jul 26 21:22:34 1996 +0000
+++ b/lisp/help.el	Sat Jul 27 02:44:27 1996 +0000
@@ -91,24 +91,30 @@
 (define-key help-map "q" 'help-quit)
 
 (defvar help-font-lock-keywords
-  (let ((name-char "[-+a-zA-Z0-9_*]") (sym-char "[-+a-zA-Z0-9_:*]"))
-    (list
-     ;;
-     ;; The symbol itself.
-     (list (concat "\\`\\(" name-char "+\\)\\(:\\)?")
-	   '(1 (if (match-beginning 2)
-		   font-lock-function-name-face
-		 font-lock-variable-name-face)
-	       nil t))
-     ;;
-     ;; Words inside `' which tend to be symbol names.
-     (list (concat "`\\(" sym-char sym-char "+\\)'")
-	   1 'font-lock-reference-face t)
-     ;;
-     ;; CLisp `:' keywords as references.
-     (list (concat "\\<:" sym-char "+\\>") 0 'font-lock-reference-face t)))
+  (eval-when-compile
+    (let ((name-char "[-+a-zA-Z0-9_*]") (sym-char "[-+a-zA-Z0-9_:*]"))
+      (list
+       ;;
+       ;; The symbol itself.
+       (list (concat "\\`\\(" name-char "+\\)\\(\\(:\\)\\|\\('\\)\\)")
+	     '(1 font-lock-function-name-face))
+       ;;
+       ;; Words inside `' which tend to be symbol names.
+       (list (concat "`\\(" sym-char sym-char "+\\)'")
+	     1 'font-lock-reference-face t)
+       ;;
+       ;; CLisp `:' keywords as references.
+       (list (concat "\\<:" sym-char "+\\>") 0 'font-lock-reference-face t))))
   "Default expressions to highlight in Help mode.")
 
+(defun help-fontify-buffer-function ()
+  ;; This function's symbol is bound to font-lock-fontify-buffer-function.
+  (let ((font-lock-fontify-region-function 'font-lock-default-fontify-region))
+    ;; Fontify as normal.
+    (font-lock-default-fontify-buffer)
+    ;; Prevent Font Lock mode from kicking in.
+    (setq font-lock-fontified t)))
+
 (defun help-mode ()
   "Major mode for viewing help text.
 Entry to this mode runs the normal hook `help-mode-hook'.
@@ -120,7 +126,11 @@
   (setq mode-name "Help")
   (setq major-mode 'help-mode)
   (make-local-variable 'font-lock-defaults)
-  (setq font-lock-defaults '(help-font-lock-keywords))
+  (setq font-lock-defaults
+	'(help-font-lock-keywords nil nil nil nil
+	  (font-lock-inhibit-thing-lock . (lazy-lock-mode))
+	  (font-lock-fontify-region-function . ignore)
+	  (font-lock-fontify-buffer-function . help-fontify-buffer-function)))
   (view-mode)
   (run-hooks 'help-mode-hook))