-
Notifications
You must be signed in to change notification settings - Fork 33
/
Copy pathNEWS
358 lines (224 loc) · 11.7 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
MMM Mode NEWS -- history of user-visible changes. -*-outline-*-
Copyright (C) 2003, 2004, 2013-2022 Free Software Foundation, Inc.
See the file COPYING for copying conditions.
Please submit bug reports at https://github.com/dgutov/mmm-mode/issues
* Changes in MMM Mode 0.5.11
The codebase migrated to use lexical-binding.
Documentation updates.
* Changes in MMM Mode 0.5.10
Functions mmm-add-find-file-hooks and mmm-add-find-file-hook have been
removed (GH#137).
* Changes in MMM Mode 0.5.9
Made the tests work in batch mode.
Switched from Automake to plain Makefile.
Now requires at least GNU Emacs 25.1.
Info documentation can be generated by the GNU ELPA packager.
New here document class for shell. The new class handles indented
here documents, which are incompatible with the mmm classes shared
with Perl.
* Changes in MMM Mode 0.5.8
Support for Emacs 27.
Fixes for nesting submodes.
* Changes in MMM Mode 0.5.7
Fixes for mmm-indent-line-narrowed.
* Changes in MMM Mode 0.5.6
Emacs 25 compatibility fix when cl is not loaded.
* Changes in MMM Mode 0.5.5
Introduced mode transition hooks, like mmm-x-enter-hook and mmm-y-exit-hook.
New function mmm-indent-line-narrowed, to use as mmm-indent-line-function.
`cl-lib' is a new dependency, replacing `cl'. It comes bundled with
recent versions of Emacs, and for older ones it can be installed from
GNU ELPA.
* Changes in MMM Mode 0.5.4
Fixes for indentation, SMIE support, and minor bugs.
* Changes in MMM Mode 0.5.2
Introduced `mmm-after-syntax-propertize-functions'. A primary major
mode can set it to adjust `syntax-table' text properties in submode
regions.
New file `mmm-defaults.el'. A user can simply require it and have
basic setup for ERB, EJS and PHP files (for the last one, `php-mode'
has to be installed separately).
`mmm-add-classes' is autoloaded.
`mmm-beginning-of-syntax' was removed.
Assorted highlighting and syntax detection improvements.
* Changes in MMM Mode 0.5.1
Some minor documentation updates and bugfixes.
* Changes in MMM Mode 0.5.0
** Compatibility with recent Emacsen
Updated to work with Emacs 23 and 24. Removed some compatibility code
for older versions. Added new local variables used in the latest js-mode
and cc-engine modes.
** New submode classes
New submode classes for ERB and EJS templates, both in mmm-erb.el. It
also includes a smart indentation algorithm, supporting them together
with script and style tag subregions in HTML code.
** Parsing when idle
Setting `mmm-parse-when-idle' will make MMM Mode re-parse modified
buffers when Emacs is idle. This can lead to visible pauses, though,
depending on the size of the buffer and the number of subregions.
** Support submode-specific syntax functions
Relevant for Emacs 24: we define a composite syntax-propertize-function
that delegates syntax recognition to respective submode functions.
For users, this means regular expressions in js-mode and string
interpolations and percent literals in ruby-mode.
** Indentation
More consistent indentation behavior, the default implementation
delegates to the submode at the end of the indentation.
The major mode can provide its own implementation by setting
mmm-indent-line-function, to handle specific mode combinations better.
* Changes in MMM Mode 0.4.8
** Delimiter Regions
The delimiters which mark off submode regions now have their own
overlays. They can be highlighted if you so desire using appropriate
class arguments and/or the variable mmm-delimiter-face. They are also
in an appropriate major mode, or non-mode as the case may be.
** Nested Submodes
Nested submodes are now vaguely supported.
** RPM Spec File
An RPM spec file, contributed by <[email protected]>, is now
included for people who wish to build their own SRPM to install from.
** New Submode Classes
Many thanks to Joe Kelsey for writing a very intelligent class for
editing Noweb files, and to Alan Shutko for one for CWeb files. We
also have a mode for SGML DTD definitions from Yann Dirson.
** Numerous bugfixes and small improvements
* Changes in MMM Mode 0.4.7
** Multiple Decoration Levels
You now have finer control over how colorful your submode regions are,
via `mmm-submode-decoration-level'. Level 0 turns coloring off--no
messing around with faces required. Level 1 (default) is the same as
in previous versions. Level 2 colors regions according to function:
initialization, cleanup, output, declaration, comment, etc.
** Preferred Major Modes
The variable `mmm-major-mode-preferences' lets you tell MMM what modes
you prefer for different programming languages and they will be used
by all submode classes.
** New Submode Classes
New submode classes for JSP and ePerl are included. A major bug in
the handling of embedded Java (and other C-type languages) was fixed,
so the JSP class should work consistently.
* MMM Mode 0.4.6 is a bug-fix release with one user-visible change:
** New Submode Class for RPM Spec Files
Contributed by Marcus Harnisch, the `rpm' submode class allows editing
appropriate parts of RPM spec files in shell-script mode.
* Changes in MMM Mode 0.4.5
** Font-Lock works again in XEmacs
The MMM code to handle font-locking broke in XEmacs several versions
back due to differences in the font-lock implementation between Emacs
and XEmacs. It appears to be working once again.
** Here-Document submode class improved
Here-document names such as <<TEXT_EOF and <<END_PERL_CODE are now
correctly recognized, and `mmm-here-doc-mode-alist' allows you to
define your own mappings from here-document names to submodes.
* Changes in MMM Mode 0.4.4
** Tab Completion in `mmm-ify-by-class' (`C-c % C-c')
When interactively specifying a submode class, completion on all
defined public (not internal/private) submode classes is available.
** Submode classes can now be autoloaded
You don't need (require 'mmm-mason) or (require 'mmm-sample) in your
.emacs file any more; all the supplied submode classes that are not
automatically loaded are autoloaded from their files of definition.
** Here-Document submode class can now recognize any submode
As long as the name of the here-document is or begins with the name of
the appropriate submode, suitably mangled, such as <<HTML or
<<HTML_MODE or <<HTML_MODE_EOF, it should be correctly recognized.
** New File Variables submode class
Actually, this is an old submode class that now works (better than
before) with the new post-0.3.8 syntax for class definition. It is a
good candidate for membership in `mmm-global-classes' if you use many
file-local variables, but is not there by default.
** New flags :include-{front,back}
If the keywords INCLUDE-FRONT or INCLUDE-BACK are set to non-nil
values in a submode class definition, the corresponding delimiter will
be included inside the submode region.
** New values for :{front,back}-offset
The keywords FRONT-OFFSET and BACK-OFFSET can now be function to call,
such as `beginning-of-line' or `end-of-line', or lists of values to
apply in sequence, such as (end-of-line 1).
** Search for next region now starts at end of previous one
...rather than at the end of the previous region's ending delimiter.
This allows matching regions ended only by the start of the next one.
* Changes in MMM Mode 0.4.3
** Syntax of Universal Class Changed
Instead of %[MODE]% ... %[/MODE]%, the universal class now uses
{%MODE%} ... {%/MODE%} which isn't quite as ugly and doesn't to my
knowledge conflict with any other syntax.
** Some Bugs under Emacs 19 and XEmacs Fixed
* Changes in MMM Mode 0.4.2
** Global Classes and `Universal' Class
The new variable `mmm-global-classes' is the inverse of `mmm-classes'
in that it contains submode classes which apply to all MMM Mode
buffers unless turned off manually with file-local variables. By
default, it contains the class `universal', which defines the syntax
%[MODE]% ... %[/MODE]% to specify regions of any mode. This allows,
for instance, example code embedded in an email to be both edited by
the sender and viewed by the receiver in an appropriate mode.
** New Embperl Submode Class
The new supplied submode class `embperl', which can be loaded with
(require 'mmm-sample), detects the Embperl syntax [+...+] (and so on)
for embedded Perl code.
* Changes in MMM Mode 0.4.1
** Font Lock Parsing Speed Improved
Extra regions were being parsed due to an error in finding the right
regions, slowing down the parsing considerably. This has been fixed.
* Changes in MMM Mode 0.4.0
** Improved Local Variable Saving
Local variables can now be saved for only some major modes, as well as
both globally, per-buffer, or per-submode region. This facility is
now used to save the font-lock cache state, possible improving the
font-lock support. See the docs for `mmm-save-local-variables'.
** Get and Set Class Parameters
The functions `mmm-[get,set]-class-parameters' do just that. The
latter modifies the definition of a submode class, affecting all
subsequent applications of that class.
** New Implementation for MMM Global Mode
The implementation of MMM Global Mode has been changed from the
"stack-walk" method to the "post-command-hook" method used by
global-font-lock-mode. This is arguably cleaner, but more
importantly, waits until after all local variables and text are loaded
before trying to enabling MMM Mode.
* MMM Mode 0.3.10 is a bug-fix release with no user-visible changes
* MMM Mode 0.3.9 is a bug-fix release with no user-visible changes
* Changes in MMM Mode 0.3.8
** IMPORTANT: Default key bindings have changed.
The MMM Mode commands, including interactive MMM-ification and
re-parsing buffer regions, are now bound by default to key sequences
of the form `C-c % C-<letter>', rather than `C-c % <letter>' as
in previous versions. Key sequences of the form `C-c % <letter>' are
now reserved for submode region insertion. The old behavior can be
restored by setting the variable `mmm-use-old-command-keys' to a
non-nil value before MMM Mode is loaded--then insertion commands are
bound to `C-c % C-<letter>' sequences.
** New Global Mode added
MMM Global Mode can now turn MMM Mode on automatically in all buffers,
or only in buffers that have associated submode classes. It replaces
the previous function `mmm-add-find-file-hook', which still works for
now. A side effect of this change is that it is no longer necessary
to use `mmm-add-mode-ext-class': `mmm-mode-ext-classes-alist' can be
modified directly.
The hack used by MMM Global Mode to insinuate itself into all buffers
is different from, but vaguely similar to, the one used by FSF Emacs'
Global Font Lock Mode. In order that future writers of global modes
don't have to reinvent the wheel, MMM Global Mode provides the hook
`mmm-major-mode-hook' which is run (in theory) whenever a major mode
starts up. Perhaps in future this will be provided in a separate
package.
** Automatic submode region insertion commands
Submode classes can now define skeletons for automatic insertion of
submode regions with delimiters. For example, when using the Mason
class, the key sequence `C-c % %' will (by default) insert the text
`<% -!- %>' with point where indicated and submode region already
present. These commands also wrap around words as described in the
documentation of `skeleton-insert'.
** Info Documentation File
MMM Mode now has an (admittedly incomplete) manual in Texinfo format.
It can be found in the files `mmm.info' or `mmm.texinfo' in the
distribution.
** Automatic Installation
MMM Mode now uses GNU automake/autoconf for ease of installation. See
the files README and INSTALL for more information.
** Changed submode class specification format
This change affects only people who define their own submode classes.
The format for defining submode classes has changed; it now uses
keyword arguments for clarity and has a few more possible arguments,
including skeletons for submode region insertion.