From f001e98ec5cc0d145a324f2d4062adbe44c16060 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 7 Aug 2013 18:53:18 -0400 Subject: [PATCH] * 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. --- lisp/ChangeLog | 5 +++++ 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 @@ 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))) -- 2.39.2