Что нового в Rider

Rider 2023.2 предлагает улучшенную поддержку для C#, которая включает в себя новые инспекции для работы с локальными функциями и необработанными строками, а также для устранения распространенных ошибок Entity Framework. Мы внесли ряд улучшений в интерфейс и завершили работу над новым дизайном IDE с широкими возможностями настройки. Разрабатывать игры в Rider стало еще удобнее: мы обновили функционал DOTS для Unity, оптимизировали индексацию Blueprints для Unreal Engine и сделали ряд других улучшений. Кроме того, Rider 2023.2 — первая версия IDE, которая предлагает функции на основе искусственного интеллекта. Для этого используется плагин JetBrains AI Assistant.

Главное

Настраиваемые заголовки проектов

Настраиваемые заголовки проектов Новый интерфейс

Мы упростили навигацию по открытым проектам с помощью цветовой индикации. Цвета заголовков определены заранее, но вы можете настроить их, как вам нравится. Чтобы задать цвет для проекта, кликните правой кнопкой мыши по заголовку окна, зайдите в контекстное меню, выберите опцию Change Toolbar Color и укажите желаемый цвет. Чтобы отключить эту функцию, просто снимите флажок с опции Use Project Colors in Toolbar в контекстном меню.

AI Assistant

AI Assistant Ограниченный доступ

В этой версии мы представляем важное дополнение к Rider — помощник на основе искусственного интеллекта AI Assistant. Текущий набор его функций включает чат-бота, который органично вписывается в ключевые процессы работы в IDE. AI Assistant умеет анализировать выбранный код, объяснять значение коммита и создавать файлы Unity в соответствии со спецификацией.

Подробнее

Переработанное окно Build

В Rider 2023.2 переработано окно Build: мы изменили интерфейс и оптимизировали производительность. Результаты сборки теперь отображаются в виде дерева событий слева и журнала справа. Вывод загружается «ленивым» образом, а значит, будут показываться только те данные, которые вы выберете в дереве событий, — так будет потребляться меньше ресурсов процессора, а навигация станет удобнее.

Интеграция с GitLab

В Rider 2023.2 появилась базовая интеграция с GitLab: теперь можно пользоваться функцией Merge Requests прямо из IDE и упростить таким образом свой рабочий процесс.

Анализ кода

Поддержка C#

Улучшенная поддержка необработанных строк

Мы добавили новые инспекции и контекстные действия для работы с необработанными строками, а также улучшили поддержку редактирования и ввели новые возможности форматирования. Среди них:

  • Инспекция Use raw string для преобразования многострочных буквальных строк в их необработанные аналоги.
  • Инспекция Simplify raw string для удаления лишних кавычек и знаков доллара.
  • Несколько контекстных действий для добавления и удаления кавычек, скобок интерполяции и знаков доллара, а также для переключения между однострочным и многострочным представлением.
  • Новые настройки форматирования кода для выравнивания содержимого необработанных строк и добавления отступов.
  • Улучшенная поддержка редактирования при нажатии клавиш Enter, Delete или Backspace.

Подробнее

Инспекции для распространенных ошибок Entity Framework

Инспекции для распространенных ошибок Entity Framework

Мы добавили несколько новых инспекций, быстрых исправлений и возможностей контекстной навигации для распространенных проблем, которые возникают при работе с базами данных, использующими фреймворки объектно-реляционного отображения (ORM), в частности Entity Framework.

  • Справиться с возможной «проблемой N+1» помогут инспекции Possible multiple queries to the database for related entities (N+1 problem) и Possible multiple queries to the database (N+1 problem), соответствующее быстрое исправление, а также контекстный переход вперед и назад для поиска мест в коде, где может возникнуть проблема.
  • Помимо выявления проблемы N+1, мы добавили еще одну удобную инспекцию для работы с Entity Framework: Query can return incomplete data for related entities. Для устранения этой ошибки мы также подготовили быстрое исправление и контекстную навигацию с поиском вперед и назад.

