Marco Roth's Avatar

Marco Roth

@marcoroth.dev

Full-Stack Web Developer • OSS Contributor • Electronic Music Addict • Ruby/Rails, JavaScript/Stimulus, Crystal • Hotwire Contributors Team • StimulusReflex Core. Website: marcoroth.dev Building: rubyevents.org | rubyconferences.org | gem.sh | hotwire.io

1,951
Followers
313
Following
852
Posts
11.11.2023
Joined
Posts Following

Latest posts by Marco Roth @marcoroth.dev

Preview
Extension API: let extensions arbitrarily send and receive LSP messages · Issue #20042 · zed-industries/zed Check for existing issues Completed Describe the feature Extensions currently cannot send or receive LSP messages. This may force extension authors to exclude a number of features, workarounds ofte...

Yeah, looks like it's not possible yet: github.com/zed-industri...

That's quite a bizarre choice to not support that 🤔

07.03.2026 13:00 👍 0 🔁 0 💬 0 📌 0

I actually implemented that as well as I have been doing that too. But it's a separate custom block-comment request you can bind to a shortcut.

But I realized that I only have been doing that because my editor kept messing it up. I thought it would be sad to bake in that workaround into the LSP 😅

06.03.2026 18:52 👍 0 🔁 0 💬 1 📌 0

Hopefully it's Thyme-saving!

06.03.2026 15:36 👍 2 🔁 0 💬 1 📌 0
Video thumbnail

I got to work on another thing that has been bothering me for a long time: toggling comments in HTML+ERB files.

Sadly the Language Server Protocol doesn't support this with a dedicated request, but you can implement it using a custom request plus a small config in the editor.

05.03.2026 21:42 👍 21 🔁 2 💬 5 📌 1

Jira, so you get the full and real experience, obviously 🥸

06.03.2026 10:08 👍 2 🔁 0 💬 1 📌 0

I'm sure we could make something work, as Zed seems super configurable.

Maybe we can/need to bake it directly into the Zed Ruby Extension.

Maybe @vitallium.bsky.social has an idea on how to approach that 👀

06.03.2026 08:33 👍 0 🔁 0 💬 2 📌 0

Turns out the secret ingredient was Herb all along 🪄🌿

06.03.2026 08:31 👍 2 🔁 0 💬 1 📌 0

My current tooling can't even handle removing the trailing %> when uncommenting.

This is magical!! 🪄✨

06.03.2026 04:29 👍 5 🔁 1 💬 1 📌 0
Preview
Language Server: Implement Toggle Comment Service by marcoroth · Pull Request #1308 · marcoroth/herb CleanShot.2026-03-05.at.19.43.25.mp4 Resolves #136

At least for VS Code we can pre-configure it out of the box in the VS Code extension!

github.com/marcoroth/he...

05.03.2026 21:43 👍 2 🔁 0 💬 0 📌 0
Video thumbnail

I got to work on another thing that has been bothering me for a long time: toggling comments in HTML+ERB files.

Sadly the Language Server Protocol doesn't support this with a dedicated request, but you can implement it using a custom request plus a small config in the editor.

05.03.2026 21:42 👍 21 🔁 2 💬 5 📌 1
Video thumbnail

I really like how this new `erb-no-duplicate-branch-elements` linter rule and its autofix are shaping up!

This level of understanding, awareness, and integration still feels purely magical.

05.03.2026 06:35 👍 15 🔁 1 💬 0 📌 0

We've had a lot of issues and PRs around updates - events, new videos, changelog, and more. I tried to bring all that together in the newsletter. ♥️

Let me know what you think and if you have ideas for March! ✨

05.03.2026 11:58 👍 6 🔁 2 💬 0 📌 0
Preview
RubyEvents.org February 2026 Newsletter In February, RubyEvents had 12 contributors and 55 PRs merged! This month, we had RubyForGood - Belgium, Belfast RubyFest, and Fukuoka RubyistKaigi 05. We're looking forward to Ruby Community Conferen...

Hello friends! This is our first edition of the Ruby Events Newsletter!

