author | Oleksandr Gavenko <gavenkoa@gmail.com> |
Thu, 11 Feb 2010 23:57:52 +0200 | |
changeset 313 | cc4f337997fd |
parent 312 | 6f57f1693e65 |
parent 311 | 4b8f829ab2ab |
child 315 | 5a73363c03f9 |
permissions | -rw-r--r-- |
273
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
1 |
;;; bat-file-mode.el --- batch file major mode |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
2 |
|
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
3 |
;; Copyright (C) 2010 by Oleksandr Gavenko <gavenkoa@gmail.com> |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
4 |
|
279
fd6164dfec82
Update copyright statement and year.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
273
diff
changeset
|
5 |
;; You can do anything with this file without any warranty. |
fd6164dfec82
Update copyright statement and year.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
273
diff
changeset
|
6 |
|
273
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
7 |
;; Author: Oleksandr Gavenko <gavenkoa@gmail.com> |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
8 |
;; Maintainer: Oleksandr Gavenko <gavenkoa@gmail.com> |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
9 |
;; Created: 2010-01-28 |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
10 |
;; Version: 0.1 |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
11 |
;; Keywords: languages |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
12 |
|
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
13 |
;;; Commentary: |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
14 |
;; |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
15 |
;; Very pure highlighting and not all available syntax. |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
16 |
|
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
17 |
;;; Code: |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
18 |
|
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
19 |
;;;###autoload |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
20 |
(define-generic-mode 'bat-file-mode |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
21 |
(list "REM " ":: ") |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
22 |
nil |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
23 |
'( |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
24 |
("\\(:[[:alnum:]_]+\\)" (1 'font-lock-function-name-face)) |
307
cb789e9ce92a
Added highliting for some keyword.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
306
diff
changeset
|
25 |
("\\<\\([iI][fF]\\|[eE][lL][sS][eE]\\|[fF][oO][rR]\\|[iI][nN]\\|[dD][oO]\\|[gG][oO][tT][oO]\ |
305
732fe4548ed4
Added highlighting for variavles and some keywords.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
279
diff
changeset
|
26 |
\\|[nN][oO][tT]\\|[eE][rR][rR][oO][rR][lL][eE][vV][eE][lL]\ |
732fe4548ed4
Added highlighting for variavles and some keywords.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
279
diff
changeset
|
27 |
\\|[pP][aA][uU][sS][eE]\\|[eE][cC][hH][oO]\\|[pP][rR][oO][mM][pP][tT]\ |
732fe4548ed4
Added highlighting for variavles and some keywords.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
279
diff
changeset
|
28 |
\\|[cC][aA][lL][lL]\\|[sS][eE][tT]\\|[sS][tT][aA][rR][tT]\\)\\>" (1 'font-lock-keyword-face)) |
273
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
29 |
("\\(:[[:alpha:]][[:alnum:]_]*\\)" (1 'font-lock-function-name-face)) |
308
febb0a155d8d
Highlight -op and /op switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
307
diff
changeset
|
30 |
("[gG][oO][tT][oO][[:blank:]]+\\([[:alpha:]][[:alnum:]_]*\\)" (1 'font-lock-function-name-face)) |
311
4b8f829ab2ab
Highlight label after 'call'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
309
diff
changeset
|
31 |
("[cC][aA][lL][lL][[:blank:]]+\\(:[[:alpha:]][[:alnum:]_]*\\)" (1 'font-lock-function-name-face)) |
305
732fe4548ed4
Added highlighting for variavles and some keywords.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
279
diff
changeset
|
32 |
("\\(%[[:digit:]]\\|%%[[:alpha:]]\\|%[[:alpha:]][[:alnum:]]*%\\)" (1 'font-lock-variable-name-face)) |
308
febb0a155d8d
Highlight -op and /op switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
307
diff
changeset
|
33 |
("[sS][eE][tT][[:blank:]]+\\([[:alpha:]][[:alnum:]]*\\)[[:blank:]]*=" (1 'font-lock-variable-name-face)) |
febb0a155d8d
Highlight -op and /op switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
307
diff
changeset
|
34 |
("[[:blank:]]+\\([-/][[:alnum:]_.]+\\)" (1 'font-lock-preprocessor-face)) |
273
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
35 |
;; ("\\(\\%[a-z]\\)" (1 'font-lock-reference-face)) |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
36 |
;; ("\\(%\\sw+%\\)" (1 'font-lock-reference-face)) |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
37 |
;; ("\\(%[0-9]\\)" (1 'font-lock-reference-face)) |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
38 |
) |
312
6f57f1693e65
Fix extension for bat file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
309
diff
changeset
|
39 |
(list "\\.\\([bB][aA][tT]\\|[cC][mM][dD]\\)$") |
273
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
40 |
nil |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
41 |
"Generic mode for batch files.") |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
42 |
|
309
ea77f99a8369
Modify modify-syntax-entry by hook. Removed unused code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
308
diff
changeset
|
43 |
(add-hook |
ea77f99a8369
Modify modify-syntax-entry by hook. Removed unused code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
308
diff
changeset
|
44 |
'bat-file-mode-hook |
273
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
45 |
(lambda () |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
46 |
(modify-syntax-entry ?\" "\"") |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
47 |
(modify-syntax-entry ?' "\"") |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
48 |
(modify-syntax-entry ?\\ "\\") |
306
0d8df38892d5
Mark % as punctuation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
305
diff
changeset
|
49 |
(modify-syntax-entry ?% ".") |
273
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
50 |
(modify-syntax-entry ?= ".") |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
51 |
(modify-syntax-entry ?_ "w") |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
52 |
) |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
53 |
) |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
54 |
|
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
55 |
(provide 'bat-file-mode) |
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
56 |
|
3b0d646154dc
Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
57 |
;;; bat-file-mode.el ends here |