Прошло шесть месяцев с тех пор, как мы анонсировали первую предварительную версию нового экспериментального редактора Razor для Visual Studio, основанного на общем языковом сервере Razor, и пришло время рассказать о наших успехах. Команда усердно работала над приведением нового редактора Razor в соответствие со старым, исправлением ошибок и добавлением множества замечательных новых функций. Мы думаем, что новый редактор близок к тому, чтобы быть готовым к нормальной повседневной разработке, поэтому сейчас самое время попробовать его с последней предварительной версией Visual Studio. Мы надеемся, что вы попробуете новый редактор Razor, и поделитесь с нами своими впечатлениями!
Начало работы
Чтобы начать работу с новым редактором Razor :
-
Установите последнюю Visual Studio preview (16.9 Preview 3).
Заметка: Превью-версии Visual Studio можно безопасно устанавоивать вместе со стабильной установкой Visual Studio .
-
Перейдите Tools > Options > Environment > Preview Features и выберите опцию Enable experimental Razor editor:
Когда вы собираетесь включить новый редактор Razor, вы можете обнаружить, что он уже включен. Начиная с Visual Studio 16.9 Preview 3, мы постепенно развертываем новый редактор Razor для различных групп пользователей. Если вы опробовали новый редактор ранее, а затем отключили его, вы не будете участвовать в автоматическом внедрении. Вам нужно будет повторно включить его вручную, чтобы увидеть весь прогресс, которого мы достигли. Многие из известных проблем с новым редактором теперь исправлены, поэтому стоит попробовать еще раз, если вы столкнулись с проблемами в более ранних сборках.
Что нового?
В дополнение к работе над основами редактора Razor (завершение, диагностика, всплывающие подсказки, раскраска синтаксиса и т. д.) команда добавила в новый редактор Razor ряд новых функций. Многие из этих функций стали возможными или их получилось проще реализовать благодаря новой архитектуре, основанной на протоколе языкового сервера (LSP).
Улучшенное форматирование
В новом редакторе Razor есть улучшенный механизм форматирования, который более консервативен, чем старый (во-первых, не навреди!), а также намного умнее в области обработки кода.
![](https://habrastorage.org/getpro/habr/upload_files/2e2/1e4/d54/2e21e4d54aa88b3cf0a857274e004e0e.gif)
Мы стремимся исправить форматирование Razor, чтобы оно заставляло вас улыбаться с новым редактором, поэтому сообщите нам, если у вас возникнут проблемы с форматированием, и мы обязательно их исправим.
C# code actions
Некоторые действия кода C# теперь доступны в файлах Razor:
Добавьте директивы @using или полные имена типов.
![](https://habrastorage.org/getpro/habr/upload_files/95c/cf1/018/95ccf10181d088e703b53d5e86c25aa8.gif)
Добавьте null checks.
![](https://habrastorage.org/getpro/habr/upload_files/a80/d70/b48/a80d70b486944c9acf9743882bc2127d.gif)
Дизайн нового редактора Razor значительно упрощает включение действий кода C#, и мы ожидаем, что в будущих выпусках будет доступно гораздо больше.
Переименовывание в закрытых файлах
Переименование больше не ограничивается открытыми файлами Razor. Имена в закрытых файлах Razor также будут обновлены.
![](https://habrastorage.org/getpro/habr/upload_files/150/e0c/a14/150e0ca149d032f6e708db6c92fa5a0b.gif)
Переименовывание компонентов Blazor
Теперь вы можете переименовать компонент Blazor из его тега. Компонентный файл Razor будет переименован автоматически.
![](https://habrastorage.org/getpro/habr/upload_files/245/205/58f/24520558f120d52d26f9f80d975fdd61.gif)
Действия кода компонента
Также теперь доступны несколько действий кода для конкретных компонентов:
Создать компонент из неизвестного тега.
![](https://habrastorage.org/getpro/habr/upload_files/633/f53/65d/633f5365dc60a98ec968f9332b2b3528.gif)
Извлечь @code в код программной части.
![](https://habrastorage.org/getpro/habr/upload_files/16a/872/3f6/16a8723f6fd630be104678e9ce4dea84.gif)
Добавить @using для компонентов или полностью квалифицированный тег компонента.
![](https://habrastorage.org/getpro/habr/upload_files/ba2/d04/45f/ba2d0445ff456d25419964b9e4dd7662.gif)
Перейти к определению компонента
Вам нужно быстро увидеть код этого компонента? Просто нажмите F12 на теге, и вы на месте!
![](https://habrastorage.org/getpro/habr/upload_files/1ec/82c/6a5/1ec82c6a50a8e2b348bcd1ba9fd78f1d.gif)
Изменение Razor с LiveShare
Новый редактор Razor также работает с LiveShare, поэтому вы получите все новые возможности редактирования Razor даже при работе с Razor в удаленном сеансе.
Используйте новый редактор Razor с Visual Studio Code
Поскольку новый редактор Razor основан на переиспользуемом языковом сервере Razor, новый редактор Razor и его новые функции также доступны в Visual Studio Code с установленным расширением C#.
А как насчет Visual Studio для Mac? Visual Studio для Mac пока не поддерживает LSP, но как только поддержка появится, мы добавим новый редактор Razor в Visual Studio для Mac.
Улучшения подсветки синтаксиса Razor
Мы также работаем над некоторыми улучшениями в подсветке синтаксиса Razor в новом редакторе, о которых мы хотели бы узнать ваши отзывы. Пожалуйста, поделитесь с нами своим мнением, приняв участие в следующих опросах, если вы еще этого не сделали:
Ждем вашу обратную связь
Если у вас возникла проблема с новым редактором, лучший способ сообщить нам об этом - использовать функцию Send Feedback > Report a Problem в Visual Studio.