Skip to content

elixir-lsp/elixir_sense

Repository files navigation

ElixirSense Actions Status

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.

Supported versions

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.

Usage

defp deps do
  [
    {:elixir_sense, github: "elixir-lsp/elixir_sense"},
  ]
end

Testing

$ 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

Credits

  • 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

About

Provides context-aware information for code completion, documentation, go/jump to definition, signature info and more

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages