# JetBrains Rider

## Полезные горячие клавиши

|              Горячая клавиша             |                                                                                 Что делает?                                                                                 |
| :--------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
|               Shift + Shift              | Открывает окно поиска (по  имени файлов и по их содержимому). Кстати, можно ввести, например, "ShoPlCon" (или "SPC") и будет найдена даже строка "ShooterPlayerController". |
| Ctrl + Клик по классу/функции/переменной |                                                                             Переход к объявлению                                                                            |
|              Ctrl + Alt + /              |                                                                   Закомментировать/раскоментировать строку                                                                  |
|             Ctrl + Shift + /             |                                                            Закомментировать/раскоментировать выделенный блок кода                                                           |
|                 Ctrl + L                 |                                                                 Удалить строку, на которой находится курсор                                                                 |
|                 Ctrl + D                 |                                                               Сдублировать строку, на которой находится курсор                                                              |
|                 Alt + Up                 |                                                             Перенести строку, на которой находится курсор, выше                                                             |
|                Alt + Down                |                                                             Перенести строку, на которой находится курсор, ниже                                                             |
|                  Alt + O                 |                                     Открыть соответствующий h-файл, если находимся в cpp-файле, либо cpp-файл, если находимся в h-файле                                     |
|              Alt + Shift + U             |                                                                      Открывает Unit Testing Quick List                                                                      |
|             Ctrl + Shift + R             |                                                                             Сделать рефакторинг                                                                             |
|             Ctrl + Shift + V             |                                                                          Вставить текст из истории                                                                          |
|             Ctrl + Shift + .             |                                                                           Увеличить размер шрифта                                                                           |
|             Ctrl + Shift + ,             |                                                                           Уменьшить размер шрифта                                                                           |
|              Alt + Shift + =             |                                                                             Расширить выделение                                                                             |
|              Alt + Shift + -             |                                                                               Сузить выделение                                                                              |
|             Ctrl + Alt + LMB             |                                                                           Добавить/Удалить курсор                                                                           |
|              Alt + Shift + L             |                                                                Выделить открытый файл в обозревателе решения                                                                |
|           Ctrl + Shift + Enter           |                                                 Завершить выражение (закрыть скобки, поставить точку с запятой и так далее)                                                 |
|                 Alt + \`                 |                                                                           Открывает окно навигации                                                                          |
|                Shift + F12               |                                                                     Найти использования выбранного типа                                                                     |

## Файл .sln для Rider не нужен

Достаточно открыть .uproject в Rider. Как следствие, в Rider не будет лишних проектов в обозревателе, и не надо будет использовать Generate Visual Studio project files.

## Процесс настройки Rider

1. Отключить ненужные плагины.
2. Установить Line Separator на LF.
3. Установить кодировку для файлов UTF-8 без BOM: Settings | Editor | File Encodings.
4. Настроить отображение вкладок: Settings | Editor | General | Editor Tabs | Show tabs in.
5. Настроить live templates: ulog (`UE_LOGFMT(LogTemp, Warning, "$DEBUG$");`), ulogs (`UE_LOGFMT(LogTemp, Warning, "Debug: {0}", $DEBUG$);`).
6. Настроить анализ кода: Settings | Editor | Inspection Settings | Enable solution-wide analysis и Settings | Editor | Inspection Settings | Enable computationally expensive inspections.
7. Отключить отправку данных: Settings  | Appearance & Behaviors | System Settings | Data Sharing.
8. Убрать сворачивание импорта по умолчанию: Settings | Editor | General | Code Folding | Fold by default.
9. Поставить Tooltip delay на 300мс: Settings | Editor | Code Editing.
10. В настройках обозревателя отключить Scratches and Consoles.
11. Можно установить плагин Codeium.

## Замена только в выделенном тексте

<figure><img src="https://4152212797-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F88xE1W0qh40DNcOwE5SZ%2Fuploads%2FmfdxlqE8PnJBdir7i5Hn%2Fimage.png?alt=media&#x26;token=4169d1fc-e7ae-4fc6-b2b0-a31d79c3fc37" alt=""><figcaption></figcaption></figure>

## Правильное добавление новых слов в словарь

Всегда стоит выбирать: `Solution "ProjectName" team-shared` - чтобы у всех разработчиков был одинаковый словарь.

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

<figure><img src="https://4152212797-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F88xE1W0qh40DNcOwE5SZ%2Fuploads%2Fzf2qecUi5NyQmMZWqSzT%2Fimage.png?alt=media&#x26;token=f67fbd8f-8d12-4d38-856d-5f2ac0a7b14f" alt=""><figcaption></figcaption></figure>

## Добавление условия для срабатывания breakpoint

<figure><img src="https://4152212797-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F88xE1W0qh40DNcOwE5SZ%2Fuploads%2Fy6C8HpHTRWsIYtgKoDbN%2Fimage.png?alt=media&#x26;token=e27a8057-6ab8-4eda-a290-dd123864b682" alt="" width="375"><figcaption></figcaption></figure>

## Использование шаблонов кода

Достаточно ввести shortcut шаблона и нажать Enter (во всплывающем окне). Также можно добавлять свои собственные  шаблоны:

<figure><img src="https://4152212797-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F88xE1W0qh40DNcOwE5SZ%2Fuploads%2Fs2e43EdWjNeKwjalTFBs%2Fimage.png?alt=media&#x26;token=b1e3cc85-cf4d-49a4-ac9e-d195fe6fb216" alt=""><figcaption></figcaption></figure>

## Удобное переопределение функций из базового класса

Например, для быстрого добавления того же BeginPlay() в класс:

<figure><img src="https://4152212797-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F88xE1W0qh40DNcOwE5SZ%2Fuploads%2F91OYihkwXmkLnUvMSola%2Fimage.png?alt=media&#x26;token=c91c8884-9eb0-486f-b465-b4b74524e0b2" alt=""><figcaption></figcaption></figure>
