#+TITLE: SML layer

[[file:img/sml.png]]

* Table of Contents                                         :TOC_4_gh:noexport:
 - [[#description][Description]]
 - [[#install][Install]]
 - [[#key-bindings][Key Bindings]]
   - [[#form-completion][Form Completion]]
   - [[#repl][REPL]]

* Description

Adds support for the [[http://www.smlnj.org][SML]] programming language.

* Install
To use this configuration layer, add it to your =~/.spacemacs=. You will need to
add =sml= to the existing =dotspacemacs-configuration-layers= list in this
file.

* Key Bindings

** Form Completion

| Key Binding | Description                                                                               |
|-------------+-------------------------------------------------------------------------------------------|
| ~M-SPC~     | Inserts a space and completes the form before the cursor.                                 |
| ~\vert~     | Inserts a pipe and adds a double arrow or copies the function name. Generally just works. |

** REPL

| Key Binding | Description                                                       |
|-------------+-------------------------------------------------------------------|
| ~SPC m s b~ | Send buffer to REPL                                               |
| ~SPC m s B~ | Send buffer to REPL and switch to REPL buffer in =insert state=   |
| ~SPC m s f~ | Send function to REPL                                             |
| ~SPC m s F~ | Send function to REPL and switch to REPL buffer in =insert state= |
| ~SPC m s i~ | Run the sml REPL or switch to it if the REPL is already running   |
| ~SPC m s r~ | Send region to REPL                                               |
| ~SPC m s R~ | Send region to REPL and switch to REPL buffer in =insert state=   |
| ~SPC m s s~ | Run the sml REPL or switch to it if the REPL is already running   |
