Stefan (FlashOver) Pölz
flash0ver.bsky.social
Stefan (FlashOver) Pölz
@flash0ver.bsky.social
Microsoft MVP
JetBrains Community Contributor
I C# .NET @ http://github.com/Flash0ver
Live: @FlashOWare.bsky.social
Speaking: http://sessionize.com/FlashOver
Thank you so much for your uplifting feedback @bayn.es. I am really glad you liked my session.

I just left a couple of rough months behind me, so your kind words are a true pick-me-up for my spirit.

You are very welcome.
October 27, 2025 at 3:05 PM
‪@rlittlesii.bsky.social‬

We are now starting a series on #Benchmarking #Roslyn Compiler Extensions.

We begin with setting up the project and building a first prototype.

bsky.app/profile/flas...
The (run)time has come!
We allocate this series to build a library that supports Benchmarking of #Roslyn Compiler Extensions, like #dotnet Analyzers and #CSharp Source-Generators.

2025-07-23 Wednesday
17:00 UTC

#2codeOrNot2code

www.youtube.com/watch?v=Rbu8...
2code ^ !2code [S2025E08] Benchmarking Compiler Extensions - Part 1
YouTube video by FlashOWare
www.youtube.com
July 23, 2025 at 7:08 AM
We're building up to it:
Today, we will inspect, together with @kevingosse.net, what methods and calls really are

bsky.app/profile/flas...

and then - probably next episode - kick-start our journey of Tools for Roslyn Compiler Extensions; starting with Benchmarking.

We'll ping you when announced.
July 9, 2025 at 7:22 AM
Not quite yet.
But we are about to get back into live-streaming next week, and will be building up towards Benchmarking of Roslyn Compiler Extensions.
I'll get back to you once we actively start that endeavour.
June 19, 2025 at 10:46 PM
From what I read is that "Compiler-Extensions" is the official term used in (limited) documentation for Plugins that Roslyn-Hosts may load for compilations (Analyzers, Suppressors, Generators) and IDEs/Editors may interact with via Workspaces (Fixers, Refactorings, Completions).
June 17, 2025 at 4:33 PM
Also ... so I think, I'm not positive though ... that, technically speaking, if your Extensions only use types that they are safe/meant to use, in accordance with the respective [Attribute], you should be fine putting all together in a single Assembly and it should work for the most common scenarios
June 17, 2025 at 3:57 PM
...

Example:
Should you use a type from "Microsoft.CodeAnalysis.CSharp.Workspaces" in your Analyzer or Suppressor or Generator, but your Extension is loaded in a Build/Compilation-Scneario (only Editor-Scenarios usually require the Workspaces-APIs to be loaded), then your Extension might not work.
June 17, 2025 at 8:40 AM
...
The reason for this guideline is that Roslyn is a Library which can be hosted by any tool, so the Extension-Author does not necessarily know under which environment the Compiler will run and whether, e.g., the Workspaces-Assembly is loaded or just "Microsoft.CodeAnalysis.CSharp/VisualBasic".
...
June 17, 2025 at 8:32 AM
...

And for NuGet, you can pack them together in PackagePath="analyzers/dotnet/cs".

I usually have a separate CSPROJ that only represents the NuGet package and packs all netstandard2.0 libraries together.

...
June 17, 2025 at 8:29 AM
I love/hate to say: It depends.

For maximum compatibility and safety, separate Roslyn-Extensions by Diagnostics-API (Analyzers + Suppressors + Generators) and Workspaces-API (Fixers + Refactorings), as well as separate Compiler-Extensions by Language (Common / CSharp / VisualBasic).

...
June 17, 2025 at 8:27 AM
I never had matching T-shirts before 👕
I got mine from @updateconference.bsky.social #UpdateConference
April 11, 2025 at 5:08 PM
I seem to never be too sure whether to ship a "ForAttributeWithMetadataName"-Generator with a Diagnostic+CodeFixer when the annotated type is not modified with `partial`, or to just generate the partial declaration anyway and let tooling offer the Refactoring to make to type partial via error CS0260
February 25, 2025 at 12:43 AM