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
Flycheck
integration - Auto-completion via
Company
integration - 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
- Interactive debugger using dap-mode
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
3.3. Debugger
The dap
backend uses erlangls-dap implementation. Information about configuring
a project to use the debugger can be found here.
If you are using erlang_ls
backend, probably you have els_dap
already
installed, otherwise, follow the instructions.
Clone the project to your system and compile it to produce the els_dap
escript:
rebar3 as dap escriptize
or
make
els_dap
will be found at "erlangls/build/dap/bin/"
Note: Ensure you have els_dap
in your PATH
…
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.
4.3. DAP
You will find an overview of all the key bindings on the dap layer description.