sml-mode

Homepage: https://elpa.gnu.org/packages/sml-mode.html

Author: Lars Bo Nielsen, (Stefan Monnier), Fritz Knabe (?), Matthew Morley, Matthias Blume, Olin Shivers, Steven Gilmore (?)

Updated:

Summary

Major mode for editing (Standard) ML

Commentary

A major mode to edit Standard ML (SML) code.
Provides the following features, among others:
- Indentation.
- Syntax highlighting.
- Prettified display of ->, =>, fn, ...
- Imenu.
- which-function-mode.
- Skeletons/templates.
- Electric pipe key.
- outline-minor-mode (with some known problems).
- Interaction with a read-eval-print loop.

Known bugs:

- Indentation after "functor toto() where type foo = bar ="
  Because the last is treated as an equality comparison.
- indentation of a declaration after a long `datatype' can be slow.

News:

Changes since 6.11:

- Fix indentation of continued strings.
- Use `syntax-propertize' rather than `font-lock-syntactic-keywords'.

Changes since 6.8:

- new var sml-abbrev-skeletons to control whether to include skeletons
  in the main abbrev table.
- change parsing rule of "local"
- Improve handling of comments in `sml-cm-mode'.

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.

Dependencies

Reverse dependencies