;;; generic-x.el --- A collection of generic modes
-;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004,
-;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2001-2011 Free Software Foundation, Inc.
;; Author: Peter Breton <pbreton@cs.umb.edu>
;; Created: Tue Oct 08 1996
;; Keywords: generic, comment, font-lock
+;; Package: emacs
;; This file is part of GNU Emacs.
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defcustom generic-use-find-file-hook t
- "*If non-nil, add a hook to enter `default-generic-mode' automatically.
+ "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-x
:type 'boolean)
(defcustom generic-lines-to-scan 3
- "*Number of lines that `generic-mode-find-file-hook' looks at.
+ "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-x
:type 'integer)
(defcustom generic-find-file-regexp "^#"
- "*Regular expression used by `generic-mode-find-file-hook'.
+ "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
:type 'regexp)
(defcustom generic-ignore-files-regexp "[Tt][Aa][Gg][Ss]\\'"
- "*Regular expression used by `generic-mode-find-file-hook'.
+ "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-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
+ (not (string-match-p
generic-ignore-files-regexp
(file-name-sans-versions buffer-file-name)))))
(save-excursion
prototype-generic-mode
resolve-conf-generic-mode
samba-generic-mode
- x-resource-generic-mode)
+ x-resource-generic-mode
+ xmodmap-generic-mode)
"List of generic modes that are defined by default on Unix.")
(defconst generic-other-modes
ibis-generic-mode
pkginfo-generic-mode
spice-generic-mode)
- "List of generic mode that are not defined by default.")
+ "List of generic modes that are not defined by default.")
(defcustom generic-define-mswindows-modes
(memq system-type '(windows-nt ms-dos))
- "*Non-nil means the modes in `generic-mswindows-modes' will be defined.
+ "Non-nil means the modes in `generic-mswindows-modes' will be defined.
This is a list of MS-Windows specific generic modes. This variable
only affects the default value of `generic-extras-enable-list'."
:group 'generic-x
(defcustom generic-define-unix-modes
(not (memq system-type '(windows-nt ms-dos)))
- "*Non-nil means the modes in `generic-unix-modes' will be defined.
+ "Non-nil means the modes in `generic-unix-modes' will be defined.
This is a list of Unix specific generic modes. This variable only
affects the default value of `generic-extras-enable-list'."
:group 'generic-x
(2 font-lock-variable-name-face)))
'("access_log\\'")
nil
- "Mode for Apache log files."))
+ "Generic mode for Apache log files."))
;;; Samba
(when (memq 'samba-generic-mode generic-extras-enable-list)
nil
"Generic mode for X Resource configuration files."))
+(if (memq 'xmodmap-generic-mode generic-extras-enable-list)
+(define-generic-mode xmodmap-generic-mode
+ '(?!)
+ '("add" "clear" "keycode" "keysym" "remove" "pointer")
+ nil
+ '("[xX]modmap\\(rc\\)?\\'")
+ nil
+ "Simple mode for xmodmap files."))
+
;;; Hosts
(when (memq 'hosts-generic-mode generic-extras-enable-list)
(define-generic-mode hosts-generic-mode
'(?#)
'("localhost")
- '(("\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 font-lock-constant-face))
+ '(("\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)" 1 font-lock-constant-face))
'("[hH][oO][sS][tT][sS]\\'")
nil
"Generic mode for HOSTS files."))
'("^[ \t]*\\(:\\sw+\\)" 1 font-lock-function-name-face t)
'("\\(%\\sw+%\\)" 1 font-lock-variable-name-face t)
'("\\(%[0-9]\\)" 1 font-lock-variable-name-face t)
- '("\\(/[^/ \"\t\n]+\\)" 1 font-lock-type-face)
- '("[\t ]+\\([+-][^\t\n\" ]+\\)" 1 font-lock-type-face)
+ '("[\t ]+\\([+-/][^\t\n\" ]+\\)" 1 font-lock-type-face)
'("[ \t\n|]\\<\\([gG][oO][tT][oO]\\)\\>[ \t]*\\(\\sw+\\)?"
(1 font-lock-keyword-face)
(2 font-lock-function-name-face nil t))
(interactive)
(let ((compilation-buffer-name-function
(function
- (lambda(ign)
+ (lambda (_ign)
(concat "*" (buffer-file-name) "*")))))
(compile
(concat (w32-shell-name) " -c " (buffer-file-name)))))
(require 'comint)
(let* ((file (buffer-file-name))
(buf-name (concat "*" file "*")))
- (save-excursion
- (set-buffer
- (get-buffer-create buf-name))
+ (with-current-buffer (get-buffer-create buf-name)
(erase-buffer)
(comint-mode)
(comint-exec
(lambda ()
(setq imenu-generic-expression
'((nil "\\s-/\\([^/]+\\)/[i, \t\n]" 1))))))
- "Mode for Mailagent rules files."))
+ "Generic mode for Mailagent rules files."))
;; Solaris/Sys V prototype files
(when (memq 'prototype-generic-mode generic-extras-enable-list)
(2 font-lock-variable-name-face)))
'("prototype\\'")
nil
- "Mode for Sys V prototype files."))
+ "Generic mode for Sys V prototype files."))
;; Solaris/Sys V pkginfo files
(when (memq 'pkginfo-generic-mode generic-extras-enable-list)
(2 font-lock-variable-name-face)))
'("pkginfo\\'")
nil
- "Mode for Sys V pkginfo files."))
+ "Generic mode for Sys V pkginfo files."))
;; Javascript mode
;; Includes extra keywords from Armando Singer [asinger@MAIL.COLGATE.EDU]
(setq imenu-generic-expression
'((nil "^function\\s-+\\([A-Za-z0-9_]+\\)" 1)
("*Variables*" "^var\\s-+\\([A-Za-z0-9_]+\\)" 1))))))
- "Mode for JavaScript files."))
+ "Generic mode for JavaScript files."))
;; VRML files
(when (memq 'vrml-generic-mode generic-extras-enable-list)
(2 font-lock-constant-face)))
'("[mM][aA][nN][iI][fF][eE][sS][tT]\\.[mM][fF]\\'")
nil
- "Mode for Java Manifest files."))
+ "Generic mode for Java Manifest files."))
;; Java properties files
(when (memq 'java-properties-generic-mode generic-extras-enable-list)
(lambda ()
(setq imenu-generic-expression
'((nil "^\\([^#! \t\n\r=:]+\\)" 1))))))
- "Mode for Java properties files."))
+ "Generic mode for Java properties files."))
;; C shell alias definitions
(when (memq 'alias-generic-mode generic-extras-enable-list)
(lambda ()
(setq imenu-generic-expression
'((nil "^\\(alias\\|unalias\\)\\s-+\\([-a-zA-Z0-9_]+\\)" 2))))))
- "Mode for C Shell alias files."))
+ "Generic mode for C Shell alias files."))
;;; Windows RC files
;; Contributed by ACorreir@pervasive-sw.com (Alfred Correira)
"efs"
"ext2"
"ext3"
+ "ext4"
"hfs"
"hpfs"
"iso9660"
"cifs"
"usbdevfs"
"sysv"
+ "sysfs"
"tmpfs"
"udf"
"ufs"
(t (:weight bold)))
"Font Lock mode face used to highlight TABs."
:group 'generic-x)
-;; backward-compatibility alias
-(put 'show-tabs-tab-face 'face-alias 'show-tabs-tab)
+(define-obsolete-face-alias 'show-tabs-tab-face 'show-tabs-tab "22.1")
(defface show-tabs-space
'((((class grayscale) (background light)) (:background "DimGray" :weight bold))
(t (:weight bold)))
"Font Lock mode face used to highlight spaces."
:group 'generic-x)
-;; backward-compatibility alias
-(put 'show-tabs-space-face 'face-alias 'show-tabs-space)
+(define-obsolete-face-alias 'show-tabs-space-face 'show-tabs-space "22.1")
(define-generic-mode show-tabs-generic-mode
nil ;; no comment char
'("cache" "primary" "secondary" "forwarders" "limit" "options"
"directory" "check-names")
;; List of additional font-lock-expressions
- '(("\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 font-lock-constant-face)
+ '(("\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)" 1 font-lock-constant-face)
("^directory\\s-+\\(.*\\)" 1 font-lock-variable-name-face)
("^\\(primary\\|cache\\)\\s-+\\([.A-Za-z]+\\)\\s-+\\(.*\\)"
(2 font-lock-variable-name-face)
;; List of keywords
'("IN" "NS" "CNAME" "SOA" "PTR" "MX" "A")
;; List of additional font-lock-expressions
- '(("\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 font-lock-constant-face)
+ '(("\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)" 1 font-lock-constant-face)
("^\\([.A-Za-z0-9]+\\)" 1 font-lock-variable-name-face))
;; List of additional auto-mode-alist expressions
nil
(provide 'generic-x)
-;; arch-tag: cde692a5-9ff6-4506-9999-c67999c2bdb5
;;; generic-x.el ends here