An API for Elixir projects that provides building blocks for code completion, documentation, go/jump to definition, signature info and more via AST inspection and runtime introspection.
ElixirSense supports the five most recent Elixir versions, paired with the latest Erlang/OTP releases each Elixir supports. The matrix below mirrors Elixir's compatibility table; each pairing is exercised in CI.
| Elixir | Erlang/OTP |
|---|---|
| 1.16 | 26 |
| 1.17 | 27 |
| 1.18 | 27 |
| 1.19 | 27, 28 |
| 1.20 | 27, 28, 29 |
Other OTP versions inside each Elixir's supported range will likely work but aren't tested.
defp deps do
[
{:elixir_sense, github: "elixir-lsp/elixir_sense"},
]
end
$ mix deps.get
$ mix test
A few of the tests require a source installation of Elixir which you can accomplish with asdf (use ref:v1.12.3) or kiex
To run the tests that require a source installation of Elixir run:
mix test --include requires_source
For coverage:
mix coveralls
- This project probably wouldn't even exist without all the work done by Samuel Tonini and all contributors from alchemist-server.
- The Expand feature was inspired by the mex tool by Luc Fueston. There's also a very nice post where he describes the whole process of Building A Macro-Expansion Helper for IEx.
- This project includes modified source code from Elixir project IEx autocomplete Copyright (c) 2012 Plataformatec, which powers introspection and suggestions features
- This project includes modified source code from ExDoc project ExDoc Copyright (c) 2012 Plataformatec, which powers documentation retrieval and formatting