2018-08-26 13:14:25 +08:00
---
title: "SpaceVim lang#elm layer"
2019-02-03 20:51:01 +08:00
description: "This layer is for Elm development, provide autocompletion, syntax checking, code format for Elm file."
2018-08-26 13:14:25 +08:00
image: https://user-images.githubusercontent.com/13142418/44625046-7b2f7700-a931-11e8-807e-dba3f73c9e90.png
---
# [Available Layers](../../) >> lang#elm
<!-- vim - markdown - toc GFM -->
- [Description ](#description )
- [Features ](#features )
- [Install ](#install )
- [Requirements ](#requirements )
- [Layer ](#layer )
- [Key bindings ](#key-bindings )
- [Language specific key bindings ](#language-specific-key-bindings )
- [Inferior REPL process ](#inferior-repl-process )
<!-- vim - markdown - toc -->
## Description
2019-02-03 20:51:01 +08:00
This layer is for Elm development.
2018-08-26 13:14:25 +08:00
## Features
- Code completion
- Syntax highlighting, indent
- Running unite test
- Syntax checking
- Find symbol doc
2019-02-03 20:51:01 +08:00
SpaceVim also provides REPL support for Elm.
2018-08-26 13:14:25 +08:00
## Install
### Requirements
2021-01-02 18:00:51 +08:00
First, make sure you have the [Elm Platform ](https://elm-lang.org/install ) installed. The simplest method to get started is to use the official [npm ](https://www.npmjs.com/package/elm ) package.
2018-08-26 13:14:25 +08:00
```sh
npm install -g elm
```
In order to run unit tests from within vim, install [elm-test ](https://github.com/rtfeldman/node-elm-test )
```sh
npm install -g elm-test
```
For code completion and doc lookups, install [elm-oracle ](https://github.com/elmcast/elm-oracle ).
```sh
npm install -g elm-oracle
```
To automatically format your code, install [elm-format ](https://github.com/avh4/elm-format ).
```sh
npm install -g elm-format
```
### Layer
To use this configuration layer, update custom configuration file with:
```toml
[[layers]]
name = "lang#elm"
```
## Key bindings
### Language specific key bindings
2019-02-03 20:51:01 +08:00
| key bindings | Descriptions |
2018-08-26 13:14:25 +08:00
| --------------- | -------------------------- |
| `SPC l d` / `K` | Show doc of cursor symbol |
| `SPC l m` | Compile the current buffer |
| `SPC l t` | Runs the tests |
| `SPC l e` | Show error detail |
| `SPC l w` | Browse symbol doc |
### Inferior REPL process
2019-01-07 21:15:22 +08:00
Start a `elm repl` inferior REPL process with `SPC l s i` .
2018-08-26 13:14:25 +08:00
![elm repl ](https://user-images.githubusercontent.com/13142418/44625046-7b2f7700-a931-11e8-807e-dba3f73c9e90.png )
Send code to inferior process commands:
2019-02-03 20:51:01 +08:00
| 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 |