Подробнее о новых инспекциях для Entity Framework читайте в нашем блоге.

Инспекции для работы с локальными функциями

В Rider 2023.2 добавлены две новые инспекции с быстрыми исправлениями для улучшения читаемости кода с использованием локальных функций:

  • Рекомендация ставить явный оператор return или continue перед локальными функциями в конце метода.
  • Предложение перенести локальные функции в конец метода или блока и отделить их от исполняемого кода явным return, continue или другим оператором передачи управления.

Подробнее о новых инспекциях — в нашем блоге.

Инспекции для директив #nullable и NRT-аннотаций

Инспекции для директив #nullable и NRT-аннотаций

В новой версии появились несколько новых инспекция для директив #nullable и NRT-аннотаций:

  • инспекция Redundant nullable directive;
  • инспекция Unused nullable directive;
  • инспекция, предупреждающая о случаях, когда аннотации ссылочных типов, допускающих значение null (NRT), противоречат атрибутам JetBrains.Annotations базового члена.

Подробнее об этих инспекциях читайте в нашем блоге.

Улученная навигация для объявлений var

Улученная навигация для объявлений var

Теперь в случае распространенных оберточных типов все навигационные действия (Go to…, Find Usages и т. д.) предлагают базовые типы при переходе от var. Например, при вызове действия Go to declaration на ключевом слове var переменной с типом ImmutableArray<Person>? Rider предложит перейти к Person.

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

Первичные конструкторы Превью C# 12

В версии 2023.2 мы добавили поддержку первичных конструкторов для классов non-record и типов non-record struct, появившихся в предварительной версии C# 12. Несколько инспекций выявляют эти типы там, где инициализацию можно выразить с помощью нового первичного конструктора, и предлагают применить быстрое исправление, чтобы заметно сократить объем повторяющегося кода.

Иногда инициализация типа должна быть менее тривиальной, и ее уже нельзя выразить с помощью первичного конструктора. Для таких случаев мы предусмотрели несколько контекстных действий, позволяющих отменить подстановку параметров первичного конструктора в конструкторы и обычные поля.

Об этих и многих других функциях для работы с первичными конструкторами читайте в нашем блоге.

Поддержка значений параметров по умолчанию в лямбдах

Поддержка значений параметров по умолчанию в лямбдах Превью C# 12

В рамках работы над поддержкой нововведений C# 12 мы добавили поддержку значений параметров по умолчанию в лямбда-выражениях. Помимо стандартного набора предупреждений, касающихся распознавания этого синтаксиса, мы также переработали инспекцию The parameter has the same default value, чтобы она учитывала значения параметров по умолчанию в лямбдах. Подробнее

Улучшенная поддержка одноразовых ресурсов

В Rider 2023.2 добавлены две новые инспекции, чтобы было проще управлять освобождением объектов:

  • Инспекция Return of a variable captured by ‘using’ statement предупреждает, что возвращаемый объект сразу же освобождается.
  • Инспекция Return of a task produced by ‘using’-captured object выявляет сценарии, когда задание (Task) создается объектом, который был захвачен выражением using, а затем сразу же возвращен.

Кроме того, мы улучшили функцию Generate dispose pattern, обеспечив поддержку интерфейса IAsyncDisposable и возможность генерации асинхронного метода для освобождения ресурсов.

Подробнее об этих изменениях можно прочитать здесь.

Улучшенная поддержка сброса переменных C#

Мы добавили новые возможности анализа кода для поддержки сброса переменных C#:

  • Теперь можно быстро проверить имена и типы сброшенных значений с помощью функции Push-to-Hint.
  • Предупреждение The _ name is typically reserved for local parameters without usages касается переменных и параметров с именем _, которые на самом деле используются. Они выглядят так, будто их значение сброшено, но в действительности все наоборот.
  • Добавлена инспекция Use discard assignment для замены неиспользуемой переменной или параметра со сброшенным значением.

