MMM Mode NEWS -- history of user-visible changes. -*-outline-*- Copyright (C) 2003, 2004, 2013-2015 Free Software Foundation, Inc. See the file COPYING for copying conditions. Please submit bug reports at https://github.com/purcell/mmm-mode/issues * 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 , 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 <', rather than `C-c % ' as in previous versions. Key sequences of the form `C-c % ' 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-' 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.