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.
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.
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.
- CONTRIBUTING.md: Provides an overview of how to contribute changes to ELP (e.g., diffs, testing, etc)
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?
erlang-language-platform is dual-licensed