Listen "54: AST Parsing using Sourceror with Lucas San Román"
Episode Synopsis
We talk with Lucas San Román about his library Sourceror and how it was created to solve some AST parsing limitations. The Elixir parser discards code comments, so it can’t be used for re-writing Elixir code when refactoring. IDE’s often include more advanced refactoring tools and the ability to provide that requires a smarter parser. Sourceror keeps the comments while also providing advanced features like a Zipper API to more easily navigate around the source tree while inserting and removing nodes. Learn what Sourceror can do and what it can enable for future Elixir tools!
Show Notes online - http://podcast.thinkingelixir.com/54 (http://podcast.thinkingelixir.com/54)
Elixir Community News
- https://www.elixirconf.eu/ (https://www.elixirconf.eu/) – ElixirConfEU will be in Warsaw Poland on September 9-10
- https://2021.elixirconf.com/ (https://2021.elixirconf.com/) – ElixirConf US 2021 ElixirConf US 2021 is being held in Austin, TX October 12-13 and Online, October 14-15
- https://github.com/phoenixframework/phoenixliveview/pull/1490 (https://github.com/phoenixframework/phoenix_live_view/pull/1490) – livesession for optimized live navigation purely over websockets PR was merged and had docs
- https://github.com/livewire/livewire/commit/5cffdbfe4204e0d932cde6f8c9bdf63f0928b4d4#diff-7ce6ac695f53fd2e2c50f1f962b00fb2da5cdf2576a1c1d6eeacca29f34b6024R291 (https://github.com/livewire/livewire/commit/5cffdbfe4204e0d932cde6f8c9bdf63f0928b4d4#diff-7ce6ac695f53fd2e2c50f1f962b00fb2da5cdf2576a1c1d6eeacca29f34b6024R291) – Alpine V3 released
- https://twitter.com/bernheisel/status/1404832454536478722 (https://twitter.com/bernheisel/status/1404832454536478722) – Need to update your Phoenix LiveView hook for Alpine V3
- https://github.com/erlang/otp/pull/4869 (https://github.com/erlang/otp/pull/4869) – ARM support for OTP24/JIT was merged a couple weeks ago
- https://twitter.com/josevalim/status/1405586165315604486 (https://twitter.com/josevalim/status/1405586165315604486) – Livebook 0.2 released
- https://youtu.be/MOTEgF-wIEI?t=1132 (https://youtu.be/MOTEgF-wIEI?t=1132) – Jose Valim's demo video - time signature to the Kino section
- https://twitter.com/josevalim/status/1407084358750572548 (https://twitter.com/josevalim/status/1407084358750572548) – Tweet thread showing Kino datatable and execution timing display
- https://github.com/kentaro/offbroadwayotp_distribution (https://github.com/kentaro/off_broadway_otp_distribution) – offbroadwayotp_distribution library
- https://twitter.com/gleamlang/status/1405504902655361024 (https://twitter.com/gleamlang/status/1405504902655361024) – Gleam 0.16 released and can now compile to Javascript
- https://gleam.run/news/v0.16-gleam-compiles-to-javascript/ (https://gleam.run/news/v0.16-gleam-compiles-to-javascript/) – Gleam release announcement
- https://github.com/phoenixframework/phoenix/pull/4337 (https://github.com/phoenixframework/phoenix/pull/4337) – Asset Pipeline rewrite merged
- https://youtu.be/vdhK0QPN61E?t=839 (https://youtu.be/vdhK0QPN61E?t=839) – Elixir Roundtable 3 discussion talks about the JS woes. Time signature links to the mentioned part of the discussion.
- https://twitter.com/MarlusSaraiva/status/1405621630597013508 (https://twitter.com/MarlusSaraiva/status/1405621630597013508) – Surface 0.5 released
- https://surface-ui.org/template_syntax (https://surface-ui.org/template_syntax) – Surface's new template syntax
- https://github.com/surface-ui/surface/blob/master/MIGRATING.md (https://github.com/surface-ui/surface/blob/master/MIGRATING.md) – Surface migration guide
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/doorgan/sourceror (https://github.com/doorgan/sourceror)
- https://twitter.com/bostonvaulter/status/1403055559612375041 (https://twitter.com/bostonvaulter/status/1403055559612375041)
- https://www.youtube.com/watch?v=aM0BLWgr0g4 (https://www.youtube.com/watch?v=aM0BLWgr0g4) – Arjan Scherpenisse - The Elixir parser under the microscope - ElixirConfEU
- https://groups.google.com/u/1/g/elixir-lang-core/c/GM0yM5Su1Zc/m/poIKsiEVDQAJ (https://groups.google.com/u/1/g/elixir-lang-core/c/GM0yM5Su1Zc/m/poIKsiEVDQAJ)
- https://github.com/elixir-lsp/elixir-ls (https://github.com/elixir-lsp/elixir-ls)
- https://dorgan.netlify.app/posts/2021/04/theelixirast/ (https://dorgan.netlify.app/posts/2021/04/the_elixir_ast/)
- https://github.com/andyl/rfx (https://github.com/andyl/rfx)
- Tonći Galić
Guest Information
- https://twitter.com/dorgandash1 (https://twitter.com/dorgandash1) – on Twitter
- https://github.com/doorgan/ (https://github.com/doorgan/) – on Github
- https://dorgan.netlify.app/ (https://dorgan.netlify.app/) – Blog
Find us online
- Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir)
- Email the show - [email protected] (mailto:[email protected])
- Mark Ericksen - @brainlid (https://twitter.com/brainlid)
- David Bernheisel - @bernheisel (https://twitter.com/bernheisel)
- Cade Ward - @cadebward (https://twitter.com/cadebward)
Show Notes online - http://podcast.thinkingelixir.com/54 (http://podcast.thinkingelixir.com/54)
Elixir Community News
- https://www.elixirconf.eu/ (https://www.elixirconf.eu/) – ElixirConfEU will be in Warsaw Poland on September 9-10
- https://2021.elixirconf.com/ (https://2021.elixirconf.com/) – ElixirConf US 2021 ElixirConf US 2021 is being held in Austin, TX October 12-13 and Online, October 14-15
- https://github.com/phoenixframework/phoenixliveview/pull/1490 (https://github.com/phoenixframework/phoenix_live_view/pull/1490) – livesession for optimized live navigation purely over websockets PR was merged and had docs
- https://github.com/livewire/livewire/commit/5cffdbfe4204e0d932cde6f8c9bdf63f0928b4d4#diff-7ce6ac695f53fd2e2c50f1f962b00fb2da5cdf2576a1c1d6eeacca29f34b6024R291 (https://github.com/livewire/livewire/commit/5cffdbfe4204e0d932cde6f8c9bdf63f0928b4d4#diff-7ce6ac695f53fd2e2c50f1f962b00fb2da5cdf2576a1c1d6eeacca29f34b6024R291) – Alpine V3 released
- https://twitter.com/bernheisel/status/1404832454536478722 (https://twitter.com/bernheisel/status/1404832454536478722) – Need to update your Phoenix LiveView hook for Alpine V3
- https://github.com/erlang/otp/pull/4869 (https://github.com/erlang/otp/pull/4869) – ARM support for OTP24/JIT was merged a couple weeks ago
- https://twitter.com/josevalim/status/1405586165315604486 (https://twitter.com/josevalim/status/1405586165315604486) – Livebook 0.2 released
- https://youtu.be/MOTEgF-wIEI?t=1132 (https://youtu.be/MOTEgF-wIEI?t=1132) – Jose Valim's demo video - time signature to the Kino section
- https://twitter.com/josevalim/status/1407084358750572548 (https://twitter.com/josevalim/status/1407084358750572548) – Tweet thread showing Kino datatable and execution timing display
- https://github.com/kentaro/offbroadwayotp_distribution (https://github.com/kentaro/off_broadway_otp_distribution) – offbroadwayotp_distribution library
- https://twitter.com/gleamlang/status/1405504902655361024 (https://twitter.com/gleamlang/status/1405504902655361024) – Gleam 0.16 released and can now compile to Javascript
- https://gleam.run/news/v0.16-gleam-compiles-to-javascript/ (https://gleam.run/news/v0.16-gleam-compiles-to-javascript/) – Gleam release announcement
- https://github.com/phoenixframework/phoenix/pull/4337 (https://github.com/phoenixframework/phoenix/pull/4337) – Asset Pipeline rewrite merged
- https://youtu.be/vdhK0QPN61E?t=839 (https://youtu.be/vdhK0QPN61E?t=839) – Elixir Roundtable 3 discussion talks about the JS woes. Time signature links to the mentioned part of the discussion.
- https://twitter.com/MarlusSaraiva/status/1405621630597013508 (https://twitter.com/MarlusSaraiva/status/1405621630597013508) – Surface 0.5 released
- https://surface-ui.org/template_syntax (https://surface-ui.org/template_syntax) – Surface's new template syntax
- https://github.com/surface-ui/surface/blob/master/MIGRATING.md (https://github.com/surface-ui/surface/blob/master/MIGRATING.md) – Surface migration guide
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/doorgan/sourceror (https://github.com/doorgan/sourceror)
- https://twitter.com/bostonvaulter/status/1403055559612375041 (https://twitter.com/bostonvaulter/status/1403055559612375041)
- https://www.youtube.com/watch?v=aM0BLWgr0g4 (https://www.youtube.com/watch?v=aM0BLWgr0g4) – Arjan Scherpenisse - The Elixir parser under the microscope - ElixirConfEU
- https://groups.google.com/u/1/g/elixir-lang-core/c/GM0yM5Su1Zc/m/poIKsiEVDQAJ (https://groups.google.com/u/1/g/elixir-lang-core/c/GM0yM5Su1Zc/m/poIKsiEVDQAJ)
- https://github.com/elixir-lsp/elixir-ls (https://github.com/elixir-lsp/elixir-ls)
- https://dorgan.netlify.app/posts/2021/04/theelixirast/ (https://dorgan.netlify.app/posts/2021/04/the_elixir_ast/)
- https://github.com/andyl/rfx (https://github.com/andyl/rfx)
- Tonći Galić
Guest Information
- https://twitter.com/dorgandash1 (https://twitter.com/dorgandash1) – on Twitter
- https://github.com/doorgan/ (https://github.com/doorgan/) – on Github
- https://dorgan.netlify.app/ (https://dorgan.netlify.app/) – Blog
Find us online
- Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir)
- Email the show - [email protected] (mailto:[email protected])
- Mark Ericksen - @brainlid (https://twitter.com/brainlid)
- David Bernheisel - @bernheisel (https://twitter.com/bernheisel)
- Cade Ward - @cadebward (https://twitter.com/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.