Подробнее

Новые встроенные подсказки для улучшения читаемости кода

Новые встроенные подсказки для улучшения читаемости кода

Встроенные подсказки с именами компонентов значений кортежа

Когда значение передается аргументу кортежа или возвращаемому типу, C# позволяет опустить имена компонентов. Однако в отсутствие имен сложнее понять смысл каждого компонента — приходится смотреть его целевой тип. Например, многие разработчики вынуждены проверять, куда назначен кортеж (null, false), чтобы понять, что означают его компоненты.

Здесь на помощь приходят встроенные подсказки. Rider 2023.2 выводит на экран подсказки с именами компонентов кортежа, если эти имена не указаны явно. В результате код становится проще читать и понимать.

Для стандартных и null-компонентов в Rider 2023.2 отображаются подсказки с целевыми типами, даже если у целевого компонента нет явного имени. Исключение составляют типы строк и объектов, потому что они обычно малоинформативны.

Еще одна распространенная ситуация, в которой имена могут улучшить читаемость — паттерны деконструкции. В этом случае явное имя известно либо из метода Deconstruct, либо из компонентов исходного кортежа. Задача этих подсказок — дать вам дополнительный контекст, если в самом паттерне недостаточно данных, чтобы понять, что к чему относится, например value is ({ }, true, null).

Улучшенная поддержка директив #pragma warning

Улучшенная поддержка директив #pragma warning

Директивы Pragma позволяют легко включать и отключать предупреждения компилятора по их идентификаторам. Однако, несмотря на то, что такие идентификаторы являются отличным способом взаимодействия с компилятором, в них может быть сложно разобраться человеку. Без специальных знаний невозможно понять, к чему относится идентификатор CS0168 или CS0618 и что требует внимания.

Изменения в интерфейсе

Начиная с этой версии, обновленный интерфейс IDE, впервые представленный в Rider 2022.3, будет включен по умолчанию для всех новых пользователей. Если вы еще не перешли на новый интерфейс, рекомендуем вам познакомиться с ним. Включить его можно в меню Settings / Preferences | Appearance & Behavior | New UI | Enable new UI.

Изменение масштаба всей IDE

Переработанное меню главной панели в Windows и Linux Новый интерфейс

В новом интерфейсе на Windows и Linux изменился дизайн меню на главной панели инструментов. Теперь элементы меню отображаются по горизонтали на панели инструментов.

Закрепленная конфигурация запуска

Закрепление конфигураций запуска в виджете Run Новый интерфейс

Чтобы вам было проще управлять несколькими конфигурациями запуска, наиболее часто используемые из них теперь можно закреплять в виджете Run. Для этого нажмите на три точки рядом с названием конфигурации и в открывшемся меню выберите Pin. Если вы хотите изменить порядок закрепленных конфигураций, просто перетащите их вверх или вниз по списку.

Изменение масштаба всей IDE

Расширенные настройки главной панели инструментов Новый интерфейс

Мы расширили возможности кастомизации главной панели инструментов в новом интерфейсе. Теперь в выпадающем меню можно быстро выбрать действия, которые вы хотите добавить на панель. Для этого кликните правой кнопкой мыши по любому виджету и выберите опцию Add to Main Toolbar, чтобы увидеть доступные варианты.

Светлая тема со светлыми заголовками

Светлая тема со светлыми заголовками Новый интерфейс

В Rider 2023.2 мы усовершенствовали светлую тему, добавив альтернативный вариант Light with Light Header, отличающийся светлыми цветами заголовков окон, всплывающих подсказок и уведомлений.

Навигация по папкам проекта в один клик

Навигация по папкам проекта в один клик

В окне Solution Explorer теперь есть опция Open Directories with Single Click, которая позволяет быстрее разворачивать и сворачивать папки проектов. Вы найдете ее в выпадающем меню, если нажмете на три точки.

Сортировка файлов по времени изменения в Solution Explorer

Сортировка файлов по времени изменения в Solution Explorer

В Solution Explorer появилось долгожданное упорядочивание файлов по времени изменения. Пересортировка файлов происходит автоматически при сохранении изменений в проекте. Чтобы включить сортировку, откройте меню (нажав на три точки) в Solution Explorer и выберите Tree Appearance | Sort by Modification Time.

AI Assistant Ограниченный доступ

Версия 2023.2 наших IDE на базе IntelliJ и .NET-инструментов включают важную новую функцию AI Assistant — помощник на основе искусственного интеллекта. Он находится на ранней стадии разработки, но вы уже можете оценить наш подход к внедрению искусственного интеллекта в привычные процессы работы в IDE и интеграцию его возможностей с анализом кода. Подробнее

На данный момент AI Assistant не встроен в стабильные версии IDE JetBrains и устанавливается как отдельный плагин для версий не ранее 2023.2.x. Доступ к AI Assistant временно ограничен, и вы можете оказаться в листе ожидания.

Чат c AI Assistant

Чат c AI Assistant

В окне AI Assistant можно пообщаться с большой языковой моделью (LLM), задать вопросы и обсудить задание. IDE предоставит контекст, касающийся проекта, например информацию об используемых языках и технологиях. Если вас устраивает сгенерированный искусственным интеллектом код, вы можете скопировать его в редактор при помощи действия Insert Snippet at Caret или вручную.

Меню AI Actions...

Меню AI Actions...

Выделите фрагмент кода в редакторе и вызовите действие из контекстного меню AI Actions....

AI Assistant умеет:

  • пояснять выделенный код;
  • находить потенциальные проблемы и варианты рефакторинга;
  • обсуждать выделенный код в чате.

Генерация и объяснение сообщений коммитов

В диалоге сообщений коммитов появилась кнопка Generate Commit Message with AI Assistant. При нажатии на нее информация об изменениях передается в LLM, которая создает сообщение коммита с описанием внесенных изменений. Кроме того, вы можете попросить AI Assistant объяснить коммиты коллег.

AI-Assisted Unity F

Генерация файлов Unity с помощью ИИ

AI Assistant поможет сгенерировать файл для решения Unity в соответствии со спецификациями. Правой кнопкой щелкните на проекте в Solution Explorer, выберите в контекстном меню Create with AI Assistant и напишите запрос. Когда ИИ сгенерирует содержимое файла, нажмите Create New File, и файл будет автоматически добавлен в проект.

Производительность

В Rider 2023.2 мы пересмотрели подход к кэшированию данных, которые IDE использует для работы своих систем. Такие изменения, опирающиеся на множество тестов производительности, позволили значительно сократить использование дискового пространства каждым открытым решением. С практической точки зрения это позволяет тратить меньше времени на запись данных на диск и их считывание, а следовательно, сократить время загрузки решений.

Навигация и поиск

Find Usages Advanced

Find Usages Advanced

В Rider 2023.2 расширена функциональность действия Find Usages. Теперь при вызове Find Usages Advanced на символе (например, методе, классе или переменной) открывается окно, в котором можно указать дополнительные критерии поиска.

Подробнее

Настройки навигации

Чтобы навигация по кодовой базе стала удобнее, мы добавили новые опции на специальную страницу Search and Navigation в разделе Settings / Preferences | Editor.

SDK .NET

Анализаторы и генераторы кода Roslyn

В Rider 2023.2 добавлен ряд улучшений для работы с анализаторами и генераторами кода Roslyn. Вот некоторые из обновлений:

  • Добавлена кнопка Reboot Source Generators, чтобы не приходилось перезапускать всю IDE при зависании отдельного генератора кода.
  • Новая версия Rider отображает исключения генераторов кода в представлении Problems. Благодаря этому можно выявить проблемы, которые раньше оставались незамеченными или необъясненными.
  • Теперь IDE предлагает полную трассировку стека исключений в представлении Problems, чтобы легче было найти причины ошибок.
  • В новой версии можно изменить уровни серьезности инспекций Roslyn в Solution Explorer. Это расширяет возможности настройки и управления анализом кода.
  • Наконец, мы добавили два новых шаблона проектов для создания анализаторов и генераторов кода Roslyn в Rider.

