;; They can make a tab fail to be effective.
'("^\\( +\\)\t" 1 makefile-space-face)))
+(defvar makefile-imenu-generic-expression
+ (list
+ (list "Dependencies" makefile-dependency-regex 1)
+ (list "Macro Assignment" makefile-macroassign-regex 1))
+ "Imenu generic expression for makefile-mode. See `imenu-generic-expression'.")
+
;;; ------------------------------------------------------------
;;; The following configurable variables are used in the
;;; up-to-date overview .
(setq add-log-current-defun-function 'makefile-add-log-defun)
;; Imenu.
- (make-local-variable 'imenu-create-index-function)
- (setq imenu-create-index-function 'makefile-menu-index-function)
+ (make-local-variable 'imenu-generic-expression)
+ (setq imenu-generic-expression makefile-imenu-generic-expression)
;; Dabbrev.
(make-local-variable 'dabbrev-abbrev-skip-leading-regexp)
(forward-line -1)))
(if (stringp found) found))))
-;; FIXME it might be nice to have them separated by macro vs target.
-(defun makefile-menu-index-function ()
- ;; "Generate alist of indices for imenu."
- (let (alist
- stupid
- (re (concat makefile-dependency-regex
- "\\|"
- makefile-macroassign-regex)))
- (imenu-progress-message stupid 0)
- (goto-char (point-min))
- (while (re-search-forward re nil t)
- (imenu-progress-message stupid)
- (let ((n (if (match-beginning 1) 1 5)))
- (setq alist (cons
- (cons (buffer-substring (match-beginning n)
- (match-end n))
- (match-beginning n))
- alist))))
- (imenu-progress-message stupid 100)
- (nreverse alist)))
-
;;; make-mode.el ends here