comparison lisp/progmodes/make-mode.el @ 90185:5b029ff3b08d

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-55 Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 320-323) - Update from CVS
author Miles Bader <miles@gnu.org>
date Thu, 26 May 2005 05:42:19 +0000
parents f042e7c0fe20 f09fbe52c543
children 01137c1fdbe9
comparison
equal deleted inserted replaced
90184:9e5e2f01c7ab 90185:5b029ff3b08d
482 '(("[^|&;<>()`\\\"' \t\n]\\(#+\\)" 1 "_") 482 '(("[^|&;<>()`\\\"' \t\n]\\(#+\\)" 1 "_")
483 ;; Change the syntax of a quoted newline so that it does not end a comment. 483 ;; Change the syntax of a quoted newline so that it does not end a comment.
484 ("\\\\\n" 0 "."))) 484 ("\\\\\n" 0 ".")))
485 485
486 (defvar makefile-imenu-generic-expression 486 (defvar makefile-imenu-generic-expression
487 `(("Dependencies" ,makefile-dependency-regex 1) 487 `(("Dependencies" makefile-previous-dependency 1)
488 ("Macro Assignment" ,makefile-macroassign-regex 1)) 488 ("Macro Assignment" ,makefile-macroassign-regex 1))
489 "Imenu generic expression for Makefile mode. See `imenu-generic-expression'.") 489 "Imenu generic expression for Makefile mode. See `imenu-generic-expression'.")
490 490
491 ;;; ------------------------------------------------------------ 491 ;;; ------------------------------------------------------------
492 ;;; The following configurable variables are used in the 492 ;;; The following configurable variables are used in the
852 (set (make-local-variable 'makefile-rule-action-regex) 852 (set (make-local-variable 'makefile-rule-action-regex)
853 ;; Don't care about initial tab, but I don't know how to font-lock correctly without. 853 ;; Don't care about initial tab, but I don't know how to font-lock correctly without.
854 "^\t[ \t]*\\(\\(?:\\(?:noecho\\|ignore[-_]error\\|[-@]+\\)[ \t]*\\)*\\)\\(\\(&\\S +\\)?\\(?:.+\\\\\n\\)*.+\\)") 854 "^\t[ \t]*\\(\\(?:\\(?:noecho\\|ignore[-_]error\\|[-@]+\\)[ \t]*\\)*\\)\\(\\(&\\S +\\)?\\(?:.+\\\\\n\\)*.+\\)")
855 855
856 (setq font-lock-defaults 856 (setq font-lock-defaults
857 `(makefile-makepp-font-lock-keywords ,@(cdr font-lock-defaults)))) 857 `(makefile-makepp-font-lock-keywords ,@(cdr font-lock-defaults))
858 imenu-generic-expression
859 `(("Functions" "^[ \t]*\\(?:make\\)?sub[ \t]+\\([A-Za-z0-9_]+\\)" 1)
860 ,@imenu-generic-expression)))
858 861
859 ;;;###autoload 862 ;;;###autoload
860 (define-derived-mode makefile-bsdmake-mode makefile-mode "BSDmakefile" 863 (define-derived-mode makefile-bsdmake-mode makefile-mode "BSDmakefile"
861 "An adapted `makefile-mode' that knows about BSD make." 864 "An adapted `makefile-mode' that knows about BSD make."
862 (set (make-local-variable 'makefile-dependency-regex) 865 (set (make-local-variable 'makefile-dependency-regex)
864 "^ *\\(\\(?: *\\$\\(?:[({]\\(?:\\$\\(?:[({]\\(?:\\$\\(?:[^({]\\|.[^\n$#})]+?[})]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\| *[^ \n$#:=]+\\)+?\\)[ \t]*\\([:!]\\)\\(?:[ \t]*$\\|[^=\n]\\(?:[^#\n]*?;[ \t]*\\(.+\\)\\)?\\)") 867 "^ *\\(\\(?: *\\$\\(?:[({]\\(?:\\$\\(?:[({]\\(?:\\$\\(?:[^({]\\|.[^\n$#})]+?[})]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\| *[^ \n$#:=]+\\)+?\\)[ \t]*\\([:!]\\)\\(?:[ \t]*$\\|[^=\n]\\(?:[^#\n]*?;[ \t]*\\(.+\\)\\)?\\)")
865 (set (make-local-variable 'makefile-dependency-skip) "^:!") 868 (set (make-local-variable 'makefile-dependency-skip) "^:!")
866 (set (make-local-variable 'makefile-rule-action-regex) 869 (set (make-local-variable 'makefile-rule-action-regex)
867 "^\t[ \t]*\\([-+@]*\\)[ \t]*\\(\\(?:.+\\\\\n\\)*.+\\)") 870 "^\t[ \t]*\\([-+@]*\\)[ \t]*\\(\\(?:.+\\\\\n\\)*.+\\)")
868 (setq font-lock-defaults 871 (setq font-lock-defaults
869 `(makefile-bsdmake-font-lock-keywords ,@(cdr font-lock-defaults)) 872 `(makefile-bsdmake-font-lock-keywords ,@(cdr font-lock-defaults))))
870 imenu-generic-expression
871 `(("Dependencies" ,makefile-dependency-regex 1)
872 ,@(cdr imenu-generic-expression))))
873 873
874 874
875 875
876 ;;; Motion code. 876 ;;; Motion code.
877 877
1680 Checks that the colon has not already been fontified, else we 1680 Checks that the colon has not already been fontified, else we
1681 matched in a rule action." 1681 matched in a rule action."
1682 (catch 'found 1682 (catch 'found
1683 (let ((pt (point))) 1683 (let ((pt (point)))
1684 (while (progn (skip-chars-forward makefile-dependency-skip bound) 1684 (while (progn (skip-chars-forward makefile-dependency-skip bound)
1685 (not (eobp))) 1685 (< (point) (or bound (point-max))))
1686 (forward-char) 1686 (forward-char)
1687 (or (eq (char-after) ?=) 1687 (or (eq (char-after) ?=)
1688 (get-text-property (1- (point)) 'face) 1688 (get-text-property (1- (point)) 'face)
1689 (when (save-excursion 1689 (when (save-excursion
1690 (beginning-of-line) 1690 (beginning-of-line)