Rider программа для программирования
- Visual Studio
- Project Rider
- Eclipse
- Visual Studio Code
- MonoDevelop
- Code::Blocks
Преимущества и недостатки Visual Studio, Project Rider, Eclipse
В число преимуществ Visual Studio входит следующее:
У продукта есть и некоторые недостатки:
- Требовательность к ресурсам.
- После перехода на платную версии, могут слететь настройки и корпоративный сервер.
- Сложность при самостоятельном освоении.
В число ее преимуществ входит следующее:
К недостаткам относят следующие свойства:
- Некоторая часть функционала еще в процессе разработке, поэтому продукт содержит в себе ошибки и баги.
- Высокая стоимость. Цена за использование платформы — 139 USD в год. При этом есть trial-версия и скидки для студентов.
К минусам платформы относят следующие особенности:
- Высокая сложность освоения для начинающих.
- Плагин разработан сообществом. Следовательно, нет никаких гарантий, что он всегда будет работать качественно.
Преимущества и недостатки Visual Studio Code, MonoDevelop, Code::Blocks
Visual Studio Code — отличный высокопроизводительный легковесный редактор, предлагающий хорошую поддержку завершения проекта. Работает на Node JS. Содержит плагины для VIM и Emacs.
В число его плюсов входит следующее:
У продукта есть и определенные недостатки:
- Минималистичный, поэтому сложен для восприятия некоторыми разработчиками.
- Обладает небольшим функционалом, поэтому не подходит для реализации больших проектов.
JetBrains Rider и Visual Studio
JetBrains Rider и Visual Studio
Обе эти IDE зарекомендовали себя, как полноценные средства разработки приложений и написания кода. Но у всего есть свои "плюсы" и "минусы", что уж говорить про такие сложные инструменты как JetBrains Rider и Visual Studio. Не хотелось вдаваться в подробности, но в этой статье я бы хотел остановиться на такой теме как "что мне не хватает в JetBrains Rider по стравнению с Visual Studio". Я с Visual Studio работаю уже давно более 15 лет. А Rider мне по подписке JetBrains "подарили" недавно (Rider был включен в подписку ReSharper). И всем хорош Rider, но как выяснилось кроме плюсов, которые в нем действительно имеются, есть в нем еще и то, чего мне как разработчику с большим опытом, очень сильно не достает.
Что не хватает в Rider
1. Работа с шаблонами для проектов
Речь идет о возможности сохранить проект как шаблонный. Очень помогает при создании "Шаблон микросервисов"
2. Утилиты для работы с Microsoft SQL Server
Сравнение схем DB и данных в разных SQL серверах — очень поленный инструмент. А в некоторых моментах попросту незаменим.
3. Live unit-тестирование — отличный и очень удобный инструмент, который позволяет создавать Unit-тесты очень быстро. Live unit-тестирование держит систему "горячей", то есть тесты прогоняются в реальном времени, что очень удобно.
4. Очень привык я к Package Management Console, которой также нет в Rider
5. Специальная вставка, для объектов типа JSON и XML, которая автоматически превращает в CSharp-классы.
Заключение
Но надо сказать, что Rider достаточно привлекательная среда разработки. Мне понравилась интеграция с TFS, а так же GIT.
- Топ
- Облако меток
- О блоге
- Обратная связь
- Обо мне
- Политика конфиденциальности
- Мой Youtube
2005-2021 © Calabonga SOFT
Все права защищены по лицензии Creative Commons BY-NC-SA
При использовании материалов сайта ссылка на ресурс обязательна! v.5.1.50
6 причин, почему JetBrains Rider лучше чем Visual Studio
На данный момент у все большего количества программистов, возникает желание, по тем или иным причинам, найти альтернативу Microsoft Visual Studio. И чаще всего, их выбор падает на программное обеспечение Rider от компании JetBrains. Почему команды разработчиков переключаются с Visual Studio на Rider, каковы его преимущества? Мы подготовили шесть причин почему Rider лучше чем Visual Studio ознакомившись с которыми, вы можете принять решение о переходе на JetBrains Rider.
1) Первое, Rider в отличии от Visual Studio(VS), не зациклился на 32-битных процессах. Даже если у Rider есть процессы, доступные только для back-end, например, SWEA (Solution-Wide Analysis), создание кода будет проходить гладко без каких либо пауз или сбоев. И как отмечает большинство пользователей работавших с Visual Studio и Rider, последний работает гораздо стабильней и быстрее чем VS.
2) JetBrains Rider является кроссплатформенным, он может работать на платформах Windows, Mac или Linux с одинаковой функциональностью и стабильностью. Visual Studio работает преимущественно на платформе Windows. И если есть необходимость перейти на Linux или Mac, то необходимо будет приобретать дополнительные решения: Visual Studio Code (для Linux) и Visual Studio для Mac. Главным недостатком является то что версии Visual Studio для Mac и Linux имеют разный функционал и внешний вид к которому придётся привыкать. Rider, как внешне так и по своим функциям, одинаков на всех платформах, поэтому, если пользователь решит переключиться с Windows на Mac или Linux, он получит уже привычную среду разработки и не будет тратить драгоценное время на обучение.
4) Стоит также упомянуть о том с какими инструментами от JetBrains ранее работали пользователи. Те из них кто не по наслышке знаком с IntelliJ IDEA, WebStorm, DataGrip или другими средами гораздо быстрее перейдут на Rider чем пользователи, работавшие только с Visual Studio.
5) У Rider есть огромное количество функций, унаследованных от платформы IntelliJ:
Поддержка систем контроля версий: помимо Git и Mercurial, Rider работает с CVS и Subversion. Интеграция VSTS доступна через специальный плагин, поддерживаемый компанией Microsoft.
Rider (с помошью DataGrip) поддерживает подключение к базам данных и SQL. Пользователям Visual Studio в большинстве случаев нужно будет использовать ODBC.
Поддержка возможностей для front-end разработки с использованием JavaScript, TypeScript, CSS, HTML, LESS, Sass и т. д. Доступна в Rider благодаря тому, что продукт включает в своем составе, функции специализированного ПО для веб-разработки – JetBrains WebStorm.
В среде разработки Rider также присутствует возможность интеграции со многими трекерами проблем, такими как Team Foundation Server и Visual Studio Team Services. Также он поддерживает JIRA Software, YouTrack и другие решения, а также большое количество высококачественных специализированных плагинов, разработанных для IntelliJ и ReSharper, большинство их которых бесплатные. Visual Studio тоже поддерживает различные плагины, но бесплатными из них являются еденицы.
6) И наконец, последнее преимущество: решения и проекты, с которыми работает JetBrains Rider, полностью совместимы с Visual Studio, и не используют проприетарные форматы. Стоит ли перейти на использование Rider на постоянной основе? Конечно! Но окончательный выбор, всегда остается за вами.
Rider 2022.1 includes full Unreal Engine support, which converts Rider into a full-fledged IDE for game development, no matter what game engine you use.
In v2022.1, Rider also supports a Beta version of the long-awaited remote development workflow. It allows you to connect to a remote machine running Rider’s backend from anywhere in the world.
In addition to these new features, this release also brings Docker Fast mode, updates to the main toolbar, and full-text search throughout the solution right from the Search Everywhere pop-up.
Free 30-day trial available
Game development with Unreal Engine
Rider is already widely used in the Unity development world, and it now comes bundled with Unreal Engine support. This makes Rider our main IDE for game developers of all sorts.
Deeply integrated with Unreal Engine
Rider is ready for Unreal Engine development on all three major platforms: Windows, Linux, and macOS. It works natively with the .uproject model, saving you time on intermediate project model generation.
The UnrealLink plugin enables advanced integration between Rider and Epic Games’ Unreal Editor. The plugin:
- Brings Blueprints information to the editor.
- Adds settings for managing game launch.
- Provides a more convenient version of the Unreal Editor log.
First-class C++ support
Rider is powered by ReSharper C++, which offers cutting-edge native support for modern C++. Benefit from its 1300+ code inspections, 290+ quick-fixes, solution-wide refactorings, and code generation abilities. Whether you’re working with the C++ code of your game, Unreal Engine code, or shaders, Rider helps you instantly navigate through it and explains it with inlay hints.
Unreal Engine reflection mechanism
Unreal Engine reflection macros and reflection specifiers are more than plain-text substitutions for Rider. Autocompletion and quick documentation are knowledgeable about these entities and help you code effectively. Similarly, Unreal Engine remote procedure calls are more than regular functions, and Rider matches them during code navigation and code generation.
Code analysis tuned for Unreal Engine
Rider is integrated with UnrealHeaderTool and shows the same errors and warnings that you would normally see at compile time right in the editor while you are editing your code. The process has been optimized to have minimal impact on overall performance.
Rider detects Unreal Engine projects and automatically uses the Unreal Engine naming convention rules when generating and analyzing code in these projects.
Debugger
The LLDB-based debugger with Unreal Engine Natvis support helps you dig up any issues in your game’s code or in the engine. You can set line, symbol, data, and conditional breakpoints. You can also step through the code, evaluate expressions, and even see the variable values right in the Rider editor during the debug session.
Unit Testing
Rider comes with out-of-the-box support for the Unreal Engine Automation Testing framework. Launch tests from the Unit Test tool window or directly from the editor, review their results, and rerun failed, all, or specific tests.
You can use Rider for general C++ development on Windows – just open an .sln file as a project in Rider. On Linux and macOS, Rider is limited to the .uproject model for C++ projects. If you are interested in how Rider, CLion, and ReSharper C++ differ regarding general C++ and Unreal Engine development, please take a look at our FAQ.
Remote development Beta
Rider now supports a Beta version of our remote development workflow. It allows you to connect to a remote machine running Rider’s backend from anywhere in the world. All the processing happens on that powerful remote machine, and you can work on your project as seamlessly as if it were on your local machine. This functionality can be initiated from Rider’s Welcome screen or from a new application called JetBrains Gateway, which is available in the Toolbox App.
What’s more, you can create, prebuild, share, reproduce, hibernate, and manage dev environments with JetBrains Space – a unified platform for the entire software development pipeline. Check out this blog post for more details.
Toolbar
Customize the new toolbar
The new main toolbar looks incredible, and people love it. But there was no way to add custom widgets or rearrange existing ones, which many have complained about. You asked, and we delivered! You can now add new elements to both the left and right sides of the toolbar, as well as rearrange and remove widgets.
There are two ways to open the toolbar customization page:
- Preferences/Settings | Appearance & Behavior | Menus and Toolbars | Toolbar
- Right-click on the toolbar and select Customize Toolbar.
Profile from the new toolbar
If you use the new main toolbar, which we released in Rider 2021.3, you have probably noticed that there is no way to start profiling with dotTrace right away. In this release, we addressed that inconvenience.
The Profile with Timeline, Profile with. , and Profile running process. options are now available in the Run/Debug widget’s More menu (the ‘kebab’ icon).
Docker Fast Mode
Fast mode has come to Docker and Docker-Compose solutions, which should significantly reduce build times during development!
Building your projects within a container can be significantly slower than building the same project on your local machine. With Fast mode enabled, Rider will first create the base stage of your Docker image using docker build , but then it will build the project on your host machine, which is significantly faster. Finally, the project artifacts are mounted to the Docker container as a volume. This mode is for Debug configurations only, and projects built under Release will be built using the steps found in your Dockerfile .
You can disable the Fast mode for any particular run configuration via Edit Run Configuration | Build | Modify options | Don’t use Docker fast debug.
Search text in Search Everywhere
Search Everywhere is the main entry point when you are looking for something in your solution, IDE settings, or Git history. Starting from Rider 2022.1, we’ve added the new Text tab, which shows all text occurrences in the solution that match the string while you are typing it. It runs full-text search through all code and text files, including .cs , .fs , .cshtml , .json , .js , .css , .editorconfig , .cvs , .dockerfile , .md , and .txt files.
As usual, all these results appear on the All tab as well.
However, you can narrow the scope of files where you want to run this search:
- By search area: All places, Recently viewed files, Local changes, or Data sources.
- By file type, with a predefined list of values or with manually specified file masks.
This text search in Search Everywhere does not affect the existing Find in Files feature. You can use both of them.
New Notifications tool window
We’ve replaced the Event Log instanсe with a new Notifications tool window to more clearly highlight important and helpful notifications from the IDE. With this update, we aim to make notifications more visible and keep them better organized in a dedicated tool window that you can access from the navigation bar.
All notifications that appear in the Notifications tool window are sorted into two types: Suggestions and Timeline.
The Suggestions section presents notifications that are considered useful or helpful in most use cases. Additionally, Suggestions can be important or regular. If you get an important one, you’ll see a red circle on the bell icon on the navigation bar. Regular suggestions are indicated by a blue circle on the bell icon.
Zoom indicator
In the past, it was difficult to determine whether the content in the text editor was zoomed in or out. There was no visible indicator that explicitly showed the current zoom status.
In this release, we’ve introduced the Zoom widget, which appears at the bottom of the current text editor. It shows you the actual font size of the editor and helps you reset it to the default.
From this widget, you can navigate directly to Preferences/Settings, where you can adjust whether zooming should affect all editors or only the active one.
Visual Studio 2022 keymap
We’ve added a new Visual Studio 2022 keymap that resolves all shortcut differences between the current Visual Studio keymap and that of the Visual Studio IDE (e.g. Alt + Up / Down ) in favor of the latter’s shortcuts. We recommend it for those who are accustomed to Visual Studio versions earlier than 2022 without ReSharper.
JetBrains Rider позволяет программистам создавать обширный спектр программ, включая настольные приложения, сервисы и библиотеки, игры, мобильные приложения и веб-приложения. Особенно среда придется по душе тем, кто уже работал с ReSharper в Visual Studio или использовал другие IDE от JetBrains. Ну а тем, кто не знаком с указанными выше инструментами, стоит рассмотреть этот шанс изменить способ работы с кодом навсегда.
Функционал JetBrains Rider
Функциональные возможности программы впечатляют:
Когда пользователь впервые открывает редактор, простой мастер сопровождает его через несколько этапов базовых настроек. После установки и настройки JetBrains Rider отображает экран приветствия. Последний позволяет перейти сразу к созданию нового проекта, открыть уже существующий, а также настроить Version Control. Панель инструментов главного окна не выводит много команд, но самые незаменимые из них расположены всегда под рукой.
Программа может помочь сконцентрироваться на нетривиальных задачах, предоставив шаблоны для создания простейших частей кода автоматически.
Особенности JetBrains Rider
Программа несет в себе ряд отличительных характеристик:
- Работа с большинством типов проектов NET.
- Обширный набор разнообразных функций.
- Быстрота реагирования в текущем времени.
- Поддержка широкого спектра плагинов.
Приложение работает со всеми современными 64-разрядными сборками ОС Windows. Пробная версия JetBrains Rider доступна для свободного использования в течение 30 дней.
You can also try interactive tutorials, available in Help | Tutorials .
This topic will help you quickly get started with JetBrains Rider, and get familiar with its most frequently used features.
The first step
JetBrains Rider is a keyboard-centric product. Most of its actions have default keyboard shortcuts and if necessary, you can assign a custom shortcut to any of its commands.
Among all of the predefined keymaps, you will most probably choose one of the following:
Visual Studio/ Visual Studio (macOS) — this keymap is recommended for users who:
have no experience with other IDEs;
have experience with plain Visual Studio;
have experience with Visual Studio + ReSharper and who preferred the 'Visual Studio' keyboard scheme in ReSharper.
ReSharper/ ReSharper (macOS) — this keymap is recommended for users who have experience with Visual Studio + ReSharper and who preferred the 'ReSharper 2.x/IntelliJ IDEA' keyboard scheme in ReSharper.
Default (IntelliJ IDEA)/ Mac OS X 10.5+ (IntelliJ IDEA) — this keymap is recommended for users who have experience with IntelliJ IDEA or some of the JetBrains IntelliJ-platform-based IDEs and who preferred to use the 'Default'/'Mac OS X 10.5+' keymap there.
When studying this help, use the Shortcuts selector at the top of help pages to show shortcuts in the text according to your preferred shortcut scheme.
Accessing frequently used commands
The navigation bar at the top of the Rider main window does not show many commands, but the most indispensable ones are at your fingertips:
You can press Ctrl+Shift+A to quickly find and execute any command.
Navigating and searching
JetBrains Rider provides a lot of navigation and search features. Let's get familiar with some of them.
Jumping to declaration
Press the Ctrl key and hover the mouse over your code. You will see that all symbols defined elsewhere become underlined when in focus. You can click any symbol while holding down the Ctrl key to navigate directly to its declaration. If the symbol is defined in the current solution, JetBrains Rider opens the corresponding file and brings the caret to the declaration. If the symbol is defined in a compiled library, JetBrains Rider will decompile the declaration for you. For more information, see Go to Declaration.
Finding usages
To navigate in the opposite direction, that is to find all places in your solution where the symbol is used, press Shift+F12 . JetBrains Rider will quickly find and display all usages of the symbol. For more information, see Find Usages.
Checking available navigation actions
Another handy navigation shortcut is Alt+` . When you press it on any symbol, JetBrains Rider will show you all available navigation options: For more information, see Navigate To.
Finding anything in your solution
If you need to find anything in your solution, press Ctrl+T . The list of suggestions appears as soon as you invoke this feature and initially includes your recent files and navigated items. You can start typing to find types, symbols, files, recent edits, recent files, and recently viewed methods. For more information, see Search Everywhere.
Locating current file in the solution tree
When a navigation command brings you to a new file, you may want to see where it is in the Solution Explorer. Just press Shift+Alt+L and the Solution Explorer will scroll to the current file and highlight it. For more information, see Locating current document in Solution/Assembly Explorer
Coding in the editor
When you are working in the editor, a bunch of code editing helpers are at your hand. Here are a couple of them.
Code completion (IntelliSense)
All completion features support CamelHumps - that is, you can complete any item by entering only its uppercase characters.
Rider's IntelliSense works automatically, but you can always invoke JetBrains Rider's code completion features explicitly, either after you have typed something or even instead of typing, wherever any meaningful code is allowed:
Pressing Ctrl+Alt+Space invokes the smart completion that provides more intelligent suggestions based on the expected type of the expression.
Pressing Shift+Alt+Space invokes the class name completion that displays all types that match a given prefix regardless of what namespace they belong to, It also inserts appropriate namespace import directives to the current file if necessary.
Selecting and moving code blocks
Wherever your caret is, try pressing Ctrl+Alt+Right / Ctrl+Alt+Left . These shortcuts allow you to successively select a symbol, line, or block of code so that you can easily select any desired expression for copying, cutting, or moving. For more information, see Selecting Text in the Editor.
If you need to move the selected code block, press Ctrl+Shift+Alt and then use the arrow keys to move the block to any allowed position. For more information, see Rearrange Code Elements
The power of Alt+Enter
Very often you will see one of many different action indicators in the left part of the editor. You can press Alt+Enter to see what JetBrains Rider has to suggest at the current caret position:
Here are a couple of examples:
If you see a red bulb or a yellow bulb icon it is even recommended to press Alt+Enter because these action indicators tell you that JetBrains Rider has detected an error or other code issue and it knows how to fix it.
If you see a hammer icon, you can ignore it unless you want to modify code at the caret. If you want to make changes, pressing Alt+Enter may be helpful. JetBrains Rider provides hundreds of context actions that can, for example, quickly change symbol visibility, add code that iterates over a collection, and more.
You can also press Alt+Enter if there are no action indicators in view. In this case, you can start typing to quickly find and execute any JetBrains Rider action in scope.
Refactoring code
JetBrains Rider's set of refactorings by far surpasses that provided by Visual Studio, with regard to number, usability and scope of application.
It is not easy to learn and remember each of several dozens refactorings that JetBrains Rider provides. However, you can press Ctrl+Shift+R on any symbol in your code and check out which refactorings are available here.
Generate code
JetBrains Rider can help you concentrate on non-trivial tasks by providing a lot of features for generating boilerplate code automatically. For example, you can call a non-existent method and JetBrains Rider will create this method based on the usage, taking into account the return type and the types of parameters.
Generate type members
When your caret is anywhere within a type declaration, press Alt+Insert . In the popup menu that opens, you can select an item that you want to generate for the type. JetBrains Rider can create constructors, properties, overriding members, and more. For more information, see Code Generation.
Code style matters
With JetBrains Rider, you can control the most of style aspects in your code: naming standards, formatting rules, and many other tiny things (such as order of modifiers or whether to use the 'var' keyword).
The default values of JetBrains Rider code style features are selected based on Microsoft guidelines and numerous best practices. At the same time, each tiny aspect of code style can be changed to fit your personal or corporate preferences.
To apply code style rules, press Ctrl+E, C . JetBrains Rider will prompt you to choose one of the two default code cleanup profiles: either reformat the code or apply multiple code style rules in the selected scope.
На прошлой неделе, после релизов версии 2020.1, для всех наших десктопных продуктов случилось еще одно большое событие — мы открыли публичный доступ к пробной версии Rider for Unreal Engine. На данный момент это отдельный продукт, версия нашей среды для разработки Rider, но с поддержкой C++ и 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++, то мы увидим:
- В своих собственных инструментах Microsoft использует инструменты отладки на основе vsdebugeng.dll. Лицензия не позволяет использовать эти инструменты в сторонних средах разработки.
- CDB и WinDbg используют dbgeng.dll. И именно этот вариант мы изначально пробовали для написания своего отладчика для MS стека. Но столкнулись с плохой производительностью на больших бинарных файлах с большим количеством файлов символов (.pdb), и, что еще более важно, с частым аварийным завершением приложения.
- Существовали также наработки в 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, предоставляя опции автодополнения и тултипов документации.
Интеграция с Blueprints
Файлы Blueprints представляют собой данные в бинарном формате, редактирование которых происходит как правило в визуальном редакторе внутри Unreal Editor. Объекты в этих файлах наследуются от классов на C++, переопределяют проперти из C++ части игры. И вот тут Rider for Unreal Engine является той уникальной средой разработки, которая зачитывает все необходимые файлы Blueprints и показывает эти связи в редакторе кода на C++:
При этом, если поменять, например, значение свойства в редакторе Unreal Engine и сохранить asset, то значение тут же автоматически обновится и в Rider (у нас повешены watchers на изменение asset-файлов):
Без сохранения файлов, мы надеемся, это тоже скоро заработает (подготовка к этому сейчас ведется в плагине 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 тоже не просто текст. Для них есть автодополнение и подсказки документации:
Подсказки документации доступны и для самих макросов рефлексии.
А еще анализатор кода проверяет использование макросов рефлексии и указывает на связанные с этим ошибки. Например:
- Классы UCLASS должны быть публично унаследованы от UObject или любого его класса наследника. При этом такой родитель должнен быть ровно один.
- Спецификаторы UCLASS должны быть использованы для классов, USTRUCT – для структур.
- Классы UE4 не могут быть объявлены внутри других классов.
- Объекты, сохраненные в полях, не отмеченных UPROPERTY, могут быть собраны сборщиком мусора в любое время.
Поддержка вызовов удаленных процедур (RPC) в действиях навигации и генерации кода
Если рассматривать вызовы удаленных процедур с точки зрения обычного парсера C++, то довольно быстро можно заметить неосведомленность парсера о том, что объявлению функции может соответствовать несколько имлементаций с отличающимися именами (например, суффиксами _Validate и _Implementation ). В ReSharper C++/Rider мы обучили парсер идентифицировать RPC по спецификаторам Client , Server и NetMulticast в параметрах макроса UFUNCTION . Благодаря этому:
- В навигации предлагаются все необходимые варианты имплементации функции.
- Генерация кода умеет создавать функции с суффиксами _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. Мы сначала индексируем код пользовательской игры, мгновенно включая все умные действия редактора на пользовательском коде. А индексация уже кода самого движка происходит после этого в фоне. Есть и еще несколько дополнительных опций по управлению индексацией:
В результате, те, кто уже начал пользоваться Rider for Unreal Engine, отзываются о производительности редактора очень положительно! А мы уверены, что можем сделать еще лучше.
Видеодемо и еще раз о том, как получить доступ
Эти и многие другие возможности можно посмотреть в действии в демо-ролике (на английском) от нашего девелопер-адвоката:
Читайте также: