comparison lisp/generic-x.el @ 60774:65f5b049afac

Don't prevent compilation. Don't require generic. Follow coding conventions. Minor code cleanup. (etc-fstab-generic-mode): Add some keywords.
author Lute Kamstra <lute@gnu.org>
date Mon, 21 Mar 2005 17:10:57 +0000
parents c5e477f739fb
children 09aa085cd248
comparison
equal deleted inserted replaced
60773:1771db839aa6 60774:65f5b049afac
1 ;;; generic-x.el --- Extra Modes for generic-mode -*- no-byte-compile: t -*- 1 ;;; generic-x.el --- Extra Modes for generic-mode
2 2
3 ;; Copyright (C) 1997, 1998, 2003 Free Software Foundation, Inc. 3 ;; Copyright (C) 1997, 1998, 2003, 2005 Free Software Foundation, Inc.
4 4
5 ;; Author: Peter Breton <pbreton@cs.umb.edu> 5 ;; Author: Peter Breton <pbreton@cs.umb.edu>
6 ;; Created: Tue Oct 08 1996 6 ;; Created: Tue Oct 08 1996
7 ;; Keywords: generic, comment, font-lock 7 ;; Keywords: generic, comment, font-lock
8 8
32 ;; Add this line to your .emacs file: 32 ;; Add this line to your .emacs file:
33 ;; 33 ;;
34 ;; (require 'generic-x) 34 ;; (require 'generic-x)
35 ;; 35 ;;
36 ;; You can decide which modes to load by setting the variable 36 ;; You can decide which modes to load by setting the variable
37 ;; `generic-extras-enable-list'. Some platform-specific modes are 37 ;; `generic-extras-enable-list'. Some platform-specific modes are
38 ;; affected by the variables `generic-define-mswindows-modes' and 38 ;; affected by the variables `generic-define-mswindows-modes' and
39 ;; `generic-define-unix-modes' (which see). 39 ;; `generic-define-unix-modes' (which see).
40 ;; 40 ;;
41 ;; You can also send in new modes; if the file types a reasonably common, 41 ;; You can also send in new modes; if the file types a reasonably common,
42 ;; we would like to install them. 42 ;; we would like to install them.
90 ;; "[^\n\r]". This will make the rules behave just as before, but they 90 ;; "[^\n\r]". This will make the rules behave just as before, but they
91 ;; will work together with selective-display. 91 ;; will work together with selective-display.
92 92
93 ;;; Code: 93 ;;; Code:
94 94
95 (require 'generic)
96 (require 'font-lock) 95 (require 'font-lock)
97 96
98 (defgroup generic-x nil 97 (defgroup generic-x nil
99 "Extra modes for generic mode." 98 "Extra modes for generic mode."
100 :prefix "generic-" 99 :prefix "generic-"
101 :group 'generic 100 :group 'generic
102 :version "20.3") 101 :version "20.3")
103 102
104 (defcustom generic-extras-enable-list nil 103 (defcustom generic-extras-enable-list nil
105 "*List of generic modes to enable by default. 104 "*List of generic modes to enable by default.
106 Each entry in the list should be a symbol. 105 Each entry in the list should be a symbol. The variables
107 The variables `generic-define-mswindows-modes' and `generic-define-unix-modes' 106 `generic-define-mswindows-modes' and `generic-define-unix-modes'
108 also affect which generic modes are defined. 107 also affect which generic modes are defined. Please note that if
109 Please note that if you set this variable after generic-x is loaded, 108 you set this variable after generic-x is loaded, you must reload
110 you must reload generic-x to enable the specified modes." 109 generic-x to enable the specified modes."
111 :group 'generic-x 110 :group 'generic-x
112 :type '(repeat sexp) 111 :type '(repeat sexp))
113 )
114 112
115 (defcustom generic-define-mswindows-modes 113 (defcustom generic-define-mswindows-modes
116 (memq system-type (list 'windows-nt 'ms-dos)) 114 (memq system-type '(windows-nt ms-dos))
117 "*If non-nil, some MS-Windows specific generic modes will be defined." 115 "*If non-nil, some MS-Windows specific generic modes will be defined."
118 :group 'generic-x 116 :group 'generic-x
119 :type 'boolean 117 :type 'boolean)
120 )
121 118
122 (defcustom generic-define-unix-modes 119 (defcustom generic-define-unix-modes
123 (not (memq system-type (list 'windows-nt 'ms-dos))) 120 (not (memq system-type '(windows-nt ms-dos)))
124 "*If non-nil, some Unix specific generic modes will be defined." 121 "*If non-nil, some Unix specific generic modes will be defined."
125 :group 'generic-x 122 :group 'generic-x
126 :type 'boolean 123 :type 'boolean)
127 )
128 124
129 (and generic-define-mswindows-modes 125 (and generic-define-mswindows-modes
130 (setq generic-extras-enable-list 126 (setq generic-extras-enable-list
131 (append (list 'bat-generic-mode 'ini-generic-mode 127 (append (list 'bat-generic-mode
132 'inf-generic-mode 'rc-generic-mode 128 'ini-generic-mode
133 'reg-generic-mode 'rul-generic-mode 129 'inf-generic-mode
134 'hosts-generic-mode 130 'rc-generic-mode
135 'apache-conf-generic-mode 131 'reg-generic-mode
136 'apache-log-generic-mode 132 'rul-generic-mode
137 ) 133 'hosts-generic-mode
138 generic-extras-enable-list))) 134 'apache-conf-generic-mode
135 'apache-log-generic-mode)
136 generic-extras-enable-list)))
139 137
140 (and generic-define-unix-modes 138 (and generic-define-unix-modes
141 (setq generic-extras-enable-list 139 (setq generic-extras-enable-list
142 (append (list 'apache-conf-generic-mode 140 (append (list 'apache-conf-generic-mode
143 'apache-log-generic-mode 141 'apache-log-generic-mode
144 'samba-generic-mode 142 'samba-generic-mode
145 'hosts-generic-mode 'fvwm-generic-mode 143 'hosts-generic-mode
144 'fvwm-generic-mode
146 'x-resource-generic-mode 145 'x-resource-generic-mode
147 'alias-generic-mode 146 'alias-generic-mode
148 'inetd-conf-generic-mode 147 'inetd-conf-generic-mode
149 'etc-services-generic-mode 148 'etc-services-generic-mode
150 'etc-passwd-generic-mode 149 'etc-passwd-generic-mode
151 'etc-fstab-generic-mode 150 'etc-fstab-generic-mode)
152 )
153 generic-extras-enable-list))) 151 generic-extras-enable-list)))
154 152
155 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 153 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
156 ;; Generic-modes 154 ;; Generic-modes
157 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 155 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
158 156
159 ;;; Apache 157 ;;; Apache
160 (and 158 (when (memq 'apache-conf-generic-mode generic-extras-enable-list)
161 (memq 'apache-conf-generic-mode generic-extras-enable-list) 159
162 160 (define-generic-mode apache-conf-generic-mode
163 (define-generic-mode 'apache-conf-generic-mode 161 (list ?#)
164 (list ?#) 162 nil
165 nil 163 '(("^\\s-*\\(<.*>\\)" 1 'font-lock-constant-face)
166 '(("^\\s-*\\(<.*>\\)" 1 'font-lock-constant-face) 164 ("^\\s-*\\(\\sw+\\)\\s-" 1 'font-lock-variable-name-face))
167 ("^\\s-*\\(\\sw+\\)\\s-" 1 'font-lock-variable-name-face)) 165 (list "srm\\.conf\\'" "httpd\\.conf\\'" "access\\.conf\\'")
168 (list "srm\\.conf\\'" "httpd\\.conf\\'" "access\\.conf\\'") 166 (list
169 (list 167 (function
170 (function 168 (lambda ()
171 (lambda ()
172 (setq imenu-generic-expression 169 (setq imenu-generic-expression
173 '((nil "^\\([-A-Za-z0-9_]+\\)" 1) 170 '((nil "^\\([-A-Za-z0-9_]+\\)" 1)
174 ("*Directories*" "^\\s-*<Directory\\s-*\\([^>]+\\)>" 1) 171 ("*Directories*" "^\\s-*<Directory\\s-*\\([^>]+\\)>" 1)
175 ("*Locations*" "^\\s-*<Location\\s-*\\([^>]+\\)>" 1) 172 ("*Locations*" "^\\s-*<Location\\s-*\\([^>]+\\)>" 1))))))
176 )) 173 "Generic mode for Apache or HTTPD configuration files."))
177 ))) 174
178 "Generic mode for Apache or HTTPD configuration files.")) 175 (when (memq 'apache-log-generic-mode generic-extras-enable-list)
179 176
180 (and 177 (define-generic-mode apache-log-generic-mode
181 (memq 'apache-log-generic-mode generic-extras-enable-list)
182
183 (define-generic-mode 'apache-log-generic-mode
184 nil 178 nil
185 nil 179 nil
186 ;; Hostname ? user date request return-code number-of-bytes 180 ;; Hostname ? user date request return-code number-of-bytes
187 '(("^\\([-a-zA-z0-9.]+\\) - [-A-Za-z]+ \\(\\[.*\\]\\)" 181 '(("^\\([-a-zA-z0-9.]+\\) - [-A-Za-z]+ \\(\\[.*\\]\\)"
188 (1 font-lock-constant-face) 182 (1 font-lock-constant-face)
189 (2 font-lock-variable-name-face)) 183 (2 font-lock-variable-name-face)))
190 )
191 (list "access_log\\'") 184 (list "access_log\\'")
192 nil 185 nil
193 "Mode for Apache log files")) 186 "Mode for Apache log files"))
194 187
195 ;;; Samba 188 ;;; Samba
196 (and 189 (when (memq 'samba-generic-mode generic-extras-enable-list)
197 (memq 'samba-generic-mode generic-extras-enable-list) 190
198 191 (define-generic-mode samba-generic-mode
199 (define-generic-mode 'samba-generic-mode 192 (list ?\; ?#)
200 (list ?\; ?#) 193 nil
201 nil 194 '(("^\\(\\[.*\\]\\)" 1 'font-lock-constant-face)
202 '( 195 ("^\\s-*\\(.+\\)=\\([^\r\n]*\\)"
203 ("^\\(\\[.*\\]\\)" 1 'font-lock-constant-face) 196 (1 'font-lock-variable-name-face)
204 ("^\\s-*\\(.+\\)=\\([^\r\n]*\\)" 197 (2 'font-lock-type-face)))
205 (1 'font-lock-variable-name-face) 198 (list "smb\\.conf\\'")
206 (2 'font-lock-type-face)) 199 (list 'generic-bracket-support)
207 ) 200 "Generic mode for Samba configuration files."))
208 (list "smb\\.conf\\'")
209 (list 'generic-bracket-support)
210 "Generic mode for Samba configuration files."))
211 201
212 ;;; Fvwm 202 ;;; Fvwm
213 ;; This is pretty basic. Also, modes for other window managers could 203 ;; This is pretty basic. Also, modes for other window managers could
214 ;; be defined as well. 204 ;; be defined as well.
215 (and 205 (when (memq 'fvwm-generic-mode generic-extras-enable-list)
216 (memq 'fvwm-generic-mode generic-extras-enable-list) 206
217 207 (define-generic-mode fvwm-generic-mode
218 (define-generic-mode 'fvwm-generic-mode 208 (list ?#)
219 (list ?#) 209 (list
220 (list 210 "AddToMenu"
221 "AddToMenu" 211 "AddToFunc"
222 "AddToFunc" 212 "ButtonStyle"
223 "ButtonStyle" 213 "EndFunction"
224 "EndFunction" 214 "EndPopup"
225 "EndPopup" 215 "Function"
226 "Function" 216 "IconPath"
227 "IconPath" 217 "Key"
228 "Key" 218 "ModulePath"
229 "ModulePath" 219 "Mouse"
230 "Mouse" 220 "PixmapPath"
231 "PixmapPath" 221 "Popup"
232 "Popup" 222 "Style")
233 "Style" 223 nil
234 ) 224 (list "\\.fvwmrc\\'" "\\.fvwm2rc\\'")
235 nil 225 nil
236 (list "\\.fvwmrc\\'" "\\.fvwm2rc\\'") 226 "Generic mode for FVWM configuration files."))
237 nil
238 "Generic mode for FVWM configuration files."))
239 227
240 ;;; X Resource 228 ;;; X Resource
241 ;; I'm pretty sure I've seen an actual mode to do this, but I don't 229 ;; I'm pretty sure I've seen an actual mode to do this, but I don't
242 ;; think it's standard with Emacs 230 ;; think it's standard with Emacs
243 (and 231 (when (memq 'x-resource-generic-mode generic-extras-enable-list)
244 (memq 'x-resource-generic-mode generic-extras-enable-list) 232
245 233 (define-generic-mode x-resource-generic-mode
246 (define-generic-mode 'x-resource-generic-mode 234 (list ?!)
247 (list ?!) 235 nil
248 nil 236 '(("^\\([^:\n]+:\\)" 1 'font-lock-variable-name-face))
249 '(("^\\([^:\n]+:\\)" 1 'font-lock-variable-name-face)) 237 (list "\\.Xdefaults\\'" "\\.Xresources\\'" "\\.Xenvironment\\'" "\\.ad\\'")
250 (list "\\.Xdefaults\\'" "\\.Xresources\\'" "\\.Xenvironment\\'" "\\.ad\\'") 238 nil
251 nil 239 "Generic mode for X Resource configuration files."))
252 "Generic mode for X Resource configuration files."))
253 240
254 ;;; Hosts 241 ;;; Hosts
255 (and 242 (when (memq 'hosts-generic-mode generic-extras-enable-list)
256 (memq 'hosts-generic-mode generic-extras-enable-list) 243
257 244 (define-generic-mode hosts-generic-mode
258 (define-generic-mode 'hosts-generic-mode 245 (list ?#)
259 (list ?#) 246 (list "localhost")
260 (list "localhost") 247 '(("\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 'font-lock-constant-face))
261 '(("\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 'font-lock-constant-face)) 248 (list "[hH][oO][sS][tT][sS]\\'")
262 (list "[hH][oO][sS][tT][sS]\\'") 249 nil
263 nil 250 "Generic mode for HOSTS files."))
264 "Generic mode for HOSTS files."))
265 251
266 ;;; Windows INF files 252 ;;; Windows INF files
267 (and 253 (when (memq 'inf-generic-mode generic-extras-enable-list)
268 (memq 'inf-generic-mode generic-extras-enable-list) 254
269 255 (define-generic-mode inf-generic-mode
270 (define-generic-mode 'inf-generic-mode 256 (list ?\;)
271 (list ?\;) 257 nil
272 nil 258 '(("^\\(\\[.*\\]\\)" 1 'font-lock-constant-face))
273 '(("^\\(\\[.*\\]\\)" 1 'font-lock-constant-face)) 259 (list "\\.[iI][nN][fF]\\'")
274 (list "\\.[iI][nN][fF]\\'") 260 (list 'generic-bracket-support)
275 (list 'generic-bracket-support) 261 "Generic mode for MS-Windows INF files."))
276 "Generic mode for MS-Windows INF files."))
277 262
278 ;;; Windows INI files 263 ;;; Windows INI files
279 ;; Should define escape character as well! 264 ;; Should define escape character as well!
280 (and 265 (when (memq 'ini-generic-mode generic-extras-enable-list)
281 (memq 'ini-generic-mode generic-extras-enable-list) 266
282 267 (define-generic-mode ini-generic-mode
283 (define-generic-mode 'ini-generic-mode 268 (list ?\;)
284 (list ?\;) 269 nil
285 nil 270 '(("^\\(\\[.*\\]\\)" 1 'font-lock-constant-face)
286 '(("^\\(\\[.*\\]\\)" 1 'font-lock-constant-face) 271 ("^\\([^=\n\r]*\\)=\\([^\n\r]*\\)$"
287 ("^\\([^=\n\r]*\\)=\\([^\n\r]*\\)$" 272 (1 font-lock-function-name-face)
288 (1 font-lock-function-name-face) 273 (2 font-lock-variable-name-face)))
289 (2 font-lock-variable-name-face))) 274 (list "\\.[iI][nN][iI]\\'")
290 (list "\\.[iI][nN][iI]\\'") 275 (list
291 (list 276 (function
292 (function 277 (lambda ()
293 (lambda () 278 (setq imenu-generic-expression
294 (setq imenu-generic-expression 279 '((nil "^\\[\\(.*\\)\\]" 1)
295 '((nil "^\\[\\(.*\\)\\]" 1) 280 ("*Variables*" "^\\s-*\\([^=]+\\)\\s-*=" 1))))))
296 ("*Variables*" "^\\s-*\\([^=]+\\)\\s-*=" 1))) 281 "Generic mode for MS-Windows INI files."))
297 )))
298 "Generic mode for MS-Windows INI files."))
299 282
300 ;;; Windows REG files 283 ;;; Windows REG files
301 ;;; Unfortunately, Windows 95 and Windows NT have different REG file syntax! 284 ;;; Unfortunately, Windows 95 and Windows NT have different REG file syntax!
302 (and 285 (when (memq 'reg-generic-mode generic-extras-enable-list)
303 (memq 'reg-generic-mode generic-extras-enable-list) 286
304 287 (define-generic-mode reg-generic-mode
305 (define-generic-mode 'reg-generic-mode 288 '(?\;)
306 '(?\;) 289 '("key" "classes_root" "REGEDIT" "REGEDIT4")
307 '("key" "classes_root" "REGEDIT" "REGEDIT4") 290 '(("\\(\\[.*]\\)" 1 'font-lock-constant-face)
308 '(("\\(\\[.*]\\)" 1 'font-lock-constant-face) 291 ("^\\([^\n\r]*\\)\\s-*=" 1 'font-lock-variable-name-face))
309 ("^\\([^\n\r]*\\)\\s-*=" 1 'font-lock-variable-name-face)) 292 '("\\.[rR][eE][gG]\\'")
310 '("\\.[rR][eE][gG]\\'") 293 (list
294 (function
295 (lambda ()
296 (setq imenu-generic-expression
297 '((nil "^\\s-*\\(.*\\)\\s-*=" 1))))))
298 "Generic mode for MS-Windows Registry files."))
299
300 ;;; DOS/Windows BAT files
301 (when (memq 'bat-generic-mode generic-extras-enable-list)
302
303 (define-generic-mode bat-generic-mode
304 nil
305 nil
306 (list
307 ;; Make this one first in the list, otherwise comments will
308 ;; be over-written by other variables
309 (list "^[@ \t]*\\([rR][eE][mM][^\n\r]*\\)" 1 'font-lock-comment-face t)
310 (list "^[ \t]*\\(::.*\\)" 1 'font-lock-comment-face t)
311 (list
312 "^[@ \t]*\\([bB][rR][eE][aA][kK]\\|[vV][eE][rR][iI][fF][yY]\\)[ \t]+\\([oO]\\([nN]\\|[fF][fF]\\)\\)"
313 '(1 font-lock-builtin-face)
314 '(2 font-lock-constant-face t t))
315 ;; Any text (except ON/OFF) following ECHO is a string.
316 (list
317 "^[@ \t]*\\([eE][cC][hH][oO]\\)[ \t]+\\(\\([oO]\\([nN]\\|[fF][fF]\\)\\)\\|\\([^>|\r\n]+\\)\\)"
318 '(1 font-lock-builtin-face)
319 '(3 font-lock-constant-face t t)
320 '(5 font-lock-string-face t t))
321 ;; These keywords appear as the first word on a line. (Actually, they
322 ;; can also appear after "if ..." or "for ..." clause, but since they
323 ;; are frequently used in simple text, we punt.)
324 ;; In `generic-bat-mode-setup-function' we make the keywords
325 ;; case-insensitive
326 (generic-make-keywords-list
311 (list 327 (list
312 (function 328 "for"
313 (lambda () 329 "if")
314 (setq imenu-generic-expression 330 'font-lock-keyword-face "^[@ \t]*")
315 '((nil "^\\s-*\\(.*\\)\\s-*=" 1)))))) 331 ;; These keywords can be anywhere on a line
316 "Generic mode for MS-Windows Registry files.")) 332 ;; In `generic-bat-mode-setup-function' we make the keywords
317 333 ;; case-insensitive
318 ;;; DOS/Windows BAT files 334 (generic-make-keywords-list
319 (if (not (memq 'bat-generic-mode generic-extras-enable-list))
320 nil
321 (define-generic-mode 'bat-generic-mode
322 nil
323 nil
324 (list 335 (list
325 ;; Make this one first in the list, otherwise comments will 336 "do"
326 ;; be over-written by other variables 337 "exist"
327 (list "^[@ \t]*\\([rR][eE][mM][^\n\r]*\\)" 1 'font-lock-comment-face t) 338 "errorlevel"
328 (list "^[ \t]*\\(::.*\\)" 1 'font-lock-comment-face t) 339 "goto"
329 (list 340 "not")
330 "^[@ \t]*\\([bB][rR][eE][aA][kK]\\|[vV][eE][rR][iI][fF][yY]\\)[ \t]+\\([oO]\\([nN]\\|[fF][fF]\\)\\)" 341 'font-lock-keyword-face)
331 '(1 font-lock-builtin-face) 342 ;; These are built-in commands. Only frequently-used ones are listed.
332 '(2 font-lock-constant-face t t)) 343 (generic-make-keywords-list
333 ;; Any text (except ON/OFF) following ECHO is a string.
334 (list
335 "^[@ \t]*\\([eE][cC][hH][oO]\\)[ \t]+\\(\\([oO]\\([nN]\\|[fF][fF]\\)\\)\\|\\([^>|\r\n]+\\)\\)"
336 '(1 font-lock-builtin-face)
337 '(3 font-lock-constant-face t t)
338 '(5 font-lock-string-face t t))
339 ;; These keywords appear as the first word on a line. (Actually, they
340 ;; can also appear after "if ..." or "for ..." clause, but since they
341 ;; are frequently used in simple text, we punt.)
342 ;; In `generic-bat-mode-setup-function' we make the keywords
343 ;; case-insensitive
344 (generic-make-keywords-list
345 (list
346 "for"
347 "if"
348 )
349 'font-lock-keyword-face "^[@ \t]*")
350 ;; These keywords can be anywhere on a line
351 ;; In `generic-bat-mode-setup-function' we make the keywords
352 ;; case-insensitive
353 (generic-make-keywords-list
354 (list
355 "do"
356 "exist"
357 "errorlevel"
358 "goto"
359 "not"
360 ) 'font-lock-keyword-face)
361 ;; These are built-in commands. Only frequently-used ones are listed.
362 (generic-make-keywords-list
363 (list
364 "CALL" "call" "Call"
365 "CD" "cd" "Cd"
366 "CLS" "cls" "Cls"
367 "COPY" "copy" "Copy"
368 "DEL" "del" "Del"
369 "ECHO" "echo" "Echo"
370 "MD" "md" "Md"
371 "PATH" "path" "Path"
372 "PAUSE" "pause" "Pause"
373 "PROMPT" "prompt" "Prompt"
374 "RD" "rd" "Rd"
375 "REN" "ren" "Ren"
376 "SET" "set" "Set"
377 "START" "start" "Start"
378 "SHIFT" "shift" "Shift"
379 ) 'font-lock-builtin-face "[ \t|\n]")
380 (list "^[ \t]*\\(:\\sw+\\)" 1 'font-lock-function-name-face t)
381 (list "\\(%\\sw+%\\)" 1 'font-lock-variable-name-face t)
382 (list "\\(%[0-9]\\)" 1 'font-lock-variable-name-face t)
383 (list "\\(/[^/ \"\t\n]+\\)" 1 'font-lock-type-face)
384 (list "[\t ]+\\([+-][^\t\n\" ]+\\)" 1 'font-lock-type-face)
385 (list "[ \t\n|]\\<\\([gG][oO][tT][oO]\\)\\>[ \t]*\\(\\sw+\\)?"
386 '(1 font-lock-keyword-face)
387 '(2 font-lock-function-name-face nil t))
388 (list "[ \t\n|]\\<\\([sS][eE][tT]\\)\\>[ \t]*\\(\\sw+\\)?[ \t]*=?"
389 '(1 font-lock-builtin-face)
390 '(2 font-lock-variable-name-face t t))
391
392 )
393 (list 344 (list
394 "\\.[bB][aA][tT]\\'" 345 "CALL" "call" "Call"
395 "\\`[cC][oO][nN][fF][iI][gG]\\." 346 "CD" "cd" "Cd"
396 "\\`[aA][uU][tT][oO][eE][xX][eE][cC]\\." ) 347 "CLS" "cls" "Cls"
397 (list 'generic-bat-mode-setup-function) 348 "COPY" "copy" "Copy"
398 "Generic mode for MS-Windows BAT files.") 349 "DEL" "del" "Del"
399 350 "ECHO" "echo" "Echo"
400 (defvar bat-generic-mode-syntax-table nil 351 "MD" "md" "Md"
401 "Syntax table in use in bat-generic-mode buffers.") 352 "PATH" "path" "Path"
402 353 "PAUSE" "pause" "Pause"
403 (defvar bat-generic-mode-keymap (make-sparse-keymap) 354 "PROMPT" "prompt" "Prompt"
404 "Keymap for bet-generic-mode.") 355 "RD" "rd" "Rd"
405 356 "REN" "ren" "Ren"
406 (defun bat-generic-mode-compile () 357 "SET" "set" "Set"
407 "Run the current BAT file in a compilation buffer." 358 "START" "start" "Start"
408 (interactive) 359 "SHIFT" "shift" "Shift")
409 (let ((compilation-buffer-name-function 360 'font-lock-builtin-face "[ \t|\n]")
410 (function 361 (list "^[ \t]*\\(:\\sw+\\)" 1 'font-lock-function-name-face t)
411 (lambda(ign) 362 (list "\\(%\\sw+%\\)" 1 'font-lock-variable-name-face t)
412 (concat "*" (buffer-file-name) "*"))) 363 (list "\\(%[0-9]\\)" 1 'font-lock-variable-name-face t)
413 ) 364 (list "\\(/[^/ \"\t\n]+\\)" 1 'font-lock-type-face)
414 ) 365 (list "[\t ]+\\([+-][^\t\n\" ]+\\)" 1 'font-lock-type-face)
415 (compile 366 (list "[ \t\n|]\\<\\([gG][oO][tT][oO]\\)\\>[ \t]*\\(\\sw+\\)?"
416 (concat (w32-shell-name) " -c " (buffer-file-name))))) 367 '(1 font-lock-keyword-face)
417 368 '(2 font-lock-function-name-face nil t))
418 (defun bat-generic-mode-run-as-comint () 369 (list "[ \t\n|]\\<\\([sS][eE][tT]\\)\\>[ \t]*\\(\\sw+\\)?[ \t]*=?"
419 "Run the current BAT file in a comint buffer." 370 '(1 font-lock-builtin-face)
420 (interactive) 371 '(2 font-lock-variable-name-face t t)))
421 (require 'comint) 372 (list
422 (let* ((file (buffer-file-name)) 373 "\\.[bB][aA][tT]\\'"
423 (buf-name (concat "*" file "*"))) 374 "\\`[cC][oO][nN][fF][iI][gG]\\."
424 (save-excursion 375 "\\`[aA][uU][tT][oO][eE][xX][eE][cC]\\." )
425 (set-buffer 376 (list 'generic-bat-mode-setup-function)
426 (get-buffer-create buf-name)) 377 "Generic mode for MS-Windows BAT files.")
427 (erase-buffer) 378
428 (comint-mode) 379 (defvar bat-generic-mode-syntax-table nil
429 (comint-exec 380 "Syntax table in use in bat-generic-mode buffers.")
430 buf-name 381
431 file 382 (defvar bat-generic-mode-keymap (make-sparse-keymap)
432 (w32-shell-name) 383 "Keymap for bet-generic-mode.")
433 nil 384
434 (list 385 (defun bat-generic-mode-compile ()
435 "-c" 386 "Run the current BAT file in a compilation buffer."
436 file 387 (interactive)
437 ) 388 (let ((compilation-buffer-name-function
438 ) 389 (function
439 (display-buffer buf-name)))) 390 (lambda(ign)
440 391 (concat "*" (buffer-file-name) "*")))))
441 (define-key bat-generic-mode-keymap "\C-c\C-c" 'bat-generic-mode-compile) 392 (compile
442 393 (concat (w32-shell-name) " -c " (buffer-file-name)))))
443 ;; Make underscores count as words 394
444 (if bat-generic-mode-syntax-table 395 (defun bat-generic-mode-run-as-comint ()
445 nil 396 "Run the current BAT file in a comint buffer."
446 (setq bat-generic-mode-syntax-table (make-syntax-table)) 397 (interactive)
447 (modify-syntax-entry ?_ "w" bat-generic-mode-syntax-table)) 398 (require 'comint)
448 399 (let* ((file (buffer-file-name))
449 ;; bat-generic-mode doesn't use the comment functionality of generic-mode 400 (buf-name (concat "*" file "*")))
450 ;; because it has a three-letter comment-string, so we do it 401 (save-excursion
451 ;; here manually instead 402 (set-buffer
452 (defun generic-bat-mode-setup-function () 403 (get-buffer-create buf-name))
453 (make-local-variable 'parse-sexp-ignore-comments) 404 (erase-buffer)
454 (make-local-variable 'comment-start) 405 (comint-mode)
455 (make-local-variable 'comment-start-skip) 406 (comint-exec
456 (make-local-variable 'comment-end) 407 buf-name
457 (setq imenu-generic-expression '((nil "^:\\(\\sw+\\)" 1)) 408 file
458 parse-sexp-ignore-comments t 409 (w32-shell-name)
459 comment-end "" 410 nil
460 comment-start "REM " 411 (list "-c" file))
461 comment-start-skip "[Rr][Ee][Mm] *" 412 (display-buffer buf-name))))
462 ) 413
463 (set-syntax-table bat-generic-mode-syntax-table) 414 (define-key bat-generic-mode-keymap "\C-c\C-c" 'bat-generic-mode-compile)
464 ;; Make keywords case-insensitive 415
465 (setq font-lock-defaults (list 'generic-font-lock-defaults nil t)) 416 ;; Make underscores count as words
466 (use-local-map bat-generic-mode-keymap) 417 (unless bat-generic-mode-syntax-table
467 ) 418 (setq bat-generic-mode-syntax-table (make-syntax-table))
468 ) 419 (modify-syntax-entry ?_ "w" bat-generic-mode-syntax-table))
420
421 ;; bat-generic-mode doesn't use the comment functionality of generic-mode
422 ;; because it has a three-letter comment-string, so we do it
423 ;; here manually instead
424 (defun generic-bat-mode-setup-function ()
425 (make-local-variable 'parse-sexp-ignore-comments)
426 (make-local-variable 'comment-start)
427 (make-local-variable 'comment-start-skip)
428 (make-local-variable 'comment-end)
429 (setq imenu-generic-expression '((nil "^:\\(\\sw+\\)" 1))
430 parse-sexp-ignore-comments t
431 comment-end ""
432 comment-start "REM "
433 comment-start-skip "[Rr][Ee][Mm] *")
434 (set-syntax-table bat-generic-mode-syntax-table)
435 ;; Make keywords case-insensitive
436 (setq font-lock-defaults (list 'generic-font-lock-defaults nil t))
437 (use-local-map bat-generic-mode-keymap)))
469 438
470 ;;; Mailagent 439 ;;; Mailagent
471 ;; Mailagent is a Unix mail filtering program. Anyone wanna do a generic mode 440 ;; Mailagent is a Unix mail filtering program. Anyone wanna do a generic mode
472 ;; for procmail? 441 ;; for procmail?
473 (and 442 (when (memq 'mailagent-rules-generic-mode generic-extras-enable-list)
474 (memq 'mailagent-rules-generic-mode generic-extras-enable-list) 443
475 444 (define-generic-mode mailagent-rules-generic-mode
476 (define-generic-mode 'mailagent-rules-generic-mode 445 (list ?#)
477 (list ?#) 446 (list "SAVE" "DELETE" "PIPE" "ANNOTATE" "REJECT")
478 (list "SAVE" "DELETE" "PIPE" "ANNOTATE" "REJECT") 447 '(("^\\(\\sw+\\)\\s-*=" 1 'font-lock-variable-name-face)
479 '(("^\\(\\sw+\\)\\s-*=" 1 'font-lock-variable-name-face) 448 ("\\s-/\\([^/]+\\)/[i, \t\n]" 1 'font-lock-constant-face))
480 ("\\s-/\\([^/]+\\)/[i, \t\n]" 1 'font-lock-constant-face)) 449 (list "\\.rules\\'")
481 (list "\\.rules\\'") 450 (list 'mailagent-rules-setup-function)
482 (list 'mailagent-rules-setup-function) 451 "Mode for Mailagent rules files.")
483 "Mode for Mailagent rules files.")
484 452
485 (defun mailagent-rules-setup-function () 453 (defun mailagent-rules-setup-function ()
486 (make-local-variable 'imenu-generic-expression) 454 (make-local-variable 'imenu-generic-expression)
487 (setq imenu-generic-expression 455 (setq imenu-generic-expression
488 '((nil "\\s-/\\([^/]+\\)/[i, \t\n]" 1)))) 456 '((nil "\\s-/\\([^/]+\\)/[i, \t\n]" 1)))))
489 )
490 457
491 ;; Solaris/Sys V prototype files 458 ;; Solaris/Sys V prototype files
492 (and 459 (when (memq 'prototype-generic-mode generic-extras-enable-list)
493 (memq 'prototype-generic-mode generic-extras-enable-list) 460
494 461 (define-generic-mode prototype-generic-mode
495 (define-generic-mode 'prototype-generic-mode 462 (list ?#)
496 (list ?#) 463 nil
497 nil 464 '(("^\\([0-9]\\)?\\s-*\\([a-z]\\)\\s-+\\([A-Za-z_]+\\)\\s-+\\([^\n\r]*\\)$"
498 '( 465 (2 font-lock-constant-face)
499 ("^\\([0-9]\\)?\\s-*\\([a-z]\\)\\s-+\\([A-Za-z_]+\\)\\s-+\\([^\n\r]*\\)$" 466 (3 font-lock-keyword-face))
500 (2 font-lock-constant-face) 467 ("^\\([a-z]\\) \\([A-Za-z_]+\\)=\\([^\n\r]*\\)$"
501 (3 font-lock-keyword-face)) 468 (1 font-lock-constant-face)
502 ("^\\([a-z]\\) \\([A-Za-z_]+\\)=\\([^\n\r]*\\)$" 469 (2 font-lock-keyword-face)
503 (1 font-lock-constant-face) 470 (3 font-lock-variable-name-face))
504 (2 font-lock-keyword-face) 471 ("^\\(!\\s-*\\(search\\|include\\|default\\)\\)\\s-*\\([^\n\r]*\\)$"
505 (3 font-lock-variable-name-face)) 472 (1 font-lock-keyword-face)
506 ("^\\(!\\s-*\\(search\\|include\\|default\\)\\)\\s-*\\([^\n\r]*\\)$" 473 (3 font-lock-variable-name-face))
507 (1 font-lock-keyword-face) 474 ("^\\(!\\s-*\\sw+\\)=\\([^\n\r]*\\)$"
508 (3 font-lock-variable-name-face)) 475 (1 font-lock-keyword-face)
509 ("^\\(!\\s-*\\sw+\\)=\\([^\n\r]*\\)$" 476 (2 font-lock-variable-name-face)))
510 (1 font-lock-keyword-face) 477 (list "prototype\\'")
511 (2 font-lock-variable-name-face)) 478 nil
512 ) 479 "Mode for Sys V prototype files."))
513 (list "prototype\\'")
514 nil
515 "Mode for Sys V prototype files."))
516 480
517 ;; Solaris/Sys V pkginfo files 481 ;; Solaris/Sys V pkginfo files
518 (and 482 (when (memq 'pkginfo-generic-mode generic-extras-enable-list)
519 (memq 'pkginfo-generic-mode generic-extras-enable-list) 483
520 484 (define-generic-mode pkginfo-generic-mode
521 (define-generic-mode 'pkginfo-generic-mode 485 (list ?#)
522 (list ?#) 486 nil
523 nil 487 '(("^\\([A-Za-z_]+\\)=\\([^\n\r]*\\)$"
524 '( 488 (1 font-lock-keyword-face)
525 ("^\\([A-Za-z_]+\\)=\\([^\n\r]*\\)$" 489 (2 font-lock-variable-name-face)))
526 (1 font-lock-keyword-face) 490 (list "pkginfo\\'")
527 (2 font-lock-variable-name-face)) 491 nil
528 ) 492 "Mode for Sys V pkginfo files."))
529 (list "pkginfo\\'")
530 nil
531 "Mode for Sys V pkginfo files."))
532 493
533 ;; Javascript mode 494 ;; Javascript mode
534 ;; Includes extra keywords from Armando Singer [asinger@MAIL.COLGATE.EDU] 495 ;; Includes extra keywords from Armando Singer [asinger@MAIL.COLGATE.EDU]
535 (define-generic-mode 'javascript-generic-mode 496 (define-generic-mode javascript-generic-mode
536 (list "//" '("/*" . "*/")) 497 (list "//" '("/*" . "*/"))
537 (list 498 (list
538 "break" 499 "break"
539 "case" 500 "case"
540 "continue" 501 "continue"
592 "short" 553 "short"
593 "static" 554 "static"
594 "synchronized" 555 "synchronized"
595 "throws" 556 "throws"
596 "transient" 557 "transient"
597 "true" 558 "true")
598 )
599 (list 559 (list
600 (list "^\\s-*function\\s-+\\([A-Za-z0-9_]+\\)" 560 (list "^\\s-*function\\s-+\\([A-Za-z0-9_]+\\)"
601 '(1 font-lock-function-name-face)) 561 '(1 font-lock-function-name-face))
602 (list "^\\s-*var\\s-+\\([A-Za-z0-9_]+\\)" 562 (list "^\\s-*var\\s-+\\([A-Za-z0-9_]+\\)"
603 '(1 font-lock-variable-name-face)) 563 '(1 font-lock-variable-name-face)))
604 )
605 (list "\\.js\\'") 564 (list "\\.js\\'")
606 (list 565 (list
607 (function 566 (function
608 (lambda () 567 (lambda ()
609 (setq imenu-generic-expression 568 (setq imenu-generic-expression
610 '((nil "^function\\s-+\\([A-Za-z0-9_]+\\)" 1) 569 '((nil "^function\\s-+\\([A-Za-z0-9_]+\\)" 1)
611 ("*Variables*" "^var\\s-+\\([A-Za-z0-9_]+\\)" 1) 570 ("*Variables*" "^var\\s-+\\([A-Za-z0-9_]+\\)" 1))))))
612 ))
613 )))
614 "Mode for JavaScript files.") 571 "Mode for JavaScript files.")
615 572
616 ;; VRML files 573 ;; VRML files
617 (define-generic-mode 'vrml-generic-mode 574 (define-generic-mode vrml-generic-mode
618 (list ?#) 575 (list ?#)
619 (list 576 (list
620 "DEF" 577 "DEF"
621 "NULL" 578 "NULL"
622 "USE" 579 "USE"
642 "texCoord" 599 "texCoord"
643 "texture" 600 "texture"
644 "textureTransform" 601 "textureTransform"
645 "title" 602 "title"
646 "transparency" 603 "transparency"
647 "type" 604 "type")
648 )
649 (list 605 (list
650 (list "USE\\s-+\\([-A-Za-z0-9_]+\\)" 606 (list "USE\\s-+\\([-A-Za-z0-9_]+\\)"
651 '(1 font-lock-constant-face)) 607 '(1 font-lock-constant-face))
652 (list "DEF\\s-+\\([-A-Za-z0-9_]+\\)\\s-+\\([A-Za-z0-9]+\\)\\s-*{" 608 (list "DEF\\s-+\\([-A-Za-z0-9_]+\\)\\s-+\\([A-Za-z0-9]+\\)\\s-*{"
653 '(1 font-lock-type-face) 609 '(1 font-lock-type-face)
654 '(2 font-lock-constant-face)) 610 '(2 font-lock-constant-face))
655 (list "^\\s-*\\([-A-Za-z0-9_]+\\)\\s-*{" 611 (list "^\\s-*\\([-A-Za-z0-9_]+\\)\\s-*{"
656 '(1 font-lock-function-name-face)) 612 '(1 font-lock-function-name-face))
657 (list 613 (list
658 "^\\s-*\\(geometry\\|appearance\\|material\\)\\s-+\\([-A-Za-z0-9_]+\\)" 614 "^\\s-*\\(geometry\\|appearance\\|material\\)\\s-+\\([-A-Za-z0-9_]+\\)"
659 '(2 font-lock-variable-name-face)) 615 '(2 font-lock-variable-name-face)))
660 )
661 (list "\\.wrl\\'") 616 (list "\\.wrl\\'")
662 (list 617 (list
663 (function 618 (function
664 (lambda () 619 (lambda ()
665 (setq imenu-generic-expression 620 (setq imenu-generic-expression
666 '((nil "^\\([A-Za-z0-9_]+\\)\\s-*{" 1) 621 '((nil "^\\([A-Za-z0-9_]+\\)\\s-*{" 1)
667 ("*Definitions*" 622 ("*Definitions*"
668 "DEF\\s-+\\([-A-Za-z0-9_]+\\)\\s-+\\([A-Za-z0-9]+\\)\\s-*{" 623 "DEF\\s-+\\([-A-Za-z0-9_]+\\)\\s-+\\([A-Za-z0-9]+\\)\\s-*{"
669 1))) 624 1))))))
670 )))
671 "Generic Mode for VRML files.") 625 "Generic Mode for VRML files.")
672 626
673 ;; Java Manifests 627 ;; Java Manifests
674 (define-generic-mode 'java-manifest-generic-mode 628 (define-generic-mode java-manifest-generic-mode
675 (list ?#) 629 (list ?#)
676 (list 630 (list
677 "Name" 631 "Name"
678 "Digest-Algorithms" 632 "Digest-Algorithms"
679 "Manifest-Version" 633 "Manifest-Version"
680 "Required-Version" 634 "Required-Version"
681 "Signature-Version" 635 "Signature-Version"
682 "Magic" 636 "Magic"
683 "Java-Bean" 637 "Java-Bean"
684 "Depends-On" 638 "Depends-On")
685 )
686 '(("^Name:\\s-+\\([^\n\r]*\\)$" 639 '(("^Name:\\s-+\\([^\n\r]*\\)$"
687 (1 font-lock-variable-name-face)) 640 (1 font-lock-variable-name-face))
688 ("^\\(Manifest\\|Required\\|Signature\\)-Version:\\s-+\\([^\n\r]*\\)$" 641 ("^\\(Manifest\\|Required\\|Signature\\)-Version:\\s-+\\([^\n\r]*\\)$"
689 (2 font-lock-constant-face)) 642 (2 font-lock-constant-face)))
690 )
691 (list "[mM][aA][nN][iI][fF][eE][sS][tT]\\.[mM][fF]\\'") 643 (list "[mM][aA][nN][iI][fF][eE][sS][tT]\\.[mM][fF]\\'")
692 nil 644 nil
693 "Mode for Java Manifest files") 645 "Mode for Java Manifest files")
694 646
695 ;; Java properties files 647 ;; Java properties files
696 (define-generic-mode 'java-properties-generic-mode 648 (define-generic-mode java-properties-generic-mode
697 (list ?! ?#) 649 (list ?! ?#)
698 nil 650 nil
699 (let ((java-properties-key 651 (let ((java-properties-key
700 "\\(\\([-A-Za-z0-9_\\./]\\|\\(\\\\[ =:]\\)\\)+\\)") 652 "\\(\\([-A-Za-z0-9_\\./]\\|\\(\\\\[ =:]\\)\\)+\\)")
701 (java-properties-value 653 (java-properties-value
702 "\\([^\r\n]*\\)") 654 "\\([^\r\n]*\\)"))
703 )
704 ;; Property and value can be separated in a number of different ways: 655 ;; Property and value can be separated in a number of different ways:
705 ;; * whitespace 656 ;; * whitespace
706 ;; * an equal sign 657 ;; * an equal sign
707 ;; * a colon 658 ;; * a colon
708 (mapcar 659 (mapcar
709 (function 660 (function
710 (lambda (elt) 661 (lambda (elt)
711 (list 662 (list
712 (concat "^" java-properties-key elt java-properties-value "$") 663 (concat "^" java-properties-key elt java-properties-value "$")
713 '(1 font-lock-constant-face) 664 '(1 font-lock-constant-face)
714 '(4 font-lock-variable-name-face) 665 '(4 font-lock-variable-name-face))))
715 )))
716 ;; These are the separators 666 ;; These are the separators
717 (list ":\\s-*" "\\s-+" "\\s-*=\\s-*") 667 (list ":\\s-*" "\\s-+" "\\s-*=\\s-*")))
718 )
719 )
720 nil 668 nil
721 (list 669 (list
722 (function 670 (function
723 (lambda () 671 (lambda ()
724 (setq imenu-generic-expression 672 (setq imenu-generic-expression
725 '((nil "^\\([^#! \t\n\r=:]+\\)" 1))) 673 '((nil "^\\([^#! \t\n\r=:]+\\)" 1))))))
726 )))
727 "Mode for Java properties files.") 674 "Mode for Java properties files.")
728 675
729 ;; C shell alias definitions 676 ;; C shell alias definitions
730 (and 677 (when (memq 'alias-generic-mode generic-extras-enable-list)
731 (memq 'alias-generic-mode generic-extras-enable-list) 678
732 679 (define-generic-mode alias-generic-mode
733 (define-generic-mode 'alias-generic-mode
734 (list ?#) 680 (list ?#)
735 (list "alias" "unalias") 681 (list "alias" "unalias")
736 '(("^alias\\s-+\\([-A-Za-z0-9_]+\\)\\s-+" 682 '(("^alias\\s-+\\([-A-Za-z0-9_]+\\)\\s-+"
737 (1 font-lock-variable-name-face)) 683 (1 font-lock-variable-name-face))
738 ("^unalias\\s-+\\([-A-Za-z0-9_]+\\)\\s-*$" 684 ("^unalias\\s-+\\([-A-Za-z0-9_]+\\)\\s-*$"
739 (1 font-lock-variable-name-face)) 685 (1 font-lock-variable-name-face)))
740 )
741 (list "alias\\'") 686 (list "alias\\'")
742 (list 687 (list
743 (function 688 (function
744 (lambda () 689 (lambda ()
745 (setq imenu-generic-expression 690 (setq imenu-generic-expression
746 '((nil "^\\(alias\\|unalias\\)\\s-+\\([-a-zA-Z0-9_]+\\)" 2))) 691 '((nil "^\\(alias\\|unalias\\)\\s-+\\([-a-zA-Z0-9_]+\\)" 2))))))
747 ))) 692 "Mode for C Shell alias files."))
748 "Mode for C Shell alias files.")
749 )
750 693
751 ;;; Windows RC files 694 ;;; Windows RC files
752 ;; Contributed by ACorreir@pervasive-sw.com (Alfred Correira) 695 ;; Contributed by ACorreir@pervasive-sw.com (Alfred Correira)
753 (and 696 (when (memq 'rc-generic-mode generic-extras-enable-list)
754 (memq 'rc-generic-mode generic-extras-enable-list) 697
755 698 (define-generic-mode rc-generic-mode
756 (define-generic-mode 'rc-generic-mode 699 ;; (list ?\/)
757 ;; (list ?\/) 700 (list "//")
758 (list "//") 701 '("ACCELERATORS"
759 '("ACCELERATORS" 702 "AUTO3STATE"
760 "AUTO3STATE" 703 "AUTOCHECKBOX"
761 "AUTOCHECKBOX" 704 "AUTORADIOBUTTON"
762 "AUTORADIOBUTTON" 705 "BITMAP"
763 "BITMAP" 706 "BOTTOMMARGIN"
764 "BOTTOMMARGIN" 707 "BUTTON"
765 "BUTTON" 708 "CAPTION"
766 "CAPTION" 709 "CHARACTERISTICS"
767 "CHARACTERISTICS" 710 "CHECKBOX"
768 "CHECKBOX" 711 "CLASS"
769 "CLASS" 712 "COMBOBOX"
770 "COMBOBOX" 713 "CONTROL"
771 "CONTROL" 714 "CTEXT"
772 "CTEXT" 715 "CURSOR"
773 "CURSOR" 716 "DEFPUSHBUTTON"
774 "DEFPUSHBUTTON" 717 "DESIGNINFO"
775 "DESIGNINFO" 718 "DIALOG"
776 "DIALOG" 719 "DISCARDABLE"
777 "DISCARDABLE" 720 "EDITTEXT"
778 "EDITTEXT" 721 "EXSTYLE"
779 "EXSTYLE" 722 "FONT"
780 "FONT" 723 "GROUPBOX"
781 "GROUPBOX" 724 "GUIDELINES"
782 "GUIDELINES" 725 "ICON"
783 "ICON" 726 "LANGUAGE"
784 "LANGUAGE" 727 "LEFTMARGIN"
785 "LEFTMARGIN" 728 "LISTBOX"
786 "LISTBOX" 729 "LTEXT"
787 "LTEXT" 730 "MENUITEM SEPARATOR"
788 "MENUITEM SEPARATOR" 731 "MENUITEM"
789 "MENUITEM" 732 "MENU"
790 "MENU" 733 "MOVEABLE"
791 "MOVEABLE" 734 "POPUP"
792 "POPUP" 735 "PRELOAD"
793 "PRELOAD" 736 "PURE"
794 "PURE" 737 "PUSHBOX"
795 "PUSHBOX" 738 "PUSHBUTTON"
796 "PUSHBUTTON" 739 "RADIOBUTTON"
797 "RADIOBUTTON" 740 "RCDATA"
798 "RCDATA" 741 "RIGHTMARGIN"
799 "RIGHTMARGIN" 742 "RTEXT"
800 "RTEXT" 743 "SCROLLBAR"
801 "SCROLLBAR" 744 "SEPARATOR"
802 "SEPARATOR" 745 "STATE3"
803 "STATE3" 746 "STRINGTABLE"
804 "STRINGTABLE" 747 "STYLE"
805 "STYLE" 748 "TEXTINCLUDE"
806 "TEXTINCLUDE" 749 "TOOLBAR"
807 "TOOLBAR" 750 "TOPMARGIN"
808 "TOPMARGIN" 751 "VERSIONINFO"
809 "VERSIONINFO" 752 "VERSION")
810 "VERSION" 753 ;; the choice of what tokens go where is somewhat arbitrary,
811 ) 754 ;; as is the choice of which value tokens are included, as
812 ;; the choice of what tokens go where is somewhat arbitrary, 755 ;; the choice of face for each token group
813 ;; as is the choice of which value tokens are included, as 756 (list
814 ;; the choice of face for each token group 757 (eval-when-compile
815 (list 758 (generic-make-keywords-list
816 (eval-when-compile 759 (list
817 (generic-make-keywords-list 760 "FILEFLAGSMASK"
818 (list 761 "FILEFLAGS"
819 "FILEFLAGSMASK" 762 "FILEOS"
820 "FILEFLAGS" 763 "FILESUBTYPE"
821 "FILEOS" 764 "FILETYPE"
822 "FILESUBTYPE" 765 "FILEVERSION"
823 "FILETYPE" 766 "PRODUCTVERSION")
824 "FILEVERSION" 767 'font-lock-type-face))
825 "PRODUCTVERSION" 768 (eval-when-compile
826 ) 'font-lock-type-face)) 769 (generic-make-keywords-list
827 (eval-when-compile 770 (list
828 (generic-make-keywords-list 771 "BEGIN"
829 (list 772 "BLOCK"
830 "BEGIN" 773 "END"
831 "BLOCK" 774 "VALUE")
832 "END" 775 'font-lock-function-name-face))
833 "VALUE" 776 '("^#[ \t]*include[ \t]+\\(<[^>\"\n]+>\\)" 1 font-lock-string-face)
834 ) 'font-lock-function-name-face)) 777 '("^#[ \t]*define[ \t]+\\(\\sw+\\)(" 1 font-lock-function-name-face)
835 '("^#[ \t]*include[ \t]+\\(<[^>\"\n]+>\\)" 1 font-lock-string-face) 778 '("^#[ \t]*\\(elif\\|if\\)\\>"
836 '("^#[ \t]*define[ \t]+\\(\\sw+\\)(" 1 font-lock-function-name-face) 779 ("\\<\\(defined\\)\\>[ \t]*(?\\(\\sw+\\)?" nil nil
837 '("^#[ \t]*\\(elif\\|if\\)\\>"
838 ("\\<\\(defined\\)\\>[ \t]*(?\\(\\sw+\\)?" nil nil
839 (1 font-lock-constant-face) (2 font-lock-variable-name-face nil t)))
840 '("^#[ \t]*\\(\\sw+\\)\\>[ \t]*\\(\\sw+\\)?"
841 (1 font-lock-constant-face) (2 font-lock-variable-name-face nil t))) 780 (1 font-lock-constant-face) (2 font-lock-variable-name-face nil t)))
842 (list "\\.[rR][cC]$") 781 '("^#[ \t]*\\(\\sw+\\)\\>[ \t]*\\(\\sw+\\)?"
843 nil 782 (1 font-lock-constant-face) (2 font-lock-variable-name-face nil t)))
844 "Generic mode for MS-Windows Resource files.")) 783 (list "\\.[rR][cC]$")
784 nil
785 "Generic mode for MS-Windows Resource files."))
845 786
846 ;; InstallShield RUL files 787 ;; InstallShield RUL files
847 ;; Contributed by Alfred.Correira@Pervasive.Com 788 ;; Contributed by Alfred.Correira@Pervasive.Com
848 ;; Bugfixes by "Rolf Sandau" <Rolf.Sandau@marconi.com> 789 ;; Bugfixes by "Rolf Sandau" <Rolf.Sandau@marconi.com>
849 (and 790 (when (memq 'rul-generic-mode generic-extras-enable-list)
850 (memq 'rul-generic-mode generic-extras-enable-list) 791
851 ;;; build the regexp strings using regexp-opt 792 ;;; build the regexp strings using regexp-opt
852 (defvar installshield-statement-keyword-list 793 (defvar installshield-statement-keyword-list
853 (list 794 (list
854 "abort" 795 "abort"
855 "begin" 796 "begin"
880 "then" 821 "then"
881 "to" 822 "to"
882 "typedef" 823 "typedef"
883 "until" 824 "until"
884 "void" 825 "void"
885 "while" 826 "while")
886 )
887 "Statement keywords used in InstallShield 3 and 5.") 827 "Statement keywords used in InstallShield 3 and 5.")
888 828
889 (defvar installshield-system-functions-list 829 (defvar installshield-system-functions-list
890 (list 830 (list
891 "AddFolderIcon" 831 "AddFolderIcon"
905 "BatchMoveEx" 845 "BatchMoveEx"
906 "BatchSetFileName" 846 "BatchSetFileName"
907 "ChangeDirectory" 847 "ChangeDirectory"
908 "CloseFile" 848 "CloseFile"
909 "CmdGetHwndDlg" 849 "CmdGetHwndDlg"
910 "ComponentAddItem" ; differs between IS3 and IS5 850 "ComponentAddItem" ; differs between IS3 and IS5
911 "ComponentCompareSizeRequired" ; IS5 only 851 "ComponentCompareSizeRequired" ; IS5 only
912 "ComponentDialog" 852 "ComponentDialog"
913 "ComponentError" ; IS5 only 853 "ComponentError" ; IS5 only
914 "ComponentFileEnum" ; IS5 only 854 "ComponentFileEnum" ; IS5 only
915 "ComponentFileInfo" ; IS5 only 855 "ComponentFileInfo" ; IS5 only
916 "ComponentFilterLanguage" ; IS5 only 856 "ComponentFilterLanguage" ; IS5 only
917 "ComponentFilterOS" ; IS5 only 857 "ComponentFilterOS" ; IS5 only
918 "ComponentGetData" ; IS5 only 858 "ComponentGetData" ; IS5 only
919 "ComponentGetItemInfo" ; IS3 only 859 "ComponentGetItemInfo" ; IS3 only
920 "ComponentGetItemSize" ; differs between IS3 and IS5 860 "ComponentGetItemSize" ; differs between IS3 and IS5
921 "ComponentIsItemSelected" ; differs between IS3 and IS5 861 "ComponentIsItemSelected" ; differs between IS3 and IS5
922 "ComponentListItems" 862 "ComponentListItems"
923 "ComponentMoveData" ; IS5 only 863 "ComponentMoveData" ; IS5 only
924 "ComponentSelectItem" ; differs between IS3 and IS5 864 "ComponentSelectItem" ; differs between IS3 and IS5
925 "ComponentSetData" ; IS5 only 865 "ComponentSetData" ; IS5 only
926 "ComponentSetItemInfo" ; IS3 only 866 "ComponentSetItemInfo" ; IS3 only
927 "ComponentSetTarget" ; IS5 only 867 "ComponentSetTarget" ; IS5 only
928 "ComponentSetupTypeEnum" ; IS5 only 868 "ComponentSetupTypeEnum" ; IS5 only
929 "ComponentSetupTypeGetData" ; IS5 only 869 "ComponentSetupTypeGetData" ; IS5 only
930 "ComponentSetupTypeSet" ; IS5 only 870 "ComponentSetupTypeSet" ; IS5 only
931 "ComponentTotalSize" 871 "ComponentTotalSize"
932 "ComponentValidate" ; IS5 only 872 "ComponentValidate" ; IS5 only
933 "CompressAdd" ; IS3 only 873 "CompressAdd" ; IS3 only
934 "CompressDel" ; IS3 only 874 "CompressDel" ; IS3 only
935 "CompressEnum" ; IS3 only 875 "CompressEnum" ; IS3 only
936 "CompressGet" ; IS3 only 876 "CompressGet" ; IS3 only
937 "CompressInfo" ; IS3 only 877 "CompressInfo" ; IS3 only
938 "CopyFile" 878 "CopyFile"
939 "CreateDir" 879 "CreateDir"
940 "CreateFile" 880 "CreateFile"
941 "CreateProgramFolder" 881 "CreateProgramFolder"
942 "DeinstallSetReference" ; IS5 only 882 "DeinstallSetReference" ; IS5 only
943 "DeinstallStart" 883 "DeinstallStart"
944 "Delay" 884 "Delay"
945 "DeleteDir" 885 "DeleteDir"
946 "DeleteFile" 886 "DeleteFile"
947 "DialogSetInfo" 887 "DialogSetInfo"
963 "EzDefineDialog" 903 "EzDefineDialog"
964 "FileCompare" 904 "FileCompare"
965 "FileDeleteLine" 905 "FileDeleteLine"
966 "FileGrep" 906 "FileGrep"
967 "FileInsertLine" 907 "FileInsertLine"
968 "FileSetBeginDefine" ; IS3 only 908 "FileSetBeginDefine" ; IS3 only
969 "FileSetEndDefine" ; IS3 only 909 "FileSetEndDefine" ; IS3 only
970 "FileSetPerformEz" ; IS3 only 910 "FileSetPerformEz" ; IS3 only
971 "FileSetPerform" ; IS3 only 911 "FileSetPerform" ; IS3 only
972 "FileSetReset" ; IS3 only 912 "FileSetReset" ; IS3 only
973 "FileSetRoot" ; IS3 only 913 "FileSetRoot" ; IS3 only
974 "FindAllDirs" 914 "FindAllDirs"
975 "FindAllFiles" 915 "FindAllFiles"
976 "FindFile" 916 "FindFile"
977 "FindWindow" 917 "FindWindow"
978 "GetDiskSpace" 918 "GetDiskSpace"
1022 "PathMove" 962 "PathMove"
1023 "PathSet" 963 "PathSet"
1024 "Path" 964 "Path"
1025 "PlaceBitmap" 965 "PlaceBitmap"
1026 "PlaceWindow" 966 "PlaceWindow"
1027 "PlayMMedia" ; IS5 only 967 "PlayMMedia" ; IS5 only
1028 "ProgDefGroupType" 968 "ProgDefGroupType"
1029 "RegDBCreateKeyEx" 969 "RegDBCreateKeyEx"
1030 "RegDBDeleteValue" 970 "RegDBDeleteValue"
1031 "RegDBGetItem" 971 "RegDBGetItem"
1032 "RegDBKeyExist" 972 "RegDBKeyExist"
1082 "SdRegisterUserEx" 1022 "SdRegisterUserEx"
1083 "SdRemoveEndSpace" 1023 "SdRemoveEndSpace"
1084 "SdSelectFolder" 1024 "SdSelectFolder"
1085 "SdSetSequentialItems" 1025 "SdSetSequentialItems"
1086 "SdSetStatic" 1026 "SdSetStatic"
1087 "SdSetupTypeEx" ; IS5 only 1027 "SdSetupTypeEx" ; IS5 only
1088 "SdSetupType" 1028 "SdSetupType"
1089 "SdShowAnyDialog" 1029 "SdShowAnyDialog"
1090 "SdShowDlgEdit1" 1030 "SdShowDlgEdit1"
1091 "SdShowDlgEdit2" 1031 "SdShowDlgEdit2"
1092 "SdShowDlgEdit3" 1032 "SdShowDlgEdit3"
1099 "SdWelcome" 1039 "SdWelcome"
1100 "SendMessage" 1040 "SendMessage"
1101 "SetColor" 1041 "SetColor"
1102 "SetFont" 1042 "SetFont"
1103 "SetDialogTitle" 1043 "SetDialogTitle"
1104 "SetDisplayEffect" ; IS5 only 1044 "SetDisplayEffect" ; IS5 only
1105 "SetFileInfo" 1045 "SetFileInfo"
1106 "SetForegroundWindow" 1046 "SetForegroundWindow"
1107 "SetStatusWindow" 1047 "SetStatusWindow"
1108 "SetTitle" 1048 "SetTitle"
1109 "SetupType" 1049 "SetupType"
1110 "ShowProgramFolder" 1050 "ShowProgramFolder"
1111 "Split" ; IS3 only 1051 "Split" ; IS3 only
1112 "SprintfBox" 1052 "SprintfBox"
1113 "Sprintf" 1053 "Sprintf"
1114 "StatusUpdate" 1054 "StatusUpdate"
1115 "StrCompare" 1055 "StrCompare"
1116 "StrFind" 1056 "StrFind"
1127 "VerGetFileVersion" 1067 "VerGetFileVersion"
1128 "WaitOnDialog" 1068 "WaitOnDialog"
1129 "Welcome" 1069 "Welcome"
1130 "WriteLine" 1070 "WriteLine"
1131 "WriteProfString" 1071 "WriteProfString"
1132 "XCopyFile" 1072 "XCopyFile")
1133 )
1134 "System functions defined in InstallShield 3 and 5.") 1073 "System functions defined in InstallShield 3 and 5.")
1135 1074
1136 (defvar installshield-system-variables-list 1075 (defvar installshield-system-variables-list
1137 (list 1076 (list
1138 "BATCH_INSTALL" 1077 "BATCH_INSTALL"
1161 "UNINST" 1100 "UNINST"
1162 "WINDIR" 1101 "WINDIR"
1163 "WINDISK" 1102 "WINDISK"
1164 "WINMAJOR" 1103 "WINMAJOR"
1165 "WINSYSDIR" 1104 "WINSYSDIR"
1166 "WINSYSDISK" 1105 "WINSYSDISK")
1167 )
1168 "System variables used in InstallShield 3 and 5.") 1106 "System variables used in InstallShield 3 and 5.")
1169 1107
1170 (defvar installshield-types-list 1108 (defvar installshield-types-list
1171 (list 1109 (list
1172 "BOOL" 1110 "BOOL"
1184 "POINTER" 1122 "POINTER"
1185 "QUAD" 1123 "QUAD"
1186 "RGB" 1124 "RGB"
1187 "SHORT" 1125 "SHORT"
1188 "STRINGLIST" 1126 "STRINGLIST"
1189 "STRING" 1127 "STRING")
1190 )
1191 "Type keywords used in InstallShield 3 and 5.") 1128 "Type keywords used in InstallShield 3 and 5.")
1192 1129
1193 ;;; some might want to skip highlighting these to improve performance 1130 ;;; some might want to skip highlighting these to improve performance
1194 (defvar installshield-funarg-constants-list 1131 (defvar installshield-funarg-constants-list
1195 (list 1132 (list
1395 "WARNING" 1332 "WARNING"
1396 "WINMAJOR" 1333 "WINMAJOR"
1397 "WINMINOR" 1334 "WINMINOR"
1398 "WIN32SINSTALLED" 1335 "WIN32SINSTALLED"
1399 "WIN32SMAJOR" 1336 "WIN32SMAJOR"
1400 "WIN32SMINOR" 1337 "WIN32SMINOR")
1401 )
1402 "Function argument constants used in InstallShield 3 and 5.") 1338 "Function argument constants used in InstallShield 3 and 5.")
1403 1339
1404 (progn 1340 (defvar rul-generic-mode-syntax-table nil
1405 (defvar rul-generic-mode-syntax-table nil 1341 "Syntax table to use in rul-generic-mode buffers.")
1406 "Syntax table to use in rul-generic-mode buffers.") 1342
1407 1343 (setq rul-generic-mode-syntax-table
1408 (setq rul-generic-mode-syntax-table 1344 (make-syntax-table c++-mode-syntax-table))
1409 (make-syntax-table c++-mode-syntax-table)) 1345
1410 1346 (modify-syntax-entry ?\r "> b" rul-generic-mode-syntax-table)
1411 (modify-syntax-entry ?\r "> b" rul-generic-mode-syntax-table) 1347 (modify-syntax-entry ?\n "> b" rul-generic-mode-syntax-table)
1412 (modify-syntax-entry ?\n "> b" rul-generic-mode-syntax-table) 1348
1413 1349 (modify-syntax-entry ?/ ". 124b" rul-generic-mode-syntax-table)
1414 (modify-syntax-entry ?/ ". 124b" rul-generic-mode-syntax-table) 1350 (modify-syntax-entry ?* ". 23" rul-generic-mode-syntax-table)
1415 (modify-syntax-entry ?* ". 23" rul-generic-mode-syntax-table) 1351
1416 1352 ;; here manually instead
1417 ;; here manually instead 1353 (defun generic-rul-mode-setup-function ()
1418 (defun generic-rul-mode-setup-function () 1354 (make-local-variable 'parse-sexp-ignore-comments)
1419 (make-local-variable 'parse-sexp-ignore-comments) 1355 (make-local-variable 'comment-start)
1420 (make-local-variable 'comment-start) 1356 (make-local-variable 'comment-start-skip)
1421 (make-local-variable 'comment-start-skip) 1357 (make-local-variable 'comment-end)
1422 (make-local-variable 'comment-end) 1358 (setq imenu-generic-expression
1423 (setq imenu-generic-expression 1359 '((nil "^function\\s-+\\([A-Za-z0-9_]+\\)" 1))
1424 '((nil "^function\\s-+\\([A-Za-z0-9_]+\\)" 1)) 1360 parse-sexp-ignore-comments t
1425 parse-sexp-ignore-comments t 1361 comment-end "*/"
1426 comment-end "*/" 1362 comment-start "/*"
1427 comment-start "/*" 1363 ;;; comment-end ""
1428 ;; comment-end "" 1364 ;;; comment-start "//"
1429 ;; comment-start "//" 1365 ;;; comment-start-skip ""
1430 ;; comment-start-skip "" 1366 )
1431 ) 1367 ;; (set-syntax-table rul-generic-mode-syntax-table)
1432 ;; (set-syntax-table rul-generic-mode-syntax-table) 1368 (setq font-lock-syntax-table rul-generic-mode-syntax-table))
1433 (setq font-lock-syntax-table rul-generic-mode-syntax-table) 1369
1434 ) 1370 ;; moved mode-definition behind defun-definition to be warning-free - 15.11.02/RSan
1435 1371 (define-generic-mode rul-generic-mode
1436 ;; moved mode-definition behind defun-definition to be warning-free - 15.11.02/RSan 1372 ;; Using "/*" and "*/" doesn't seem to be working right
1437 (define-generic-mode 'rul-generic-mode 1373 (list "//" '("/*" . "*/" ))
1438 ;; Using "/*" and "*/" doesn't seem to be working right 1374 installshield-statement-keyword-list
1439 (list "//" '("/*" . "*/" )) 1375 (list
1440 installshield-statement-keyword-list 1376 ;; preprocessor constructs
1441 (list 1377 '("#[ \t]*include[ \t]+\\(<[^>\"\n]+>\\)"
1442 ;; preprocessor constructs 1378 1 font-lock-string-face)
1443 '("#[ \t]*include[ \t]+\\(<[^>\"\n]+>\\)" 1379 '("#[ \t]*\\(\\sw+\\)\\>[ \t]*\\(\\sw+\\)?"
1444 1 font-lock-string-face) 1380 (1 font-lock-reference-face)
1445 '("#[ \t]*\\(\\sw+\\)\\>[ \t]*\\(\\sw+\\)?" 1381 (2 font-lock-variable-name-face nil t))
1446 (1 font-lock-reference-face) 1382 ;; indirect string constants
1447 (2 font-lock-variable-name-face nil t)) 1383 '("\\(@[A-Za-z][A-Za-z0-9_]+\\)" 1 font-lock-builtin-face)
1448 ;; indirect string constants 1384 ;; gotos
1449 '("\\(@[A-Za-z][A-Za-z0-9_]+\\)" 1 font-lock-builtin-face) 1385 '("[ \t]*\\(\\sw+:\\)" 1 font-lock-reference-face)
1450 ;; gotos 1386 '("\\<\\(goto\\)\\>[ \t]*\\(\\sw+\\)?"
1451 '("[ \t]*\\(\\sw+:\\)" 1 font-lock-reference-face) 1387 (1 font-lock-keyword-face)
1452 '("\\<\\(goto\\)\\>[ \t]*\\(\\sw+\\)?" 1388 (2 font-lock-reference-face nil t))
1453 (1 font-lock-keyword-face) 1389 ;; system variables
1454 (2 font-lock-reference-face nil t)) 1390 (generic-make-keywords-list
1455 ;; system variables 1391 installshield-system-variables-list
1456 (generic-make-keywords-list 1392 'font-lock-variable-name-face "[^_]" "[^_]")
1457 installshield-system-variables-list 1393 ;; system functions
1458 'font-lock-variable-name-face "[^_]" "[^_]") 1394 (generic-make-keywords-list
1459 ;; system functions 1395 installshield-system-functions-list
1460 (generic-make-keywords-list 1396 'font-lock-function-name-face "[^_]" "[^_]")
1461 installshield-system-functions-list 1397 ;; type keywords
1462 'font-lock-function-name-face "[^_]" "[^_]") 1398 (generic-make-keywords-list
1463 ;; type keywords 1399 installshield-types-list
1464 (generic-make-keywords-list 1400 'font-lock-type-face "[^_]" "[^_]")
1465 installshield-types-list 1401 ;; function argument constants
1466 'font-lock-type-face "[^_]" "[^_]") 1402 (generic-make-keywords-list
1467 ;; function argument constants 1403 installshield-funarg-constants-list
1468 (generic-make-keywords-list 1404 'font-lock-variable-name-face "[^_]" "[^_]")) ; is this face the best choice?
1469 installshield-funarg-constants-list 1405 (list "\\.[rR][uU][lL]$")
1470 'font-lock-variable-name-face "[^_]" "[^_]") ; is this face the best choice? 1406 (list 'generic-rul-mode-setup-function)
1471 ) 1407 "Generic mode for InstallShield RUL files.")
1472 (list "\\.[rR][uU][lL]$") 1408
1473 (list 'generic-rul-mode-setup-function)
1474 "Generic mode for InstallShield RUL files.")
1475 )
1476 (define-skeleton rul-if 1409 (define-skeleton rul-if
1477 "Insert an if statement." 1410 "Insert an if statement."
1478 "condition: " 1411 "condition: "
1479 "if(" str ") then" \n 1412 "if(" str ") then" \n
1480 > _ \n 1413 > _ \n
1481 ( "other condition, %s: " 1414 ( "other condition, %s: "
1482 > "elseif(" str ") then" \n 1415 > "elseif(" str ") then" \n
1483 > \n) 1416 > \n)
1484 > "else" \n 1417 > "else" \n
1485 > \n 1418 > \n
1486 resume: 1419 resume:
1487 > "endif;" 1420 > "endif;")
1488 )
1489 1421
1490 (define-skeleton rul-function 1422 (define-skeleton rul-function
1491 "Insert a function statement." 1423 "Insert a function statement."
1492 "function: " 1424 "function: "
1493 "function " str " ()" \n 1425 "function " str " ()" \n
1494 ( "local variables, %s: " 1426 ( "local variables, %s: "
1495 > " " str ";" \n) 1427 > " " str ";" \n)
1496 > "begin" \n 1428 > "begin" \n
1497 > _ \n 1429 > _ \n
1498 resume: 1430 resume:
1499 > "end;") 1431 > "end;"))
1500
1501 )
1502 1432
1503 ;; Additions by ACorreir@pervasive-sw.com (Alfred Correira) 1433 ;; Additions by ACorreir@pervasive-sw.com (Alfred Correira)
1504 (define-generic-mode 'mailrc-generic-mode 1434 (define-generic-mode mailrc-generic-mode
1505 (list ?#) 1435 (list ?#)
1506 (list 1436 (list
1507 "alias" 1437 "alias"
1508 "else" 1438 "else"
1509 "endif" 1439 "endif"
1510 "group" 1440 "group"
1511 "if" 1441 "if"
1512 "ignore" 1442 "ignore"
1513 "set" 1443 "set"
1514 "source" 1444 "source"
1515 "unset" 1445 "unset")
1516 )
1517 '(("^\\s-*\\(alias\\|group\\)\\s-+\\([-A-Za-z0-9_]+\\)\\s-+\\([^\n\r#]*\\)\\(#.*\\)?$" 1446 '(("^\\s-*\\(alias\\|group\\)\\s-+\\([-A-Za-z0-9_]+\\)\\s-+\\([^\n\r#]*\\)\\(#.*\\)?$"
1518 (2 font-lock-constant-face) (3 font-lock-variable-name-face)) 1447 (2 font-lock-constant-face) (3 font-lock-variable-name-face))
1519 ("^\\s-*\\(unset\\|set\\|ignore\\)\\s-+\\([-A-Za-z0-9_]+\\)=?\\([^\n\r#]*\\)\\(#.*\\)?$" 1448 ("^\\s-*\\(unset\\|set\\|ignore\\)\\s-+\\([-A-Za-z0-9_]+\\)=?\\([^\n\r#]*\\)\\(#.*\\)?$"
1520 (2 font-lock-constant-face) (3 font-lock-variable-name-face)) 1449 (2 font-lock-constant-face) (3 font-lock-variable-name-face))
1521 ("^\\s-*\\(source\\)\\s-+\\([^\n\r#]*\\)\\(#.*\\)?$" 1450 ("^\\s-*\\(source\\)\\s-+\\([^\n\r#]*\\)\\(#.*\\)?$"
1523 (list "\\.mailrc\\'") 1452 (list "\\.mailrc\\'")
1524 nil 1453 nil
1525 "Mode for mailrc files.") 1454 "Mode for mailrc files.")
1526 1455
1527 ;; Inetd.conf 1456 ;; Inetd.conf
1528 (and 1457 (when (memq 'inetd-conf-generic-mode generic-extras-enable-list)
1529 (memq 'inetd-conf-generic-mode generic-extras-enable-list) 1458
1530 1459 (define-generic-mode inetd-conf-generic-mode
1531 (define-generic-mode 'inetd-conf-generic-mode
1532 (list ?#) 1460 (list ?#)
1533 (list 1461 (list
1534 "stream" 1462 "stream"
1535 "dgram" 1463 "dgram"
1536 "tcp" 1464 "tcp"
1537 "udp" 1465 "udp"
1538 "wait" 1466 "wait"
1539 "nowait" 1467 "nowait"
1540 "internal" 1468 "internal")
1541 ) 1469 '(("^\\([-A-Za-z0-9_]+\\)"
1542 '( 1470 1 'font-lock-type-face))
1543 ("^\\([-A-Za-z0-9_]+\\)"
1544 1 'font-lock-type-face)
1545 )
1546 '("/etc/inetd.conf\\'") 1471 '("/etc/inetd.conf\\'")
1547 (list 1472 (list
1548 (function 1473 (function
1549 (lambda () 1474 (lambda ()
1550 (setq imenu-generic-expression 1475 (setq imenu-generic-expression
1551 '((nil "^\\([-A-Za-z0-9_]+\\)" 1))) 1476 '((nil "^\\([-A-Za-z0-9_]+\\)" 1))))))))
1552 )))
1553 )
1554 )
1555 1477
1556 ;; Services 1478 ;; Services
1557 (and 1479 (when (memq 'etc-services-generic-mode generic-extras-enable-list)
1558 (memq 'etc-services-generic-mode generic-extras-enable-list) 1480
1559 1481 (define-generic-mode etc-services-generic-mode
1560 (define-generic-mode 'etc-services-generic-mode
1561 (list ?#) 1482 (list ?#)
1562 (list 1483 (list
1563 "tcp" 1484 "tcp"
1564 "udp" 1485 "udp"
1565 "ddp" 1486 "ddp")
1566 ) 1487 '(("^\\([-A-Za-z0-9_]+\\)\\s-+\\([0-9]+\\)/"
1567 '(
1568 ("^\\([-A-Za-z0-9_]+\\)\\s-+\\([0-9]+\\)/"
1569 (1 'font-lock-type-face) 1488 (1 'font-lock-type-face)
1570 (2 'font-lock-variable-name-face) 1489 (2 'font-lock-variable-name-face)))
1571 )
1572 )
1573 '("/etc/services\\'") 1490 '("/etc/services\\'")
1574 (list 1491 (list
1575 (function 1492 (function
1576 (lambda () 1493 (lambda ()
1577 (setq imenu-generic-expression 1494 (setq imenu-generic-expression
1578 '((nil "^\\([-A-Za-z0-9_]+\\)" 1))) 1495 '((nil "^\\([-A-Za-z0-9_]+\\)" 1))))))))
1579 )))
1580 )
1581 )
1582 1496
1583 ;; Password and Group files 1497 ;; Password and Group files
1584 (and 1498 (when (memq 'etc-passwd-generic-mode generic-extras-enable-list)
1585 (memq 'etc-passwd-generic-mode generic-extras-enable-list) 1499
1586 1500 (define-generic-mode etc-passwd-generic-mode
1587 (define-generic-mode 'etc-passwd-generic-mode
1588 nil ;; No comment characters 1501 nil ;; No comment characters
1589 (list "root") ;; Only one keyword 1502 (list "root") ;; Only one keyword
1590 (list 1503 (list
1591 (list 1504 (list
1592 (concat 1505 (concat
1593 "^" 1506 "^"
1594 ;; User name -- Never blank! 1507 ;; User name -- Never blank!
1595 "\\([^:]+\\)" 1508 "\\([^:]+\\)"
1596 ":" 1509 ":"
1597 ;; Password, UID and GID 1510 ;; Password, UID and GID
1598 (mapconcat 1511 (mapconcat
1599 'identity 1512 'identity
1600 (make-list 3 "\\([^:]+\\)") 1513 (make-list 3 "\\([^:]+\\)")
1601 ":" 1514 ":")
1602 ) 1515 ":"
1603 ":" 1516 ;; GECOS/Name -- might be blank
1604 ;; GECOS/Name -- might be blank 1517 "\\([^:]*\\)"
1605 "\\([^:]*\\)" 1518 ":"
1606 ":" 1519 ;; Home directory and shell
1607 ;; Home directory and shell 1520 "\\([^:]+\\)"
1608 "\\([^:]+\\)" 1521 ":?"
1609 ":?" 1522 "\\([^:]*\\)"
1610 "\\([^:]*\\)" 1523 "$")
1611 "$" 1524 '(1 'font-lock-type-face)
1612 ) 1525 '(5 'font-lock-variable-name-face)
1613 '(1 'font-lock-type-face) 1526 '(6 'font-lock-constant-face)
1614 '(5 'font-lock-variable-name-face) 1527 '(7 'font-lock-warning-face))
1615 '(6 'font-lock-constant-face) 1528 '("^\\([^:]+\\):\\([^:]*\\):\\([0-9]+\\):\\(.*\\)$"
1616 '(7 'font-lock-warning-face) 1529 (1 'font-lock-type-face)
1617 ) 1530 (4 'font-lock-variable-name-face)))
1618 '("^\\([^:]+\\):\\([^:]*\\):\\([0-9]+\\):\\(.*\\)$"
1619 (1 'font-lock-type-face)
1620 (4 'font-lock-variable-name-face)
1621 )
1622 )
1623 '("/etc/passwd\\'" "/etc/group\\'") 1531 '("/etc/passwd\\'" "/etc/group\\'")
1624 (list 1532 (list
1625 (function 1533 (function
1626 (lambda () 1534 (lambda ()
1627 (setq imenu-generic-expression 1535 (setq imenu-generic-expression
1628 '((nil "^\\([-A-Za-z0-9_]+\\):" 1))) 1536 '((nil "^\\([-A-Za-z0-9_]+\\):" 1))))))))
1629 )))
1630 )
1631 )
1632 1537
1633 ;; Fstab 1538 ;; Fstab
1634 (and 1539 (when (memq 'etc-fstab-generic-mode generic-extras-enable-list)
1635 (memq 'etc-fstab-generic-mode generic-extras-enable-list) 1540
1636 1541 (define-generic-mode etc-fstab-generic-mode
1637 (define-generic-mode 'etc-fstab-generic-mode
1638 (list ?#) 1542 (list ?#)
1639 (list 1543 (list
1544 "adfs"
1545 "affs"
1546 "autofs"
1547 "coda"
1548 "coherent"
1549 "cramfs"
1550 "devpts"
1551 "efs"
1640 "ext2" 1552 "ext2"
1641 "fd" 1553 "ext3"
1554 "hfs"
1555 "hpfs"
1642 "iso9660" 1556 "iso9660"
1557 "jfs"
1558 "minix"
1559 "msdos"
1560 "ncpfs"
1643 "nfs" 1561 "nfs"
1562 "ntfs"
1644 "proc" 1563 "proc"
1564 "qnx4"
1565 "reiserfs"
1566 "romfs"
1567 "smbfs"
1568 "sysv"
1569 "tmpfs"
1570 "udf"
1571 "ufs"
1572 "umsdos"
1573 "vfat"
1574 "xenix"
1575 "xfs"
1645 "swap" 1576 "swap"
1646 "ufs" 1577 "auto"
1647 ) 1578 "ignore")
1648 '( 1579 '(("^\\([/-A-Za-z0-9_]+\\)\\s-+\\([/-A-Za-z0-9_]+\\)"
1649 ("^\\([/-A-Za-z0-9_]+\\)\\s-+\\([/-A-Za-z0-9_]+\\)"
1650 (1 'font-lock-type-face) 1580 (1 'font-lock-type-face)
1651 (2 'font-lock-variable-name-face) 1581 (2 'font-lock-variable-name-face)))
1652 )
1653 )
1654 '("/etc/[v]*fstab\\'") 1582 '("/etc/[v]*fstab\\'")
1655 (list 1583 (list
1656 (function 1584 (function
1657 (lambda () 1585 (lambda ()
1658 (setq imenu-generic-expression 1586 (setq imenu-generic-expression
1659 '((nil "^\\([/-A-Za-z0-9_]+\\)\\s-+" 1))) 1587 '((nil "^\\([/-A-Za-z0-9_]+\\)\\s-+" 1))))))))
1660 )))
1661 )
1662 )
1663 1588
1664 ;; From Jacques Duthen <jacques.duthen@sncf.fr> 1589 ;; From Jacques Duthen <jacques.duthen@sncf.fr>
1665 (defvar show-tabs-generic-mode-font-lock-defaults-1 1590 (defvar show-tabs-generic-mode-font-lock-defaults-1
1666 '( ;; trailing spaces must come before... 1591 '( ;; trailing spaces must come before...
1667 ("[ \t]+$" . 'show-tabs-space-face) 1592 ("[ \t]+$" . 'show-tabs-space-face)
1668 ;; ...embedded tabs 1593 ;; ...embedded tabs
1669 ("[^\n\t]\\(\t+\\)" (1 'show-tabs-tab-face)))) 1594 ("[^\n\t]\\(\t+\\)" (1 'show-tabs-tab-face))))
1670 1595
1671 (defvar show-tabs-generic-mode-font-lock-defaults-2 1596 (defvar show-tabs-generic-mode-font-lock-defaults-2
1672 '( ;; trailing spaces must come before... 1597 '( ;; trailing spaces must come before...
1673 ("[ \t]+$" . 'show-tabs-space-face) 1598 ("[ \t]+$" . 'show-tabs-space-face)
1674 ;; ...tabs 1599 ;; ...tabs
1675 ("\t+" . 'show-tabs-tab-face))) 1600 ("\t+" . 'show-tabs-tab-face)))
1676 1601
1677 (defface show-tabs-tab-face 1602 (defface show-tabs-tab-face
1678 '((((class grayscale) (background light)) (:foreground "LightGray" :weight bold)) 1603 '((((class grayscale) (background light)) (:foreground "LightGray" :weight bold))
1679 (((class grayscale) (background dark)) (:foreground "DimGray" :weight bold)) 1604 (((class grayscale) (background dark)) (:foreground "DimGray" :weight bold))
1680 (((class color) (background light)) (:foreground "red")) 1605 (((class color) (background light)) (:foreground "red"))
1690 (((class color) (background dark)) (:foreground "yellow")) 1615 (((class color) (background dark)) (:foreground "yellow"))
1691 (t (:weight bold))) 1616 (t (:weight bold)))
1692 "Font Lock mode face used to highlight spaces." 1617 "Font Lock mode face used to highlight spaces."
1693 :group 'show-tabs) 1618 :group 'show-tabs)
1694 1619
1695 (define-generic-mode 'show-tabs-generic-mode 1620 (define-generic-mode show-tabs-generic-mode
1696 () ;; no comment char 1621 () ;; no comment char
1697 () ;; no keywords 1622 () ;; no keywords
1698 show-tabs-generic-mode-font-lock-defaults-1 1623 show-tabs-generic-mode-font-lock-defaults-1
1699 () ;; no auto-mode-alist 1624 () ;; no auto-mode-alist
1700 ;; (list 'show-tabs-generic-mode-hook-fun) 1625 ;; (list 'show-tabs-generic-mode-hook-fun)
1701 nil 1626 nil
1702 "Generic mode to show tabs and trailing spaces") 1627 "Generic mode to show tabs and trailing spaces")
1703 1628
1704 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1629 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1705 ;; DNS modes 1630 ;; DNS modes
1706 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1631 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1707 1632
1708 (define-generic-mode 'named-boot-generic-mode 1633 (define-generic-mode named-boot-generic-mode
1709 ;;List of comment characters 1634 ;; List of comment characters
1710 (list ?\;) 1635 (list ?\;)
1711 ;;List of keywords 1636 ;; List of keywords
1712 (list "cache" "primary" "secondary" "forwarders" "limit" "options" 1637 (list "cache" "primary" "secondary" "forwarders" "limit" "options"
1713 "directory" "check-names") 1638 "directory" "check-names")
1714 ;;List of additional font-lock-expressions 1639 ;; List of additional font-lock-expressions
1715 (list 1640 (list
1716 (list "\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 'font-lock-constant-face) 1641 (list "\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 'font-lock-constant-face)
1717 (list "^directory\\s-+\\(.*\\)" 1 'font-lock-variable-name-face) 1642 (list "^directory\\s-+\\(.*\\)" 1 'font-lock-variable-name-face)
1718 (list "^\\(primary\\|cache\\)\\s-+\\([.A-Za-z]+\\)\\s-+\\(.*\\)" 1643 (list "^\\(primary\\|cache\\)\\s-+\\([.A-Za-z]+\\)\\s-+\\(.*\\)"
1719 (list 2 'font-lock-variable-name-face) 1644 (list 2 'font-lock-variable-name-face)
1720 (list 3 'font-lock-constant-face)) 1645 (list 3 'font-lock-constant-face)))
1721 ) 1646 ;; List of additional automode-alist expressions
1722 ;;List of additional automode-alist expressions
1723 (list "/etc/named.boot\\'") 1647 (list "/etc/named.boot\\'")
1724 ;;List of set up functions to call 1648 ;; List of set up functions to call
1725 nil 1649 nil)
1726 ) 1650
1727 1651 (define-generic-mode named-database-generic-mode
1728 (define-generic-mode 'named-database-generic-mode 1652 ;; List of comment characters
1729 ;;List of comment characters
1730 (list ?\;) 1653 (list ?\;)
1731 ;;List of keywords 1654 ;; List of keywords
1732 (list "IN" "NS" "CNAME" "SOA" "PTR" "MX" "A") 1655 (list "IN" "NS" "CNAME" "SOA" "PTR" "MX" "A")
1733 ;;List of additional font-lock-expressions 1656 ;; List of additional font-lock-expressions
1734 (list 1657 (list
1735 (list "\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 'font-lock-constant-face) 1658 (list "\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 'font-lock-constant-face)
1736 (list "^\\([.A-Za-z0-9]+\\)" 1 'font-lock-variable-name-face) 1659 (list "^\\([.A-Za-z0-9]+\\)" 1 'font-lock-variable-name-face))
1737 ) 1660 ;; List of additional automode-alist expressions
1738 ;;List of additional automode-alist expressions 1661 nil
1739 nil 1662 ;; List of set up functions to call
1740 ;;List of set up functions to call 1663 nil)
1741 nil
1742 )
1743 1664
1744 (defvar named-database-time-string "%Y%m%d%H" 1665 (defvar named-database-time-string "%Y%m%d%H"
1745 "Timestring for named serial numbers.") 1666 "Timestring for named serial numbers.")
1746 1667
1747 (defun named-database-print-serial () 1668 (defun named-database-print-serial ()
1748 "Print a serial number based on the current date." 1669 "Print a serial number based on the current date."
1749 (interactive) 1670 (interactive)
1750 (insert (format-time-string named-database-time-string (current-time))) 1671 (insert (format-time-string named-database-time-string (current-time))))
1751 ) 1672
1752 1673 (define-generic-mode resolve-conf-generic-mode
1753 (define-generic-mode 'resolve-conf-generic-mode 1674 ;; List of comment characters
1754 ;;List of comment characters
1755 (list ?#) 1675 (list ?#)
1756 ;;List of keywords 1676 ;; List of keywords
1757 (list "nameserver" "domain" "search" "sortlist" "options") 1677 (list "nameserver" "domain" "search" "sortlist" "options")
1758 ;;List of additional font-lock-expressions 1678 ;; List of additional font-lock-expressions
1759 nil 1679 nil
1760 ;;List of additional automode-alist expressions 1680 ;; List of additional automode-alist expressions
1761 (list "/etc/resolv[e]?.conf\\'") 1681 (list "/etc/resolv[e]?.conf\\'")
1762 ;;List of set up functions to call 1682 ;; List of set up functions to call
1763 nil 1683 nil)
1764 )
1765 1684
1766 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1685 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1767 ;; Modes for spice and common electrical engineering circuit netlist formats 1686 ;; Modes for spice and common electrical engineering circuit netlist formats
1768 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1687 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1769 1688
1770 (define-generic-mode 'spice-generic-mode 1689 (define-generic-mode spice-generic-mode
1771 nil 1690 nil
1772 (list 1691 (list
1773 "and" 1692 "and"
1774 "cccs" 1693 "cccs"
1775 "ccvs" 1694 "ccvs"
1782 "ppwl" 1701 "ppwl"
1783 "pwl" 1702 "pwl"
1784 "vccap" 1703 "vccap"
1785 "vccs" 1704 "vccs"
1786 "vcr" 1705 "vcr"
1787 "vcvs" 1706 "vcvs")
1788 )
1789 '( 1707 '(
1790 ("^\\s-*\\([*].*\\)" 1 'font-lock-comment-face) 1708 ("^\\s-*\\([*].*\\)" 1 'font-lock-comment-face)
1791 (" \\(\\$ .*\\)$" 1 'font-lock-comment-face) 1709 (" \\(\\$ .*\\)$" 1 'font-lock-comment-face)
1792 ("^\\(\\$ .*\\)$" 1 'font-lock-comment-face) 1710 ("^\\(\\$ .*\\)$" 1 'font-lock-comment-face)
1793 ("\\([*].*\\)" 1 'font-lock-comment-face) 1711 ("\\([*].*\\)" 1 'font-lock-comment-face)
1794 ("^\\([+]\\)" 1 'font-lock-string-face) 1712 ("^\\([+]\\)" 1 'font-lock-string-face)
1795 ("^\\s-*\\([.]\\w+\\>\\)" 1 'font-lock-keyword-face) 1713 ("^\\s-*\\([.]\\w+\\>\\)" 1 'font-lock-keyword-face)
1796 ("\\(\\([.]\\|_\\|\\w\\)+\\)\\s-*=" 1 'font-lock-variable-name-face) 1714 ("\\(\\([.]\\|_\\|\\w\\)+\\)\\s-*=" 1 'font-lock-variable-name-face)
1797 ("\\('[^']+'\\)" 1 'font-lock-string-face) 1715 ("\\('[^']+'\\)" 1 'font-lock-string-face)
1798 ("\\(\"[^\"]+\"\\)" 1 'font-lock-string-face) 1716 ("\\(\"[^\"]+\"\\)" 1 'font-lock-string-face))
1799 )
1800 (list "\\.[sS][pP]\\'" 1717 (list "\\.[sS][pP]\\'"
1801 "\\.[sS][pP][iI]\\'" 1718 "\\.[sS][pP][iI]\\'"
1802 "\\.[sS][pP][iI][cC][eE]\\'" 1719 "\\.[sS][pP][iI][cC][eE]\\'"
1803 "\\.[iI][nN][cC]\\'") 1720 "\\.[iI][nN][cC]\\'")
1804 (list 1721 (list
1805 'generic-bracket-support 1722 'generic-bracket-support
1806 ;; Make keywords case-insensitive 1723 ;; Make keywords case-insensitive
1807 (function 1724 (function
1808 (lambda() 1725 (lambda()
1809 (setq font-lock-defaults (list 'generic-font-lock-defaults nil t)))) 1726 (setq font-lock-defaults (list 'generic-font-lock-defaults nil t)))))
1810 ) 1727 "Generic mode for SPICE circuit netlist files.")
1811 "Generic mode for SPICE circuit netlist files." 1728
1812 ) 1729 (define-generic-mode ibis-generic-mode
1813
1814 (define-generic-mode 'ibis-generic-mode
1815 (list ?|) 1730 (list ?|)
1816 nil 1731 nil
1817 '( 1732 '(
1818 ("[[]\\([^]]*\\)[]]" 1 'font-lock-keyword-face) 1733 ("[[]\\([^]]*\\)[]]" 1 'font-lock-keyword-face)
1819 ("\\(\\(_\\|\\w\\)+\\)\\s-*=" 1 'font-lock-variable-name-face) 1734 ("\\(\\(_\\|\\w\\)+\\)\\s-*=" 1 'font-lock-variable-name-face))
1820 )
1821 (list "\\.[iI][bB][sS]\\'") 1735 (list "\\.[iI][bB][sS]\\'")
1822 (list 'generic-bracket-support) 1736 (list 'generic-bracket-support)
1823 "Generic mode for IBIS circuit netlist files." 1737 "Generic mode for IBIS circuit netlist files.")
1824 ) 1738
1825 1739 (define-generic-mode astap-generic-mode
1826 (define-generic-mode 'astap-generic-mode
1827 nil 1740 nil
1828 (list 1741 (list
1829 "analyze" 1742 "analyze"
1830 "description" 1743 "description"
1831 "elements" 1744 "elements"
1836 "model" 1749 "model"
1837 "outputs" 1750 "outputs"
1838 "print" 1751 "print"
1839 "run" 1752 "run"
1840 "controls" 1753 "controls"
1841 "table" 1754 "table")
1842 ) 1755 '(("^\\s-*\\([*].*\\)" 1 'font-lock-comment-face)
1843 '(
1844 ("^\\s-*\\([*].*\\)" 1 'font-lock-comment-face)
1845 (";\\s-*\\([*].*\\)" 1 'font-lock-comment-face) 1756 (";\\s-*\\([*].*\\)" 1 'font-lock-comment-face)
1846 ("^\\s-*\\([.]\\w+\\>\\)" 1 'font-lock-keyword-face) 1757 ("^\\s-*\\([.]\\w+\\>\\)" 1 'font-lock-keyword-face)
1847 ("\\('[^']+'\\)" 1 'font-lock-string-face) 1758 ("\\('[^']+'\\)" 1 'font-lock-string-face)
1848 ("\\(\"[^\"]+\"\\)" 1 'font-lock-string-face) 1759 ("\\(\"[^\"]+\"\\)" 1 'font-lock-string-face)
1849 ("[(,]\\s-*\\(\\([.]\\|_\\|\\w\\)+\\)\\s-*=" 1 'font-lock-variable-name-face) 1760 ("[(,]\\s-*\\(\\([.]\\|_\\|\\w\\)+\\)\\s-*=" 1 'font-lock-variable-name-face))
1850 )
1851 (list "\\.[aA][pP]\\'" 1761 (list "\\.[aA][pP]\\'"
1852 "\\.[aA][sS][xX]\\'" 1762 "\\.[aA][sS][xX]\\'"
1853 "\\.[aA][sS][tT][aA][pP]\\'" 1763 "\\.[aA][sS][tT][aA][pP]\\'"
1854 "\\.[pP][sS][pP]\\'" 1764 "\\.[pP][sS][pP]\\'"
1855 "\\.[dD][eE][cC][kK]\\'" 1765 "\\.[dD][eE][cC][kK]\\'"
1857 (list 1767 (list
1858 'generic-bracket-support 1768 'generic-bracket-support
1859 ;; Make keywords case-insensitive 1769 ;; Make keywords case-insensitive
1860 (function 1770 (function
1861 (lambda() 1771 (lambda()
1862 (setq font-lock-defaults (list 'generic-font-lock-defaults nil t)))) 1772 (setq font-lock-defaults (list 'generic-font-lock-defaults nil t)))))
1863 ) 1773 "Generic mode for ASTAP circuit netlist files.")
1864 "Generic mode for ASTAP circuit netlist files." 1774
1865 ) 1775 (define-generic-mode etc-modules-conf-generic-mode
1866 1776 ;; List of comment characters
1867 (define-generic-mode 'etc-modules-conf-generic-mode
1868 ;;List of comment characters
1869 (list ?#) 1777 (list ?#)
1870 ;;List of keywords 1778 ;; List of keywords
1871 (list 1779 (list
1872 "above" 1780 "above"
1873 "alias" 1781 "alias"
1874 "below" 1782 "below"
1875 "define" 1783 "define"
1898 "post-remove" 1806 "post-remove"
1899 "pre-install" 1807 "pre-install"
1900 "pre-remove" 1808 "pre-remove"
1901 "remove" 1809 "remove"
1902 "persistdir") 1810 "persistdir")
1903 ;;List of additional font-lock-expressions 1811 ;; List of additional font-lock-expressions
1904 nil 1812 nil
1905 ;;List of additional automode-alist expressions 1813 ;; List of additional automode-alist expressions
1906 (list "/etc/modules.conf" "/etc/conf.modules") 1814 (list "/etc/modules.conf" "/etc/conf.modules")
1907 ;;List of set up functions to call 1815 ;; List of set up functions to call
1908 nil 1816 nil)
1909 )
1910 1817
1911 (provide 'generic-x) 1818 (provide 'generic-x)
1912 1819
1913 ;;; arch-tag: cde692a5-9ff6-4506-9999-c67999c2bdb5 1820 ;;; arch-tag: cde692a5-9ff6-4506-9999-c67999c2bdb5
1914 ;;; generic-x.el ends here 1821 ;;; generic-x.el ends here