]> code.delx.au - gnu-emacs/blobdiff - lisp/emacs-lisp/lisp-mode.el
Use imenu-case-fold-search.
[gnu-emacs] / lisp / emacs-lisp / lisp-mode.el
index fa253e097718c5741888e2d37b865419895942cc..73633e7bfe789fb2efaf16c1ca3062aa08d56f91 100644 (file)
   ;; because lisp-fill-paragraph should do the job.
   (make-local-variable 'adaptive-fill-mode)
   (setq adaptive-fill-mode nil)
+  (make-local-variable 'normal-auto-fill-function)
+  (setq normal-auto-fill-function 'lisp-mode-auto-fill)
   (make-local-variable 'indent-line-function)
   (setq indent-line-function 'lisp-indent-line)
   (make-local-variable 'indent-region-function)
@@ -210,6 +212,7 @@ if that value is non-nil."
   (setq major-mode 'emacs-lisp-mode)
   (setq mode-name "Emacs-Lisp")
   (lisp-mode-variables nil)
+  (setq imenu-case-fold-search nil)
   (run-hooks 'emacs-lisp-mode-hook))
 
 (defvar lisp-mode-map ()
@@ -240,6 +243,7 @@ if that value is non-nil."
   (setq major-mode 'lisp-mode)
   (setq mode-name "Lisp")
   (lisp-mode-variables t)
+  (setq imenu-case-fold-search t)
   (set-syntax-table lisp-mode-syntax-table)
   (run-hooks 'lisp-mode-hook))
 
@@ -362,6 +366,17 @@ With argument, insert value in current buffer after the defun."
       (max (if (bolp) 0 (1+ (current-column)))
           comment-column))))
 
+(defun lisp-mode-auto-fill ()
+  (if (> (current-column) (current-fill-column))
+      (if (save-excursion
+           (nth 4 (parse-partial-sexp (save-excursion
+                                        (beginning-of-defun)
+                                        (point))
+                                      (point))))
+         (do-auto-fill)
+       (let ((comment-start nil) (comment-start-skip nil))
+         (do-auto-fill)))))
+
 (defvar lisp-indent-offset nil "")
 (defvar lisp-indent-function 'lisp-indent-function "")