mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-17 17:58:46 +00:00
Added makefile-imake-mode.
This commit is contained in:
parent
11b07c3762
commit
3968c89ffe
4
etc/NEWS
4
etc/NEWS
@ -1876,9 +1876,9 @@ subprocess are controlled by the user options `scheme-trace-command',
|
||||
`scheme-untrace-command' and `scheme-expand-current-form'.
|
||||
|
||||
---
|
||||
** Makefile mode has submodes for automake, gmake, makepp and BSD make.
|
||||
** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake.
|
||||
|
||||
The former two couldn't be differentiated before, and the latter two
|
||||
The former two couldn't be differentiated before, and the latter three
|
||||
are new. Font-locking is robust now and offers new customizable
|
||||
faces.
|
||||
|
||||
|
@ -1,3 +1,16 @@
|
||||
2006-01-18 Masatake YAMATO <jet@gyve.org>
|
||||
|
||||
* progmodes/make-mode.el (makefile-imake-mode): New mode
|
||||
derived from maiefile-mode.
|
||||
(makefile-imake-mode-syntax-table): New syntax table
|
||||
derived from makefile-mode-syntax-table.
|
||||
(makefile-mode): Write about makefile-imake-mode in
|
||||
doc string.
|
||||
(makefile-mode-map): Bind "\C-c\C-m\C-i" to makefile-imake-mode.
|
||||
(makefile-imake-font-lock-keywords): New font lock keywords.
|
||||
|
||||
* files.el (auto-mode-alist): Added Imakefile.
|
||||
|
||||
2006-01-17 Agustin Martin <agustin.martin@hispalinux.es>
|
||||
|
||||
* textmodes/flyspell.el (ispell-kill-ispell-hook): Add to the hook when
|
||||
|
@ -1812,6 +1812,7 @@ in that case, this function acts as if `enable-local-variables' were t."
|
||||
("\\.ad[abs]\\'" . ada-mode)
|
||||
("\\.ad[bs].dg\\'" . ada-mode)
|
||||
("\\.\\([pP]\\([Llm]\\|erl\\|od\\)\\|al\\)\\'" . perl-mode)
|
||||
("Imakefile\\'" . makefile-imake-mode)
|
||||
,@(if (memq system-type '(berkeley-unix next-mach darwin))
|
||||
'(("\\.mk\\'" . makefile-bsdmake-mode)
|
||||
("GNUmakefile\\'" . makefile-gmake-mode)
|
||||
|
@ -489,6 +489,19 @@ not be enclosed in { } or ( )."
|
||||
"^\\(?: [ \t]*\\)?\\.\\(?:el\\)?if\\(n?\\)\\(?:def\\|make\\)?\\>[ \t]*\\(!?\\)"
|
||||
'("^[ \t]*\\.for[ \t].+[ \t]\\(in\\)\\>" 1 font-lock-keyword-face)))
|
||||
|
||||
(defconst makefile-imake-font-lock-keywords
|
||||
(append
|
||||
(makefile-make-font-lock-keywords
|
||||
makefile-var-use-regex
|
||||
makefile-statements
|
||||
t
|
||||
nil
|
||||
'("^XCOMM.*$" . font-lock-comment-face)
|
||||
'("XVAR\\(?:use\\|def\\)[0-9]" 0 font-lock-keyword-face prepend)
|
||||
'("@@" . font-lock-preprocessor-face)
|
||||
)
|
||||
cpp-font-lock-keywords))
|
||||
|
||||
|
||||
(defconst makefile-font-lock-syntactic-keywords
|
||||
;; From sh-script.el.
|
||||
@ -581,6 +594,7 @@ The function must satisfy this calling convention:
|
||||
(define-key map "\C-c\C-m\C-a" 'makefile-automake-mode)
|
||||
(define-key map "\C-c\C-m\C-b" 'makefile-bsdmake-mode)
|
||||
(define-key map "\C-c\C-m\C-g" 'makefile-gmake-mode)
|
||||
(define-key map "\C-c\C-m\C-i" 'makefile-imake-mode)
|
||||
(define-key map "\C-c\C-m\C-m" 'makefile-mode)
|
||||
(define-key map "\C-c\C-m\C-p" 'makefile-makepp-mode)
|
||||
(define-key map "\M-p" 'makefile-previous-dependency)
|
||||
@ -639,6 +653,15 @@ The function must satisfy this calling convention:
|
||||
(modify-syntax-entry ?# "< " makefile-mode-syntax-table)
|
||||
(modify-syntax-entry ?\n "> " makefile-mode-syntax-table))
|
||||
|
||||
(defvar makefile-imake-mode-syntax-table (copy-syntax-table
|
||||
makefile-mode-syntax-table))
|
||||
(if makefile-imake-mode-syntax-table
|
||||
()
|
||||
(modify-syntax-entry ?/ ". 14" makefile-imake-mode-syntax-table)
|
||||
(modify-syntax-entry ?* ". 23" makefile-imake-mode-syntax-table)
|
||||
(modify-syntax-entry ?# "'" makefile-imake-mode-syntax-table)
|
||||
(modify-syntax-entry ?\n ". b" makefile-imake-mode-syntax-table))
|
||||
|
||||
|
||||
;;; ------------------------------------------------------------
|
||||
;;; Internal variables.
|
||||
@ -701,7 +724,8 @@ The function must satisfy this calling convention:
|
||||
|
||||
If you are editing a file for a different make, try one of the
|
||||
variants `makefile-automake-mode', `makefile-gmake-mode',
|
||||
`makefile-makepp-mode' or `makefile-bsdmake-mode'. All but the
|
||||
`makefile-makepp-mode', `makefile-bsdmake-mode' or,
|
||||
`makefile-imake-mode'All but the
|
||||
last should be correctly chosen based on the file name, except if
|
||||
it is *.mk. This function ends by invoking the function(s)
|
||||
`makefile-mode-hook'.
|
||||
@ -885,6 +909,20 @@ Makefile mode can be configured by modifying the following variables:
|
||||
(setq font-lock-defaults
|
||||
`(makefile-bsdmake-font-lock-keywords ,@(cdr font-lock-defaults))))
|
||||
|
||||
;;;###autoload
|
||||
(define-derived-mode makefile-imake-mode makefile-mode "Imakefile"
|
||||
"An adapted `makefile-mode' that knows about imake."
|
||||
:syntax-table makefile-imake-mode-syntax-table
|
||||
(let ((base `(makefile-imake-font-lock-keywords ,@(cdr font-lock-defaults)))
|
||||
new)
|
||||
;; Remove `font-lock-syntactic-keywords' entry from font-lock-defaults.
|
||||
(mapc (lambda (elt)
|
||||
(unless (and (consp elt)
|
||||
(eq (car elt) 'font-lock-syntactic-keywords))
|
||||
(setq new (cons elt new))))
|
||||
base)
|
||||
(setq font-lock-defaults (nreverse new))))
|
||||
|
||||
|
||||
|
||||
;;; Motion code.
|
||||
|
Loading…
Reference in New Issue
Block a user