SmoothTerminal Open Source Spotlight: Alchemist.el
Tagged with OpenSourceSpotlight
As part of DailyDrip’s relaunch as SmoothTerminal.com, 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.
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.
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.
We’re also giving away two copies of the Developing with Elixir/OTP course from Pragmatic Studio!
Email templating systems
Francesco Orsenigo (xarvh) finally found an architecture for game state in Elm that he likes
Learn how to write an emulator - http://www.emulator101.com/
Adam has over 19 years of software development experience, and has spent a good part of that educating new developers. He was previously CTO at inside.com and Development Director at Maxmedia . When Adam isn't coding, he is off hiking in Colorado mountains, or practicing some pretty fly martial arts. He thinks swords are cool.