Ruby LSP is now an official Claude Code plugin. With it, Claude queries the language server directly - same as your editor does. Without it, Claude reads the file and tries to extract the structure manually.
Ruby LSP is now an official Claude Code plugin. With it, Claude queries the language server directly - same as your editor does. Without it, Claude reads the file and tries to extract the structure manually.
This is a huge release for TruffleRuby. Itโs our first under our new org.
If youโve been hesitant about contributing because of the CLA, please note that we no longer have one. We can also release more frequently so please report bugs or open PRs.
Ruby has a new moving GC. I just merged moving Immix in the MMTk Ruby binding. This is exciting as its the first GC that dynamically detects fragmentation in the heap and performs defragmentation. Performance isn't too great yet but I'm working on it! github.com/ruby/ruby/pu...
#rubyrelease30th Iโd like to introduce Aliki, RDoc and docs.ruby-lang.orgโs new theme ๐
railsatscale.com/2025-12-22-i...
Finally, www.ruby-lang.org/en/ has a new design.
Ah, true. They allowed any DocumentTextEdit to be a snippet, but on type formatting still accepts only text edit.
I assume theyโd be open to making it TextEdit | Snippet. Maybe we can propose it?
My understanding is that this was already implemented and will be available once the spec v3.18 is out github.com/microsoft/la...
Of course, clients will need to add support for it so that it works, but it's coming
Ever forget whether it's "change_table" or "alter_table", "remove_column" or "drop_column", "set_column_null" or "change_column_null"?
You don't? Well, I do ๐ So, I thought it would be cool if Ruby LSP could autocomplete schema statements in migrations โจ
github.com/Shopify/ruby...
For example, Sorbet uses a rewriter to bake the logic into the implementation and that allows it to figure out the right class at the indexing phase, without requiring inference
Youโd also need to delay the ability to infer any types on definitions of that nature until other inference managed to figure out what it means.
For these cases, we generally need to introduce more annotations or some built-in mechanism to help
In this case, we donโt know exactly what exists because the indexing results depend on inferring the correct return on the [] method.
Itโs a tough problem to solve with decent performance because youโd need to go back and forth between inferring and indexing as you discover more information
I donโt believe thereโs a way to solve this right now. The challenge here is that the parent class is a method call (the [] method). This type of code creates a dependency between inference and indexing in the analysis.
We ideally want to discover what exists in the codebase and then run the rest
Workspace symbol search on Ruby LSP should be working much smoother now on 0.26.3, @vinistock.bsky.social and I made a bunch of fixes recently ๐ค
github.com/Shopify/ruby...
github.com/Shopify/ruby...
github.com/Shopify/ruby...
Herb v0.8 Release Summary
Herb v0.8 is here! ๐
The biggest release yet, packed with new language bindings, Linter Autofix support, Linter Fix-on-Save, a new `.herb.yml` config file, formatter improvements, Tailwind Class Sorting integration, and a ton of performance, tooling and LSP improvements! ๐ฟ
๐ Incredibly honored to be a Ruby Prize 2025 finalist! Thank you to everyone who has supported my work on IRB, RDoc, debug, ZJIT, and other Ruby projects.
See you in Matsue!
rubyprize.jp
We just publicly posted about the Rubygems.org AWS root-access security incident from September 2025, what occurred, what we verified, and the actions weโve taken to strengthen our security processes.
I tried to explain why I don't believe the recent accusations toward my former teammates, as well as how the Ruby and Rails Infra team at Shopify operates and why it can be trusted.
byroot.github.io/opensource/r...
The Herb Linter annotating the linter offenses in the GitHub Pull Request "Files Changed" tab.
Herb v0.5.0 is here! ๐ฟ
Lots of fixes & improvements, plus a new `--github` flag so the Linter can annotate the offenses right on GitHub in the pull request!
Plenty more is cooking, which wasn't quite ready for prime time yet ๐
Beyond performance work, I deprecated a bunch of APis in the JSON gem, and added others, so I figured it would be a good occasion to talk about API design: byroot.github.io/ruby/json/20...
ruby-lsp now has CLAUDE.md: github.com/Shopify/ruby... (generated by Claude and vetted by our team)
Not sure how much it'll help the team and external contributors but I'm excited to find out ๐
You donโt need to add it to your Gemfile. In fact, we advise against that in our docs
So it turns out all that is needed to support RBS and ruby-lsp on JRuby is for someone to write an FFI binding to the new "pure C" RBS parser! I challenge y'all to make that happen this week. So exciting to get these key Ruby tools working on JRuby! github.com/Shopify/ruby...
I wrote a post to braindump what I'm currently working on: allowing lock-free access to class instance variables from Ractors.
byroot.github.io/ruby/perform...
A thumbnail that reads "Your open source AI editor Powered by GitHub Copilot" with the VS Code logo and a blue gradient background
Today, we're announcing plans to make VS Code an open source AI editor.
We believe AI development should stay true to VS Code's core principles: open, collaborative, and community-driven. Let's build the future of software development together.
aka.ms/open-source-...
BTW, Iโve opened a draft PR for this: github.com/Shopify/ruby...
Weโre now waiting on a new VS Code API to let extensions configure the MCP connection, which will make the setup simpler & more robust.
Thank you!
Can you please open an issue?
We didnโt roll anything out yet. Did you enable it yourself?
Weโre literally about to release our reimplementation of the explorer, which fixes this and many other shortcomings
My teammate Alexandre Terrasa wrote a great post about using inline RBS with Sorbet.
Weโve been slowly adopting it at Shopify. And while weโre still improving Sorbet and all the supporting projects, itโs already working well!
railsatscale.com/2025-04-23-r...