Как пользоваться rider jetbrains

Обновлено: 07.07.2024

Комплексное сравнение реализации возможностей Rider и VSCode.

Несколько лет назад я перешел с Atom на VSCode просто потому, что мне нравится его блочный и плоский интерфейс, но вскоре я обнаружил, что VSCode также обладает обширным количеством функций, но они хорошо спрятаны. Ладно, что побуждает меня рассматривать Rider именно сейчас?

Visual Studio Code почти что идеален — в нем практически нет недостатков. Несмотря на это, я не считаю целесообразным платить деньги только ради того, чтобы устранить некоторые раздражающие меня моменты, которые присущи практически всем текстовым редакторам с которыми я работал.

Rider, в свою очередь, не может похвастаться отсутствием раздражающих фич, однако он известен своим IDE «интеллектом» и глубокой интеграцией с Unity. На самом деле мне все равно. Я просто хочу улучшенный и более укомплектованный текстовый редактор, такой как VSCode, но с отсутствием некоторых недостатков. В этой статье я расскажу о том, как настроить Rider и как сделать так, чтобы он был похож на VSCode, дабы я мог наслаждаться как отсутствием раздражающих моментов, так и простым и понятным интерфейсом.

Структура Rider vs VSCode

❶ Преимущества и недостатки Rider по сравнению с VSCode.

❷ Как сделать Rider более похожим на VSCode (для любителей VSCode, которые хотят избавиться от некоторых неприятных моментов VSCode).

❸ Я буду стараться рассматривать мельчайшие детали, так как практически все текстовые редакторы очень похожи друг на друга. Разницу можно заметить лишь в маленьких деталях.

P.S. В статье рассматривается версия Rider 2019.3

Бесконечная лицензия
Первое, что вы подумаете, когда посетите их вебсайт: «Я не хочу платить за подписку на обычный текстовый редактор!» Ну, текстовый редактор — это один из главных инструментов программиста, и к тому же его трудно совершенствовать, поэтому вам, возможно, придется пересмотреть его ценность.

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

VSCodeVim vs IdeaVim

Я использую сочетания клавиш в Vim ежедневно, а у VSCodeVim есть с этим проблемы, которые не устранялись в течение нескольких лет:
• gd для перехода к определению обычно работает нормально, но обратное Control + O часто возвращает неправильное место или выдает ошибку диалогового окна.
• Плагин не рассматривает рефакторинг кода как шаг отмены, и, когда вы делаете что-то, связанное с рефакторингом, а потом делаете отмену, вы отменяете этот шаг плюс весь рефакторинг.
• Сниппеты кода с преобразованием переменных не работают, когда этот плагин включен.
• Макросъемка qq «слишком буквальна», а также она иногда не захватывает некоторые команды, что создает мне ряд неприятностей. Кроме того, она довольно медленно работает, если команда длинная.
Я не так хорошо знаю об IdeaVim, но, кажется, у него нет ни одной из вышеупомянутых проблем. Однако:
• == или = i ( для форматирования кода в IdeaVim не работает, в то время как оно работает в VSCodeVim.
• gc для комментирования в визуальном режиме не реализовано, но оно присутствует в VSCodeVim. В IdeaVim надо прибегать к Cmd + / .
Короче, в любой из эмуляций Vim всегда чего-то не хватает.

Я понимаю, что я не вправе осуждать VSCodeVim за наличие багов как минимум потому, что это проект с открытым исходным кодом, доступным на GitHub. Если я не вношу свой вклад в разработку, то я не имею права требовать от него чего-либо. Однако верно и то, что у меня может не быть времени на разработку VSCodeVim, и, в таком случае, IdeaVim — это неплохое решение, поддерживаемое коммерческой компанией, на которое я мог бы потратить деньги вместо времени. Я также полагаю, что деньги могут замотивировать вас и заставить делать продукт более изысканным.

IdeaVim быстрый!

Только за скорость уже можно платить деньги. Например, в VSCode, при выключении VSCodeVim, даже простая команда перемещения по линии работает медленнее, чем когда вы нажимаете на стрелку вниз с выключенным плагином. Это очевидно в команде, которая перескакивает через дистанцию, как Shift +] .
Есть такое ощущение, что VSCodeVim проходит через «что-то», прежде чем начинать двигаться. Может быть, вы этого не почувствуете, но я любитель музыкальных игр, а также разработчик игр. Я могу заметить разницу в реагировании. При использовании реального Vim, такого как в Terminal или MacVim, ощущение отзывчивости очень схоже на реагирование в Rider, но не в VSCodeVim.

Omnisharp vs ReSharp

В целом Omnisharp работает нормально, в том числе когда дело касается переименования переменных во всем проекте, что, лично для меня, важно. Благодаря Omnisharp я могу не тратить много времени на название переменной, а просто придумывать его на ходу, а потом, если нужно будет, я могу его(название) легко изменить. Однако в некоторых ситуациях это не работает. Например, если эта переменная в лямбда-методе не завершается автоматически, в отличие от простой лямбды. Этот шаблон важен в библиотеке ECS Unity.

[Плагин] Как использовать JetBrains Rider для лучшей разработки программ Unity

1. Введение

Во-вторых, установить и взломать

Ссылка для скачивания:

PS: Вы можете напрямую установить следующий пакет на официальном сайте, а затем взломать следующий пакет.

Взломать метод:

Под виндой


  1. После завершения установки не запускайте
  2. Войдите в каталог Bin и добавьте абзац после файла .vmoptions: «-javaagent: path / JetbrainsCrack-2.7.jar»

    Этот путь является абсолютным местоположением пакета кряков JetbrainsCrack-2.7.jar
  3. Откройте программное обеспечение, выберите «Не импортировать настройки» и нажмите «ОК».
  4. Нажмите Активировать, выберите Код активации и введите код регистрации ниже.


Тогда вы обнаружите, что активация прошла успешно до 2099 года.

Трещина прошла успешно

Под линуксом

Настройки шрифта




Настройки интерфейса












3. Введение


Единство начинается легко

Редактор управления Unity

Благодаря встроенной двусторонней связи вы можете входить и выходить из режима Play, приостанавливать и выполнять покадрово, не покидая Rider! Панель инструментов содержит кнопки просмотра игры Play, Pause и Step, которые соответствуют тем же кнопкам в редакторе Unity соответственно Кнопки в управлении одинаковы. Маленький значок Unity в строке состояния покажет, подключен ли редактор Unity, обновляется или находится в режиме воспроизведения. Любые изменения, когда Rider находится в режиме редактирования, будут немедленно отправлены в Unity Editor.

Запустите тесты Unity


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

Логи консоли Unity

Подсказка по коду

Например: Rider предупредит вас не использовать неэффективные сравнения атрибутов строк и тегов и предоставит быстрое решение переписать его для вызова CompareTag.


Аналогично, если вы попытаетесь использовать new в качестве ключевого слова для создания нового экземпляра производного класса MonoBehaviour или ScriptableObject, Rider выдаст предупреждение. Просто нажмите Alt + Enter, и Rider может решить эту проблему для вас.

Простая отладка Unity


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

Поддержка шейдеров


Rider также добавил поддержку файлов .shader, предоставляя такие функции, как подсветка синтаксиса, свертывание кода и сопоставление скобок. Выделите синтаксическую ошибку детали ShaderLab, добавьте todo (комментарий к списку дел) в To Do Explorer (обозреватель задач), выделите атрибут color и предоставьте перо для выбора цвета для редактирования. Во всем файле (включая блоки Cg / HLSL) можно использовать простое завершение слов.

Просмотр документации Unity

Райдер отображает внешнюю документацию символов Unity. Вы можете щелкнуть значок (Ctrl + Shift + F1, если используется сопоставление клавиатуры Visual Studio) во всплывающем окне «Быстрая документация» или напрямую использовать операцию «Просмотр внешней документации» (Shift + F1), чтобы просмотреть локальную Установленная документация или документация, размещенная в Unity (если не доступна локально).

черты

  1. Анализ кода и быстрые исправления
    Rider обеспечивает более 2500 активных проверок кода и более 1000 автоматических быстрых исправлений для решения обнаруженных проблем по отдельности или в пакетном режиме. Анализ ошибок всего решения будет отслеживать проблемы с кодом и сообщать о любых возможных ошибках, даже неоткрытых файлах.
  2. Кодовая навигация
    Вы можете быстро перейти к любому файлу, типу или элементу в базе кода, а также найти настройки и операции. Найти назначение любого символа или перейти от символа к базовому или производному символу, методу расширения или реализации.
  3. реконструкция
    Rider обеспечивает более 50 глобальных автоматических рефакторингов, а также предоставляет более 450 небольших контекстных операций для локального преобразования кода. Переименовывайте, извлекайте методы, интерфейсы и классы, перемещайте и копируйте типы, используйте альтернативный синтаксис и многое другое!
  4. Больше контента
    также обеспечивает поддержку модульного тестирования, очистку кода, интегрированный контроль версий, локальную историю, сохраненную между отправленными кодами, поддержку NuGet, инструменты базы данных и т. д. Вы можете легко расширить Rider с помощью поддержки Markdown для таких плагинов, как привязка клавиатуры VIM.

