emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/generic.el


From: Lute Kamstra
Subject: [Emacs-diffs] Changes to emacs/lisp/generic.el
Date: Thu, 31 Mar 2005 09:54:00 -0500

Index: emacs/lisp/generic.el
diff -c emacs/lisp/generic.el:1.31 emacs/lisp/generic.el:1.32
*** emacs/lisp/generic.el:1.31  Thu Mar 24 22:11:18 2005
--- emacs/lisp/generic.el       Thu Mar 31 14:54:00 2005
***************
*** 217,274 ****
  additional setup.
  
  See the file generic-x.el for some examples of `define-generic-mode'."
!   (let* ((name-unquoted (if (eq (car-safe mode) 'quote) ; Backward 
compatibility.
!                           (eval mode)
!                         mode))
!        (name-string (symbol-name name-unquoted))
         (pretty-name (capitalize (replace-regexp-in-string
!                                  "-mode\\'" "" name-string))))
  
      `(progn
         ;; Add a new entry.
!        (add-to-list 'generic-mode-list ,name-string)
  
         ;; Add it to auto-mode-alist
         (dolist (re ,auto-mode-list)
!        (add-to-list 'auto-mode-alist (cons re ',name-unquoted)))
  
!        (defun ,name-unquoted ()
         ,(or docstring
              (concat pretty-name " mode.\n"
                      "This a generic mode defined with 
`define-generic-mode'."))
         (interactive)
!        (generic-mode-internal ',name-unquoted ,comment-list ,keyword-list
                                ,font-lock-list ,function-list)))))
  
  ;;;###autoload
! (defun generic-mode-internal (mode comments keywords font-lock-list funs)
    "Go into the generic mode MODE."
!   (let* ((modename (symbol-name mode))
!        (generic-mode-hooks (intern (concat modename "-hook")))
         (pretty-name (capitalize (replace-regexp-in-string
!                                  "-mode\\'" "" modename))))
  
      (kill-all-local-variables)
  
      (setq major-mode mode
          mode-name pretty-name)
  
!     (generic-mode-set-comments comments)
  
      ;; Font-lock functionality.
      ;; Font-lock-defaults is always set even if there are no keywords
      ;; or font-lock expressions, so comments can be highlighted.
      (setq generic-font-lock-keywords
          (append
!          (when keywords
!            (list (generic-make-keywords-list keywords 
font-lock-keyword-face)))
           font-lock-list))
      (setq font-lock-defaults '(generic-font-lock-keywords nil))
  
      ;; Call a list of functions
!     (mapcar 'funcall funs)
  
!     (run-hooks generic-mode-hooks)))
  
  ;;;###autoload
  (defun generic-mode (mode)
--- 217,286 ----
  additional setup.
  
  See the file generic-x.el for some examples of `define-generic-mode'."
!   (declare (debug (sexp def-form def-form def-form form def-form &optional 
stringp)))
! 
!   ;; Backward compatibility.
!   (when (eq (car-safe mode) 'quote)
!     (setq mode (eval mode)))
!   (let* ((mode-name (symbol-name mode))
         (pretty-name (capitalize (replace-regexp-in-string
!                                  "-mode\\'" "" mode-name)))
!        (mode-hook (intern (concat mode-name "-hook"))))
  
      `(progn
         ;; Add a new entry.
!        (add-to-list 'generic-mode-list ,mode-name)
  
         ;; Add it to auto-mode-alist
         (dolist (re ,auto-mode-list)
!        (add-to-list 'auto-mode-alist (cons re ',mode)))
! 
!        (defcustom ,mode-hook nil
!        ,(concat "Hook run when entering " pretty-name " mode.")
!        :type 'hook
!        :group (or (custom-current-group)
!                   ',(intern (replace-regexp-in-string
!                              "-mode\\'" "" mode-name))))
  
!        (defun ,mode ()
         ,(or docstring
              (concat pretty-name " mode.\n"
                      "This a generic mode defined with 
`define-generic-mode'."))
         (interactive)
!        (generic-mode-internal ',mode ,comment-list ,keyword-list
                                ,font-lock-list ,function-list)))))
  
  ;;;###autoload
! (defun generic-mode-internal (mode comment-list keyword-list
!                                  font-lock-list function-list)
    "Go into the generic mode MODE."
!   (let* ((mode-name (symbol-name mode))
         (pretty-name (capitalize (replace-regexp-in-string
!                                  "-mode\\'" "" mode-name)))
!        (mode-hook (intern (concat mode-name "-hook"))))
  
      (kill-all-local-variables)
  
      (setq major-mode mode
          mode-name pretty-name)
  
!     (generic-mode-set-comments comment-list)
  
      ;; Font-lock functionality.
      ;; Font-lock-defaults is always set even if there are no keywords
      ;; or font-lock expressions, so comments can be highlighted.
      (setq generic-font-lock-keywords
          (append
!          (when keyword-list
!            (list (generic-make-keywords-list keyword-list
!                                              font-lock-keyword-face)))
           font-lock-list))
      (setq font-lock-defaults '(generic-font-lock-keywords nil))
  
      ;; Call a list of functions
!     (mapcar 'funcall function-list)
  
!     (run-mode-hooks mode-hook)))
  
  ;;;###autoload
  (defun generic-mode (mode)
***************
*** 392,398 ****
  
  (defun generic-mode-ini-file-find-file-hook ()
    "Hook function to enter Default-Generic mode automatically for INI files.
! Done if the first few lines of a file in Fundamental mode look like an 
  INI file.  This hook is NOT installed by default."
    (and (eq major-mode 'fundamental-mode)
         (save-excursion
--- 404,410 ----
  
  (defun generic-mode-ini-file-find-file-hook ()
    "Hook function to enter Default-Generic mode automatically for INI files.
! Done if the first few lines of a file in Fundamental mode look like an
  INI file.  This hook is NOT installed by default."
    (and (eq major-mode 'fundamental-mode)
         (save-excursion




reply via email to

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