Find recent events, released videos, and a changelog within. Let us know if there's anything you want to see in March's edition? 🤩

www.rubyevents.org/announcement...

05.03.2026 08:41 👍 8 🔁 6 💬 0 📌 1
Video thumbnail

I really like how this new `erb-no-duplicate-branch-elements` linter rule and its autofix are shaping up!

This level of understanding, awareness, and integration still feels purely magical.

05.03.2026 06:35 👍 15 🔁 1 💬 0 📌 0
Video thumbnail

The `textDocument/documentHighlight` request in the Language Server Protocol is kinda neat!

The Herb Language Server will use it to highlight matching ERB control flow keywords and HTML tag pairs when you place your cursor on them.

03.03.2026 19:48 👍 18 🔁 1 💬 0 📌 0
Preview
Week 07/08 - Video recorder UI, Dynamic Partial Rendering, and more! Discover the latest Hotwire insights, tutorials, and releases in this week edition of Hotwire Weekly!

Week 07/08 - Video recorder UI, Dynamic Partial Rendering, and more!

23.02.2026 01:00 👍 2 🔁 2 💬 0 📌 0
This pull request improves the parser's error reporting for HTML close tags that are missing their closing `>` by introducing a new `UnclosedCloseTagError`.

Given this input:

```html+erb
<% case Date.today.cwday %>
<% when 6 %>
  <p>Today is Saturday</p
<% else %>
  <p>Today is not a day of the week</p>
<% end %>
```
Previously, when parsing `</p` (missing closing `>`), the error was reported on the next tag (e.g., `<% else %>`) instead of on the `</p` itself. Additionally, the next token (e.g., `<%`) would get incorrectly consumed as the `tag_closing` of the `HTMLCloseTagNode`.

This pull request improves the parser's error reporting for HTML close tags that are missing their closing `>` by introducing a new `UnclosedCloseTagError`. Given this input: ```html+erb <% case Date.today.cwday %> <% when 6 %> <p>Today is Saturday</p <% else %> <p>Today is not a day of the week</p> <% end %> ``` Previously, when parsing `</p` (missing closing `>`), the error was reported on the next tag (e.g., `<% else %>`) instead of on the `</p` itself. Additionally, the next token (e.g., `<%`) would get incorrectly consumed as the `tag_closing` of the `HTMLCloseTagNode`.

These kinds of small fixes are oddly satisfying to get right. This ships in the next version of Herb! 🙌

20.02.2026 01:31 👍 26 🔁 4 💬 1 📌 0
Preview
Parser: Introduce `UnclosedCloseTagError` by marcoroth · Pull Request #1216 · marcoroth/herb This pull request improves the parser&#39;s error reporting for HTML close tags that are missing their closing &gt; by introducing a new UnclosedCloseTagError. Given this input: &lt;% case Date.tod...

Link to the pull request:

github.com/marcoroth/he...

20.02.2026 01:32 👍 2 🔁 0 💬 0 📌 0
This pull request improves the parser's error reporting for HTML close tags that are missing their closing `>` by introducing a new `UnclosedCloseTagError`.

Given this input:

```html+erb
<% case Date.today.cwday %>
<% when 6 %>
  <p>Today is Saturday</p
<% else %>
  <p>Today is not a day of the week</p>
<% end %>
```
Previously, when parsing `</p` (missing closing `>`), the error was reported on the next tag (e.g., `<% else %>`) instead of on the `</p` itself. Additionally, the next token (e.g., `<%`) would get incorrectly consumed as the `tag_closing` of the `HTMLCloseTagNode`.

This pull request improves the parser's error reporting for HTML close tags that are missing their closing `>` by introducing a new `UnclosedCloseTagError`. Given this input: ```html+erb <% case Date.today.cwday %> <% when 6 %> <p>Today is Saturday</p <% else %> <p>Today is not a day of the week</p> <% end %> ``` Previously, when parsing `</p` (missing closing `>`), the error was reported on the next tag (e.g., `<% else %>`) instead of on the `</p` itself. Additionally, the next token (e.g., `<%`) would get incorrectly consumed as the `tag_closing` of the `HTMLCloseTagNode`.

These kinds of small fixes are oddly satisfying to get right. This ships in the next version of Herb! 🙌

20.02.2026 01:31 👍 26 🔁 4 💬 1 📌 0

Awesome, thanks for giving it a go! 🙏

19.02.2026 16:41 👍 1 🔁 0 💬 0 📌 0

Looks like you are still missing out on fish! 🙈

17.02.2026 13:50 👍 0 🔁 0 💬 1 📌 0

Yay, congrats! 😍🙌🏼

16.02.2026 23:48 👍 3 🔁 0 💬 1 📌 0
Annie Kiley
How To Finish What You Start: Lessons From Actually Shipping a Big Refactor

Brooke Kuhlmann
Terminus: A Hanami + htmx web application for e-ink devices

Christine Seeman
Optimize Your Mindset (Without Overclocking)

David Paluy
LLM Telemetry as a First-Class Rails Concern

Ifat Ribon
Yes, &…: Ruby’s Secret Talent for Improvisation

Joël Quenneville
State is the First Decision You Never Made

John Athayde
Learning from Permaculture: Sustainable Software Development

Kevin Murphy
InstiLLMent of Successful Practices in an Agentic World

Rachael Wright-Munn
Your First Open-Source Contribution

Thomas Cannon
5 ways to invest in yourself for the long haul

Annie Kiley How To Finish What You Start: Lessons From Actually Shipping a Big Refactor Brooke Kuhlmann Terminus: A Hanami + htmx web application for e-ink devices Christine Seeman Optimize Your Mindset (Without Overclocking) David Paluy LLM Telemetry as a First-Class Rails Concern Ifat Ribon Yes, &…: Ruby’s Secret Talent for Improvisation Joël Quenneville State is the First Decision You Never Made John Athayde Learning from Permaculture: Sustainable Software Development Kevin Murphy InstiLLMent of Successful Practices in an Agentic World Rachael Wright-Munn Your First Open-Source Contribution Thomas Cannon 5 ways to invest in yourself for the long haul

This mid-February morning, you can almost tell that spring is coming. 🌱 Today we're pleased to announce 10 wonderful Rubyists who will be bringing their stories, insights, and wisdom to the Blue Ridge stage April 30 & May 1. Hope to see you there! blueridgeruby.com

16.02.2026 14:44 👍 9 🔁 4 💬 0 📌 3

Good luck and have fun! I'm sure it's going to be great! 🚀

11.02.2026 12:59 👍 2 🔁 0 💬 0 📌 0
Preview
Week 05/06 - OAuth Bridge Components, Turbo + ActionCable Trap, and more! Discover the latest Hotwire insights, tutorials, and releases in this week edition of Hotwire Weekly!

Week 05/06 - OAuth Bridge Components, Turbo + ActionCable Trap, and more!

10.02.2026 22:00 👍 4 🔁 1 💬 0 📌 0

I think a tighter ti.to integration might make more sense. There is so much to account for, including payments, taxes, etc.

04.02.2026 09:35 👍 1 🔁 0 💬 1 📌 0

Let's build it right into @rubyevents.org! 🙌🏼

It's been on our list for quite some time 🙈

04.02.2026 06:52 👍 11 🔁 0 💬 2 📌 0

It’s really awesome to see Mike giving back to the community in this way, especially on top of consistently supporting in-person Ruby events over the last years.

Thank you, Mike!

04.02.2026 04:51 👍 10 🔁 0 💬 0 📌 0

Super honored to be selected for the Gem Fellowship 🙏

I’ll continue pushing Herb forward as we get closer to 1.0 as part of this grant!

04.02.2026 04:51 👍 41 🔁 3 💬 1 📌 0
Preview
announcing the 2026 Gem Fellowship Last month I announced my latest venture to support the Ruby open source community: the Gem Fellowship. I want this grant program to support and fund existing Ruby-related open source project maintain...

Announcing the winners of the 2026 Gem Fellowship! gem.coop/updates/2026...

02.02.2026 19:25 👍 41 🔁 16 💬 1 📌 3