nxml-mode extensions
[emacs-init.git] / mmm-mode-0.4.8 / NEWS
1 MMM Mode NEWS -- history of user-visible changes.  -*-outline-*-
2 Copyright (C) 2003, 2004 Michael Abraham Shulman
3 See the file COPYING for copying conditions.
4
5 Please submit bug reports at http://sourceforge.net/projects/mmm-mode/
6 \f
7 * Changes in MMM Mode 0.4.8
8
9 ** Delimiter Regions
10
11 The delimiters which mark off submode regions now have their own
12 overlays.  They can be highlighted if you so desire using appropriate
13 class arguments and/or the variable mmm-delimiter-face.  They are also
14 in an appropriate major mode, or non-mode as the case may be.
15
16 ** Nested Submodes
17
18 Nested submodes are now vaguely supported.
19
20 ** RPM Spec File
21
22 An RPM spec file, contributed by <bishop@platypus.bc.ca>, is now
23 included for people who wish to build their own SRPM to install from.
24
25 ** New Submode Classes
26
27 Many thanks to Joe Kelsey for writing a very intelligent class for
28 editing Noweb files, and to Alan Shutko for one for CWeb files.  We
29 also have a mode for SGML DTD definitions from Yann Dirson.
30
31 ** Numerous bugfixes and small improvements
32
33 \f
34 * Changes in MMM Mode 0.4.7
35
36 ** Multiple Decoration Levels
37
38 You now have finer control over how colorful your submode regions are,
39 via `mmm-submode-decoration-level'.  Level 0 turns coloring off--no
40 messing around with faces required.  Level 1 (default) is the same as
41 in previous versions.  Level 2 colors regions according to function:
42 initialization, cleanup, output, declaration, comment, etc.
43
44 ** Preferred Major Modes
45
46 The variable `mmm-major-mode-preferences' lets you tell MMM what modes
47 you prefer for different programming languages and they will be used
48 by all submode classes.
49
50 ** New Submode Classes
51
52 New submode classes for JSP and ePerl are included.  A major bug in
53 the handling of embedded Java (and other C-type languages) was fixed,
54 so the JSP class should work consistently.
55
56 \f
57 * MMM Mode 0.4.6 is a bug-fix release with one user-visible change:
58
59 ** New Submode Class for RPM Spec Files
60
61 Contributed by Marcus Harnisch, the `rpm' submode class allows editing
62 appropriate parts of RPM spec files in shell-script mode.
63
64 \f
65 * Changes in MMM Mode 0.4.5
66
67 ** Font-Lock works again in XEmacs
68
69 The MMM code to handle font-locking broke in XEmacs several versions
70 back due to differences in the font-lock implementation between Emacs
71 and XEmacs.  It appears to be working once again.
72
73 ** Here-Document submode class improved
74
75 Here-document names such as <<TEXT_EOF and <<END_PERL_CODE are now
76 correctly recognized, and `mmm-here-doc-mode-alist' allows you to
77 define your own mappings from here-document names to submodes.
78
79 \f
80 * Changes in MMM Mode 0.4.4
81
82 ** Tab Completion in `mmm-ify-by-class' (`C-c % C-c')
83
84 When interactively specifying a submode class, completion on all
85 defined public (not internal/private) submode classes is available.
86
87 ** Submode classes can now be autoloaded
88
89 You don't need (require 'mmm-mason) or (require 'mmm-sample) in your
90 .emacs file any more; all the supplied submode classes that are not
91 automatically loaded are autoloaded from their files of definition.
92
93 ** Here-Document submode class can now recognize any submode
94
95 As long as the name of the here-document is or begins with the name of
96 the appropriate submode, suitably mangled, such as <<HTML or
97 <<HTML_MODE or <<HTML_MODE_EOF, it should be correctly recognized.
98
99 ** New File Variables submode class
100
101 Actually, this is an old submode class that now works (better than
102 before) with the new post-0.3.8 syntax for class definition.  It is a
103 good candidate for membership in `mmm-global-classes' if you use many
104 file-local variables, but is not there by default.
105
106 ** New flags :include-{front,back}
107
108 If the keywords INCLUDE-FRONT or INCLUDE-BACK are set to non-nil
109 values in a submode class definition, the corresponding delimiter will
110 be included inside the submode region.
111
112 ** New values for :{front,back}-offset
113
114 The keywords FRONT-OFFSET and BACK-OFFSET can now be function to call,
115 such as `beginning-of-line' or `end-of-line', or lists of values to
116 apply in sequence, such as (end-of-line 1).
117
118 ** Search for next region now starts at end of previous one
119
120 ...rather than at the end of the previous region's ending delimiter.
121 This allows matching regions ended only by the start of the next one.
122
123 \f
124 * Changes in MMM Mode 0.4.3
125
126 ** Syntax of Universal Class Changed
127
128 Instead of %[MODE]% ... %[/MODE]%, the universal class now uses
129 {%MODE%} ... {%/MODE%} which isn't quite as ugly and doesn't to my
130 knowledge conflict with any other syntax.
131
132 ** Some Bugs under Emacs 19 and XEmacs Fixed
133
134 \f
135 * Changes in MMM Mode 0.4.2
136
137 ** Global Classes and `Universal' Class
138
139 The new variable `mmm-global-classes' is the inverse of `mmm-classes'
140 in that it contains submode classes which apply to all MMM Mode
141 buffers unless turned off manually with file-local variables.  By
142 default, it contains the class `universal', which defines the syntax
143 %[MODE]% ... %[/MODE]% to specify regions of any mode.  This allows,
144 for instance, example code embedded in an email to be both edited by
145 the sender and viewed by the receiver in an appropriate mode.
146
147 ** New Embperl Submode Class
148
149 The new supplied submode class `embperl', which can be loaded with
150 (require 'mmm-sample), detects the Embperl syntax [+...+] (and so on)
151 for embedded Perl code.
152
153 \f
154 * Changes in MMM Mode 0.4.1
155
156 ** Font Lock Parsing Speed Improved
157
158 Extra regions were being parsed due to an error in finding the right
159 regions, slowing down the parsing considerably.  This has been fixed.
160
161 \f
162 * Changes in MMM Mode 0.4.0
163
164 ** Improved Local Variable Saving
165
166 Local variables can now be saved for only some major modes, as well as
167 both globally, per-buffer, or per-submode region.  This facility is
168 now used to save the font-lock cache state, possible improving the
169 font-lock support.  See the docs for `mmm-save-local-variables'.
170
171 ** Get and Set Class Parameters
172
173 The functions `mmm-[get,set]-class-parameters' do just that.  The
174 latter modifies the definition of a submode class, affecting all
175 subsequent applications of that class.
176
177 ** New Implementation for MMM Global Mode
178
179 The implementation of MMM Global Mode has been changed from the
180 "stack-walk" method to the "post-command-hook" method used by
181 global-font-lock-mode.  This is arguably cleaner, but more
182 importantly, waits until after all local variables and text are loaded
183 before trying to enabling MMM Mode.
184
185 \f
186 * MMM Mode 0.3.10 is a bug-fix release with no user-visible changes
187
188 \f
189 * MMM Mode 0.3.9 is a bug-fix release with no user-visible changes
190
191 \f
192 * Changes in MMM Mode 0.3.8
193
194 ** IMPORTANT: Default key bindings have changed.
195
196 The MMM Mode commands, including interactive MMM-ification and
197 re-parsing buffer regions, are now bound by default to key sequences
198 of the form `C-c % C-<letter>', rather than `C-c % <letter>' as
199 in previous versions.  Key sequences of the form `C-c % <letter>' are
200 now reserved for submode region insertion.  The old behavior can be
201 restored by setting the variable `mmm-use-old-command-keys' to a
202 non-nil value before MMM Mode is loaded--then insertion commands are
203 bound to `C-c % C-<letter>' sequences.
204
205 ** New Global Mode added
206
207 MMM Global Mode can now turn MMM Mode on automatically in all buffers,
208 or only in buffers that have associated submode classes.  It replaces
209 the previous function `mmm-add-find-file-hook', which still works for
210 now.  A side effect of this change is that it is no longer necessary
211 to use `mmm-add-mode-ext-class': `mmm-mode-ext-classes-alist' can be
212 modified directly.
213
214 The hack used by MMM Global Mode to insinuate itself into all buffers
215 is different from, but vaguely similar to, the one used by FSF Emacs'
216 Global Font Lock Mode.  In order that future writers of global modes
217 don't have to reinvent the wheel, MMM Global Mode provides the hook
218 `mmm-major-mode-hook' which is run (in theory) whenever a major mode
219 starts up.  Perhaps in future this will be provided in a separate
220 package.
221
222 ** Automatic submode region insertion commands
223
224 Submode classes can now define skeletons for automatic insertion of
225 submode regions with delimiters.  For example, when using the Mason
226 class, the key sequence `C-c % %' will (by default) insert the text
227 `<% -!- %>' with point where indicated and submode region already
228 present.  These commands also wrap around words as described in the
229 documentation of `skeleton-insert'.
230
231 ** Info Documentation File
232
233 MMM Mode now has an (admittedly incomplete) manual in Texinfo format.
234 It can be found in the files `mmm.info' or `mmm.texinfo' in the
235 distribution.
236
237 ** Automatic Installation
238
239 MMM Mode now uses GNU automake/autoconf for ease of installation.  See
240 the files README and INSTALL for more information.
241
242 ** Changed submode class specification format
243
244 This change affects only people who define their own submode classes.
245 The format for defining submode classes has changed; it now uses
246 keyword arguments for clarity and has a few more possible arguments,
247 including skeletons for submode region insertion.