Introducing ElixirLS, the Elixir Language Server

Thanks so much Jake for all of your extremely hard work on ElixirLS and for being willing to merge the two projects back together :heart:, we wouldn’t have been able to accomplish so much without you. I do hope that eventually you can get back to Elixir coding and work as part of the ElixirLS core team :blush:. And I also hope that you get to enjoy working with your hands on your house (and some physical labor does sound like a nice break from coding).

11 Likes

Awesome to hear there will be one ElixirLS to rule them all. Any ETA when we should move from the fork back to the OG plugin?

Thanks to all those who started and who continue to work on ElixirLS!

1 Like

You can move from the fork back to the original plugin now: https://marketplace.visualstudio.com/items?itemName=JakeBecker.elixir-ls

There was a new release yesterday. Here’s a link to the changelog: https://github.com/elixir-lsp/elixir-ls/blob/master/CHANGELOG.md#v033-15-apr-2020

5 Likes

To avoid future confusion, I might suggest archiving the JakeBecker repository and contacting GitHub support to convert the elixir-lsp repository from a “fork” to a “normal” repository.

11 Likes

It’s a good news!

Just a little confused that the extension name is JakeBecker.elixir-ls while the Github repo is elixir-lsp/elixir-ls.

And maybe doing the same by contacting VSCode so that the new extension name keep the stats of the old one.

Also, does anyone know how to handle the Plugin when working with a Phoenix umbrella app ?
I guessed that pointing to the root of the umbrella would be the things to do, but when doing this I got some errors/warning on the child apps.
Currently I set the mix directory to the Phoenix App (e.g. my_app_web)

Unfortunately it’s my understanding that isn’t possible to rename the VSCode extension publisher to match.

Version 0.4.0 was released today! :confetti_ball:

(Note that there are some potentially breaking changes for VSCode users)
(Note: if you’re using the “ElixirLS Fork” version of the VSCode plugin you should switch back to ElixirLS)

Here are the highlights:

General:

Major changes:

Changes:

  • Add all core elixir apps to the Dialyzer PLT. (thanks Eric Entin) #225
  • Change “did not receive workspace/didChangeConfiguration” log level from warning to info (thanks Jason Axelson) #222
  • Automatically create a .gitignore file inside the .elixir-ls dir so that users do not need to manually add it to their gitignore (thanks Thanabodee Charoenpiriyakij) #232
  • Load all modules after first build (thanks Akash Hiremath) #227
    • This means that dialyzer is no longer needed for workspace symbol support :tada:

Bug Fixes:

  • Don’t return snippets to clients that don’t declare snippetSupport (such as vim) (thanks Jeffrey Xiao) #223

VSCode:

  • Better phoenix templates support (thanks Marlus Saraiva) #93
  • Add basic support for .html.leex files for Phoenix LiveView (thanks oskarkook) #82
  • Add filetype and watcher for .html.leex files for Phoenix LiveView (thanks Byron Hambly) #83

VSCode potentially breaking changes:

  • Change language id to be lowercase kebab-case in accordance with VSCode guidelines. This also fixes an issue displaying the elixir logo for html.eex files. (thanks Matt Furden) #87
    • This changes the language id’s EEx->eex and HTML (EEx)->html-eex
    • If you have customized your emmet configuration configuration then you need to update it:
    • Open VSCode and hit Ctrl+Shift+P or Cmd+Shift+P and type "Preference: Open Settings (JSON)"
    • Add or edit your emmet.includedLanguages to include the new Language Id:
      "emmet.includeLanguages": {
        "html-eex": "html"
      }
      

Full changelog

I want to give a huge thanks to all the contributors to this release! :heart: As you can see from the changelog there are quite a few!

52 Likes

Wow, solid update. Great work everyone! :orange_heart:

1 Like

Thank you so much everyone - ElixirLS is a huge productive boost, and sweating all these details and improvements makes a massive difference! :blush:

2 Likes

For vim and vim-lsp users, I opened PR for upgrade elixir-ls to vim-lsp-settings here.

7 Likes

Thanks @wingyplus.

Version 0.5.0 was released today! :confetti_ball:

