Remix.run Logo
eterm 8 hours ago

I completely agree. Likewise I'm amazed Microsoft hasn't done it themselves for Roslyn and Copilot. Roslyn analyzers are so incredibly powerful, and it's being ignored.

An explainer for others:

Not only can analyzers act as basic linters, but transformations are built right in to them. Every time claude does search-and-replace to add a parameter I want to cry a little, this has been a solved science.

Agents + Roslyn would be productive like little else. Imagine an agent as an orchestrator but manipulation through commands to an API that maintains guard rails and compilability.

Claude is already capable of writing roslyn analyzers, and roslyn has an API for implementing code transformations ( so called "quick fixes" ), so they already are out there in library form.

It's hard to describe them to anyone who hasn't used a similarly powerful system, but essentially it enables transforms that go way beyond simple find/replace. You get accurate transformations that can be quite complex and deep reworks to the code itself.

A simple example would be transforming a foreach loop into a for loop, or transforming and optimizing linq statements.

And yet we find these tools unused with agentic find/replace doing the heavy lifting instead.

Whichever AI company solves LSP and compiler based deep refactoring will see their utility shoot through the roof for working with large codebases.

remus 6 hours ago | parent | next [-]

In a similar vein, I really struggle to understand why copilot is so crap when writing SQL and I'm connected to the database. The database has so much context (schema names, column names, constraints etc.) yet copilot regularly hallucinates the most basic stuff like table and column names, which standard auto complete has managed fine for the last 20+ years.

cog-flex 2 hours ago | parent | prev | next [-]

I hope your current boss appreciates who they have.

neutronicus 2 hours ago | parent | prev | next [-]

Same shit, but Microsoft and Visual Studio.

Like, the AI can't jump to definition! What are we fucking doing!?

atmosx 7 hours ago | parent | prev [-]

Is Roslyn available only for .NET?

eterm 7 hours ago | parent [-]

Yes it's the name of the .NET compiler API.

It was code-named to disambiguate it from the old compiler. But Roslyn is almost 15 years old now, so I can't call it new, but it's newer than the really legacy stuff.

It essentially lets you operate on the abstract snytax tree itself, so there is background compilation that powers inspection and transformation.

Instant renaming is an obvious benefit, but you can do more powerful transformations, such as removing redundant code or transforming one syntax style into another, e.g. tranforming from a Fluent API into a procedural one or vice-versa.