Erlang Language Platform. LSP server and CLI. https://whatsapp.github.io/erlang-language-platform/
Find a file
2025-08-22 11:59:02 +02:00
.cargo Add release-thin profile 2025-05-23 02:51:18 -07:00
.github Separate job for EDB 2025-08-22 11:59:02 +02:00
.llms/rules Tweak elp_development.md 2025-07-18 07:21:05 -07:00
.vscode
bench_runner Update License Headers for Open Source 2025-07-01 12:42:03 -07:00
crates Update todo comment for unused_function_args linter 2025-08-19 23:29:48 -07:00
docs
editors/code Bump extension version to 0.38 2025-07-21 03:23:34 -07:00
elisp
erlang_service
logo
node_modules
test_projects Add no_nowarn_suppressions linter 2025-08-06 05:30:34 -07:00
website Update linter docs to use traits 2025-08-19 23:29:48 -07:00
xtask BE: Fix new clippy warnings from rust 1.88.0 2025-07-15 09:59:27 -07:00
.gitignore
Cargo.lock Revert D75066592 2025-08-01 07:35:06 -07:00
Cargo.toml Revert D75066592 2025-08-01 07:35:06 -07:00
clippy.toml
CODE_OF_CONDUCT.md
CONTRIBUTING.md
FAQ.md
LICENSE-APACHE
LICENSE-MIT
README.md
rustfmt.toml

Erlang Language Platform (ELP)

ELP logo

Description

Designed at WhatsApp and inspired by the success of the Rust Analyzer project, ELP provides a scalable, fully incremental, IDE-first library for the semantic analysis of Erlang code.

ELP includes a fully fledged LSP language server for the Erlang programming language, providing advanced features such as go-to-definition, find references, call hierarchy and more for your IDE of choice.

ELP is easily extensible and provides a convenient API to implement linters and refactoring tools for Erlang.

Terms of Use

You are free to copy, modify, and distribute ELP with attribution under the terms of the Apache-2.0 and MIT licences. See LICENCE-APACHE and LICENCE-MIT for details.

Get Started

Please refer to the official documentation to get started on your favourite text editor and to learn how to configure your projects to use ELP.

References

Contributing

  • CONTRIBUTING.md: Provides an overview of how to contribute changes to ELP (e.g., diffs, testing, etc)

FAQ

Please refer to the FAQ document for answers to some common questions, including:

  • What's the difference between ELP and Erlang LS?
  • Why not extend Erlang LS, rather than creating a new tool?
  • Why is ELP implemented in Rust, rather than Erlang?

License

erlang-language-platform is dual-licensed