Docker

Запуск Docker в WSL

Запуск Docker в WSL

В последнем релизе мы представили быстрый режим запуска для Docker. Начиная с версии 2023.2, можно использовать Docker в быстром режиме и на WSL. Чтобы запускать Docker-контейнеры на Windows без Docker Desktop, сначала нужно установить WSL, установить Docker на дистрибутив Linux и добавить WSL в настройки Rider в разделе Build, Execution, Deployment | Docker. После этого вы сможете запускать и отлаживать Docker-контейнеры в WSL (в быстром режиме или без него).

Метки для конфигураций запуска Docker Compose

Метки для конфигураций запуска Docker Compose

Мы упростили настройку конфигурации запуска Docker Compose при помощи меток. Добавляя такие фрагменты кода в файл docker-compose.yml, вы можете указать, нужно ли запускать и отлаживать ваши приложения и как это делать.

Например, если вы хотите отключить режим быстрого запуска для определенных сервисов, добавьте для них метку com.jetbrains.rider.fast.mode: "false". А если нужно отключить режим отладки, используйте метку com.jetbrains.rider.debug: "false".

XAML Hot Reload для MAUI

XAML Hot Reload теперь доступен для решений, ориентированных на .NET MAUI! Поддержка XAML Hot Reload в Rider позволяет разработчикам мобильных приложений вносить изменения в интерфейс и код MAUI-приложений во время их работы — без полной пересборки и повторного развертывания. Внесенные изменения применяются немедленно, обеспечивая более быстрый и итеративный процесс разработки.

Разработка игр

Unity

В этой версии, как и всегда, много новых возможностей для разработки на Unity. Мы сделали более удобным редактирование файлов ShaderLab, обновили функционал DOTS, улучшили поддержку файлов USS.

AI Assistant для Unity

AI Assistant помогает решать проблемы и учиться, и мы хотим, чтобы разработчики Unity как можно скорее начали пользоваться его возможностями. Rider подскажет AI Assistant, что вы работаете с проектом Unity. Если вы спросите «Как создать окно редактора?» или «Как добавить пункт меню?», помощник поймет, что речь об окне или пункте меню в редакторе Unity, и предложит нужные API.

Кроме того, контекст Unity — это отличная возможность прототипировать дополнительное поведение. Если попросить AI Assistant создать файл, он добавит кнопку, которая автоматически создаст файл с предложенным содержимым. По мере развития AI Assistant его функциональность будет охватывать другие действия и контексты.

Поддержка ShaderLab

В новой версии значительно улучшена поддержка файлов ShaderLab в Rider: расширены возможности редактирования, появились новые шаблоны Live Templates, возможность заполнения Breadcrumbs и окно Structure, а также переход к объявлению имени шейдера или прохода рендера при нажатии Ctrl+Click.

Изменений так много, что мы посвятили им отдельный блог-пост.

DOTS для Unity

Опираясь на отзывы и пожелания сообщества Unity, мы внесли важные изменения в генерацию кода для Data Oriented Tech Stack (DOTS). Кроме того, мы добавили новые шаблоны файлов и Live Templates, а также расширили перечень частей кода, для которых используется анализ контекста Burst.

В отладчике тоже появилась поддержка DOTS. Благодаря улучшенному представлению типов RefRO и RefRW стало проще увидеть значение за оберткой ссылки. При этом узел Raw Value всегда можно развернуть, чтобы посмотреть исходное представление.

Поддержка файлов стилей Unity

В новой версии существенно изменена работа с файлами стилей Unity (USS): теперь Rider поддерживает функцию var. Кроме того, добавлена подсветка и автодополнение для многих свойств, появившихся в новых версиях Unity.

Другие улучшения

Мы также добавили автодополнение для путей, использующихся в API баз данных ассетов. Просто введите несколько символов, и Rider предложит пути, используемые в проекте.

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

Unreal Engine

В Rider 2023.2 существенно обновлена поддержка Unreal Engine: добавлено много улучшений для работы с C++, появилась поддержка Hot Reload и Live Coding, ускорена индексация файлов Blueprint, исправлены ошибки и расширена поддержка Perforce.

Оптимизация индексирования файлов Blueprints

Оптимизация индексирования файлов Blueprints

В этой версии мы ускорили индексирование файлов Blueprints. При первом открытии проекта Rider индексирует все ассеты Blueprint: можно искать использования классов в Blueprints, значения сериализованных данных показываются прямо в текстовом редакторе, сами данные кэшируются и постепенно обновляются по ходу работы.

Раньше ассеты индексировались одновременно с кодом C++, поэтому подготовка Rider к работе занимала больше времени.

Rider 2023.2 индексирует ассеты в фоновом режиме уже после того, как проиндексирован код C++. Пока IDE индексирует ассеты, код можно редактировать, работает подсветка синтаксиса и навигация по коду.

Поддержка Live Coding и Hot Reload

Поддержка Live Coding и Hot Reload

Теперь Rider поддерживает вызов Hot Reload и Live Coding из IDE, поэтому вы можете обновить приложение Unreal даже при запущенном редакторе. Как только в редакторе Unreal включается одна из этих функций, Rider показывает кнопку Build and Reload на панели инструментов, позволяя скомпилировать изменения, пока Unreal загружает обновления.

Работа с Perforce

Мы улучшили интеграцию с Perforce и существенно сократили время обновления статуса локальных файлов, а также внесли другие улучшения и исправления. При открытии решения новая версия Rider автоматически находит рабочее пространство Perforce, а также получает значение P4CONFIG и других настроек из реестра, а не только от переменных окружения.

Другие обновления

В Rider 2023.2 вас ждет много других улучшений и исправлений для разработки игр на C++. Мы улучшили работу сложного сценария, который приводил к зависанию Rider при работе с очень большими файлами проекта. Теперь при работе с решениями на базе .uproject в Rider легко ограничить область поиска по файлам только директориями плагинов. Кроме того, исправлены ошибки в плагине RiderLink, чтобы его можно было встроить в новый тулчейн VC++.

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

Улучшенное форматирование ошибок

Улучшенное форматирование ошибок

В Rider 2023.2 мы постарались улучшить способ представления ошибок типов в JavaScript и TypeScript. Благодаря новому форматированию информацию об ошибках и предупреждениях проще читать, а значит легче находить проблемы в коде. Новым способом отображаются все ошибки в TypeScript-коде и наиболее распространенные в JavaScript, а также локализованные ошибки.

Поддержка вложенности CSS

Rider now supports the CSS Nesting Module feature. Мы добавили поддержку синтаксиса и инспекцию для проверки того, что вложенный селектор не начинается с идентификатора или функциональной нотации.

Поддержка автодополнения для Tailwind

Плагин, обеспечивающий автодополнение для Tailwind, теперь поддерживает файлы Razor.

Поддержка Vue Language Server

Поддержка Vue Language Server

У нас отличные новости для пользователей Vue: в Rider добавлена базовая поддержка Volar, обеспечивающая более точное обнаружение ошибок. По умолчанию Volar используется для TypeScript 5.0 и более свежих версий, а для более ранних — наша собственная реализация. Интеграцию с Volar для всех версий TypeScript можно включить в разделе Settings | Languages & Frameworks | TypeScript | Vue.

Подробнее о новых возможностях для веб-разработки читайте на странице WebStorm 2023.2.

