Что нового в Rider 2019.3

Rider 2019.3 поддерживает шаблоны T4, предоставляет кросс-платформенный профилировщик для .NET Core и обеспечивает анализ покрытия тестами для Unity на разных платформах. Теперь IDE запускается быстрее, в отладчике поддерживается Docker Compose, а поддержка систем контроля версий и Xamarin расширена по всем направлениям.

Поддержка шаблонов T4

Поддержка шаблонов T4

Вы попросили поддержать текстовые шаблоны T4, и мы сделали это! Поддержка основана на нашем собственном генераторе и доступна в виде предустановленного плагина. 

Теперь вы можете легко выполнять, обрабатывать и отлаживать любые шаблоны T4 в Rider. Надеемся, вам понравятся и новые возможности редактора:

  • Расширенная поддержка C# в блоках кода: подсветка синтаксиса, навигация, автодополнение, рефакторинги, контекстные действия, инспекции, форматирование и многое другое.
  • Специализированные возможности для T4: инспекции, помощь при написании кода, сворачивание и подстановка фигурных скобок.
  • Расширенная поддержка директив include для максимально точного разрешения кода C#.
  • Поддержка всех видов директив: инспекции, быстрые исправления, подсветка синтаксиса, навигация и многое другое.

Все это работает на Windows, macOS и Linux.

Кросс-платформенный профилировщик для .NET Core

Кросс-платформенный профилировщик для .NET Core

В Rider 2019.1 профилировщик производительности уже работал на Linux и macOS, но поддерживались только приложения Mono и Unity Mono. В этой версии мы сделали большой шаг вперед: теперь можно профилировать приложения .NET Core на Linux и macOS с помощью встроенного плагина dotTrace. А значит, вы можете профилировать любые приложения .NET на Windows, macOS и Linux.

Обратите внимание, полностью поддерживаются только проекты, разрабатываемые под .NET Core 3.1. Из-за некоторых ограничений .NET Core при профилировании проектов .NET Core 3.0 и более ранних версий в редких случаях может произойти зависание или падение профилируемого приложения.

Анализ покрытия кода тестами для Unity

Анализ покрытия кода текстами для Unity

С каждым выпуском мы стараемся улучшить работу скриптов Unity и добавить полезную функциональность. На этот раз Unity-разработчиков порадуют возможности кросс-платформенного юнит-тестирования и непрерывного тестирования.

Вот еще несколько новых возможностей:

  • Поддерживаются юнит-тесты в режиме Play.
  • Rider поддерживает UIElement: доступна подсветка синтаксиса, автодополнение и проверка файлов UXML и USS на соответствие схеме.
  • Мы вернули поддержку файлов .asmdef.
  • Имя проекта отображается для редакторов Unity при перечислении процессов для отладки.
  • Ускорена обработка ассетов при первичной загрузке проекта.
  • Clear on play поддерживается в окне просмотра журнала изменений.
  • Мы исправили поведение, при котором Rider предлагал синтаксис C# 8.
  • Также исправлены различные пограничные случаи для поддержания актуальности .meta-файлов во время рефакторинга.

Это только основные улучшения. Как всегда, в этой версии есть много других исправлений и новых возможностей. Полный список — здесь.

Оптимизация производительности

Оптимизация производительности

В Rider 2019.3 вошли все улучшения, которые были добавлены в платформу IntelliJ в ходе большой совместной работы нескольких команд JetBrains по оптимизации производительности. Вот некоторые важные результаты: Rider запускается гораздо быстрее, поддержана плавная прокрутка колесом мыши, устранено множество зависаний интерфейса. Читайте об этих и многих других улучшениях производительности в блоге IntelliJ IDEA.

Поддержка Docker Compose в отладчике

Поддержка Docker Compose в отладчике

В версии 2018.2 мы добавили поддержку Docker в отладчик, чтобы отлаживать контейнеры, созданные на основе Dockerfile. Однако отлаживать контейнеры, собранные с использованием Docker Compose (docker-compose.yml), было нельзя.

Наконец поддержка Docker Compose добралась и до отладчика! Теперь вы можете отлаживать мультиконтейнерные Docker-приложения одним щелчком мыши.

Улучшенная функция Edit & Continue

Улучшенный Edit & Continue Только для Windows

С помощью Edit & Continue теперь можно вносить изменения в запущенное приложение, его не нужно останавливать в точке останова. Вы можете применить изменения в любое время, нажав Apply Changes во всплывающей подсказке в верхней части редактора. А чтобы отключить автоматическое применение изменений Edit & Continue для действий Step, Resume и Jump to Statement, перейдите в меню Settings | Build, Execution, Deployment | Debugger | Editing during debug.

Обратите внимание: Edit & Continue по-прежнему работает только на Windows.

Улучшения отладчика

Улучшения отладчика

В других частях отладчика тоже много нового. Во-первых, изменилось дерево исключений на вкладке Breakpoints:

  • Поиск теперь работает в свернутых узлах.
  • Исключения сгруппированы по типу (пользователь/система) и пространству имен.
  • Главный узел теперь называется CLR Exceptions.

