annotate lisp/progmodes/m4-mode.el @ 42307:922f0ef2951b

(balance-windows): Use new PRESERVE-BEFORE arg to enlarge-window. Use save-selected-window. Don't try to resize windows that end at the bottom "level". Retry changing the sizes until the windows get the desired sizes. Discount the minibuffer when computing total height available.
author Richard M. Stallman <rms@gnu.org>
date Tue, 25 Dec 2001 10:34:39 +0000
parents b174db545cfd
children 537f1778caaf
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
17899
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
3 ;;; Copyright (C) 1996, 1997 Free Software Foundation, Inc.
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4
20344
229f31952731 Update author email address.
Richard M. Stallman <rms@gnu.org>
parents: 19779
diff changeset
5 ;; Author: Andrew Csillag <drew_csillag@geocities.com>
229f31952731 Update author email address.
Richard M. Stallman <rms@gnu.org>
parents: 19779
diff changeset
6 ;; Maintainer: Andrew Csillag <drew_csillag@geocities.com>
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7 ;; Keywords: languages, faces
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9 ;; This file is part of GNU Emacs.
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11 ;; GNU Emacs is free software; you can redistribute it and/or modify
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 ;; 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
13 ;; the Free Software Foundation; either version 2, or (at your option)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14 ;; any later version.
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 ;; GNU General Public License for more details.
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22 ;; along with GNU Emacs; see the file COPYING. If not, write to the
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
24 ;; Boston, MA 02111-1307, USA.
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
25
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26 ;;; Commentary:
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
28 ;; A smart editing mode for m4 macro definitions. It seems to have most of the
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
29 ;; syntax right (sexp motion commands work, but function motion commands don't).
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 ;; It also sets the font-lock syntax stuff for colorization
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 ;; To Do's:
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
34 ;; * 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
35 ;; * sexp motion commands don't seem to work right
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37 ;;; Thanks:
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 ;;; 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
39 ;;; 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
40 ;;; to Martin Buchholz for some general fixes
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42 ;;; Code:
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43
21447
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
44 (defgroup m4 nil
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
45 "m4 code editing commands for Emacs."
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
46 :prefix "m4-"
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
47 :group 'languages)
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
48
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
49 (defcustom m4-program
17899
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
50 (cond
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
51 ((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
52 ((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
53 ((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
54 ((file-exists-p "/usr/ccs/bin/m4") "/usr/ccs/bin/m4")
21447
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
55 ( t "m4")
17899
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
56 )
21447
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
57 "File name of the m4 executable."
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
58 :type 'file
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
59 :group 'm4)
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
60
17899
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
61 ;;options to m4
21447
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
62 (defcustom m4-program-options nil
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
63 "Options to pass to `m4-program'."
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
64 :type '(repeat string)
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
65 :group 'm4)
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
66
17899
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
67 ;;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
68 ;;(defconst m4-program-options '("-P"))
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
69 ;;or
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
70 ;;(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
71
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
72 (defvar m4-font-lock-keywords
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
73 `(
17899
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
74 ("\\(\\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
75 ; ("\\(\\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
76 ("\\$[*#@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
77 ("\\\$\\\@" . 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
78 ("\\\$\\\*" . font-lock-variable-name-face)
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
79 ("\\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)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
80 ("\\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)
17899
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
81 "Default font-lock-keywords for m4 mode.")
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
82 )
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
83
21447
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
84 (defcustom m4-mode-hook nil
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
85 "*Hook called by `m4-mode'."
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
86 :type 'hook
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
87 :group 'm4)
42e8acda5021 Customize
Stephen Eglen <stephen@gnu.org>
parents: 20344
diff changeset
88
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
89 ;;this may still need some work
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
90 (defvar m4-mode-syntax-table nil
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
91 "syntax table used in m4 mode")
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
92 (setq m4-mode-syntax-table (make-syntax-table))
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
93 (modify-syntax-entry ?` "('" m4-mode-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 ?# "<\n" 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 ?{ "_" 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 ?* "w" 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)
16618
7f975e29d4ee Fixed syntax table for quotes since they messed up
Richard M. Stallman <rms@gnu.org>
parents: 16482
diff changeset
101 (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
102 (modify-syntax-entry ?\" "w" m4-mode-syntax-table)
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
103
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
104 (defvar m4-mode-map
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
105 (let ((map (make-sparse-keymap)))
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
106 (define-key map "\C-c\C-b" 'm4-m4-buffer)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
107 (define-key map "\C-c\C-r" 'm4-m4-region)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
108 (define-key map "\C-c\C-c" 'comment-region)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
109 map))
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
110
30469
2fce61fd82ec (m4-mode-abbrev-table): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 23961
diff changeset
111 (defvar m4-mode-abbrev-table nil
2fce61fd82ec (m4-mode-abbrev-table): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 23961
diff changeset
112 "Abbrev table used while in text mode.")
2fce61fd82ec (m4-mode-abbrev-table): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 23961
diff changeset
113
2fce61fd82ec (m4-mode-abbrev-table): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 23961
diff changeset
114 (unless m4-mode-abbrev-table
2fce61fd82ec (m4-mode-abbrev-table): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 23961
diff changeset
115 (define-abbrev-table 'm4-mode-abbrev-table ()))
2fce61fd82ec (m4-mode-abbrev-table): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 23961
diff changeset
116
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
117 (defun m4-m4-buffer ()
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
118 "send contents of the current buffer to m4"
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
119 (interactive)
23961
7a6b8dd13afb (m4-m4-region, m4-m4-buffer): Use shell-command-on-region.
Richard M. Stallman <rms@gnu.org>
parents: 21447
diff changeset
120 (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
121 nil)
7a6b8dd13afb (m4-m4-region, m4-m4-buffer): Use shell-command-on-region.
Richard M. Stallman <rms@gnu.org>
parents: 21447
diff changeset
122 (switch-to-buffer-other-window "*m4-output*"))
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
123
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
124 (defun m4-m4-region ()
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
125 "send contents of the current region to m4"
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
126 (interactive)
23961
7a6b8dd13afb (m4-m4-region, m4-m4-buffer): Use shell-command-on-region.
Richard M. Stallman <rms@gnu.org>
parents: 21447
diff changeset
127 (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
128 (switch-to-buffer-other-window "*m4-output*"))
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
129
19779
fc52884e1dfc (m4-mode): Add autoload cookie.
Richard M. Stallman <rms@gnu.org>
parents: 17899
diff changeset
130 ;;;###autoload
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
131 (defun m4-mode ()
19779
fc52884e1dfc (m4-mode): Add autoload cookie.
Richard M. Stallman <rms@gnu.org>
parents: 17899
diff changeset
132 "A major mode to edit m4 macro files.
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
133 \\{m4-mode-map}
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
134 "
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
135 (interactive)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
136 (kill-all-local-variables)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
137 (use-local-map m4-mode-map)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
138
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
139 (make-local-variable 'comment-start)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
140 (setq comment-start "#")
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
141 (make-local-variable 'parse-sexp-ignore-comments)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
142 (setq parse-sexp-ignore-comments t)
30469
2fce61fd82ec (m4-mode-abbrev-table): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 23961
diff changeset
143 (setq local-abbrev-table m4-mode-abbrev-table)
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
144
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
145 (make-local-variable 'font-lock-defaults)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
146 (setq major-mode 'm4-mode
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
147 mode-name "m4"
17899
88e528f3dc49 (m4-program): Guess which m4 binary to use.
Richard M. Stallman <rms@gnu.org>
parents: 16618
diff changeset
148 font-lock-defaults '(m4-font-lock-keywords nil)
16482
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
149 )
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
150 (set-syntax-table m4-mode-syntax-table)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
151 (run-hooks 'm4-mode-hook))
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
152
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
153 (provide 'm4-mode)
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
154 ;;stuff to play with for debugging
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
155 ;(char-to-string (char-syntax ?`))
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
156
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
157 ;;;how I generate the nasty looking regexps at the top
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
158 ;;;(make-regexp '("builtin" "changecom" "changequote" "changeword" "debugfile"
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
159 ;;; "debugmode" "decr" "define" "defn" "divert" "divnum" "dnl"
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
160 ;;; "dumpdef" "errprint" "esyscmd" "eval" "file" "format" "gnu"
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
161 ;;; "ifdef" "ifelse" "include" "incr" "index" "indir" "len" "line"
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
162 ;;; "m4exit" "m4wrap" "maketemp" "patsubst" "popdef" "pushdef" "regexp"
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
163 ;;; "shift" "sinclude" "substr" "syscmd" "sysval" "traceoff" "traceon"
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
164 ;;; "translit" "undefine" "undivert" "unix"))
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
165 ;;;(make-regexp '("m4_builtin" "m4_changecom" "m4_changequote" "m4_changeword"
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
166 ;;; "m4_debugfile" "m4_debugmode" "m4_decr" "m4_define" "m4_defn"
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
167 ;;; "m4_divert" "m4_divnum" "m4_dnl" "m4_dumpdef" "m4_errprint"
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
168 ;;; "m4_esyscmd" "m4_eval" "m4_file" "m4_format" "m4_ifdef" "m4_ifelse"
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
169 ;;; "m4_include" "m4_incr" "m4_index" "m4_indir" "m4_len" "m4_line"
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
170 ;;; "m4_m4exit" "m4_m4wrap" "m4_maketemp" "m4_patsubst" "m4_popdef"
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
171 ;;; "m4_pushdef" "m4_regexp" "m4_shift" "m4_sinclude" "m4_substr"
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
172 ;;; "m4_syscmd" "m4_sysval" "m4_traceoff" "m4_traceon" "m4_translit"
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
173 ;;; "m4_m4_undefine" "m4_undivert"))
4e58112986fd Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
174
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 30469
diff changeset
175 ;;; m4-mode.el ends here