changeset 62965:a078bb7e3d21

(makefile-targets-face, makefile-shell-face, makefile-makepp-perl-face): Add :version. (makefile-bsdmake-dependency-regex, makefile-makepp-rule-action-regex, makefile-bsdmake-rule-action-regex): New constants. (makefile-makepp-mode, makefile-bsdmake-mode): Use them.
author Daniel Pfeiffer <occitan@esperanto.org>
date Fri, 03 Jun 2005 08:42:33 +0000
parents 6b3810cab95a
children b17cee3b8861
files lisp/progmodes/make-mode.el
diffstat 1 files changed, 25 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/make-mode.el	Fri Jun 03 08:41:20 2005 +0000
+++ b/lisp/progmodes/make-mode.el	Fri Jun 03 08:42:33 2005 +0000
@@ -111,7 +111,8 @@
   '((t (:underline t)))
   "Face to use for additionally highlighting rule targets in Font-Lock mode."
   :group 'faces
-  :group 'makefile)
+  :group 'makefile
+  :version "22.1")
 
 (defface makefile-shell-face
   '((((class color) (background light)) (:background  "seashell1"))
@@ -119,7 +120,8 @@
     (t (:reverse-video t)))
   "Face to use for additionally highlighting Shell commands in Font-Lock mode."
   :group 'faces
-  :group 'makefile)
+  :group 'makefile
+  :version "22.1")
 
 (defface makefile-makepp-perl-face
   '((((class color) (background light)) (:background  "LightBlue1")) ; Camel Book
@@ -127,7 +129,8 @@
     (t (:reverse-video t)))
   "Face to use for additionally highlighting Perl code in Font-Lock mode."
   :group 'faces
-  :group 'makefile)
+  :group 'makefile
+  :version "22.1")
 
 (defcustom makefile-browser-buffer-name "*Macros and Targets*"
   "*Name of the macro- and target browser buffer."
@@ -262,6 +265,11 @@
   "^ *\\(\\(?: *\\$\\(?:[({]\\(?:\\$\\(?:[({]\\(?:\\$\\(?:[^({]\\|.[^\n$#})]+?[})]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\| *[^ \n$#:=]+\\)+?\\)[ \t]*\\(:\\)\\(?:[ \t]*$\\|[^=\n]\\(?:[^#\n]*?;[ \t]*\\(.+\\)\\)?\\)"
   "Regex used to find dependency lines in a makefile.")
 
+(defconst makefile-bsdmake-dependency-regex
+  (progn (string-match (regexp-quote "\\(:\\)") makefile-dependency-regex)
+	 (replace-match "\\([:!]\\)" t t makefile-dependency-regex))
+  "Regex used to find dependency lines in a BSD makefile.")
+
 (defvar makefile-dependency-skip "^:"
   "Characters to skip to find a line that might be a dependency.")
 
@@ -269,6 +277,16 @@
   "^\t[ \t]*\\([-@]*\\)[ \t]*\\(\\(?:.*\\\\\n\\)*.*\\)"
   "Regex used to highlight rule action lines in font lock mode.")
 
+(defconst makefile-makepp-rule-action-regex
+  ;; Don't care about initial tab, but I don't know how to font-lock correctly without.
+  "^\t[ \t]*\\(\\(?:\\(?:noecho\\|ignore[-_]error\\|[-@]+\\)[ \t]*\\)*\\)\\(\\(&\\S +\\)?\\(?:.*\\\\\n\\)*.*\\)"
+  "Regex used to highlight makepp rule action lines in font lock mode.")
+
+(defconst makefile-bsdmake-rule-action-regex
+  (progn (string-match "-@" makefile-rule-action-regex)
+	 (replace-match "-+@" t t makefile-rule-action-regex))
+  "Regex used to highlight BSD rule action lines in font lock mode.")
+
 ;; Note that the first and second subexpression is used by font lock.  Note
 ;; that if you change this regexp you might have to fix the imenu index in
 ;; makefile-imenu-generic-expression.
@@ -849,10 +867,8 @@
 ;;;###autoload
 (define-derived-mode makefile-makepp-mode makefile-mode "Makeppfile"
   "An adapted `makefile-mode' that knows about makepp."
-   (set (make-local-variable 'makefile-rule-action-regex)
-	;; Don't care about initial tab, but I don't know how to font-lock correctly without.
-	"^\t[ \t]*\\(\\(?:\\(?:noecho\\|ignore[-_]error\\|[-@]+\\)[ \t]*\\)*\\)\\(\\(&\\S +\\)?\\(?:.*\\\\\n\\)*.*\\)")
-
+  (set (make-local-variable 'makefile-rule-action-regex)
+       makefile-makepp-rule-action-regex)
   (setq font-lock-defaults
 	`(makefile-makepp-font-lock-keywords ,@(cdr font-lock-defaults))
 	imenu-generic-expression
@@ -863,11 +879,10 @@
 (define-derived-mode makefile-bsdmake-mode makefile-mode "BSDmakefile"
   "An adapted `makefile-mode' that knows about BSD make."
   (set (make-local-variable 'makefile-dependency-regex)
-       ;; Identical to default, except allows `!' instead of `:'.
-       "^ *\\(\\(?: *\\$\\(?:[({]\\(?:\\$\\(?:[({]\\(?:\\$\\(?:[^({]\\|.[^\n$#})]+?[})]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\| *[^ \n$#:=]+\\)+?\\)[ \t]*\\([:!]\\)\\(?:[ \t]*$\\|[^=\n]\\(?:[^#\n]*?;[ \t]*\\(.+\\)\\)?\\)")
+       makefile-bsdmake-dependency-regex)
   (set (make-local-variable 'makefile-dependency-skip) "^:!")
   (set (make-local-variable 'makefile-rule-action-regex)
-       "^\t[ \t]*\\([-+@]*\\)[ \t]*\\(\\(?:.*\\\\\n\\)*.*\\)")
+       makefile-bsdmake-rule-action-regex)
   (setq font-lock-defaults
 	`(makefile-bsdmake-font-lock-keywords ,@(cdr font-lock-defaults))))