Provides Elixir language support and debugger. This extension is powered by the Elixir Language Server (ElixirLS), an Elixir implementation of Microsoft's IDE-agnostic Language Server Protocol and VS Code debug protocol. Visit its page for more information. For a guide to debugger usage in Elixir, read this blog post.
This is a very early release and is not yet stable. If all you want is a good, stable Elixir editor, stick with whatever you're using now until ElixirLS is more mature.
Features include:
- Debugger supporting line breakpoints
- Inline reporting of build warnings and errors
- Documentation lookup on hover
- Go-to-definition
- Code completion
Most of the functionality of this extension comes from ElixirLS which is included as a Git submodule in the elixir-ls
folder. Make sure you clone the repo using git clone --recursive
or run git submodule init && git submodule update
after cloning. To launch the extension from VS Code, run the "Launch Extension" launch config.
Including elixir-ls
as a submodule makes it easy to develop and test code changes for ElixirLS itself. If you want to modify ElixirLS, not just its VS Code client code, you'll want to fork the ElixirLS repo on Github and push any changes you make to the ElixirLS submodule to your fork. An example of how that might look:
# Clone this repo recursively to ensure you get the elixir-ls submodule
git clone --recursive git@github.com:JakeBecker/vscode-elixir-ls.git
# Enter the submodule directory. Now, if you run git commands, they run in the submodule
cd vscode-elixir-ls/elixir-ls
# Create your feature branch
git checkout -b my_new_branch
# Add your forked elixir-ls repository as a remote
git remote add my_fork git@github.com:<your_github_username>/elixir-ls.git
# Make changes in the elixir-ls folder, commit them, and push to your forked repo
git commit ...
git push my_fork my_new_branch
There is another VS Code extension for Elixir, VSCode Elixir. It's powered by Elixir Sense, another language "smartness" server similar to ElixirLS. Much of this extension's client code (such as syntax highlighting) was copied directly from VSCode Elixir, for which they deserve all the credit.