Четыре, использовать

Меню редактора Rider: Run → «Присоединить к локальному процессу» Затем выберите текущий запущенный процесс Unity.

Run → “EditConfigurations” → Add new “Mono remote” configuration to seteverything manually.



Это все еще очень удобно.

На прошлой неделе, после релизов версии 2020.1, для всех наших десктопных продуктов случилось еще одно большое событие — мы открыли публичный доступ к пробной версии Rider for Unreal Engine. На данный момент это отдельный продукт, версия нашей среды для разработки Rider, но с поддержкой C++ и Unreal Engine.

Rider for Unreal Engine

Так, стоп! Среда разработки на C++. Еще одна?! Давайте разбираться по порядку.

Начнем с небольшой истории. Несколько лет назад мы собрали всех, кто в JetBrains делает инструменты для C++, чтобы обсудить, насколько пользователям тяжело ориентироваться в многообразии наших предложений. Ведь есть и CLion, и ReSharper C++, и поддержка для C++ в AppCode. Через несколько часов обсуждений пришли к таким выводам:

  • Хотя универсальный инструмент и выглядит заманчиво, при расширении таргетинга, увеличении количества интегрированных сторонних инструментов, поддерживаемых случаев использования становится очень сложно искать баланс между удобством, интуитивностью интерфейса и обилием возможностей.
  • Мир разработки ПО уже давно не имеет четких границ по языкам разработки. Многие проекты мультиязыковые. Важнее — область применения ПО и технологии, которые в ней используются.

Заходя ко многим нашим пользователям из области разработки игр, мы заметили, что у многих студий нет четкого разделения — делать игры только на Unity или только на Unreal Engine. Сегодня у них игра на одной технологии, а завтра — на другой, или одна команда использует Unreal Engine, а другая Unity или вообще свой кастомный движок. При этом понятно, что разработчикам и компаниям в целом очень не нравится “прыгать” между разными средами разработки. И вот тут-то мы и решили, что, если мы смогли сделать Rider успешным для Unity, то мы можем пойти дальше и сделать его успешным в целом для мира игровой разработки. Так родилась идея Rider как универсальной среды разработки для Game Dev.

Из чего состоит Rider for Unreal Engine

Дальнейшее развитие событий довольно очевидно для тех, кто знаком с технологией, на которой построен Rider. Rider состоит из front-end части на базе платформы IntelliJ и back-end части на базе ReSharper. Все языковая поддержка работает на back-end. Поэтому мы просто подключили уже имеющуюся в ReSharper C++ поддержку C++ и Unreal Engine к Rider по той же технологии. Из специфичного пришлось дополнительно реализовать:

  • Плагин для выбора Rider как среды разработки в Unreal Editor (Rider Source Code Access) для версий движка 4.22-4.24. Начиная с версии 4.25 эта функциональность уже будет включена в сам движок UE. UnrealLink для Rider и RiderLink для Unreal Editor, которые обеспечивают интеграцию с Blueprints в Rider и в целом отвечают за коммуникацию между Rider и Unreal Editor.
  • Отладчик.

Отладчик на основе LLDB

Значительная часть разработки игр происходит сейчас на платформе Windows и в рамках тулчейна от Microsoft. Если посмотреть на то, какие инструменты для отладки существуют для кода, который скомпилирован с помощью компилятора Microsoft Visual C++, то мы увидим:

  1. В своих собственных инструментах Microsoft использует инструменты отладки на основе vsdebugeng.dll. Лицензия не позволяет использовать эти инструменты в сторонних средах разработки.
  2. CDB и WinDbg используют dbgeng.dll. И именно этот вариант мы изначально пробовали для написания своего отладчика для MS стека. Но столкнулись с плохой производительностью на больших бинарных файлах с большим количеством файлов символов (.pdb), и, что еще более важно, с частым аварийным завершением приложения.
  3. Существовали также наработки в LLVM-сообществе по поддержке отладки для тулчейна Visual Studio с помощью LLDB. Ими мы и воспользовались, и буквально года за полтора написали первую версию в общем-то работающего отладчика. Он включает начальную и еще пока сырую поддержку формата NatVis (такие MS-специфичные pretty printers). При этом сейчас Rider for Unreal Engine сам находит NatVis-ы в проекте на Unreal Engine и подгружает их отладчику. Этот же отладчик мы сейчас используем в CLion для тулчейна Visual Studio (он включен по умолчанию в этом случае начиная с версии 2020.1).

Поддержка C++

Повторю — вся функциональность языковой поддержки из ReSharper C++ теперь доступна в Rider for Unreal Engine Preview. Она включает:

В этом году мы начали работать над поддержкой языка для написания шейдеров HLSL в ReSharper C++, и она сразу попала и в раннее превью Rider for Unreal Engine. Поддержка включает в себя подсветку синтаксиса, тултипы с документацией, подсказки имен параметров и типов, действия навигации, автодополнение, поддержка виртуальных путей файлов, и даже рефакторинги.

И наконец, если говорить о поддержке языковых диалектов, Rider for Unreal Engine понимает диалекты файлов .uproject/.uplugin, предоставляя опции автодополнения и тултипов документации.

uproject dialect

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

Файлы Blueprints представляют собой данные в бинарном формате, редактирование которых происходит как правило в визуальном редакторе внутри Unreal Editor. Объекты в этих файлах наследуются от классов на C++, переопределяют проперти из C++ части игры. И вот тут Rider for Unreal Engine является той уникальной средой разработки, которая зачитывает все необходимые файлы Blueprints и показывает эти связи в редакторе кода на C++:

BP derived classes

При этом, если поменять, например, значение свойства в редакторе Unreal Engine и сохранить asset, то значение тут же автоматически обновится и в Rider (у нас повешены watchers на изменение asset-файлов):

BP properties

Без сохранения файлов, мы надеемся, это тоже скоро заработает (подготовка к этому сейчас ведется в плагине UnrealLink).

Вызов поиска использований (Find usages) включает не только использования в коде на C++, но и в файлах Blueprints. Двойной клик по таким использованиям открывает Unreal Editor.

Понимание механизма рефлексии UE4

Рефлексия в Unreal Engine реализована с помощью специальных макросов (UCLASS, UFUNCTION, UPROPERTY и др). Rider знает, что параметры таких макросов — это не просто текст. Парсер языка C++ в ReSharper C++ и Rider умеет действительно “понимать” значение этих макросов, даже не запуская Unreal Header Build tool (то есть еще до того, как реально сгенерируется содержимое файлов .generated.h).

Возвращаясь к механизму рефлексии, стоит сказать, что спецификаторы рефлексии — это в ReSharper C++ и Rider тоже не просто текст. Для них есть автодополнение и подсказки документации:

Reflection doc

Подсказки документации доступны и для самих макросов рефлексии.

А еще анализатор кода проверяет использование макросов рефлексии и указывает на связанные с этим ошибки. Например:

  • Классы UCLASS должны быть публично унаследованы от UObject или любого его класса наследника. При этом такой родитель должнен быть ровно один.
  • Спецификаторы UCLASS должны быть использованы для классов, USTRUCT – для структур.
  • Классы UE4 не могут быть объявлены внутри других классов.
  • Объекты, сохраненные в полях, не отмеченных UPROPERTY, могут быть собраны сборщиком мусора в любое время.

Поддержка вызовов удаленных процедур (RPC) в действиях навигации и генерации кода

Если рассматривать вызовы удаленных процедур с точки зрения обычного парсера C++, то довольно быстро можно заметить неосведомленность парсера о том, что объявлению функции может соответствовать несколько имлементаций с отличающимися именами (например, суффиксами _Validate и _Implementation ). В ReSharper C++/Rider мы обучили парсер идентифицировать RPC по спецификаторам Client , Server и NetMulticast в параметрах макроса UFUNCTION . Благодаря этому:

RPC generation

  • В навигации предлагаются все необходимые варианты имплементации функции.
  • Генерация кода умеет создавать функции с суффиксами _Validate и _Implementation или только те из них, которые отсутствуют:
  • Рефакторинги кода Rename и Change Signature обновят все необходимые функции и тем самым сохранят ваш код в корректном состоянии.

Знание правил именования Unreal Engine 4

ReSharper C++ и Rider осведомлены об официальных правилах именования в коде Unreal Engine. Эти правила используются средой разработки во всех действиях по работе с кодом, вроде генерации getters и setters или рефакторинге добавления переменной (Introduce Variable). А главное, что существует проверка кода Inconsistent UE4 naming inspections и соответствующее быстрое исправление, которое вызовет рефакторинг Rename и переименует все использования имени, не соответствующего правилам.

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

Мы довольно давно делаем поддержку разработки на Unreal Engine в ReSharper C++ и, конечно, видим, что производительность редактора является основной жалобой. Rider в силу особенностей архитектуры избавлен от многих проблем с производительностью, которые присутствуют в ReSharper (там они есть отчасти из-за ограничений студии на 32-разрядные процессы, в рамках которых происходит работа ReSharper, но не только).

Помимо этого, мы специально настраиваем работу IDE для улучшения производительности на Unreal Engine. Мы сначала индексируем код пользовательской игры, мгновенно включая все умные действия редактора на пользовательском коде. А индексация уже кода самого движка происходит после этого в фоне. Есть и еще несколько дополнительных опций по управлению индексацией:

Performance options

В результате, те, кто уже начал пользоваться Rider for Unreal Engine, отзываются о производительности редактора очень положительно! А мы уверены, что можем сделать еще лучше.

Видеодемо и еще раз о том, как получить доступ

Эти и многие другие возможности можно посмотреть в действии в демо-ролике (на английском) от нашего девелопер-адвоката:

Для перехода к нужному методу, атрибуту или полю открытого файла можно использовать кнопку Navigate to Member. Сузить область поиска можно вводом искомого текста.

Всплывающее контекстное меню, отображаемое по нажатию сочетания Alt+Enter

Сочетание Alt+Enter открывает контекстное меню действий для конкретного участка кода, включая исправление ошибок, предлагаемых алгоритмами Rider на основе анализа кода. Например, если нажать сочетание Alt+Enter при курсоре над именем класса, то в меню появится список действий, включая исправление стандартов наименования или открытие общего доступа к классу.

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

Во всплывающем контекстном меню также отображаются точки перехода практически к любой функции Rider. Если вы не можете вспомнить нужное вам сочетание клавиш, то нажмите Alt+Enter, начните вводить название функции, и получите список соответствующих действий.

Функция Refactor This поможет вам провести рефакторинг кода, переместить его в другой файл, переименовать символы как в открытом, так и в других файлах.

Кроме того, меню Alt+Enter можно использовать для генерации функций событий. Это действие доступно для любого класса Unity. Вы получите список всех функций событий, которые доступны для создания в этом конкретном классе.

Rider распознает функцию события, сериализованное поле или класс MonoBehaviour, выделяя их в тексте. Если навести курсор на функцию события, то появится подсказка с описанием этой функции. Введите текст «quick documentation», чтобы получить дополнительную информацию во всплывающем окне, или перейдите по ссылке к полной версии документации.

Меню Navigate to очень полезно для быстрого перемещения по коду Unity, например, к основным или производным классам, а также к примерам использования. Функция также позволяет декомпилировать код Unity на лету, демонстрируя то, что происходит в собственных API Unity.

Отладчик Rider

The Rider debugger shows extra data for Unity objects. For example, when looking at a Scene in the debugger, you see a list of root GameObjects, and each GameObject shows child GameObjects and attached components. ECS Entity objects also show component data.

Rider includes a code-focused profiler that looks at just your scripts; it doesn't look at any of the other things that are happening inside Unity itself. You can quickly search for types and methods and perform what-if analysis to see if it’s worth optimizing a method.

переключатель схем

Переключатель схем позволяет выбирать тему оформления Rider и цветовой гаммы интерфейса.

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

моя проблема в том, что я просто не могу запустить свой проект, у меня установлен Mono, и я дал ему путь к IDE, но он все еще говорит "нет проектов для запуска".

Мне нужно что-то в стороне Mono? Или что бы вы посоветовали мне проверить?

создать новый проект:

New project

My file

нажмите Ctrl + F5, и вы увидите это окно:

Configuration

теперь просто нажмите на кнопку выполнить. В следующий раз, когда вам нужно построить его, вы не увидите параметры конфигурации, но он все равно будет запускать проект. :)

Это решено в комментариях, создайте консольное приложение вместо пустого решения, или если проблема уже произошла, Вы должны перейти к свойствам проекта и выбрать свой язык.

Это произошло со мной только что, исходя из нового углового проекта dotnet.

то, что я сделал, чтобы решить это щелкнуть правой кнопкой мыши решение и добавить в существующий проект.

add existing project

У меня была точно такая же проблема, и я думаю, что понял это (без необходимости воссоздавать проект с нуля).

список перед "Project:" пуст, когда нет запускаемого проекта. Например, "библиотека классов"не может быть запущена. Просто выберите один из проектов вашего решения (в вашем случае есть только один), щелкните правой кнопкой мыши, затем "Свойства", а перед "тип вывода:" (где вы должны увидеть "библиотеку классов") просто выберите " консоль приложение."

теперь вы должны увидеть его в окне, появляющемся при нажатии на кнопку "Редактировать конфигурации".

Читайте также: