Mercurial > emacs
changeset 61455:995a77d66d87
Commentary section cleanup.
(generic): Delete.
(generic-use-find-file-hook, generic-lines-to-scan)
(generic-find-file-regexp, generic-ignore-files-regexp)
(default-generic-mode, generic-mode-find-file-hook)
(generic-mode-ini-file-find-file-hook): Move to generic-x.el.
author | Lute Kamstra <lute@gnu.org> |
---|---|
date | Mon, 11 Apr 2005 08:07:14 +0000 |
parents | 014fcf8d4038 |
children | b36d454902de |
files | lisp/generic.el |
diffstat | 1 files changed, 6 insertions(+), 119 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/generic.el Mon Apr 11 01:18:35 2005 +0000 +++ b/lisp/generic.el Mon Apr 11 08:07:14 2005 +0000 @@ -23,16 +23,11 @@ ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. -;; Purpose: - -;; Meta-mode to create simple major modes -;; with basic comment and font-lock support - ;;; Commentary: ;; INTRODUCTION: - -;; Generic-mode is a meta-mode which can be used to define small modes +;; +;; The macro `define-generic-mode' can be used to define small modes ;; which provide basic comment and font-lock support. These modes are ;; intended for the many configuration files and such which are too ;; small for a "real" mode, but still have a regular syntax, comment @@ -68,20 +63,9 @@ ;; more than this, or you find yourself writing extensive customizations, ;; perhaps you should be writing a major mode instead! ;; -;; LOCAL VARIABLES: -;; -;; To put a file into generic mode using local variables, use a line -;; like this in a Local Variables block: -;; -;; mode: default-generic +;; EXAMPLE: ;; -;; Do NOT use "mode: generic"! -;; See also "AUTOMATICALLY ENTERING GENERIC MODE" below. -;; -;; DEFINING NEW GENERIC MODES: -;; -;; Use the `define-generic-mode' function to define new modes. -;; For example: +;; You can use `define-generic-mode' like this: ;; ;; (define-generic-mode 'foo-generic-mode ;; (list ?%) @@ -90,35 +74,24 @@ ;; (list "\\.FOO\\'") ;; (list 'foo-setup-function)) ;; -;; defines a new generic-mode `foo-generic-mode', which has '%' as a +;; to define a new generic-mode `foo-generic-mode', which has '%' as a ;; comment character, and "keyword" as a keyword. When files which ;; end in '.FOO' are loaded, Emacs will go into foo-generic-mode and ;; call foo-setup-function. You can also use the function ;; `foo-generic-mode' (which is interactive) to put a buffer into ;; foo-generic-mode. ;; -;; AUTOMATICALLY ENTERING GENERIC MODE: -;; -;; Generic-mode provides a hook which automatically puts a file into -;; default-generic-mode if the first few lines of a file in -;; fundamental mode start with a hash comment character. To disable -;; this functionality, set the variable `generic-use-find-file-hook' -;; to nil BEFORE loading generic-mode. See the variables -;; `generic-lines-to-scan' and `generic-find-file-regexp' for -;; customization options. -;; ;; GOTCHAS: ;; ;; Be careful that your font-lock definitions are correct. Getting ;; them wrong can cause Emacs to continually attempt to fontify! This ;; problem is not specific to generic-mode. -;; ;; Credit for suggestions, brainstorming, help with debugging: ;; ACorreir@pervasive-sw.com (Alfred Correira) ;; Extensive cleanup by: ;; Stefan Monnier (monnier+gnu/emacs@flint.cs.yale.edu) -;; + ;;; Code: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -138,47 +111,6 @@ instead (which see).") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Customization Variables -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(defgroup generic nil - "Define simple major modes with comment and font-lock support." - :prefix "generic-" - :group 'extensions) - -(defcustom generic-use-find-file-hook t - "*If non-nil, add a hook to enter `default-generic-mode' automatically. -This is done if the first few lines of a file in fundamental mode -start with a hash comment character." - :group 'generic - :type 'boolean) - -(defcustom generic-lines-to-scan 3 - "*Number of lines that `generic-mode-find-file-hook' looks at. -Relevant when deciding whether to enter Default-Generic mode automatically. -This variable should be set to a small positive number." - :group 'generic - :type 'integer) - -(defcustom generic-find-file-regexp "^#" - "*Regular expression used by `generic-mode-find-file-hook'. -Files in fundamental mode whose first few lines contain a match -for this regexp, should be put into Default-Generic mode instead. -The number of lines tested for the matches is specified by the -value of the variable `generic-lines-to-scan', which see." - :group 'generic - :type 'regexp) - -(defcustom generic-ignore-files-regexp "[Tt][Aa][Gg][Ss]\\'" - "*Regular expression used by `generic-mode-find-file-hook'. -Files whose names match this regular expression should not be put -into Default-Generic mode, even if they have lines which match -the regexp in `generic-find-file-regexp'. If the value is nil, -`generic-mode-find-file-hook' does not check the file names." - :group 'generic - :type '(choice (const :tag "Don't check file names" nil) regexp)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -391,51 +323,6 @@ '((nil "^\\[\\(.*\\)\\]" 1)) imenu-case-fold-search t)) -;; This generic mode is always defined -(define-generic-mode default-generic-mode (list ?#) nil nil nil nil :group 'generic) - -;; A more general solution would allow us to enter generic-mode for -;; *any* comment character, but would require us to synthesize a new -;; generic-mode on the fly. I think this gives us most of what we -;; want. -(defun generic-mode-find-file-hook () - "Hook function to enter Default-Generic mode automatically. - -Done if the first few lines of a file in Fundamental mode start -with a match for the regexp in `generic-find-file-regexp', unless -the file's name matches the regexp which is the value of the -variable `generic-ignore-files-regexp'. - -This hook will be installed if the variable -`generic-use-find-file-hook' is non-nil. The variable -`generic-lines-to-scan' determines the number of lines to look at." - (when (and (eq major-mode 'fundamental-mode) - (or (null generic-ignore-files-regexp) - (not (string-match - generic-ignore-files-regexp - (file-name-sans-versions buffer-file-name))))) - (save-excursion - (goto-char (point-min)) - (when (re-search-forward generic-find-file-regexp - (save-excursion - (forward-line generic-lines-to-scan) - (point)) t) - (goto-char (point-min)) - (default-generic-mode))))) - -(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 - (goto-char (point-min)) - (and (looking-at "^\\s-*\\[.*\\]") - (ini-generic-mode))))) - -(and generic-use-find-file-hook - (add-hook 'find-file-hook 'generic-mode-find-file-hook)) - ;;;###autoload (defun generic-make-keywords-list (keywords-list face &optional prefix suffix) "Return a regular expression matching the specified KEYWORDS-LIST.