emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r113746: * lisp/progmodes/bat-mode.el (bat--syntax-p


From: Stefan Monnier
Subject: [Emacs-diffs] trunk r113746: * lisp/progmodes/bat-mode.el (bat--syntax-propertize): New var.
Date: Wed, 07 Aug 2013 22:53:21 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 113746
revision-id: address@hidden
parent: address@hidden
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Wed 2013-08-07 18:53:18 -0400
message:
  * 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.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/progmodes/bat-mode.el     dos.el-20130807152307-tdflff328dlln5w6-1
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-08-07 22:42:44 +0000
+++ b/lisp/ChangeLog    2013-08-07 22:53:18 +0000
@@ -1,5 +1,10 @@
 2013-08-07  Stefan Monnier  <address@hidden>
 
+       * 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.
 

=== modified file 'lisp/progmodes/bat-mode.el'
--- a/lisp/progmodes/bat-mode.el        2013-08-07 22:42:44 +0000
+++ b/lisp/progmodes/bat-mode.el        2013-08-07 22:53:18 +0000
@@ -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 @@
 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)))


reply via email to

[Prev in Thread] Current Thread [Next in Thread]