Во-вторых, улучшена удаленная отладка:

  • Уведомления об ошибках, которые могут возникнуть при удаленной отладке, и их описания стали подробнее и понятнее.
  • Если для удаленной отладке не указан пароль или кодовая фраза, IDE напомнит об этом при подключении к удаленному серверу.

И наконец:

  • Мы переименовали многие действия в отладчике, чтобы было понятней, в чем их суть.
  • Функция Pin to top поддерживает рекурсивное вычисление.
  • Добавлено действие Jump to Type Source.
  • В Mono опция Just my code работает значительно лучше для точек останова, срабатывающих при исключении.
Обновленная поддержка VCS

Обновленная поддержка VCS

Мы добавили несколько улучшений интерфейса для более удобной работы с системами контроля версий, например Git. В этой версии предварительный просмотр diff открывается прямо на вкладке редактора.

Появилось новое окно коммита, которое по умолчанию отображается слева. Это позволило увеличить вертикальное пространство для списков изменений, описаний коммитов и т.д.

Если при первом запуске Rider 2019.3 вы не cможете найти вкладку Version Control, не пугайтесь: мы ее просто переименовали в Repository.

Кроме того, мы улучшили представление Compare with Current, переработали диалог Clone и добавили возможность отправлять изменения из неактивной ветки.

Подробности читайте в нашем блоге.

Плагин AWS Toolkit для Rider

Плагин AWS Toolkit для Rider

Мы приложили много усилий, чтобы оптимизировать плагин AWS Toolkit для .NET-разработчиков и обеспечить его совместимость с Rider.

  • Используйте готовый шаблон проекта для создания нового бессерверного приложения AWS.
  • Вы можете создавать, запускать и отлаживать код в AWS Lambda локально и удаленно. Причем все это можно делать прямо из редактора, используя значки на полях.
  • Вы можете развертывать бессерверные приложения в AWS.
  • Встречайте поддержку отладки в облаке! Вы можете отлаживать облачные приложения .NET Core, работающие в Amazon ECS, с помощью AWS Fargate прямо в удаленном контейнере в облаке, без локальной эмуляции.
  • Плагин доступен для Rider 2019.2 и 2019.3.

После установки плагина AWS Toolkit for Rider у вас будет все необходимое для начала работы с бессерверными приложениями.

Обновленная поддержка Xamarin

Обновленная поддержка Xamarin

Мы продолжаем улучшать поддержку Xamarin и добавили несколько полезных возможностей для Xamarin Android и Xamarin iOS:

  • Обнаружение устройств и симуляторов Apple на Mac работает эффективнее благодаря встроенным компонентам JetBrains AppCode.
  • Список подключенных устройств Apple можно найти на панели инструментов.
  • Поддерживаются сборки mtouch (Mono-компилятора для iOS).
  • Для проектов Xamarin Android доступна публикация APK (действие Archive or Publish в контекстном меню проекта).
  • Можно менять специфичные для Android свойства проекта в меню Project Properties.

Мы также не забыли о Xamarin Forms: теперь поддерживаются атрибуты x:DataType и Class.

Улучшенная поддержка C# 8

Улучшенная поддержка C# 8

В этой версии Rider мы улучшили поддержку C# 8.

  • Rider лучше понимает ссылочные типы, допускающие значение null, и поддерживает ограничения notnull.
  • Поддержаны target-typed switch-выражения.
  • Появилась поддержка методов интерфейса по умолчанию.
  • Новая инспекция с быстрым исправлением подскажет, когда локальную функцию можно объявить статической.
  • Теперь можно включить аннотации допустимости значения null и соответствующие предупреждения в файле, проекте или по всему решению.
  • Новое быстрое исправление поможет добавить атрибут EnumeratorCancellation в параметры CancellationToken асинхронных итераторов.

Кроме того, мы разбили инспекцию Type or type member is never used на две: для поиска неиспользуемых типов (Type is never used) и членов типа (Type member is never used).

Генерация кода

Генерация кода

Действие Generate лучше понимает C# 8:

  • Быстрое исправление Add missing arms проверяет все значения перечислений.
  • Добавлено быстрое исправление и контекстное действие для генерации образцов типов в switch-выражениях.
  • Допустимость значения null учитывается при генерации операторов равенства/сравнения.

Кроме того, теперь можно использовать System.HashCode для реализации GetHashCode при генерации операторов равенства и сравнения на равенство на C# и VB.NET — это поможет сделать ваш код чище.

Подсказки имен типов

Подсказки имен типов

Надеемся, вам нравятся подсказки имен параметров и аннотации кода, которые мы реализовали в Rider 2019.1. В этой версии мы пошли дальше и добавили подсказки типов. Они доступны для:

  • Параметров лямбд.
  • Всех вхождений var, включая сопоставление с образцом и деконструкцию кортежей.
  • Переменных диапазона в операторах LINQ.
  • В конце строки в цепочке вызовов методов.
Навигация и поиск использований

Навигация и поиск использований

