1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-28 03:40:04 +08:00
SpaceVim/docs/layers/lang/sml.md

70 lines
2.1 KiB
Markdown
Raw Normal View History

2020-11-23 22:26:58 +08:00
---
title: "SpaceVim lang#sml layer"
description: "This layer is for Standard ML development, provide syntax highlighting and repl support for sml file."
---
# [Available Layers](../../) >> lang#sml
<!-- vim-markdown-toc GFM -->
- [Description](#description)
- [Install](#install)
- [Layer options](#layer-options)
- [Key bindings](#key-bindings)
- [Running current script](#running-current-script)
- [Inferior REPL process](#inferior-repl-process)
<!-- vim-markdown-toc -->
## Description
This layer is for Standard ML development.
## Install
To use this configuration layer, update custom configuration file with:
```toml
[[layers]]
name = "lang#sml"
```
## Layer options
- `smlnj_path`: Set the path to the smlnj executable, by default, it is `sml`.
- `mlton_path`: Set the path to the mlton executable, by default, it is `mlton`.
- `repl_options`: Options used for REPL, by default, it is ''.
- `auto_create_def_use`: Whether to build def-use files on save automatically.
By default, it is `mlb`. Valid values is:
- `mlb`: Auto build def-use if there's a `*.mlb` file
- `always`: Always build def-use file
- `never`: Never build def-use file
- `enable_conceal`: `true`/`false`. Whether to enable concealing for SML files. `false` by defaults.
`'a` becomes `α` (or `'α`). `fn` becomes `λ.`
- `enable_conceal_show_tick`: `true`/`false`. When conceal is enabled, show `'α` for `'a` instead of `α`.
Helps for alignment. `false` by default.
- `sml_file_head`: Template for new sml file.
## Key bindings
### Running current script
The key binding for running current sml file is `SPC l r`.
It will run current file without loss focus,
and the result will be shown in a runner buffer.
### Inferior REPL process
Start a `sml` inferior REPL process with `SPC l s i`.
Send code to inferior process commands:
| Key Bindings | Descriptions |
| ------------ | ------------------------------------------------ |
| `SPC l s b` | send buffer and keep code buffer focused |
| `SPC l s l` | send line and keep code buffer focused |
| `SPC l s s` | send selection text and keep code buffer focused |