Как стать автором
Обновить

Комментарии 13

Очень хороший подход! Учитывая, что статья — это своего рода дебют автора на хабре, это просто прекрасно!
Спасибо.
А почему GitHab то? Вроде и не опечатка, раз в 3 разных местах повторяется
/zanuda off
Спасибо, ошибка при копировании/вставке. Исправил.
НЛО прилетело и опубликовало эту надпись здесь
Есть надежда, что этот шаг — это лишь начало пути.
Сегодня вышли версии Rider и ReSharper 2020.3 с полной поддержкой C#9 и .net5, на них уже работают генераторы исходного кода, в тексте поправил этот момент. Примеры обязательно посмотрю, спасибо.
НЛО прилетело и опубликовало эту надпись здесь
Проробовал в новом Rider 2020.3 Build #RD-203.5981.141 у меня не завелось. В студии работает нормально.

Update: А теперь все заработало.
Для отладки CompletionProvider проще всего использовать шаблон в VS «Analyzer with code Fix». Создать проекты по шаблону, после чего запускать проект Vsix. Он буде загружать новую студию с подключенным CompletionProvider как расширение, в котором можно нормально отлаживать.

Как по мне это очень долгий способ дебага. Чтобы подкрыть 99% ситуаций будет достаточно написать тесты, которые прогонят ваш анализатор на нужных кусках кода и проверят что получилось в итоге.
Если создать решение по шаблону «Analyzer with code Fix», оно будет включать в себя проект тестов с хорошими примерами. Как раз то, о чем вы говорите. Поэтому я предлагаю этот вариант как предпочтительный для быстрого входа в тему. Когда в теме разберешься тогда, конечно, тестами проще.

Может быть, будет уместным отметить, что для решения описанной задачи генерации IObservable из событий есть инструмент Pharmacist, который работает через ICSharpCode.Decompiler, и его версия в виде ObservableEventsSourceGenerator, которую всё никак не опубликуем.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации