]> code.delx.au - gnu-emacs/blobdiff - lisp/generic-x.el
(Info-restore-desktop-buffer): Move from desktop.el. Add Parameters.
[gnu-emacs] / lisp / generic-x.el
index 7b2c86a7c7b0446d46ca6a48e0568c8c89c26974..88703af799f4c3e7de54c2cf390089319961b9e0 100644 (file)
@@ -1,6 +1,6 @@
-;;; generic-x.el --- Extra Modes for generic-mode
+;;; generic-x.el --- Extra Modes for generic-mode -*- no-byte-compile: t -*-
 
-;; Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 2003 Free Software Foundation, Inc.
 
 ;; Author:  Peter Breton <pbreton@cs.umb.edu>
 ;; Created: Tue Oct 08 1996
@@ -164,7 +164,7 @@ you must reload generic-x to enable the specified modes."
    (list ?#)
    nil
    '(("^\\s-*\\(<.*>\\)"       1 'font-lock-constant-face)
-     ("^\\(\\sw+\\)\\s-"  1 'font-lock-variable-name-face))
+     ("^\\s-*\\(\\sw+\\)\\s-"  1 'font-lock-variable-name-face))
    (list "srm\\.conf\\'" "httpd\\.conf\\'" "access\\.conf\\'")
    (list
     (function
@@ -533,7 +533,7 @@ you must reload generic-x to enable the specified modes."
 ;; Javascript mode
 ;; Includes extra keywords from Armando Singer [asinger@MAIL.COLGATE.EDU]
 (define-generic-mode 'javascript-generic-mode
-  (list "//")
+  (list "//" '("/*" . "*/"))
   (list
    "break"
    "case"
@@ -845,6 +845,7 @@ you must reload generic-x to enable the specified modes."
 
 ;; InstallShield RUL files
 ;; Contributed by  Alfred.Correira@Pervasive.Com
+;; Bugfixes by "Rolf Sandau" <Rolf.Sandau@marconi.com>
 (and
 (memq 'rul-generic-mode generic-extras-enable-list)
 ;;; build the regexp strings using regexp-opt
@@ -1400,50 +1401,78 @@ you must reload generic-x to enable the specified modes."
    )
   "Function argument constants used in InstallShield 3 and 5.")
 
-(define-generic-mode 'rul-generic-mode
-  ;; Using "/*" and "*/" doesn't seem to be working right
-  (list "//")
-  installshield-statement-keyword-list
-  (list
-   ;; preprocessor constructs
-   '("#[ \t]*include[ \t]+\\(<[^>\"\n]+>\\)"
-     1 font-lock-string-face)
-   '("#[ \t]*\\(\\sw+\\)\\>[ \t]*\\(\\sw+\\)?"
-     (1 font-lock-constant-face)
-     (2 font-lock-variable-name-face nil t))
-   ;; indirect string constants
-   '("\\(@[A-Za-z][A-Za-z0-9_]+\\)" 1 font-lock-builtin-face)
-   ;; gotos
-   '("[ \t]*\\(\\sw+:\\)" 1 font-lock-constant-face)
-   '("\\<\\(goto\\)\\>[ \t]*\\(\\sw+\\)?"
-     (1 font-lock-keyword-face)
-     (2 font-lock-constant-face nil t))
-   ;; system variables
-   (generic-make-keywords-list
-    installshield-system-variables-list
-    'font-lock-variable-name-face "[^_]" "[^_]")
-   ;; system functions
-   (generic-make-keywords-list
-    installshield-system-functions-list
-    'font-lock-function-name-face "[^_]" "[^_]")
-   ;; type keywords
-   (generic-make-keywords-list
-    installshield-types-list
-    'font-lock-type-face "[^_]" "[^_]")
-   ;; function argument constants
-   (generic-make-keywords-list
-    installshield-funarg-constants-list
-    'font-lock-variable-name-face "[^_]" "[^_]") ; is this face the best choice?
-   )
-  (list "\\.[rR][uU][lL]$")
-  (list
-   (function
-    (lambda ()
-      (setq imenu-generic-expression
-    '((nil "^function\\s-+\\([A-Za-z0-9_]+\\)" 1)))
-      )))
-  "Generic mode for InstallShield RUL files.")
+(progn
+  (defvar rul-generic-mode-syntax-table nil
+     "Syntax table to use in rul-generic-mode buffers.")
+
+   (setq rul-generic-mode-syntax-table
+        (make-syntax-table c++-mode-syntax-table))
+
+   (modify-syntax-entry ?\r "> b"   rul-generic-mode-syntax-table)
+   (modify-syntax-entry ?\n "> b"   rul-generic-mode-syntax-table)
+
+   (modify-syntax-entry ?/  ". 124b" rul-generic-mode-syntax-table)
+   (modify-syntax-entry ?*  ". 23"   rul-generic-mode-syntax-table)
+
+   ;; here manually instead
+   (defun generic-rul-mode-setup-function ()
+     (make-local-variable           'parse-sexp-ignore-comments)
+     (make-local-variable           'comment-start)
+     (make-local-variable           'comment-start-skip)
+     (make-local-variable           'comment-end)
+     (setq imenu-generic-expression
+          '((nil "^function\\s-+\\([A-Za-z0-9_]+\\)" 1))
+          parse-sexp-ignore-comments t
+          comment-end               "*/"
+          comment-start             "/*"
+;;        comment-end               ""
+;;        comment-start             "//"
+;;        comment-start-skip        ""
+          )
+;;     (set-syntax-table             rul-generic-mode-syntax-table)
+     (setq font-lock-syntax-table rul-generic-mode-syntax-table)
+     )
 
+   ;; moved mode-definition behind defun-definition to be warning-free - 15.11.02/RSan
+   (define-generic-mode 'rul-generic-mode
+     ;; Using "/*" and "*/" doesn't seem to be working right
+     (list "//" '("/*" . "*/" ))
+     installshield-statement-keyword-list
+     (list
+      ;; preprocessor constructs
+      '("#[ \t]*include[ \t]+\\(<[^>\"\n]+>\\)"
+       1 font-lock-string-face)
+      '("#[ \t]*\\(\\sw+\\)\\>[ \t]*\\(\\sw+\\)?"
+       (1 font-lock-reference-face)
+       (2 font-lock-variable-name-face nil t))
+      ;; indirect string constants
+      '("\\(@[A-Za-z][A-Za-z0-9_]+\\)" 1 font-lock-builtin-face)
+      ;; gotos
+      '("[ \t]*\\(\\sw+:\\)" 1 font-lock-reference-face)
+      '("\\<\\(goto\\)\\>[ \t]*\\(\\sw+\\)?"
+       (1 font-lock-keyword-face)
+       (2 font-lock-reference-face nil t))
+      ;; system variables
+      (generic-make-keywords-list
+       installshield-system-variables-list
+       'font-lock-variable-name-face "[^_]" "[^_]")
+      ;; system functions
+      (generic-make-keywords-list
+       installshield-system-functions-list
+       'font-lock-function-name-face "[^_]" "[^_]")
+      ;; type keywords
+      (generic-make-keywords-list
+       installshield-types-list
+       'font-lock-type-face "[^_]" "[^_]")
+      ;; function argument constants
+      (generic-make-keywords-list
+       installshield-funarg-constants-list
+       'font-lock-variable-name-face "[^_]" "[^_]") ; is this face the best choice?
+      )
+     (list "\\.[rR][uU][lL]$")
+     (list 'generic-rul-mode-setup-function)
+     "Generic mode for InstallShield RUL files.")
+)
 (define-skeleton rul-if
    "Insert an if statement."
    "condition: "
@@ -1646,20 +1675,20 @@ you must reload generic-x to enable the specified modes."
        ("\t+" . 'show-tabs-tab-face)))
 
 (defface show-tabs-tab-face
-  '((((class grayscale) (background light)) (:foreground "LightGray" :bold t))
-    (((class grayscale) (background dark))  (:foreground "DimGray"   :bold t))
+  '((((class grayscale) (background light)) (:foreground "LightGray" :weight bold))
+    (((class grayscale) (background dark))  (:foreground "DimGray"   :weight bold))
     (((class color)     (background light)) (:foreground "red"))
     (((class color)     (background dark))  (:foreground "red"))
-    (t (:bold t)))
+    (t (:weight bold)))
   "Font Lock mode face used to highlight TABs."
   :group 'show-tabs)
 
 (defface show-tabs-space-face
-  '((((class grayscale) (background light)) (:foreground "LightGray" :bold t))
-    (((class grayscale) (background dark))  (:foreground "DimGray"   :bold t))
+  '((((class grayscale) (background light)) (:foreground "LightGray" :weight bold))
+    (((class grayscale) (background dark))  (:foreground "DimGray"   :weight bold))
     (((class color)     (background light)) (:foreground "yellow"))
     (((class color)     (background dark))  (:foreground "yellow"))
-    (t (:bold t)))
+    (t (:weight bold)))
   "Font Lock mode face used to highlight spaces."
   :group 'show-tabs)
 
@@ -1835,7 +1864,51 @@ you must reload generic-x to enable the specified modes."
   "Generic mode for ASTAP circuit netlist files."
   )
 
+(define-generic-mode  'etc-modules-conf-generic-mode
+  ;;List of comment characters
+  (list ?#)
+  ;;List of keywords
+  (list
+   "above"
+   "alias"
+   "below"
+   "define"
+   "depfile"
+   "else"
+   "elseif"
+   "endif"
+   "if"
+   "include"
+   "insmod_opt"
+   "install"
+   "keep"
+   "options"
+   "path"
+   "generic_stringfile"
+   "pcimapfile"
+   "isapnpmapfile"
+   "usbmapfile"
+   "parportmapfile"
+   "ieee1394mapfile"
+   "pnpbiosmapfile"
+   "probe"
+   "probeall"
+   "prune"
+   "post-install"
+   "post-remove"
+   "pre-install"
+   "pre-remove"
+   "remove"
+   "persistdir")
+  ;;List of additional font-lock-expressions
+  nil
+  ;;List of additional automode-alist expressions
+  (list "/etc/modules.conf" "/etc/conf.modules")
+  ;;List of set up functions to call
+  nil
+  )
 
 (provide 'generic-x)
 
+;;; arch-tag: cde692a5-9ff6-4506-9999-c67999c2bdb5
 ;;; generic-x.el ends here