aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2013-08-07 18:53:18 -0400
committerStefan Monnier2013-08-07 18:53:18 -0400
commitf001e98ec5cc0d145a324f2d4062adbe44c16060 (patch)
tree2f33f174344c9148d297156fbaa704927c478476
parent7679edb1e0afb258cc80657a15eebcafcbdb7f81 (diff)
downloademacs-f001e98ec5cc0d145a324f2d4062adbe44c16060.tar.gz
emacs-f001e98ec5cc0d145a324f2d4062adbe44c16060.zip
* lisp/progmodes/bat-mode.el (bat--syntax-propertize): New var.
(bat-mode): Use it. (bat-mode-syntax-table): Mark \n as end-of-comment. (bat-font-lock-keywords): Remove comment rule.
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/progmodes/bat-mode.el8
2 files changed, 11 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index e1d366f0510..20c20097532 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,10 @@
12013-08-07 Stefan Monnier <monnier@iro.umontreal.ca> 12013-08-07 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * progmodes/bat-mode.el (bat--syntax-propertize): New var.
4 (bat-mode): Use it.
5 (bat-mode-syntax-table): Mark \n as end-of-comment.
6 (bat-font-lock-keywords): Remove comment rule.
7
3 * progmodes/bat-mode.el: Rename from dos.el. Use "bat-" prefix. 8 * progmodes/bat-mode.el: Rename from dos.el. Use "bat-" prefix.
4 (dos-mode-help): Remove. Use describe-mode (C-h m) instead. 9 (dos-mode-help): Remove. Use describe-mode (C-h m) instead.
5 10
diff --git a/lisp/progmodes/bat-mode.el b/lisp/progmodes/bat-mode.el
index 45c350e9847..2b6f9d3434d 100644
--- a/lisp/progmodes/bat-mode.el
+++ b/lisp/progmodes/bat-mode.el
@@ -80,8 +80,6 @@
80 '("bash" "cat" "cp" "fgrep" "grep" "ls" "sed" "sh" "mv" "rm"))) 80 '("bash" "cat" "cp" "fgrep" "grep" "ls" "sed" "sh" "mv" "rm")))
81 `(("\\<_\\(call\\|goto\\)\\_>[ \t]+%?\\([A-Za-z0-9-_\\:.]+\\)%?" 81 `(("\\<_\\(call\\|goto\\)\\_>[ \t]+%?\\([A-Za-z0-9-_\\:.]+\\)%?"
82 (2 font-lock-constant-face t)) 82 (2 font-lock-constant-face t))
83 ("^[ \t]*\\(@?rem\\_>\\|::\\).*"
84 (0 font-lock-comment-face t))
85 ("^:[^:].*" 83 ("^:[^:].*"
86 . 'bat-label-face) 84 . 'bat-label-face)
87 ("\\<_\\(defined\\|set\\)\\_>[ \t]*\\(\\w+\\)" 85 ("\\<_\\(defined\\|set\\)\\_>[ \t]*\\(\\w+\\)"
@@ -121,6 +119,7 @@
121 119
122(defvar bat-mode-syntax-table 120(defvar bat-mode-syntax-table
123 (let ((table (make-syntax-table))) 121 (let ((table (make-syntax-table)))
122 (modify-syntax-entry ?\n ">" table)
124 ;; Beware: `w' should not be used for non-alphabetic chars. 123 ;; Beware: `w' should not be used for non-alphabetic chars.
125 (modify-syntax-entry ?~ "_" table) 124 (modify-syntax-entry ?~ "_" table)
126 (modify-syntax-entry ?% "." table) 125 (modify-syntax-entry ?% "." table)
@@ -132,6 +131,10 @@
132 (modify-syntax-entry ?\\ "." table) 131 (modify-syntax-entry ?\\ "." table)
133 table)) 132 table))
134 133
134(defconst bat--syntax-propertize
135 (syntax-propertize-rules
136 ("^[ \t]*\\(?:\\(@?r\\)em\\_>\\|\\(?1::\\):\\).*" (1 "<"))))
137
135;; 4 User functions 138;; 4 User functions
136 139
137(defun bat-cmd-help (cmd) 140(defun bat-cmd-help (cmd)
@@ -171,6 +174,7 @@ with `bat-cmd-help'. Navigate between sections using `imenu'.
171Run script using `bat-run' and `bat-run-args'.\n 174Run script using `bat-run' and `bat-run-args'.\n
172\\{bat-mode-map}" 175\\{bat-mode-map}"
173 (setq-local comment-start "rem ") 176 (setq-local comment-start "rem ")
177 (setq-local syntax-propertize-function bat--syntax-propertize)
174 (setq-local font-lock-defaults 178 (setq-local font-lock-defaults
175 '(bat-font-lock-keywords nil t)) ; case-insensitive keywords 179 '(bat-font-lock-keywords nil t)) ; case-insensitive keywords
176 (setq-local imenu-generic-expression '((nil "^:[^:].*" 0))) 180 (setq-local imenu-generic-expression '((nil "^:[^:].*" 0)))