SmoothTerminal Open Source Spotlight: Alchemist.el

As part of DailyDrip’s relaunch as, we want to spotlight some cool projects in the open source community. These projects are looking for exposure or assistance. If you’d like your project to be featured, hit reply and let us know about it.

Grab a copy of Exploding Rails for 50% off!

Congrats to Mohamed, Alex, and Wheeler for winning a copy of Exploding Rails by Ryan Bigg. If you want to pick up a copy of your own, here’s a coupon for 50% off.

Project Spotlight: Alchemist - Elixir Tooling Integration Into Emacs

Alchemist Logo

This week the spotlight is on Alchemist.el, maintained by Samuel Tonini and extended by Aldric Giacomoni.

Alchemist.el is the seminal plugin for Elixir development in emacs. All other Elixir editor plugins have built upon Alchemist -- either in name or by leveraging its code. Alchemist includes an Elixir server to parse projects and provide features such as completion and go-to-definition.

Recently, Microsoft released its Language Server Protocol. The LSP is a specification with the goal of unifying development communities behind a single IDE-server implementation, simplifying the creation of editor plugins to [an IDE] client for the server with a standardized API.

Back in February, Aldric started a refactor of Alchemist to use LSP. Aldric has done the work of figuring out how to connect all the pieces together and showcasing this in this pull request (see the alchemist-elixir-ls.el file), and now needs some help finishing this work.

There are three layers to deal with:

  • alchemist.el - in emacs-lisp, the user-facing client

  • elixir-ls - the LSP server, which receives requests from the client, and asks the language server for the response

  • elixir_sense - the language server, which does the code analysis

There's a little bit of everything: regular Elixir, regular elisp, macro-based Elixir, macro-based elisp, some Elixir AST parsing work. The work left to be done until the PR is at feature parity + benefits from the LSP refactor is tracked in this GitHub project. If you don’t feel comfortable contributing code immediately, documentation is also a great place to start to help out a project.

Enter to win Developing with Elixir/OTP course

We’re also giving away two copies of the Developing with Elixir/OTP course from Pragmatic Studio!

/DEV/RANDOM - it’s not news, but it is newsworthy