Table of Contents

Erlang layer

Table of ContentsClose

erlang.png

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

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.

Author: root

Created: 2021-05-22 Sat 18:45

Validate