The 2023 elixir-tools Update (Vol. 5)
elixir-tools has had an incredible first year!
The amount of support from the community has far exceeded my expectations, and I couldn't be happier. I wanted to wrap up the year sharing the progress that has been made and thank all of our wonderful contributors and sponsors.
There is also a small announcement/surprise at the end 😉.
Next LS is the main project from elixir-tools, so the star child gets to go first 😄.
- 11,525 total downloads
- 2,332 from hex.pm (it switched to GitHub downloads at v0.8)
- 9,193 from GitHub releases
- 2,299 downloads of the latest release (v0.15.0)
- 55 releases
20 Contributors NJichev RoboZoom aayushmau5 akirak biletskyy crbelaus dvic fhunleth goofansu ismaelga jamesvl jjcarstens jozuas lud-wj mikayla-maki philipgiuliani shanesveller stefanluptak wkirschbaum zachallaun
As of writing, Next LS supports the following features:
- Compiler Diagnostics
- Go To Definition
- Find References
- Hover Documentation
- Document Symbols
- Workspace Symbols
- Workspace Folders
- Credo (Extension)
Next LS is also supported in the following editors:
Tableau is the static site generator that powers this very website!
Tableau has started to become very feature complete this year, supporting most of the essentials you'd expect from any static site generator:
- Good code and browser reloading on file change
- Easy to use the current Node.js JS/CSS tooling
- Ability to work with "data" (either dynamic data or static files)
- YAML Files
- Elixir scripts (.exs files)
- Handles stuff like Posts, RSS, sitemap, SEO.
If you are migrating from a Jekyll site, you might take advantage of the solid library for Liquid templates.
I'd also like to give a shoutout to Leandro Pereira for the wonderful MDEx library. This markdown library uses a NIF to a rust library that supports the full CommonMark spec and the GitHub Flavored Markdown spec. This is important as it allows an easier migration for blogs and websites built in other frameworks like Jekyll.
Also, a feature that I particularly like, is that it supports syntax highlighting with tree-sitter, which means we immediately get support for almost every syntax that exists, as well as tons of colorschemes that come from the Helix text editor.
Thank you Leandro!
One side effect from building out Tableau, is that I had copy pasted the same utilities into an app for the third time, so I decided to finally make it a package.
web_dev_utils is a small package that provides modules for adding asset watchers, file watching, and browser live reloading to your library or framework.
This couldn't have been possible without Phoenix laying the foundation, so thank you Phoenix!
Here's the surprise 🎉.
I am currently building a new error tolerant parser for Elixir that I am code naming "Spitfire".
The driving factor behind this parser is to make it possible to "successfully" parse malformed or incomplete Elixir code, which will allow us to properly query the "environment" of the cursor in a text editor.
This is currently possible for proper/correct Elixir code, but not incomplete code (which occurs more often than complete code when you are in your text editor). This information will eventually allow editor tooling like Next LS to provide accurate and context aware completion candidates, among other features.
The discord server keeps growing!
We currently have 195 members and are getting more every day, come join the party!
I'd like to give a huge shout out to all of the contributors, bug reporters, and to all of my GitHub sponsors! Without the support of all of you, none of this would be possible.
How to get involved
If you'd like to get involved with elixir-tools, there are several ways: