Rider 2020.3 — это долгожданная поддержка новых возможностей .NET 5, C# 9 и F# 5. Также это новое окно Immediate, Private Source Link в отладчике, диаграмма зависимостей проектов, режим Push-to-Hint и поддержка языка фреймворка Avalonia. Разработчики Unity смогут воспользоваться новым анализом Burst и поддержкой шейдеров. Также вы теперь можете разделять область реактора так, как вам хочется — попросту перетаскивая вкладки.
Встречайте первый релиз Rider с поддержкой .NET 5! Это и генераторы кода, и новые возможности C# 9 и NuGet, и целевые фреймворки net5.0-windows и net5.0. А также разработка приложений .NET 5! Создание, сборка, запуск, отладка, профилирование, управление — в вашем распоряжении все инструменты для полного цикла разработки.
Появление генераторов кода в компиляторе C# стало одной из самых обсуждаемых новостей. И действительно, возможность генерировать код прямо во время компиляции и тут же применять его — может быть чрезвычайно полезна в целом ряде ситуаций.
А что же Rider? Rider продолжает делать то, что умеет лучше всего, — прекрасно поддерживать новые возможности. Новая версия Rider учитывает сгенерированные файлы в своих рефакторингах, помогает вам в навигации по ним, и, конечно же, оснащает новыми полезными возможностями редактор кода.
Частичные методы теперь могут иметь выходные параметры и любой модификатор доступа. Также они теперь могут возвращать значения, отличные от void, — что позволяет применять их при генерации кода. Включив определяющее объявление частичного метода в генератор кода, вы можете настроить желаемым образом его поведение.
Еще одна новая возможность — свойства init
-only. Задать значения таким свойствам можно только в ходе инициализации объекта. А значит, вы наконец можете использовать инициализаторы объектов, не прописывая свойства как mutable.
Rider знает свойства init-only и учитывает их, когда выполняет генеративное автодополнение, анализирует, было ли свойство изменено, и предлагает быстрое исправление на случай, если вы передумали.
Свойства init
удобно применять для типов record
. Это ссылочные типы с семантикой значений, которые позволяют обеспечить неизменяемость. В данном случае неизменяемым станет весь объект. Rider же со своей стороны обеспечивает всей необходимой поддержкой — от быстрых исправлений, позволяющих выбрать стиль объявлений, до базового автодополнения.
У позиционных записей есть метод Deconstruct()
, сгенерированный компилятором. Для таких объектов в Rider доступны все типы деконструкции. Когда вы объявите переменную, появится окно, предлагающее выбрать между одиночной переменной и объявлением деконструкции. То же самое произойдет, если вы запросите из функции свойство record-объекта.
Есть и ряд менее крупных изменений. Для локальных функций теперь разрешены атрибуты, а также параметры и параметры типов. Быстрые исправления Rider уже поддерживают это. Также вы можете добавлять методам аннотацию [NotNull]
и [CanBeNull]
при помощи !
и ?
соответственно.
Новые возможности C# 9 позволяют писать высокоуровневые программы. Теперь вам не придется воевать с классами Program — код точки входа можно разместить сразу после директив using. Также Rider помогает в работе с операторами верхнего уровня. Для этих операторов есть два правила: во-первых, они должны предшествовать любым типам и пространствам имен; во-вторых, только один файл в проекте может содержать код верхнего уровня. Оба правила легко нарушить при реорганизации кода. Чтобы не допустить этого, Rider предлагает специальные быстрые исправления, которые переставляют код верхнего уровня в начало файла либо переносят его в отдельный файл.
Код верхнего уровня — это тоже код, и у Rider также есть для него рефакторинги: Extract local variable и Extract method.
Подробнее об операторах верхнего уровня в C# 9 читайте в нашем блоге.
С C# 9 появляется возможность target-typing, позволяющая не указывать тип после оператора new — вместо этого он будет автоматически определен из контекста. Rider полностью поддерживает эту возможность языка, в том числе позволяя вам просматривать все использования конструктора (при помощи действия Find Usages) и выбирать предпочитаемый стиль синтаксиса. Последнее позволяет вам использовать синтаксис new()
, если тип очевиден, либо указать типы явно в остальных случаях.
Если же использование new()
выйдет из-под контроля, вы всегда можете воспользоваться нашими специальными подсказками для типов.
Благодаря ковариантным возвращаемым типам, переопределяя члены класса, вы больше не обязаны возвращать строго один тип значения, как того требуют методы базовых классов. А значит, вам больше не нужно придумывать обходные пути, чтобы вернуть значение того или иного типа.
Новая версия языка улучшает возможности сопоставления с образцами (паттернами). Задавая образцы, вы теперь можете использовать отношения (<
, >
и т. д.) и логические паттерны (not
, or
, and
) — это намного проще, чем применять старые конструкции switch
. Rider поможет вам проанализировать паттерны и переписать их в желаемом стиле.
Также мы добавили быстрое исправление для новых параметров discard в лямбда-выражениях.
Это были главные обновления языка. Есть ряд более мелких, и мы также поддержали их в Rider 2020.3. Они включают target-typing для условий, статические лямбды, методы расширения GetEnumerator
для foreach
, указатели на функции и нативные целочисленные типы.
Появилось новое окно Immediate с помощью при написании кода, позволяющее создавать синтетические переменные после срабатывания точки останова и экспериментировать с кодом, не перезапуская отладчик.
Окно Immediate появится в правом нижнем углу панели отладки (под переменными watch), как только вы начнете сессию отладки. Вы сможете ввести входные данные, как только исполнение приложения будет приостановлено (как правило, при срабатывании точки останова).
Вы сможете ввести любой код на C#. Вам также будет доступно автодополнение.
Теперь вы также можете объявить синтетические переменные. В окне переменных вы увидите все синтетические переменные, которые отслеживает Rider. Вы можете просматривать, закреплять и модифицировать эти переменные, как и любые другие.
Вы можете вызывать методы доступных объектов и любые статические функции, существующие в текущем контексте, а также передавать доступные объекты в виде аргументов. Если вы вызовете функцию, в которой есть точка останова, Rider точно так же учтет ее и приостановит исполнение. Для вызова будет выделена своя часть стека (начинающаяся с вычисления функции) — вы можете следить за ней через панель Frames.
Вы можете запускать операторы, не присваивая их переменным. Rider запишет последнее значение, которое было возвращено, в $result. С историей выполнения всех операторов можно ознакомиться в окне Immediate.
Подробнее об отладке с использованием окна Immediate читайте в нашем блоге.
В отладчике появился новый вид действий, которые можно запускать до начала отладки.
Теперь при запуске отладки, чтобы попасть в определенную точку кода, вам не обязательно ждать выполнения всех предшествующих шагов. Используйте действие Start Debugging and Run to Here или Start Debugging and Run to Here Non-Stop, и Rider перенесет вас в нужное место, минуя точки останова.
Если вы хотите остановить исполнение на точке входа в программу, используйте действие Start Debugging and Step Over или Start Debugging and Step Into.
Действия доступны в Run | Debugging Actions
главного меню.
Обращаем ваше внимание, что эти действия доступны только при использовании .NET Project configuration / .NET Static Method.
Если вы знакомы с понятием «Private Source Link», то у нас есть для вас отличные новости: Rider 2020.3 обеспечивает полную поддержку частных серверов с исходным кодом — и в отладчике, и во встроенном декомпиляторе. Поддерживаются источники с GitHub, GitHub Enterprise, BitBucket и Azure DevOps (бывшего VSTS).
Вы можете сохранить данные учетной записи, чтобы в будущем упростить доступ к этим ресурсам.
Наш новый инструмент позволяет визуализировать зависимости проектов и исследовать архитектуру решения.
Открыть диаграмму зависимостей проектов можно через Tools | Architecture | Show Project Diagram
либо используя контекстное меню в Solution Explorer. Диаграмма отражает структуру вашего решения. Первоначально она покажет вам элементы верхнего уровня. Вы можете выбрать, какие проекты и папки решения вы хотели бы видеть. Также вы можете менять масштаб, включать табличный режим и добавлять заметки в качестве аннотаций к тем или иным проектам.
Используйте Ctrl+F в Windows или Cmd+F в macOS, чтобы найти нужные проекты.
Кнопка Show Neighbors of Selected Nodes на панели инструментов позволит отфильтровать диаграмму, оставив лишь выбранный проект, его прямые зависимости и зависимые от него проекты.
Если диаграмма получилась обширной, вы можете открыть окно File Structure (View | Tool Windows | Structure
) и легко перемещаться по ней, используя общий обзор диаграммы.
Нажав на иконку Enable Coupling Analysis на панели инструментов, вы сможете выполнить анализ связности проекта и обновить диаграмму. Толщина, цвет и стиль ссылок отражают то, насколько сильная связность наблюдается в проекте. Наведя указатель мыши на любую из ссылок, вы узнаете точное число использований. А если вы нажмете на ссылку, Rider соберет информацию о зависимом коде и отобразит ее в отдельном окне инструментов.
Также вы можете отобразить транзитивные зависимости. Rider покажет все прямые и непрямые зависимости вашего проекта.
Сохраните снэпшот диаграммы зависимостей проекта (через панель инструментов), чтобы иметь возможность сравнить его с текущим решением. С помощью меню Tools | Architecture | Compare With Saved...
вы можете загружать и исследовать сохраненные снэпшоты. Rider поможет вам, подсветив различия между диаграммами.
Подробнее о работе с диаграммами зависимостей проекта читайте в нашем блоге.
Вы также можете экспортировать диаграммы в виде изображений и включать их в документацию. Экспортировать диаграмму можно через панель инструментов.
Rider 2020.3 предоставляет улучшенную поддержку Unity. Обновления затронули анализ Burst, поддержку шейдеров, юнит-тестирование. Также мы внесли множество полезных исправлений.
Нажав на иконку рядом с любым методом, обозначенным атрибутом Unity [MenuItem]
, вы сможете запустить метод прямо из IDE.
Улучшения коснулись и умной поддержки шейдеров. Теперь, выполняя анализ кода, Rider может автоматически использовать определения из прагм, такие как shader_feature или target. В строке состояния появилась новая панель, указывающая, в каком контексте (по какому пути прохода) будет проанализирован шейдер.
Для анализа контекста Burst появился новый индикатор Code Vision, а также новые предупреждения на случай неправильного использования SharedStatic. Для быстрого добавления атрибута [BurstDiscard]
воспользуйтесь меню Alt+Enter.
Новые контекстные действия позволяют более детально контролировать анализ методов, для которых важна производительность (например, Update). Теперь вы можете указать Rider, чтобы он не считал метод часто используемым, не подсвечивал как ресурсоемкий и т. д. Также теперь вы можете задать новый контекст производительности, начиная с любого метода.
Что касается юнит-тестирование, то мы поддержали атрибут [Explicit]
и добавили новые возможности параметризации. Кроме того, теперь вы можете запускать тест-раны, содержащие как тесты в режиме редактирования, так и тесты в режиме игры.
Мы доработали интерфейс окна просмотра логов Unity. В частности, появилась возможность фильтровать записи на основании того, когда вы последний раз переключались в режим игры или перегружали AppDomain.
И, конечно же, мы исправили ряд имевшихся ошибок. В том числе, мы решили проблему с сообщением о бесконечном обновлении решения при отсутствии подключения к редактору Unity и добавили быстрое исправление, убирающее лишнее сообщение о событии. Также мы исправили неправильные C#-подсказки для player-проектов. Подробнее обо всех изменениях можно узнать здесь.
Rider для Unreal Engine доступен в рамках открытой превью-версии и будет выпущен в составе Rider в 2021 году. У вас есть возможность бесплатно оценить превью до выхода публичного релиза.
Мы добавили интеграцию с UnrealHeaderTool — теперь вы можете отслеживать проблемы, специфичные для Unreal Engine, прямо в редакторе кода. При работе с проектом Unreal Engine Rider будет автоматически запускать UnrealHeaderTool для файла, который вы редактируете, показывая ошибки и предупреждения.
Также появилась возможность анализировать поток управления для файлов шейдеров (HLSL). IDE предупредит вас о наличии недостижимого кода, неинициализированных переменных, избыточных веток условного оператора и других проблем. Такой же анализ доступен и в Rider 2020.3.
Мы добавили фильтры для Unreal Log. Теперь вы можете фильтровать лог по объему и категории, а также показывать либо скрывать временную метку. Также мы починили проблемы с зависанием интерфейса при накоплении большого количества сообщений в панели логов Unreal.
Плагин UnrealLink/RiderLink обеспечивает продвинутый уровень интеграции между JetBrains Rider и редактором для Unreal Engine от Epic Games. Теперь плагин доступен на JetBrains Marketplace. Вы можете установить его независимо от того, какая у вас сборка продукта.
Мы добавили поддержку нового синтаксиса интерполяции строк. Чтобы сделать строку интерполированной, отметьте ее значком $
. После этого добавьте заполнители в строковый литерал. Также для заполнителей поддерживается синтаксис «типизированных интерполяций» (%s
и %d
).
В Rider 2020.3 появилась поддержка ключевого слова nameof
, которое позволит вам конвертировать практически любой символ F# в соответствующее имя.
Кроме того, мы поддержали объявление open type
. С помощью него вы можете «открыть» любой тип и импортировать из него статический контент.
Теперь вы можете генерировать недостающие переопределения реализаций интерфейсов и типов, используя быстрые исправления и контекстные действия. Благодарим Мэтта за идею и исходную реализацию!
Для улучшения читаемости кода мы ввели новые подсказки с подсветкой синтаксиса. Большое спасибо Саулу за отличную реализацию.
Появились новые контекстные действия для аннотаций типов связывания let. За это также благодарим Мэтта.
Мы добавили возможность настраивать уровни значимости ошибок анализаторов, предоставленных с бэкенда ReSharper. Отмечаем, что большинство предупреждений и ошибок по-прежнему поступает от FCS.
Новые анализаторы и быстрые исправления:
Поддержка редактирования:
Появилось новое действие, позволяющее переименовывать файлы, учитывая имена модулей или типов.
Отладчик теперь умеет лучше следить за локальными переменными в асинхронных рабочих процессах.
Мы переработали начальный экран, сделав его более чистым и современным. Функциональность осталась той же, но теперь она лучше организована. Вы по-прежнему можете управлять проектами, открывать обучающие уроки по Rider, создавать новые решения, открывать существующие или импортировать проекты из VCS.
В Solution Explorer появился самый настоящий поиск! Он позволяет выполнять поиск по дереву решений (даже в свернутых узлах), проверяя файлы, папки, проекты, ссылки, анализаторы, импорты и пакеты, — предоставляя вам всевозможные результаты. Вы можете просматривать результаты по одному при помощи специального сочетания клавиш либо пользуясь иконками панели инструментов. Чтобы открыть поисковую строку, воспользуйтесь сочетанием клавиш Ctrl+F либо иконкой лупы на панели инструментов.
Теперь, если вы хотите открыть две вкладки для работы над проектом, вы можете перетаскивать вкладки и таким образом разбивать редактор горизонтально либо вертикально.
Мы добавили новое действие Open in Right Split для файлов (View | Open in Right Split
либо Shift+Enter). Оно позволяет открыть файл, разделив поле редактора вертикально. Выполнить действие можно из окна Explorer либо из любого другого навигационного окна (Recent Files, Search Everywhere, Navbar), предварительно выбрав нужный файл.
На вкладках, закрепленных в редакторе, теперь отображается специальный значок булавки. Кликните по нему, чтобы открепить вкладку. Вы также можете закреплять и откреплять вкладки, перетаскивая их на другие закрепленные и незакрепленные файлы. Если вы часто открываете много вкладок, будет удобно собирать все закрепленные вкладки в отдельный ряд. Чтобы включить эту функцию, перейдите в Preferences/Settings | Editor | General | Editor Tabs
и поставьте галочку напротив Show pinned tabs in a separate row
.
Мы реализовали подсветку синтаксиса в окнах подсказок — благодаря этому их стало проще читать и понимать.
Теперь, кликнув по файлу, вы можете увидеть его содержимое во вкладке предпросмотра. При открытии вкладки имя файла будет указано курсивом. Если вы начнете редактировать файл, вкладка превратится в обычную. Чтобы включить эту функцию, нажмите на значок шестеренки на панели Project и выберите опцию Enable Preview Tab.
Для пользователей macOS в тачбаре появилось новое действие Build.
Теперь вы можете добавлять файлы на стейджинг прямо из Rider. Нажмите на значок «+», чтобы добавить файлы в новый узел Staged в окне Commit. Также это можно делать через поля редактора или панель Diff. Чтобы включить эту функцию, зайдите в Preferences/Settings | Version Control | Git
и поставьте галочку напротив Enable staging. Подробнее об этой возможности читайте здесь.
В диалоге Search Everywhere появилась вкладка Git. Теперь здесь можно искать хэши, сообщения коммитов, теги и ветки.
Работать с ветками стало еще удобнее. Теперь Rider показывает все действия, доступные для выбранной ветки. Обращаем ваше внимание, что действия Merge into Current и Rebase Current onto Selected теперь называются Pull into Current Using Merge и Pull into Current Using Rebase соответственно.
Другие обновления для VCS:
Плагин для динамического анализа программ теперь доступен не только для Windows, но и для macOS и Linux. Вы можете использовать его для приложений на .NET Core 3.0 и выше.
Теперь, если вы отлаживаете код в привязке к запущенному процессу, плагин DPA позволит также проанализировать использование памяти.
Плагин Azure DevOps позволяет создавать новые серверные среды и импортировать существующие.
С помощью плагина dotCover вы можете выполнять анализ покрытия приложений .NET 5 для Windows, macOS и Linux.
Окно Unit Tests Coverage позволяет отфильтровать результаты по целевому фреймворку.
Вы можете разрешить dotCover подсвечивать код в редакторе — через настройки плагина либо во всплывающем окне «Configure highlighting level».
Также теперь вы можете указать IDE, какие проекты необходимо собирать при запуске сессии непрерывного тестирования. Таким образом вы можете ускорить их.
Профилировщик производительности теперь позволяет профилировать приложения .NET 5 для Windows, macOS и Linux.
Мы добавили в профилировщик производительности новый флейм-граф. Он представляет собой визуализацию дерева вызовов и позволяет быстрее находить медленно работающие методы.
В плагине dotTrace для Rider теперь есть возможность свернуть дерево вызовов (ранее она была доступна только в dotTrace Standalone). Вы можете сворачивать цепочки вызовов, не относящиеся к пользовательским модулям и сборкам — так вам будет проще анализировать дерево вызовов.
При использовании эмулятора хранилища Azurite теперь можно исследовать хранилище очереди. Вы можете просматривать содержимое сообщений, добавлять новые и т. д.
Мы добавили базовую поддержку запуска новой альфа-версии Azurite 3.9 с эмулятором табличного хранилища.
В Azure Functions проекты и конфигурации Run/Debug доступны в контекстном меню проекта — таким образом они всегда под рукой. Также мы обновили контекстные меню окна Azure Explore, сделав основные действия еще более доступными.
Мы улучшили интерфейс Markdown-редактора. Теперь вы можете настраивать формат Markdown через Preferences | Settings | Editor | Code Style | Markdown
. Кнопка Auto-Scroll Preview, расположенная в правом верхнем углу редактора, синхронизирует прокрутку редактора и панели предварительного просмотра. Кроме того, мы добавили поддержку Mermaid.js.
Встроенные подсказки довольно удобны, однако важно, чтобы они визуально не перегружали интерфейс. И мы придумали неплохой компромисс — механизм «Push-to-Hint».
В режиме Push-to-Hint встроенные подсказки по умолчанию не показываются. Просмотреть подсказку можно, удерживая клавишу Ctrl. Как только вы ее отпустите, подсказка исчезнет.
Перейдя в настройки, вы можете указать Rider, какие подсказки должны отображаться сами, какие — только по нажатию, а какие и вовсе можно скрыть. Используйте настройку «Visibility» для каждого вида подсказок.
Также появились подсказки для неявного приведения типов. Неявное приведение типов порой приводит к ухудшению производительности. Rider укажет вам на случаи неявного приведения типов в вашем коде.
Теперь вы можете задать шаблон для шапки файла (Preferences/Settings | Editor | File Header Template
). В нем вы можете указать информацию об авторских правах и компании, имя пользователя и т. д.
Мы поддержали долгожданную возможность определять и конфигурировать настройки форматирования на основе образцов кода в редакторе. Для этого выделите участок кода, нажмите Alt+Enter и выберите Format Selection / Configure либо Format Selection / Detect Formatting settings. В открывшемся окне появится список настроек, соответствующих данным строкам. Значения, которые отличаются от стандартных, будут подсвечены. Также вы можете просмотреть отличающиеся настройки при помощи опции «Only show changed values».
Подробнее об автоматическом определении правил форматирования читайте в нашем блоге.
Мы продолжаем добавлять новые гранулярные настройки движка форматирования. Вот что вошло в этот релиз:
Перейдя во вкладку Preferences/Settings | Editor | Code Style | C# | Syntax Style
, вы можете выбрать предпочитаемый стиль синтаксиса для стандартных значений: default
либо default(T)
.
Также мы обновили поддержку .editorconfig:
file_header_templates
, dotnet_sort_system_directives_first
и dotnet_separate_import_directive_groups
. Теперь, находясь в редакторе, вы можете корректировать отступы для текущей строки при помощи клавиши Tab
. Чтобы включить эту функцию, назначьте клавишу Tab действию Emacs Tab.
Как и полагается WPF-фреймворку, Rider умеет анализировать код и предлагает множество различных инспекций и быстрых исправлений — как для выделенного кода C#, так и для файлов .axaml
, содержащих “Possible ‘System.NullReferenceException’” и “Class/Property {...} is obsolete: Use {...}”.
Помимо обычных WPF-инспекций есть множество инспекций, специфичных для Avalonia, например, «Path to resource is case-sensitive». Инспекция «ColumnDefinitions tag can be converted to attribute» предлагает контекстное действие для атрибута ColumnDefinitions="*,Auto,*"
, позволяющее конвертировать его обратно в тег <Grid.ColumnDefinitions>
.
В Rider 2020.3 мы обновили поддержку синтаксиса связывания ($self
, $parent
, ^
и #
), а также улучшили проверку индексов в массиве $parent[]
.
Также предлагается расширенная поддержка CompiledBinding и расширения x:CompileBindings. В частности, Rider проследит, чтобы вы указывали для привязок DataType.
Для множества свойств Avalonia доступно быстрое исправление «Create from usage».
Поддержка XAML Avalonia теперь включает понимание системы стилей по типу CSS.
Ну и не забывайте про встроенные подсказки! Они всегда помогут разобраться в коде.
Возможности автодополнения и просмотра информации о параметрах доступны для всех ключевых слов XAML, а также для расширений разметки, свойств x:Name
, Style
, свойств Source
для StyleInclude
и др.
Вы можете легко переходить к скомпилированным типам связывания данных, типам элементов управления Avalonia и объявлениям x:Name
. Rider также позволяет переходить напрямую от XAML к декомпилированному внешнему коду, в том числе к свойствам сеттеров стилей и указанным пространствам имен xmlns.
С помощью действия Find usages вы теперь можете искать в коде связывание методов, использование атрибутов x:Name
, классов и сеттеров Style
, а также множества других свойств.
Рефакторинги Rename и Safe Delete теперь знакомы со множеством сценариев использования XAML-кода Avalonia и способны срабатывать точнее.
Теперь вам доступно наглядное представление иерархии и структуры XAML-кода Avalonia.
Мы продолжаем дополнять поддержку Blazor. В этой итерации мы поддержали параметры generic и вывод типов для них на основе использований, а также устранили задержки при открытии решений. Полный список исправлений можно посмотреть в нашем публичном баг-трекере.
Rider 2020.3 позволяет эффективнее работать с Tailwind CSS. Установите плагин Tailwind CSS через Preferences / Settings | Plugins
. Теперь IDE будет предлагать вам автодополнение для классов Tailwind, показывать ожидаемый CSS при наведении указателя мыши на код, а также помогать в работе с пользовательскими настройками файлов tailwind.config.js.
Реализовали не все React-компоненты? Наведите указатель мыши на нужное место, нажмите Alt+Enter и выберите Create class / function component — Rider создаст соответствующую конструкцию кода за вас.
Прочитайте статью Что нового в WebStorm, чтобы узнать обо всех улучшениях для веб-разработки, которые также присутствуют в Rider 2020.3.
Теперь вы можете запрашивать базы данных MongoDB при помощи SQL. Это стало возможным благодаря новому транслятору SQL в JavaScript.
Работают запросы SELECT и предложения JOIN, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT и OFFSET. Подробнее обо всем, что мы поддержали, читайте здесь.
Наша семья растет: мы поддержали Couchbase! Обращаем ваше внимание, что Rider работает с Couchbase Query, а не с Couchbase Analytics.
Теперь вы можете подключиться к базе данных Azure SQL через Active Directory.
Читайте статью Что нового в DataGrip, чтобы узнать обо всех улучшениях в работе с базами данных, которые также присутствуют в Rider 2020.3.
Используя меню Alt+Enter, вы теперь можете запускать юнит-тесты для определенных фреймворков прямо из редактора.
Экспортировать результаты запуска юнит-тестов можно из вкладки Unit Test Session.
Для тех, кто занимается настройкой iOS-проектов через файлы «information property list», мы добавили новый умный редактор для Info.plist в проектах Xamarin.iOS для любых платформ. Вам больше не понадобится обращаться к Xcode.
Settings | Appearance & Behavior | Appearance | Theme
и выберите опцию Enable the Sync with OS.