Listen "153: Elixir Tools and Language Servers"
Episode Synopsis
Language servers are an important part of modern developer tooling. Mitch Hanberg has made this his new focus with gen_lsp, a generic language server behaviour that he then implemented a Credo language server on top of. Yes, that's right, Credo! We learn what that means and what his new elixir-tools Github organization is intended to do. Listen to Mich share his vision for what Elixir dev tools could be like! We get an update on his Temple project, an alternative to Phoenix templates, we learn about an existing Elixir formatter plugin that may reformat code more to your liking and more!
Show Notes online - http://podcast.thinkingelixir.com/153 (http://podcast.thinkingelixir.com/153)
Elixir Community News
- https://github.com/elixir-lang/elixir/releases/tag/v1.15.0-rc.0 (https://github.com/elixir-lang/elixir/releases/tag/v1.15.0-rc.0?utm_source=thinkingelixir&utm_medium=shownotes) – Elixir 1.15-rc.0
- https://groups.google.com/g/elixir-lang-core/c/CjY7W9xvu80 (https://groups.google.com/g/elixir-lang-core/c/CjY7W9xvu80?utm_source=thinkingelixir&utm_medium=shownotes) – Proposal for adding URI sigil
- https://groups.google.com/g/elixir-lang-core/c/MfB7GJSXV5w (https://groups.google.com/g/elixir-lang-core/c/MfB7GJSXV5w?utm_source=thinkingelixir&utm_medium=shownotes) – Proposal for adding UTC sigil
- https://podcast.thinkingelixir.com/149 (https://podcast.thinkingelixir.com/149?utm_source=thinkingelixir&utm_medium=shownotes) – More on Logging from Łukasz Niemier
- https://twitter.com/ac_alejos/status/1658943203364544512 (https://twitter.com/ac_alejos/status/1658943203364544512?utm_source=thinkingelixir&utm_medium=shownotes) – Exgboost library released
- https://github.com/acalejos/exgboost/blob/main/notebooks/iris_classification.livemd (https://github.com/acalejos/exgboost/blob/main/notebooks/iris_classification.livemd?utm_source=thinkingelixir&utm_medium=shownotes) – Livebook example for Exgboost
- https://www.youtube.com/watch?v=cG8iwK_6KIg (https://www.youtube.com/watch?v=cG8iwK_6KIg?utm_source=thinkingelixir&utm_medium=shownotes) – ElixirConf EU Lightning Talk that visualizes supervisor behaviors using the classic computer game Doom with monster spawning and killing.
- https://github.com/amalbuquerque/doom-supervisor (https://github.com/amalbuquerque/doom-supervisor?utm_source=thinkingelixir&utm_medium=shownotes) – Github project for DoomSupervisor
- http://twitch.com/josevalim (http://twitch.com/josevalim?utm_source=thinkingelixir&utm_medium=shownotes) – José Valim has resumed some Live coding and chatting on Twitch.
- https://twitter.com/josevalim/status/1660300292619923457 (https://twitter.com/josevalim/status/1660300292619923457?utm_source=thinkingelixir&utm_medium=shownotes) – José sharing on Twitter that a Twitch Livestream will start
Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at [email protected] (mailto:[email protected])
Discussion Resources
- https://github.com/elixir-tools/credo-language-server (https://github.com/elixir-tools/credo-language-server?utm_source=thinkingelixir&utm_medium=shownotes) – LSP implementation for Credo
- https://github.com/elixir-tools/gen_lsp (https://github.com/elixir-tools/gen_lsp?utm_source=thinkingelixir&utm_medium=shownotes) – A behavior for creating language servers
- https://github.com/elixir-tools (https://github.com/elixir-tools?utm_source=thinkingelixir&utm_medium=shownotes) – Githug organization
- https://simplebet.io/index.html (https://simplebet.io/index.html?utm_source=thinkingelixir&utm_medium=shownotes)
- https://github.com/elixir-lsp/elixir-ls (https://github.com/elixir-lsp/elixir-ls?utm_source=thinkingelixir&utm_medium=shownotes)
- https://twitter.com/mitchhanberg/status/1648327430912843779 (https://twitter.com/mitchhanberg/status/1648327430912843779?utm_source=thinkingelixir&utm_medium=shownotes)
- https://www.mitchellhanberg.com/credo-language-server-and-the-birth-of-elixir-tools/ (https://www.mitchellhanberg.com/credo-language-server-and-the-birth-of-elixir-tools/?utm_source=thinkingelixir&utm_medium=shownotes) – Blog post about the Credo Language Server and Elixir Tools
- https://podcast.thinkingelixir.com/92 (https://podcast.thinkingelixir.com/92?utm_source=thinkingelixir&utm_medium=shownotes) – Previous interview about Temple (March 29th, 2022)
- https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/ (https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/?utm_source=thinkingelixir&utm_medium=shownotes) – Language Server spec from Microsoft
- https://www.youtube.com/watch?v=Ug-SEozyG1A (https://www.youtube.com/watch?v=Ug-SEozyG1A?utm_source=thinkingelixir&utm_medium=shownotes) – Code BEAM talk - "OTP Process Abstractions with proc lib"
- https://github.com/adobe/elixir-styler (https://github.com/adobe/elixir-styler?utm_source=thinkingelixir&utm_medium=shownotes) – Formatter plugin from Adobe
- https://github.com/tree-sitter/tree-sitter (https://github.com/tree-sitter/tree-sitter?utm_source=thinkingelixir&utm_medium=shownotes)
- https://github.com/elixir-toniq/norm (https://github.com/elixir-toniq/norm?utm_source=thinkingelixir&utm_medium=shownotes)
- https://github.com/mhanberg/temple (https://github.com/mhanberg/temple?utm_source=thinkingelixir&utm_medium=shownotes)
- https://github.com/petalframework/petal_components (https://github.com/petalframework/petal_components?utm_source=thinkingelixir&utm_medium=shownotes)
Guest Information
- https://twitter.com/mitchhanberg (https://twitter.com/mitchhanberg?utm_source=thinkingelixir&utm_medium=shownotes) – on Twitter
- https://github.com/mhanberg/ (https://github.com/mhanberg/?utm_source=thinkingelixir&utm_medium=shownotes) – on Github
- https://hachyderm.io/@mitchhanberg (https://hachyderm.io/@mitchhanberg?utm_source=thinkingelixir&utm_medium=shownotes) – on Fediverse
- https://www.mitchellhanberg.com/ (https://www.mitchellhanberg.com/?utm_source=thinkingelixir&utm_medium=shownotes) – Blog
- https://champions-of-hope.funraise.org/fundraiser/mitchell-hanberg (https://champions-of-hope.funraise.org/fundraiser/mitchell-hanberg?utm_source=thinkingelixir&utm_medium=shownotes) – Fund raising page for FightCRC
Find us online
- Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir)
- Message the show on Fediverse - @[email protected] (https://genserver.social/ThinkingElixir)
- Email the show - [email protected] (mailto:[email protected])
- Mark Ericksen - @brainlid (https://twitter.com/brainlid)
- Mark Ericksen on Fediverse - @[email protected] (https://genserver.social/brainlid)
- David Bernheisel - @bernheisel (https://twitter.com/bernheisel)
- David Bernheisel on Fediverse - @[email protected] (https://genserver.social/dbern)
- Cade Ward - @cadebward (https://twitter.com/cadebward)
- Cade Ward on Fediverse - @[email protected] (https://genserver.social/cadebward)
Show Notes online - http://podcast.thinkingelixir.com/153 (http://podcast.thinkingelixir.com/153)
Elixir Community News
- https://github.com/elixir-lang/elixir/releases/tag/v1.15.0-rc.0 (https://github.com/elixir-lang/elixir/releases/tag/v1.15.0-rc.0?utm_source=thinkingelixir&utm_medium=shownotes) – Elixir 1.15-rc.0
- https://groups.google.com/g/elixir-lang-core/c/CjY7W9xvu80 (https://groups.google.com/g/elixir-lang-core/c/CjY7W9xvu80?utm_source=thinkingelixir&utm_medium=shownotes) – Proposal for adding URI sigil
- https://groups.google.com/g/elixir-lang-core/c/MfB7GJSXV5w (https://groups.google.com/g/elixir-lang-core/c/MfB7GJSXV5w?utm_source=thinkingelixir&utm_medium=shownotes) – Proposal for adding UTC sigil
- https://podcast.thinkingelixir.com/149 (https://podcast.thinkingelixir.com/149?utm_source=thinkingelixir&utm_medium=shownotes) – More on Logging from Łukasz Niemier
- https://twitter.com/ac_alejos/status/1658943203364544512 (https://twitter.com/ac_alejos/status/1658943203364544512?utm_source=thinkingelixir&utm_medium=shownotes) – Exgboost library released
- https://github.com/acalejos/exgboost/blob/main/notebooks/iris_classification.livemd (https://github.com/acalejos/exgboost/blob/main/notebooks/iris_classification.livemd?utm_source=thinkingelixir&utm_medium=shownotes) – Livebook example for Exgboost
- https://www.youtube.com/watch?v=cG8iwK_6KIg (https://www.youtube.com/watch?v=cG8iwK_6KIg?utm_source=thinkingelixir&utm_medium=shownotes) – ElixirConf EU Lightning Talk that visualizes supervisor behaviors using the classic computer game Doom with monster spawning and killing.
- https://github.com/amalbuquerque/doom-supervisor (https://github.com/amalbuquerque/doom-supervisor?utm_source=thinkingelixir&utm_medium=shownotes) – Github project for DoomSupervisor
- http://twitch.com/josevalim (http://twitch.com/josevalim?utm_source=thinkingelixir&utm_medium=shownotes) – José Valim has resumed some Live coding and chatting on Twitch.
- https://twitter.com/josevalim/status/1660300292619923457 (https://twitter.com/josevalim/status/1660300292619923457?utm_source=thinkingelixir&utm_medium=shownotes) – José sharing on Twitter that a Twitch Livestream will start
Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at [email protected] (mailto:[email protected])
Discussion Resources
- https://github.com/elixir-tools/credo-language-server (https://github.com/elixir-tools/credo-language-server?utm_source=thinkingelixir&utm_medium=shownotes) – LSP implementation for Credo
- https://github.com/elixir-tools/gen_lsp (https://github.com/elixir-tools/gen_lsp?utm_source=thinkingelixir&utm_medium=shownotes) – A behavior for creating language servers
- https://github.com/elixir-tools (https://github.com/elixir-tools?utm_source=thinkingelixir&utm_medium=shownotes) – Githug organization
- https://simplebet.io/index.html (https://simplebet.io/index.html?utm_source=thinkingelixir&utm_medium=shownotes)
- https://github.com/elixir-lsp/elixir-ls (https://github.com/elixir-lsp/elixir-ls?utm_source=thinkingelixir&utm_medium=shownotes)
- https://twitter.com/mitchhanberg/status/1648327430912843779 (https://twitter.com/mitchhanberg/status/1648327430912843779?utm_source=thinkingelixir&utm_medium=shownotes)
- https://www.mitchellhanberg.com/credo-language-server-and-the-birth-of-elixir-tools/ (https://www.mitchellhanberg.com/credo-language-server-and-the-birth-of-elixir-tools/?utm_source=thinkingelixir&utm_medium=shownotes) – Blog post about the Credo Language Server and Elixir Tools
- https://podcast.thinkingelixir.com/92 (https://podcast.thinkingelixir.com/92?utm_source=thinkingelixir&utm_medium=shownotes) – Previous interview about Temple (March 29th, 2022)
- https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/ (https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/?utm_source=thinkingelixir&utm_medium=shownotes) – Language Server spec from Microsoft
- https://www.youtube.com/watch?v=Ug-SEozyG1A (https://www.youtube.com/watch?v=Ug-SEozyG1A?utm_source=thinkingelixir&utm_medium=shownotes) – Code BEAM talk - "OTP Process Abstractions with proc lib"
- https://github.com/adobe/elixir-styler (https://github.com/adobe/elixir-styler?utm_source=thinkingelixir&utm_medium=shownotes) – Formatter plugin from Adobe
- https://github.com/tree-sitter/tree-sitter (https://github.com/tree-sitter/tree-sitter?utm_source=thinkingelixir&utm_medium=shownotes)
- https://github.com/elixir-toniq/norm (https://github.com/elixir-toniq/norm?utm_source=thinkingelixir&utm_medium=shownotes)
- https://github.com/mhanberg/temple (https://github.com/mhanberg/temple?utm_source=thinkingelixir&utm_medium=shownotes)
- https://github.com/petalframework/petal_components (https://github.com/petalframework/petal_components?utm_source=thinkingelixir&utm_medium=shownotes)
Guest Information
- https://twitter.com/mitchhanberg (https://twitter.com/mitchhanberg?utm_source=thinkingelixir&utm_medium=shownotes) – on Twitter
- https://github.com/mhanberg/ (https://github.com/mhanberg/?utm_source=thinkingelixir&utm_medium=shownotes) – on Github
- https://hachyderm.io/@mitchhanberg (https://hachyderm.io/@mitchhanberg?utm_source=thinkingelixir&utm_medium=shownotes) – on Fediverse
- https://www.mitchellhanberg.com/ (https://www.mitchellhanberg.com/?utm_source=thinkingelixir&utm_medium=shownotes) – Blog
- https://champions-of-hope.funraise.org/fundraiser/mitchell-hanberg (https://champions-of-hope.funraise.org/fundraiser/mitchell-hanberg?utm_source=thinkingelixir&utm_medium=shownotes) – Fund raising page for FightCRC
Find us online
- Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir)
- Message the show on Fediverse - @[email protected] (https://genserver.social/ThinkingElixir)
- Email the show - [email protected] (mailto:[email protected])
- Mark Ericksen - @brainlid (https://twitter.com/brainlid)
- Mark Ericksen on Fediverse - @[email protected] (https://genserver.social/brainlid)
- David Bernheisel - @bernheisel (https://twitter.com/bernheisel)
- David Bernheisel on Fediverse - @[email protected] (https://genserver.social/dbern)
- Cade Ward - @cadebward (https://twitter.com/cadebward)
- Cade Ward on Fediverse - @[email protected] (https://genserver.social/cadebward)
More episodes of the podcast Thinking Elixir Podcast
283: Erlang Turns 27 and React at Risk
16/12/2025
282: Type Systems and View Transitions
09/12/2025
281: Planning for the Unexpected
02/12/2025
280: Dark Matter Developers
25/11/2025
279: Hot Code Upgrades and Hotter AI Takes
18/11/2025
278: WAL-ing Through Database Changes
11/11/2025
277: Searching Across the Hexiverse
04/11/2025
276: Elixir v1.19 Types and Speed
28/10/2025
275: From Slop to Success?
21/10/2025
274: Protocols, Permissions, and Performance
14/10/2025
ZARZA We are Zarza, the prestigious firm behind major projects in information technology.