annotate lisp/progmodes/m4-mode.el @ 69478:e8bb5df2ba7a

Add index entries around each paragraph rather than depend on entries from beginning of node. Doing so ensures that index entries are less likely to be forgotten if text is cut and pasted, and are necessary anyway if the references are on a separate page. It seems that makeinfo is now (v. 4.8) only producing one index entry per node, so there is no longer any excuse not to. Use subheading instead of heading. The incorrect use of heading produced very large fonts in Info--as large as the main heading. (From Bill Wohler): MH-E never did appear in Emacs 21--MH-E versions 6 and 7 appeared *around* the time of these Emacs releases.
author Bill Wohler <wohler@newt.com>
date Wed, 15 Mar 2006 00:26:12 +0000
parents dc49655f57ae
children e3694f1cb928 4b3d39451150
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1 ;;; m4-mode.el --- m4 code editing commands for Emacs
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2
68773
dc49655f57ae Update copyright for 2006.
Nick Roberts <nickrob@snap.net.nz>
parents: 66963
diff changeset
3 ;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, 2005, 2006
64699
629afbe74e61 Update copyright for release of 22.1 for progmodes directory.
Nick Roberts <nickrob@snap.net.nz>
parents: 64085
diff changeset
4 ;; Free Software Foundation, Inc.
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5
20344
229f31952731 Update author email address.
Richard M. Stallman <rms@gnu.org>
parents: 19779
diff changeset
6 ;; Author: Andrew Csillag <drew_csillag@geocities.com>
229f31952731 Update author email address.
Richard M. Stallman <rms@gnu.org>
parents: 19779
diff changeset
7 ;; Maintainer: Andrew Csillag <drew_csillag@geocities.com>
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8 ;; Keywords: languages, faces
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10 ;; This file is part of GNU Emacs.
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 ;; GNU Emacs is free software; you can redistribute it and/or modify
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13 ;; it under the terms of the GNU General Public License as published by
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14 ;; the Free Software Foundation; either version 2, or (at your option)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15 ;; any later version.
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ;; GNU Emacs is distributed in the hope that it will be useful,
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20 ;; GNU General Public License for more details.
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22 ;; You should have received a copy of the GNU General Public License
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23 ;; along with GNU Emacs; see the file COPYING. If not, write to the
64085
18a818a2ee7c Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 62772
diff changeset
24 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18a818a2ee7c Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 62772
diff changeset
25 ;; Boston, MA 02110-1301, USA.
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27 ;;; Commentary:
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
28
47666
537f1778caaf (m4-font-lock-keywords)
John Paul Wallington <jpw@pobox.com>
parents: 38436
diff changeset
29 ;; A smart editing mode for m4 macro definitions. It seems to have most of the
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 ;; syntax right (sexp motion commands work, but function motion commands don't).
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31 ;; It also sets the font-lock syntax stuff for colorization
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33 ;; To Do's:
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
34
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 ;; * want to make m4-m4-(buffer|region) look sorta like M-x compile look&feel ?
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36 ;; * sexp motion commands don't seem to work right
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47666
diff changeset
38 ;;; Thanks:
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
39 ;;; to Akim Demaille and Terry Jones for the bug reports
17899
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
40 ;;; to Simon Marshall for the regexp tip
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
41 ;;; to Martin Buchholz for some general fixes
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43 ;;; Code:
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44
21447
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
45 (defgroup m4 nil
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
46 "m4 code editing commands for Emacs."
66963
a11fdee52c05 Add :link (custom-group-link font-lock-faces) to defgroup.
Juri Linkov <juri@jurta.org>
parents: 64699
diff changeset
47 :link '(custom-group-link :tag "Font Lock Faces group" font-lock-faces)
21447
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
48 :prefix "m4-"
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
49 :group 'languages)
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
50
47666
537f1778caaf (m4-font-lock-keywords)
John Paul Wallington <jpw@pobox.com>
parents: 38436
diff changeset
51 (defcustom m4-program
537f1778caaf (m4-font-lock-keywords)
John Paul Wallington <jpw@pobox.com>
parents: 38436
diff changeset
52 (cond
17899
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
53 ((file-exists-p "/usr/local/bin/m4") "/usr/local/bin/m4")
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
54 ((file-exists-p "/usr/bin/m4") "/usr/bin/m4")
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
55 ((file-exists-p "/bin/m4") "/bin/m4")
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
56 ((file-exists-p "/usr/ccs/bin/m4") "/usr/ccs/bin/m4")
21447
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
57 ( t "m4")
17899
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
58 )
21447
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
59 "File name of the m4 executable."
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
60 :type 'file
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
61 :group 'm4)
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
62
17899
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
63 ;;options to m4
21447
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
64 (defcustom m4-program-options nil
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
65 "Options to pass to `m4-program'."
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
66 :type '(repeat string)
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
67 :group 'm4)
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
68
17899
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
69 ;;to use --prefix-builtins, you can use
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
70 ;;(defconst m4-program-options '("-P"))
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
71 ;;or
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
72 ;;(defconst m4-program-options '("--prefix-builtins"))
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
73
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
74 (defvar m4-font-lock-keywords
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
75 `(
17899
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
76 ("\\(\\b\\(m4_\\)?dnl\\b\\|^\\#\\).*$" . font-lock-comment-face)
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
77 ; ("\\(\\bdnl\\b\\|\\bm4_dnl\\b\\|^\\#\\).*$" . font-lock-comment-face)
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
78 ("\\$[*#@0-9]" . font-lock-variable-name-face)
16618
7f975e29d4ee Fixed syntax table for quotes since they messed up
Richard M. Stallman <rms@gnu.org>
parents: 16482
diff changeset
79 ("\\\$\\\@" . font-lock-variable-name-face)
7f975e29d4ee Fixed syntax table for quotes since they messed up
Richard M. Stallman <rms@gnu.org>
parents: 16482
diff changeset
80 ("\\\$\\\*" . font-lock-variable-name-face)
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
81 ("\\b\\(builtin\\|change\\(com\\|quote\\|word\\)\\|d\\(e\\(bug\\(file\\|mode\\)\\|cr\\|f\\(ine\\|n\\)\\)\\|iv\\(ert\\|num\\)\\|nl\\|umpdef\\)\\|e\\(rrprint\\|syscmd\\|val\\)\\|f\\(ile\\|ormat\\)\\|gnu\\|i\\(f\\(def\\|else\\)\\|n\\(c\\(lude\\|r\\)\\|d\\(ex\\|ir\\)\\)\\)\\|l\\(en\\|ine\\)\\|m\\(4\\(exit\\|wrap\\)\\|aketemp\\)\\|p\\(atsubst\\|opdef\\|ushdef\\)\\|regexp\\|s\\(hift\\|include\\|ubstr\\|ys\\(cmd\\|val\\)\\)\\|tra\\(ceo\\(ff\\|n\\)\\|nslit\\)\\|un\\(d\\(efine\\|ivert\\)\\|ix\\)\\)\\b" . font-lock-keyword-face)
47666
537f1778caaf (m4-font-lock-keywords)
John Paul Wallington <jpw@pobox.com>
parents: 38436
diff changeset
82 ("\\b\\(m4_\\(builtin\\|change\\(com\\|quote\\|word\\)\\|d\\(e\\(bug\\(file\\|mode\\)\\|cr\\|f\\(ine\\|n\\)\\)\\|iv\\(ert\\|num\\)\\|nl\\|umpdef\\)\\|e\\(rrprint\\|syscmd\\|val\\)\\|f\\(ile\\|ormat\\)\\|i\\(f\\(def\\|else\\)\\|n\\(c\\(lude\\|r\\)\\|d\\(ex\\|ir\\)\\)\\)\\|l\\(en\\|ine\\)\\|m\\(4\\(_undefine\\|exit\\|wrap\\)\\|aketemp\\)\\|p\\(atsubst\\|opdef\\|ushdef\\)\\|regexp\\|s\\(hift\\|include\\|ubstr\\|ys\\(cmd\\|val\\)\\)\\|tra\\(ceo\\(ff\\|n\\)\\|nslit\\)\\|undivert\\)\\)\\b" . font-lock-keyword-face))
537f1778caaf (m4-font-lock-keywords)
John Paul Wallington <jpw@pobox.com>
parents: 38436
diff changeset
83 "Default font-lock-keywords for `m4 mode'.")
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
84
21447
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
85 (defcustom m4-mode-hook nil
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
86 "*Hook called by `m4-mode'."
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
87 :type 'hook
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
88 :group 'm4)
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
89
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
90 ;;this may still need some work
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
91 (defvar m4-mode-syntax-table nil
47666
537f1778caaf (m4-font-lock-keywords)
John Paul Wallington <jpw@pobox.com>
parents: 38436
diff changeset
92 "Syntax table used while in `m4-mode'.")
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
93 (setq m4-mode-syntax-table (make-syntax-table))
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
94 (modify-syntax-entry ?` "('" m4-mode-syntax-table)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
95 (modify-syntax-entry ?' ")`" m4-mode-syntax-table)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
96 (modify-syntax-entry ?# "<\n" m4-mode-syntax-table)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
97 (modify-syntax-entry ?\n ">#" m4-mode-syntax-table)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
98 (modify-syntax-entry ?{ "_" m4-mode-syntax-table)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
99 (modify-syntax-entry ?} "_" m4-mode-syntax-table)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
100 (modify-syntax-entry ?* "w" m4-mode-syntax-table)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
101 (modify-syntax-entry ?_ "w" m4-mode-syntax-table)
16618
7f975e29d4ee Fixed syntax table for quotes since they messed up
Richard M. Stallman <rms@gnu.org>
parents: 16482
diff changeset
102 (modify-syntax-entry ?\" "w" m4-mode-syntax-table)
17899
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
103 (modify-syntax-entry ?\" "w" m4-mode-syntax-table)
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
104
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
105 (defvar m4-mode-map
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
106 (let ((map (make-sparse-keymap)))
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
107 (define-key map "\C-c\C-b" 'm4-m4-buffer)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
108 (define-key map "\C-c\C-r" 'm4-m4-region)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
109 (define-key map "\C-c\C-c" 'comment-region)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
110 map))
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
111
30469
2fce61fd82ec (m4-mode-abbrev-table): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 23961
diff changeset
112 (defvar m4-mode-abbrev-table nil
47666
537f1778caaf (m4-font-lock-keywords)
John Paul Wallington <jpw@pobox.com>
parents: 38436
diff changeset
113 "Abbrev table used while in `m4-mode'.")
30469
2fce61fd82ec (m4-mode-abbrev-table): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 23961
diff changeset
114
2fce61fd82ec (m4-mode-abbrev-table): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 23961
diff changeset
115 (unless m4-mode-abbrev-table
2fce61fd82ec (m4-mode-abbrev-table): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 23961
diff changeset
116 (define-abbrev-table 'm4-mode-abbrev-table ()))
2fce61fd82ec (m4-mode-abbrev-table): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 23961
diff changeset
117
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
118 (defun m4-m4-buffer ()
47666
537f1778caaf (m4-font-lock-keywords)
John Paul Wallington <jpw@pobox.com>
parents: 38436
diff changeset
119 "Send contents of the current buffer to m4."
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
120 (interactive)
23961
7a6b8dd13afb (m4-m4-region, m4-m4-buffer): Use shell-command-on-region.
Richard M. Stallman <rms@gnu.org>
parents: 21447
diff changeset
121 (shell-command-on-region (point-min) (point-max) m4-program "*m4-output*"
7a6b8dd13afb (m4-m4-region, m4-m4-buffer): Use shell-command-on-region.
Richard M. Stallman <rms@gnu.org>
parents: 21447
diff changeset
122 nil)
7a6b8dd13afb (m4-m4-region, m4-m4-buffer): Use shell-command-on-region.
Richard M. Stallman <rms@gnu.org>
parents: 21447
diff changeset
123 (switch-to-buffer-other-window "*m4-output*"))
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
124
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
125 (defun m4-m4-region ()
47666
537f1778caaf (m4-font-lock-keywords)
John Paul Wallington <jpw@pobox.com>
parents: 38436
diff changeset
126 "Send contents of the current region to m4."
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
127 (interactive)
23961
7a6b8dd13afb (m4-m4-region, m4-m4-buffer): Use shell-command-on-region.
Richard M. Stallman <rms@gnu.org>
parents: 21447
diff changeset
128 (shell-command-on-region (point) (mark) m4-program "*m4-output*" nil)
7a6b8dd13afb (m4-m4-region, m4-m4-buffer): Use shell-command-on-region.
Richard M. Stallman <rms@gnu.org>
parents: 21447
diff changeset
129 (switch-to-buffer-other-window "*m4-output*"))
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
130
19779
fc52884e1dfc (m4-mode): Add autoload cookie.
Richard M. Stallman <rms@gnu.org>
parents: 17899
diff changeset
131 ;;;###autoload
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
132 (defun m4-mode ()
19779
fc52884e1dfc (m4-mode): Add autoload cookie.
Richard M. Stallman <rms@gnu.org>
parents: 17899
diff changeset
133 "A major mode to edit m4 macro files.
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
134 \\{m4-mode-map}
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
135 "
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
136 (interactive)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
137 (kill-all-local-variables)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
138 (use-local-map m4-mode-map)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
139
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
140 (make-local-variable 'comment-start)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
141 (setq comment-start "#")
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
142 (make-local-variable 'parse-sexp-ignore-comments)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
143 (setq parse-sexp-ignore-comments t)
30469
2fce61fd82ec (m4-mode-abbrev-table): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 23961
diff changeset
144 (setq local-abbrev-table m4-mode-abbrev-table)
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
145
47666
537f1778caaf (m4-font-lock-keywords)
John Paul Wallington <jpw@pobox.com>
parents: 38436
diff changeset
146 (make-local-variable 'font-lock-defaults)
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
147 (setq major-mode 'm4-mode
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
148 mode-name "m4"
17899
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
149 font-lock-defaults '(m4-font-lock-keywords nil)
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
150 )
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
151 (set-syntax-table m4-mode-syntax-table)
62772
f2892faa87d4 * progmodes/ada-mode.el (ada-mode):
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
152 (run-mode-hooks 'm4-mode-hook))
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
153
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
154 (provide 'm4-mode)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
155 ;;stuff to play with for debugging
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
156 ;(char-to-string (char-syntax ?`))
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
157
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
158 ;;;how I generate the nasty looking regexps at the top
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47666
diff changeset
159 ;;;(make-regexp '("builtin" "changecom" "changequote" "changeword" "debugfile"
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47666
diff changeset
160 ;;; "debugmode" "decr" "define" "defn" "divert" "divnum" "dnl"
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
161 ;;; "dumpdef" "errprint" "esyscmd" "eval" "file" "format" "gnu"
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47666
diff changeset
162 ;;; "ifdef" "ifelse" "include" "incr" "index" "indir" "len" "line"
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47666
diff changeset
163 ;;; "m4exit" "m4wrap" "maketemp" "patsubst" "popdef" "pushdef" "regexp"
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47666
diff changeset
164 ;;; "shift" "sinclude" "substr" "syscmd" "sysval" "traceoff" "traceon"
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
165 ;;; "translit" "undefine" "undivert" "unix"))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47666
diff changeset
166 ;;;(make-regexp '("m4_builtin" "m4_changecom" "m4_changequote" "m4_changeword"
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47666
diff changeset
167 ;;; "m4_debugfile" "m4_debugmode" "m4_decr" "m4_define" "m4_defn"
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47666
diff changeset
168 ;;; "m4_divert" "m4_divnum" "m4_dnl" "m4_dumpdef" "m4_errprint"
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47666
diff changeset
169 ;;; "m4_esyscmd" "m4_eval" "m4_file" "m4_format" "m4_ifdef" "m4_ifelse"
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47666
diff changeset
170 ;;; "m4_include" "m4_incr" "m4_index" "m4_indir" "m4_len" "m4_line"
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47666
diff changeset
171 ;;; "m4_m4exit" "m4_m4wrap" "m4_maketemp" "m4_patsubst" "m4_popdef"
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47666
diff changeset
172 ;;; "m4_pushdef" "m4_regexp" "m4_shift" "m4_sinclude" "m4_substr"
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47666
diff changeset
173 ;;; "m4_syscmd" "m4_sysval" "m4_traceoff" "m4_traceon" "m4_translit"
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
174 ;;; "m4_m4_undefine" "m4_undivert"))
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
175
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49598
diff changeset
176 ;;; arch-tag: 87811d86-94c1-474b-9666-587f6da74af1
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 30469
diff changeset
177 ;;; m4-mode.el ends here