С выпуском Visual Studio 2022 вы можете использовать новый редактор Razor для локальной разработки ASP.NET Core с использованием MVC, Razor Pages и Blazor.
Загрузите Visual Studio 2022 и обязательно обновите его до версии 17.0.2, чтобы получить последние обновления Razor.
Преимущества перехода на Razor Language Server Protocol
Уже некоторое время мы работаем над новым редактором Razor для ASP.NET Core проектов на основе протокола языкового сервера (LSP). Протокол языкового сервера (LSP) — это протокол с открытым исходным кодом, который определяет стандартный способ включения функций редактором или IDE. Модель LSP позволила нам добавить значительные новые функциональные возможности, принеся в Razor гораздо больше функций редактирования C# и позволив другим новым улучшениям производительности Razor развиваться в ускоренном темпе.
Что доступно в новом редакторе Razor?
Новая модель открывает двери для более легкого добавления новых исправлений кода и рефакторинга. Наиболее часто используемый рефакторинг, Add missing usings, теперь поддерживается в редакторе Razor, как и многие другие.
Также добавлено несколько рефакторингов, которые специфичны для разработки Razor. Они имеют решающее значение для подбора повседневного синтаксиса и общих элементов Razor. Например, функция Extract block to code behind позволяет извлечь весь блок кода в файл программной стороны, если вы предпочитаете шаблон кода программной стороны.
Дополнительные новые рефакторинги Razor включают: Add usings for component, Fully qualify component и Create component. Многие другие планируются в будущем по мере развития Razor.
Также появилось больше навигационной поддержки. Одной из наиболее часто используемых функций навигации в Visual Studio является Go to Definition. Go to Definition создана для быстрой навигации и чтобы лучше понимать код. Например, нажатие клавиши F12 на теге компонента приведет к переходу прямо к коду компонента.
Наша передовая функция Hot Reload лучше всего подходит, когда по нажатию F5 выводится полезная диагностика. Эта поддержка была бы невозможна без новой модели LSP редактора Razor.
Цвета по умолчанию были обновлены в новом редакторе Razor. Основным отличием в этой области является удаление фоновой подсветки кода, которая присутствовала в предыдущих версиях. Эта подсветка затрудняет различение выделений и создает "визуальный беспорядок" для многих разработчиков.
Форматирование является активной областью, поскольку регулярно добавляется больше стилей кода, возможностей рефакторинга и завершения. Новый редактор обеспечивает улучшенное форматирование, которое лучше может идти в ногу с этими изменениями, помогая коду оставаться визуально согласованным.
Новый редактор Razor поддерживает новейшие функции компилятора и улучшает существующие синтаксические взаимодействия. Добавлена поддержка интеллектуальных завершений синтаксиса Razor, таких как заполнение <text>
и автозаполнение. Новый редактор также изменяет способ диагностики, чтобы гарантировать, что отображаются только наиболее важные диагностики, а диагностика, созданная компилятором, отображается в их предполагаемой точности.
Razor теперь полностью поддерживает Visual Studio Live Share. Live Share — это полезный инструмент для удаленной совместной работы с другими разработчиками, который позволяет совместно использовать код из среды IDE. Этот общий контекст является важной частью ежедневного цикла совместного программирования для многих разработчиков.
Известные проблемы и дорожная карта
Razor накопил большое количество запросов на новые функции и репортов об ошибках с тех пор, как он был представлен более десяти лет назад. Решение этих проблем в устаревшем редакторе Razor было трудным и дорогостоящим. Новый редактор Razor позволит решить все проблемы и быстрее выкатывать исправления ошибок и новые функции. Мы следим за отзывами о новом редакторе и понимаем, что нам предстоит пройти долгий путь. Наше внимание было сосредоточено на приведении нового редактора Razor к функциональному паритету с предыдущим редактором Razor и улучшении качества и производительности. Есть еще несколько функциональных пробелов, которые необходимо устранить, и мы ожидаем, что все будет решено в ближайших релизах. Ниже приведен список известных ограничений, над устранением которых мы работаем:
Поддержка сниппетов (расширение с помощью Tab)
Ярлык Wrap div по Shift+Alt+W
Ctrl+Click - Go to Definition
#region code folding
Внедрение форматирования JavaScript
Поддержка перетаскивания файлов HTML, CSS и JavaScript
Повышение производительности и надежности
Поддержка горячей перезагрузки проектов веб-сборки Blazor при отладке
Вы можете узнать больше о нашей дорожной карте и о том, когда мы планируем решить эти проблемы на GitHub. Если вы обнаружите, что производительность вашего разработчика в новом редакторе ограничена, вы можете вернуться к устаревшему редактору, перейдя в Tools > Options > Text Editor > HTML > Advanced и выбрав True в раскрывающемся списке рядом с пунктом Use legacy Razor editor for ASP.NET Core. Имейте в виду, что устаревший редактор Razor будет иметь ограниченную функциональность и не включать улучшения производительности, упомянутые в этом посте, которые мы добавили в новый редактор Razor.