diff options
| author | Daniel Pfeiffer | 2005-05-21 02:46:37 +0000 |
|---|---|---|
| committer | Daniel Pfeiffer | 2005-05-21 02:46:37 +0000 |
| commit | 774cd45416f0d0bfb5b69ace8d10d35ea7e288ee (patch) | |
| tree | 825f5d5157c219d72ec4559565a0b051409ad1b0 | |
| parent | fb50d1e9db15111b5952a8709e4a5774ae34624b (diff) | |
| download | emacs-774cd45416f0d0bfb5b69ace8d10d35ea7e288ee.tar.gz emacs-774cd45416f0d0bfb5b69ace8d10d35ea7e288ee.zip | |
(makefile-imenu-generic-expression): Use function to find dependencies, because regexp alone is so complex, it easily goes into an endless loop.
(makefile-makepp-mode): Also add submenu for Perl functions defined in the makefile.
(makefile-bsdmake-mode): Special imenu-generic-expression no longer needed, due to function call.
(makefile-match-dependency): Take BOUND into account when checking if we're through.
| -rw-r--r-- | lisp/ChangeLog | 20 | ||||
| -rw-r--r-- | lisp/progmodes/make-mode.el | 14 |
2 files changed, 27 insertions, 7 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b14240139ad..65fd9a68889 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,23 @@ | |||
| 1 | 2005-05-21 Daniel Pfeiffer <occitan@esperanto.org> | ||
| 2 | |||
| 3 | * files.el (auto-mode-alist): Check GNUmakefile before makefile. | ||
| 4 | Default to makefile-bsdmake-mode on BSD systems. | ||
| 5 | |||
| 6 | * imenu.el (imenu-generic-expression, imenu--generic-function'): | ||
| 7 | REGEXP may also be a search function now. The part of doc-string | ||
| 8 | for describing the structure was 95% identical to that of | ||
| 9 | `imenu--generic-function'. Unify it there. | ||
| 10 | |||
| 11 | * progmodes/make-mode.el (makefile-imenu-generic-expression): Use | ||
| 12 | function to find dependencies, because regexp alone is so complex, | ||
| 13 | it easily goes into an endless loop. | ||
| 14 | (makefile-makepp-mode): Also add submenu for Perl functions | ||
| 15 | defined in the makefile. | ||
| 16 | (makefile-bsdmake-mode): Special imenu-generic-expression no | ||
| 17 | longer needed, due to function call. | ||
| 18 | (makefile-match-dependency): Take BOUND into account when checking | ||
| 19 | if we're through. | ||
| 20 | |||
| 1 | 2005-05-20 Jay Belanger <belanger@truman.edu> | 21 | 2005-05-20 Jay Belanger <belanger@truman.edu> |
| 2 | 22 | ||
| 3 | * calc/calc-units.el (calc-invalidate-units-table): | 23 | * calc/calc-units.el (calc-invalidate-units-table): |
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el index 86002768757..05c3ac50787 100644 --- a/lisp/progmodes/make-mode.el +++ b/lisp/progmodes/make-mode.el | |||
| @@ -484,7 +484,7 @@ not be enclosed in { } or ( )." | |||
| 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 | ||
| @@ -854,7 +854,10 @@ Makefile mode can be configured by modifying the following variables: | |||
| 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" |
| @@ -866,10 +869,7 @@ Makefile mode can be configured by modifying the following variables: | |||
| 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 | ||
| @@ -1682,7 +1682,7 @@ 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) |