diff options
| author | Stefan Monnier | 2013-08-07 18:53:18 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2013-08-07 18:53:18 -0400 |
| commit | f001e98ec5cc0d145a324f2d4062adbe44c16060 (patch) | |
| tree | 2f33f174344c9148d297156fbaa704927c478476 | |
| parent | 7679edb1e0afb258cc80657a15eebcafcbdb7f81 (diff) | |
| download | emacs-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/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/progmodes/bat-mode.el | 8 |
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 @@ | |||
| 1 | 2013-08-07 Stefan Monnier <monnier@iro.umontreal.ca> | 1 | 2013-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'. | |||
| 171 | Run script using `bat-run' and `bat-run-args'.\n | 174 | Run 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))) |