Erlang Language Platform. LSP server and CLI. https://whatsapp.github.io/erlang-language-platform/
Find a file
Alan Zimmerman 8efb4fe29c
Some checks are pending
ELP CI / edb (push) Waiting to run
ELP CI / ci (26, 26.2.5.13, linux, 26.2, ubuntu-22.04, ubuntu-22.04-x64, x86_64-unknown-linux-gnu, true, linux-x64) (push) Blocked by required conditions
ELP CI / ci (26, 26.2.5.13, linux, 26.2, ubuntu-22.04-arm, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, true, linux-arm64) (push) Blocked by required conditions
ELP CI / ci (26, 26.2.5.13, macos, 26.2, macos-13, macos-13-x64, x86_64-apple-darwin, true, darwin-x64) (push) Blocked by required conditions
ELP CI / ci (26, 26.2.5.13, macos, 26.2, macos-latest, macos-latest-arm, aarch64-apple-darwin, true, darwin-arm64) (push) Blocked by required conditions
ELP CI / ci (26, 26.2.5.13, windows, 26.2, windows-2022, windows-2022-x64, x86_64-pc-windows-msvc, true, win32-x64) (push) Blocked by required conditions
ELP CI / ci (27, 27.3.4, linux, 27.3, ubuntu-22.04, ubuntu-22.04-x64, x86_64-unknown-linux-gnu, false, linux-x64) (push) Blocked by required conditions
ELP CI / ci (27, 27.3.4, linux, 27.3, ubuntu-22.04-arm, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, false, linux-arm64) (push) Blocked by required conditions
ELP CI / ci (27, 27.3.4, macos, 27.3, macos-13, macos-13-x64, x86_64-apple-darwin, false, darwin-x64) (push) Blocked by required conditions
ELP CI / ci (27, 27.3.4, macos, 27.3, macos-latest, macos-latest-arm, aarch64-apple-darwin, false, darwin-arm64) (push) Blocked by required conditions
ELP CI / ci (27, 27.3.4, windows, 27.3, windows-2022, windows-2022-x64, x86_64-pc-windows-msvc, false, win32-x64) (push) Blocked by required conditions
ELP CI / ci (28, 28.0.1, linux, 28, ubuntu-22.04, ubuntu-22.04-x64, x86_64-unknown-linux-gnu, false, linux-x64) (push) Blocked by required conditions
ELP CI / ci (28, 28.0.1, linux, 28, ubuntu-22.04-arm, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, false, linux-arm64) (push) Blocked by required conditions
ELP CI / ci (28, 28.0.1, macos, 28, macos-13, macos-13-x64, x86_64-apple-darwin, false, darwin-x64) (push) Blocked by required conditions
ELP CI / ci (28, 28.0.1, macos, 28, macos-latest, macos-latest-arm, aarch64-apple-darwin, false, darwin-arm64) (push) Blocked by required conditions
ELP CI / ci (28, 28.0.1, windows, 28, windows-2022, windows-2022-x64, x86_64-pc-windows-msvc, false, win32-x64) (push) Blocked by required conditions
Deploy Website to GitHub Pages / Deploy Website to GitHub Pages (push) Waiting to run
BE: track related info in declarative tests
Summary:
Our declarative tests allow us to add annotations for expected diagnostics, so we can clearly see and check what is generated.

But at present there is no way to check any related information for a diagnostic.

This diff adds that capability, showing related information together with the FileId and range each refers to.

Reviewed By: robertoaloi

Differential Revision: D87316965

fbshipit-source-id: ea7db2980b11950c3552befec7b666665ceef84b
2025-11-19 03:56:10 -08:00
.cargo Add release-thin profile 2025-05-23 02:51:18 -07:00
.github Add eqwalizer as submodule (#120) 2025-10-21 03:20:03 -07:00
.llms/rules BE: track related info in declarative tests 2025-11-19 03:56:10 -08:00
.vscode Make tasks.json work for internal and OSS usage 2025-09-12 02:39:39 -07:00
bench_runner Update License Headers for Open Source 2025-07-01 12:42:03 -07:00
crates BE: track related info in declarative tests 2025-11-19 03:56:10 -08:00
docs Move Code Actions docs to the site 2023-08-31 11:41:19 -07:00
editors/code Bump OSS VS Code extension to 0.44.0 2025-11-03 12:20:34 -08:00
elisp Cleanup references 2025-10-08 06:43:43 -07:00
eqwalizer@bed8636fa6 Update eqWAlizer submodule (#130) 2025-11-04 04:25:25 -08:00
erlang_service limit ports for Erlang service 2025-05-22 07:09:22 -07:00
logo add the svg logo assets too 2025-05-15 01:15:44 -07:00
node_modules dependabot update 2025-04-08 06:19:54 -07:00
test_projects Convert missing_compile_warn_missing_spec linter to use trait 2025-11-14 10:05:06 -08:00
website Bump docusaurus to 3.9.2 2025-11-17 13:07:42 -08:00
xtask BE: Fix new clippy warnings from rust 1.88.0 2025-07-15 09:59:27 -07:00
.gitignore Add .globalcache to .gitignore 2024-05-22 01:23:12 -07:00
.gitmodules Add eqwalizer as submodule (#120) 2025-10-21 03:20:03 -07:00
Cargo.lock Point Cargo.toml to tree-sitter-erlang crate 2025-10-10 05:08:28 -07:00
Cargo.toml BE: remove workspace reference to non-existent erl_ast crate 2025-11-10 03:36:04 -08:00
clippy.toml BE: clippy clean 2025-05-06 07:35:41 -07:00
CODE_OF_CONDUCT.md Initial commit 2023-08-02 07:54:59 -07:00
CONTRIBUTING.md Fix issue where W0008 could not be disabled (#114) 2025-08-22 08:59:06 -07:00
FAQ.md Fix typo in FAQ (#2) 2023-08-03 04:26:33 -07:00
LICENSE-APACHE Initial commit 2023-08-02 07:54:59 -07:00
LICENSE-MIT Initial commit 2023-08-02 07:54:59 -07:00
README.md Remove duplicated info from README, point to Documentation instead 2024-02-14 10:29:29 -08:00
rustfmt.toml rustfmt update 2025-10-22 15:17:54 -07:00

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