Как дебажить ваш Roslyn анализатор кода не выходя из JetBrains Rider IDE

 Платформа компилятора .NET становится все больше, и в то же время вокруг нее растет набор инструментов. Таким образом, её становится легче использовать.

Хотя написание Source Geneartor - кода, который разбирает и анализирует ваш код, — непростая задача, он может быть полезен по-разному. Один из способов, которому я недавно научился благодаря моим коллегам, — это рефакторинг.  

Обычно код вашего анализатора исходного кода и/или генератора будет не самым простым для чтения и поддержки. Но идея в том, что это не всегда нужно! Идея состоит в том, что вы должны использовать генератор исходного кода как временное решение, которое упрощает рефакторинг для вас и вашей команды. Ведь после некоторого рефакторинга вы можете просто выбросить этот код как устаревший. Пожалуй, рефакторинг - это самое правильное применение идеи .NET Compiler Platform.

Я думаю, что на ютубе и в интернете есть много примеров, так что мне не нужно делиться еще одним «примером». 

Вместо этого я поделюсь практическим советом

Совет дня 

Для отладки генератора исходного кода C# на основе платформы компилятора Roslyn .NET в Rider IDE вам необходимо установить Rider 2023 EAP (да, ранняя предварительная версия), а затем следовать инструкциям на странице https://github.com/JoanComasFdz/dotnet-how-to-debug-source-generator-vs2022

https://res.cloudinary.com/practicaldev/image/fetch/s--lTVAw_gC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gyilfzab4phv0d76ikn9.png

Если вы по какой-то причине не использовали Rider IDE, попробуйте. Он намного эффективнее Visual Studio. Но, разработчикам JetBrains всё таки приходится следовать ЗА Microsoft, а не наоборот. Поэтому, до недавнего времени отладка генераторов исходников была невозможна. Однако теперь это не так! Ура!

Комментарии