lisp/bat-file-mode.el
author Oleksandr Gavenko <gavenkoa@gmail.com>
Thu, 28 Jan 2010 21:28:44 +0200
changeset 273 3b0d646154dc
child 279 fd6164dfec82
permissions -rw-r--r--
Added base incomplete bat-file mode.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
;; Author: Oleksandr Gavenko <gavenkoa@gmail.com>
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
;; Maintainer: Oleksandr Gavenko <gavenkoa@gmail.com>
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
;; Created: 2010-01-28
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
;; Version: 0.1
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
;; Keywords: languages
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
;;; Commentary:
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
;; Very pure highlighting and not all available syntax.
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
;;; Code:
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
;;;###autoload
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
(define-generic-mode 'bat-file-mode
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
  (list "REM " ":: ")
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
  nil
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
  '(
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
    ("\\(:[[:alnum:]_]+\\)" (1 'font-lock-function-name-face))
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
    ("\\<\\([iI][fF]\\|[fF][oO][rR]\\|[gG][oO][tT][oO]\\|[pP][aA][uU][sS][eE]\\|[eE][cC][hH][oO]\\|[pP][rR][oO][mM][pP][tT]\\|[cC][aA][lL][lL]\\|[sS][eE][tT]\\|[sS][tT][aA][rR][tT]\\)\\>" (1 'font-lock-keyword-face))
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
    ("\\(:[[:alpha:]][[:alnum:]_]*\\)" (1 'font-lock-function-name-face))
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
    ;; ("\\(\\%[a-z]\\)" (1 'font-lock-reference-face))
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
    ;; ("\\(%\\sw+%\\)" (1 'font-lock-reference-face))
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    27
    ;; ("\\(%[0-9]\\)" (1 'font-lock-reference-face))
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    28
    )
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    29
  (list "\\.\\([bB][aA][tT]\\|[cC][mM][dD]\\|[nN][sS][hH]\\)$")
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
  nil
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    31
  "Generic mode for batch files.")
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    32
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    33
;; (autoload 'myfunction "mypackage" "Do what I say." t)
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    35
(setq bat-file-mode-hook
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    36
 (lambda ()
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    37
   (modify-syntax-entry ?\" "\"")
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
   (modify-syntax-entry ?' "\"")
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    39
   (modify-syntax-entry ?\\ "\\")
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
   (modify-syntax-entry ?= ".")
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
   (modify-syntax-entry ?_ "w")
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    42
   )
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    43
 )
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    45
;; (add-hook
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    46
;;  'bat-file-mode-hook
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    47
;;  (lambda ()
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    48
;;    (modify-syntax-entry ?\" "\"")
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
;;    (modify-syntax-entry ?' "\"")
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 ?= ".")
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    52
;;    (modify-syntax-entry ?_ "w")
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
;; .bat file gramma:
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
;; cmd ::= path { arg }
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    58
;; path ::=
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    59
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    60
(provide 'bat-file-mode)
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    61
3b0d646154dc Added base incomplete bat-file mode.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    62
;;; bat-file-mode.el ends here