Here are the highlights:

General:

Major changes:

Changes:

  • Support WorkspaceSymbols (go to symbol in workspace) without dialyzer being enabled (thanks Jason Axelson) #263
  • Add completions for @moduledoc false and @doc false (thanks Jason Axelson) #288
  • No longer always return a static list of keywords for completion (thanks Jason Axelson) #259

Bug Fixes:

Also numerous https://github.com/elixir-lsp/elixir_sense/ changes, improvements, and bug fixes

VSCode Changes

Updating to the latest release should happen automatically

  • Major improvement: Support workspaces with multiple elixir projects (especially those where the Elixir project is not part in the root) (thanks Alessandro Tagliapietra) #70
    • Support per-folder configuration for many settings (makes the multi-workspace support more powerful) (thanks AJ Foster) #110
  • Major improvement: Improved support for phoenix templates (thanks Marlus Saraiva) #93
    • Shows errors in .eex and .leex files (instead of associated .ex file)
  • Improve syntax highlighting following pipes (thanks Dusty Pomerleau) #81
  • Activate extension whenever workspace contains elixir files (thanks Jason Axelson) #107
  • Make heredocs and most sigils auto-close when used with quotes and triple quotes (thanks Jarrod Davis) #101
  • Improve syntax highlighting following pipes (thanks Dusty Pomerleau) #81
  • Make % a dedicated punctuation scope in elixir syntax file (thanks Dusty Pomerleau) #72

I want to give a huge thanks to all the contributors to this release! :heart: As you can see from the changelog there are quite a few!

Full changelog

(Note: if you’re using the “ElixirLS Fork” version of the VSCode plugin you should switch back to ElixirLS)

51 Likes

It was a bit late but a pull request for upgrading elixir-ls v0.5.0 was open in vim-lsp here.

2 Likes

Would love it if someone could upload the VSCode package to https://open-vsx.org/ so that users of the latest version of VSCodium – the fully open source binary of VSCode – can access ElixirLS via that marketplace without having to hack around to the Microsoft marketplace (as newer versions of VSCodium now require).

3 Likes

Just published ElixirLS to the openvsx marketplace! :confetti_ball:

5 Likes

Hey Folks! Just curious if anyone has tried ElixirLS with the Release Candidate of Neovim 0.5.

(It is supposed to have a built-in LSP client! - https://neovim.io/roadmap/)

1 Like

I have been using it with nvim-lsp package which’s provide language server setup including ElixirLS.

Version 0.6.0 was released today! :confetti_ball:

Here are the highlights:

General:

Major changes:

Improvements:

Bug Fixes:

  • Fix issue with formatting and deps handling (thanks Thanabodee Charoenpiriyakij) #345
    • This would manifest as ** (Mix.Error) Unknown dependency :ecto_sql given to :import_deps in the formatter configuration.
  • Fix formatting files in umbrella projects (thanks Drew Olson)#350
  • Fix callback suggesions (thanks Łukasz Samson) #359

Note: MIX_TARGET support was added in 0.5.0 but wasn’t added to the changelog until later:

  • Support MIX_TARGET so the language server can have target specific contexts, like with Nerves (thanks Jon Carstens) #299

Potentially breaking changes:

  • Do not format files that are not listed in inputs of .formatter.exs (thanks Tan Jay Jun) #315
    • Note this is especially important for files like mix.lock
  • Drop OTP 20 and Elixir 1.7.x support and set some version support guidelines (thanks Jason Axelson) #337

I want to give a huge thanks to all the contributors to this release! :heart:

Full Changelog

29 Likes

This is an awesome release :heart_eyes: Kudos to all who contributed!

I’ve just upgraded but the extension seems to have issues loading.

I’ve opened an issue here https://github.com/elixir-lsp/elixir-ls/issues/371 and will try to address later when time permits.


Update: seems to be a VS Code package issue so moved it to the right repo https://github.com/elixir-lsp/vscode-elixir-ls/issues/145

3 Likes

Yeah, turns out there were a couple issues with the packaging for the VSCode extension for 0.6.0. I’ve released a new version of the VSCode extension (0.6.1) that resolves them.

2 Likes