Управление версиями

Фоновые проверки коммитов

Фоновые проверки коммитов

Мы изменили процедуру проверки кода перед коммитом в Git и Mercurial, чтобы в целом ускорить выполнение коммита. Теперь проверки производятся в фоновом режиме — после коммита, но до отправки изменений в репозиторий.

Коммит отдельных строк кода

Коммит отдельных строк кода

В Rider 2023.2 появилась долгожданная возможность выбирать для коммита только определенные фрагменты кода. Для этого выделите нужные строки внутри блока кода и вызовите действие Include these lines into commit из контекстного меню. Блок будет разделен на отдельные строки, а выбранные строки будут подсвечены. Используйте флажки или контекстное меню, чтобы добавить или снять выделение со строки.

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

Анализ снэпшотов dotMemory dotUltimate

В прежних версиях Rider модуль dotMemory можно было использовать только для анализа распределения памяти. Теперь же можно собирать снэпшоты памяти и анализировать их в Rider точно так же, как в автономной версии dotMemory.

  • Анализ снэпшотов работает на Windows, Linux и macOS.
  • В Windows можно также импортировать и анализировать дампы процессов.
  • Некоторые функции и представления недоступны, например автоматические инспекции снэпшотов и представление трассировки стека.
Группировка по потокам для снэпшотов сэмплинг-анализа, анализа трассировки и построчного анализа производительности

Группировка по потокам для снэпшотов сэмплинг-анализа, анализа трассировки и построчного анализа производительности dotTrace dotUltimate

Теперь в представлении Call Tree можно сгруппировать стеки вызовов по потокам, чтобы было удобнее анализировать проблемы с производительностью, характерные для конкретных потоков.

Динамический анализ программы

  • Раньше DPA мог ошибочно учитывать время паузы во время отладки как время выполнения кода. Это приводило к ложным предупреждениям об ошибках БД. В версии 2023.2 эта проблема устранена.
  • Кроме того, раньше при анализе подсвечивались большие блоки кода, если соответствующий стек вызовов содержал распределение памяти по лямбда-функциям. Теперь подсветка стала точнее.

Обеспечение качества кода

Интеграция с платформой Qodana

Хорошо известно, что инструменты статического анализа тяжело настраивать. В версии Rider 2023.2 мы устранили эту проблему благодаря полной интеграции с Qodana — умным механизмом статического анализа, подходящим для любого CI/CD-пайплайна.

Эта интеграция дает два важных преимущества. Во-первых, удобство настройки: вы можете за пару кликов запустить статический анализ кода, просмотреть список проблем по всему проекту, а затем настроить Qodana в вашей CI/CD-системе для установки критериев качества Второе преимущество — улучшенный процесс контроля качества кода. Настроив Qodana в CI/CD-системе, можно просматривать результаты серверного анализа, не покидая IDE.

Платформа Qodana только что была официально выпущена. Подробная информация о релизе и рекомендации по использованию Qodana в Rider — в этом блог-посте.

Работа с базами данных

Работа с базами данных

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

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

  • Поддержка Redis Cluster.
  • Обновленный диалог миграции схем.
  • Установка часовых поясов в Data editor.
  • Поддержка внешних баз данных и общего доступа [Redshift].

Подробнее об изменениях в работе с базами данных читайте на этой странице.

Поддержка F#

Указатели из F# на C# в памяти

Указатели из F# на C# в памяти

Мы включили возможность использования указателей из F# на C# в памяти, поэтому теперь не нужно собирать проекты C#, чтобы ссылающийся на них код F# увидел изменения. Это позволило улучшить кросс-языковые рефакторинги и навигацию, поскольку служба компилятора F# теперь обязательно обращается к актуальным источникам кода C#, помимо уже работающих указателей из C# на F# в памяти.

Поддержка языковых вставок для языков платформы IntelliJ Platform

