#+TITLE: SML layer #+TAGS: general|layer|multi-paradigm|programming [[file:img/sml.png]] * Table of Contents :TOC_5_gh:noexport: - [[#description][Description]] - [[#features][Features:]] - [[#install][Install]] - [[#key-bindings][Key bindings]] - [[#form-completion][Form Completion]] - [[#repl][REPL]] * Description Adds support for the [[http://www.smlnj.org][SML]] programming language to Spacemacs. ** Features: - Syntax highlighting - Integration of the =SML Repl= into emacs - Basic completion of SML forms via =sml-electric-space= * 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 |