GNU ELPA - sml-mode


Major mode for editing (Standard) ML
sml-mode-6.7.el, 2015-Feb-13, 72.1kB
Stefan Monnier <>
Home page
Browse repository
CGit or Gitweb

To install this package, run in Emacs:

M-x package-install RET sml-mode RET

Full description

SML-MODE is a major Emacs mode for editing Standard ML.
It provides syntax highlighting and automatic indentation and
comes with sml-proc which allows interaction with an inferior SML
interactive loop.

This release should work on any recent version of Emacs or XEmacs.
If it doesn't: complain.

Some more or less out of date documentation can be found in TeXinfo format.

Check the INSTALL file for installation instructions.
Check the NEWS file for a list of changes in this version.
Check the BUGS and TODO file before sending me bug reports and requests for

Send any complaint/question/praise/ice-cream to me,

	Stefan Monnier <>

Old versions



Changes since 5.0:

- sml-electric-pipe-mode to make the | key electric.
- Removal of a lot of compatibility code.  Requires Emacs-24.
- Integrate in GNU ELPA.

Changes since 4.1:

- New indentation code using SMIE when available.
- `sml-back-to-outer-indent' is now on S-tab (aka `backtab') rather
  than M-tab.
- Support for electric-layout-mode and electric-indent-mode.
- `sml-mark-defun' tries to be more clever.
- A single file (sml-mode.el) is needed unless you want to use an
  interactive process like SML/NJ, or if your Emacs does not provide SMIE.

Changes since 4.0:

- Switch to GPLv3+.
- When possible (i.e. running under Emacs>=23), be case-sensitive when
  expanding abbreviations, and don't expand them in comments and strings.
- When you `next-error' to a type error, highlight the actual parts of the
  types that differ.
- Flush the recorded errors not only upon sml-compile and friends, but also
  when typing commands directly at the prompt.
- New command sml-mlton-typecheck.
- Simple support to parse errors and warnings in MLton's output.
- Simple support for MLton's def-use files.

Changes since 3.9.5:

- No need to add the dir to your load-path any more.
  The sml-mode-startup.el file does it for you.
- Symbols like -> can be displayed as real arrows.
  See sml-font-lock-symbols.
- Fix some incompatibilities with the upcoming Emacs-21.4.
- Indentation rules improved.  New customizable variable
  `sml-rightalign-and'.  Also `sml-symbol-indent' is now customizable.

Changes since 3.9.3:

- New add-log support (try C-x 4 a from within an SML function).
- Imenu support
- sml-bindings has disappeared.
- The code skeletons are now abbrevs as well.
- A new *sml* process is sent the content of sml-config-file
  (~/.sml-proc.sml) if it exists.
- `sml-compile' works yet a bit differently.  The command can begin
  with `cd "path";' and it will be replaced by OS.FileSys.chDir.
- run-sml now pops up the new buffer.  It can also run the command on
  another machine.  And it always prompts for the command name.
  Use a prefix argument if you want to give args or to specify a host on
  which to run the command.
- mouse-2 to yank in *sml* should work again (but won't work for next-error
  any more).
- New major-modes sml-cm-mode, sml-lex-mode and sml-yacc-mode.
- sml-load-hook has disappeared as has inferior-sml-load-hook.
- sml-mode-startup.el is now automatically generated and you're supposed to
  `load' it from .emacs or site-start.el.
- Minor bug fixes.