Мы добавили поддержку языковых вставок для языков IntelliJ Platform, чтобы вы могли использовать разные языки фронтенда в литералах F#, а также получать доступ к базам данных, открывать веб-ссылки или задачи и т. п.

Go to File Member (переход к члену файла)

Go to File Member

Для F# доступно новое всплывающее окно Go to File Member, в котором удобнее просматривать структуру файла и переходить к членам от базовых типов.

Обновления для паттернов вариантов union

Обновления для паттернов вариантов union

Мы добавили ряд улучшений, чтобы облегчить вам работу с паттернами вариантов union:

  • Новое контекстное действие для преобразования паттернов вариантов union в паттерны именованных полей.
  • Новые правила использования паттернов именованных полей в вариантах union.
  • Улучшенные правила для паттернов вариантов union — всплывающее окно деконструкции не мешает вводить паттерн вручную.

We also want to thank Florian Verdonck for contributing to this improvement.

Генерация переопределения

Мы исправили ряд ошибок, улучшив генерацию переопределений. В частности, сгенерированные члены теперь всегда вставляются в нужные месты, а типы при необходимости переформатируются. A huge thanks goes to David Schaefer for contributing to this improvement.

You can find the full list of F# updates and fixes available in Rider 2023.2 here.

Плагины

Плагин Settings Sync

Плагин Settings Sync

Для синхронизации настроек долгое время параллельно существовало два плагина с пересекающимися функциями — IDE Settings Sync и Settings Repository.

Чтобы избежать путаницы, мы объединили их функциональность в одном решении — новом плагине Settings Sync.

Поддержка LSP для разработчиков плагинов

Rider 2023.2 включает в себя поддержку LSP API для разработчиков плагинов. API предназначен в основном для тех, кто хочет использовать определенный LSP-сервер, чтобы получать помощь в написании кода в IDE. Если вы создали свой собственный язык программирования или фреймворк, для его поддержки в IDE можно написать LSP-сервер и плагин.

На данный момент поддержка LSP включает в себя подсветку ошибок и предупреждений, быстрые исправления, автодополнение кода и навигацию по объявлениям. Подробнее — в блоге команды IntelliJ IDEA.

Feature Trainer в Rider

В Rider 2023.2 появился Feature Trainer — новый интерактивный инструмент для знакомства с функциональностью и рабочими процессами, поддерживаемыми IDE, который будет полезен как новичкам, так и опытным пользователям. В нем используется практический подход к обучению: Feature Trainer предлагает пошаговые инструкции и примеры кода для тренировки. Попробовать его можно в разделе Help | Learn IDE Features. Feature Trainer доступен только в новом интерфейсе.

Специальные возможности

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

  • Правильная маркировка и описание элементов интерфейса.
  • Улучшенная навигация и управление с клавиатуры в разделе Settings / Preferences.
  • Улучшенная поддержка инструментов чтения с экрана, например NVDA, особенно на вкладке Run.
  • Упрощенный доступ к документации, справочным ресурсам и управлению пакетами NuGet.
  • Расширенные специальные возможности в конструкторе Windows Forms.

Прочее

Поддержка ARM32 для удаленного отладчика

В дополнение к поддержке ARM64 в Rider 2023.2 появилась поддержка инструментов удаленного отладчика, загружаемых на удаленную машину, работающую на ARM32, например Raspberry Pi. Для подключения к такому удаленному процессу используйте диалог Attach to Process.

Перенос терминала на ConPTY в Windows

JetBrains Rider включает в себя встроенный эмулятор терминала для работы с командной строкой внутри IDE. В предыдущих версиях Rider в качестве слоя эмуляции терминала в Windows использовалась сторонняя библиотека WinPTY. В Rider 2023.2 мы переходим на ConPTY, предоставляемую операционной системой, в тех версиях Windows, которые ее поддерживают. Хотя видимых изменений не ожидается, этот переход открывает новые возможности для улучшения терминала и консоли выполнения.