From: Stefan Monnier Date: Wed, 7 Aug 2013 22:53:18 +0000 (-0400) Subject: * lisp/progmodes/bat-mode.el (bat--syntax-propertize): New var. X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~1686^2~377 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f001e98ec5cc0d145a324f2d4062adbe44c16060;p=emacs.git * 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. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e1d366f0510..20c20097532 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,10 @@ 2013-08-07 Stefan Monnier + * 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. + * progmodes/bat-mode.el: Rename from dos.el. Use "bat-" prefix. (dos-mode-help): Remove. Use describe-mode (C-h m) instead. 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 @@ '("bash" "cat" "cp" "fgrep" "grep" "ls" "sed" "sh" "mv" "rm"))) `(("\\<_\\(call\\|goto\\)\\_>[ \t]+%?\\([A-Za-z0-9-_\\:.]+\\)%?" (2 font-lock-constant-face t)) - ("^[ \t]*\\(@?rem\\_>\\|::\\).*" - (0 font-lock-comment-face t)) ("^:[^:].*" . 'bat-label-face) ("\\<_\\(defined\\|set\\)\\_>[ \t]*\\(\\w+\\)" @@ -121,6 +119,7 @@ (defvar bat-mode-syntax-table (let ((table (make-syntax-table))) + (modify-syntax-entry ?\n ">" table) ;; Beware: `w' should not be used for non-alphabetic chars. (modify-syntax-entry ?~ "_" table) (modify-syntax-entry ?% "." table) @@ -132,6 +131,10 @@ (modify-syntax-entry ?\\ "." table) table)) +(defconst bat--syntax-propertize + (syntax-propertize-rules + ("^[ \t]*\\(?:\\(@?r\\)em\\_>\\|\\(?1::\\):\\).*" (1 "<")))) + ;; 4 User functions (defun bat-cmd-help (cmd) @@ -171,6 +174,7 @@ with `bat-cmd-help'. Navigate between sections using `imenu'. Run script using `bat-run' and `bat-run-args'.\n \\{bat-mode-map}" (setq-local comment-start "rem ") + (setq-local syntax-propertize-function bat--syntax-propertize) (setq-local font-lock-defaults '(bat-font-lock-keywords nil t)) ; case-insensitive keywords (setq-local imenu-generic-expression '((nil "^:[^:].*" 0)))