Erlang layer
Table of ContentsClose
1. Description
This layer adds support for Erlang.
Enabling Lsp-mode brings IDE like
features following Language Server Protocol, through erlangls
1.1. Features:
- Syntax highlighting
- Syntax checking via
Flycheckintegration - Auto-completion via
Companyintegration - Code Completion
- Go To Definition
- Go To Implementation for OTP Behaviours
- Signature Suggestions
- Compiler Diagnostics
- Dialyzer Diagnostics
- Elvis Diagnostics
- Edoc
- Navigation for Included Files
- Find/Peek References
- Outline
- Workspace Symbols
- Code Folding
2. Install
2.1. Layer
To use this configuration layer, add it to your ~/.spacemacs. You will need to
add erlang to the existing dotspacemacs-configuration-layers list in this
file.
2.2. Choosing a backend
company-erlang uses gtags to provide a very basic working environment, it is
the default backend.
You can improve the IDE-like experience by choosing the lsp backend, to do so,
first add the lsp layer to dotspacemacs-configuration-layers, then, set the
layer variable erlang-backend:
(erlang :variables erlang-backend 'lsp)
Alternatively the lsp backend will be automatically chosen if the layer lsp
is used and you did not specify any value for erlang-backend.
3. Configuration
3.1. erlang-mode
To find the manual page for the function under the cursor you can either set
erlang-man-root-dir to erlang man root directory path in the layer definition:
(erlang :variables erlang-man-root-dir "*path_to_folder*/otp_22/lib/erlang/man")
or let erlang-mode download it by executing M-x erlang-man-download-ask.
3.2. LSP
The lsp backend uses erlangls as its language server implementation.
Clone the project to your system and compile it:
make
Note: Ensure you have erlang_ls in your PATH…
You can install it:
make install
4. Key bindings
4.1. erlang-mode
| Key binding | Description |
|---|---|
C-c C-a |
Align arrows ("->") |
C-c C-c |
Comment region |
C-c C-d |
Display function manual at point |
C-c C-j |
Generate a new clause |
C-c C-q |
Indent function |
C-c C-u |
Uncomment region |
C-c C-y |
Insert, at the point, the argument list of the previous clause. |
C-c C-z |
Display the erlang-shell or start a new |
C-c M-a |
Move backward to previous start of clause. |
C-c M-e |
Move to the end of the current clause. |
C-c M-h |
Put mark at end of clause, point at beginning. |
4.2. LSP
You will find an overview of all the key bindings on the lsp layer description.