Большинство разработчиков сталкиваются с необходимостью узнать, где в коде используются типы или члены типа, относящиеся к определенному модулю. Для этого в Rider уже давно есть действие Find dependent code. Однако у него всегда были ограничения. В этой версии мы устранили некоторые из них: теперь действие Find dependent code работает для ссылок на пакеты NuGet и может искать не только в проекте, но и по всему решению.

Вот некоторые другие нововведения:

  • Подсказка Quick definition теперь работает для любых символов в редакторе, что позволяет быстро просматривать определения, не выходя из контекста.
  • В меню Navigate to добавлена опция Consuming APIs. Она перечисляет все методы, которые принимают объекты определенного типа в своих параметрах.
  • В окне Find results действия Find dependent code появились новые фильтры.
  • Теперь можно перейти к внешним источникам пакетов NuGet, которые содержат пакет исходных символов.
Стиль кода

Стиль кода

В этой версии появилась еще одна долгожданная возможность. Настройки именования C# теперь поддерживают файлы EditorConfig.

Помимо этого, есть еще несколько небольших изменений, которые помогут вам управлять форматированием кода:

  • Для тех, кто предпочитает использовать ключевое слово var вместо явного объявления типа, только если тип выражения инициализатора очевиден, Rider поможет обнаружить более очевидные случаи. Есть также режим «совместимости», соответствующий поведению Roslyn.
  • Новая опция, совместимая с StyleCop и Roslyn, добавляет круглые скобки, чтобы уточнить приоритет для отдельной группы операторов, вложенных в другие из этой же группы. Например, если вы не помните, что должно выполняться раньше, && или ||, Rider поможет разобраться, добавив круглые скобки.
  • Comment Code теперь по умолчанию добавляет отступ к комментарию. Чтобы отключить это поведение, используйте опцию Place comments at first column when commenting out code.
  • На страницах настройки отступов теперь показывается уведомление о том, что включена опция Autodetect indent size and value.

На страницах параметров форматирования C# новая подсказка объяснит, как работают действия Configure formatting и Autodetect formatting.

Улучшения проектной модели

Проектная модель Rider теперь распространяет любые рефакторинги, которые применяются в файлах на языках веб-разработки, например TypeScript, на все файлы проекта. Например, при перемещении TS-класса в отдельный файл Rider обновит соответствующий файл .csproj. Кроме того, мы улучшили UX статуса проекта Not Built в окне Solution Explorer.

Обратите внимание, что Rider больше не поддерживает .NET Core 1.* SDK, так как срок действия этих версий истек.

Начальная поддержка MongoDB

В Rider появилась начальная поддержка MongoDB (подробнее). Кроме того, теперь поддерживается отладчик PL/SQL для Oracle, добавлены новые инспекции и предупреждения, появился индикатор выполнения запросов в редакторе и простой способ посмотреть информацию об ошибке соединения в поисковике Google.

Подробнее: Что нового в DataGrip 2019.3.

Веб-разработка

Веб-разработка

Как и всегда, веб-разработчиков ждет много нового:

  • Значительные улучшения автодополнения для Vue.js.
  • Быстрый просмотр документации в проектах Vue.js.
  • Улучшенная поддержка props в компонентах React.
  • Улучшенная поддержка Angular.
  • Поддержка TypeScript 3.7 и другие улучшения для JavaScript и TypeScript.
  • Обновленная поддержка CSS/SASS.
  • Поддержка грядущей версии Yarn 2.

Подробнее: Что нового в WebStorm 2019.3.

Другие возможности

Другие возможности

  • Мы улучшили поддержку файлов проекта (например, .csproj): теперь автодополнение учитывает различные элементы MSBuild. Вы также можете использовать инспекцию и быстрое исправление для валидации <TargetFramework>/<TargetFrameworks>.
  • Rider по-новому генерирует предопределенную конфигурацию запуска, чтобы ее можно было запускать без дополнительных настроек и лишних действий. Кроме того, конфигурация получает автоматически сгенерированное имя вместо скучного Default.
  • Поддержано больше свойств MSBuild, указанных в файле launchSettings.json, например $(ProjectDir).
  • Подсказка Parameter Info доступна для кортежей.
  • При удалении новых строк и при удалении символов перед новой строкой, сохраняется пробел, если нужно разделить лексемы или если того требуют правила форматирования.
И еще

И еще

  • Мы полностью переработали подсветку идентификаторов: для настройки цветов синтаксиса C# есть отдельная страница; для директив препроцессора, статических методов, полей и других элементов предусмотрены индивидуальные цвета.
  • Новые инспекции для NUnit охватывают комбинаторные юнит-тесты и отдельные параметры параметризованных юнит-тестов.
  • Мы вернули кнопку Expand All на левую панель инструментов.
  • В экспериментальном режиме доступен новый реактивный клиент TFS. Чтобы включить его, перейдите в меню Settings | Version Control | TFVC. Это существенно ускорит действие Checking for changes (в наших тестах оно работает в 100—1000 раз быстрее). Многие действия, например Commit и History, будут перенесены на новый клиент после официального выхода.