Советы и рекомендации для IntelliJ IDEA 26.1.2
Полезная информация для эффективной обработки и перемещения по вашему проекту с использованием IDE.
На этой странице представлена полезная информация, которая поможет ускорить и облегчить работу разработчиков. Включите их в свой дизайн по своему вкусу. Может потребоваться некоторое время, чтобы освоить и привыкнуть к сочетаниям клавиш и другим опциям. Вы можете использовать эту страницу в качестве справочного материала.
WARNING
Сочетания клавиш в тексте относятся к стандартной раскладке IntelliJ IDEA, если не указано иное. Если вы используете другую раскладку клавиатуры, перейдите в раздел «Файл» > «Настройки» > «Раскладка клавиатуры» или поищите соответствующую функцию в другом месте.
Навигация по проектам
Вручную
В IntelliJ есть множество способов навигации по проектам. Если вы сгенерировали исходники с помощью команды ./gradlew genSources в терминале или использовали задачу Gradle Tasks > fabric > genSources в окне Gradle, вы можете вручную просматривать исходные файлы Minecraft в разделе External Libraries окна Project.

Исходный код Minecraft можно найти, если искать net.minecraft в разделе External Libraries окна Project. Если ваш проект использует разделённые исходники из онлайн-генератора Template mod generator, будет два набора исходников, как указано в названии (client/common). Кроме того, будут доступны другие исходники проекта, библиотеки и зависимости, импортированные через файл build.gradle. Этот метод часто используется при просмотре ресурсов, тегов и других файлов.


Поиск
Двойное нажатие Shift открывает окно поиска. В нём можно искать файлы и классы вашего проекта. При включении чекбокса include non-project items или повторном нажатии Shift поиск будет выполняться не только в вашем проекте, но и в других местах, например во External Libraries.
Также можно использовать сочетания клавиш ⌘/CTRL+N для поиска классов и ⌘/CTRL+Shift+N для поиска всех файлов.

Окно недавних файлов
Ещё один полезный инструмент в IntelliJ — окно Recent. Вы можете открыть его с помощью сочетания клавиш CTRL+E. Там вы можете перейти к файлам, которые вы уже посещали, и открыть окна инструментов, такие как окно Структура или Закладки.

Код Traversing
Перейти к определению/использованию
Если вам нужно проверить определение или использование переменных, методов, классов и других элементов, вы можете нажать ⌘/CTRL+ЛКМ / B или щелкнуть по их имени средней кнопкой мыши (нажать на колесико мыши). Таким образом, вы сможете избежать длительных сеансов прокрутки или ручного поиска определения, которое находится в другом файле.
Вы также можете использовать ⌘/CTRL+⌥/Shift+ЛКМ / B для просмотра всех реализаций класса или интерфейса.
Закладки
Вы можете добавлять в закладки строки кода, файлы или даже открытые вкладки редактора. Особенно при исследовании исходных кодов это может помочь отметить места, которые вы захотите быстро найти в будущем.
Щелкните правой кнопкой мыши файл в окне «Проект», на вкладке редактора или на номере строки в файле. Создание «Мнемонических закладок» позволяет вам быстро переключаться обратно на эти закладки, используя их горячие клавиши, CTRL и цифру, которую вы для этого выбрали.

Если вам необходимо разделить или упорядочить их, можно создать несколько списков закладок одновременно в окне «Закладки». Там же будут отображаться Точки переломов.

Анализ классов
Структура класса
Открыв окно «Структура» (Alt+7), вы получите обзор вашего текущего активного класса. Вы можете увидеть, какие классы и перечисления находятся в этом файле, какие методы реализованы и какие поля и переменные объявлены.
Иногда может быть полезно активировать опцию «Наследуется» вверху в параметрах просмотра, когда ищешь потенциальные методы для переопределения.

Иерархия типов класса
Поместив курсор на имя класса и нажав CTRL+H, вы можете открыть новое окно иерархии типов, в котором отображаются все родительские и дочерние классы.

Утилита кода
Автодополнение кода
Автодополнение кода должно быть активировано по умолчанию. Вы автоматически получите рекомендации по мере написания кода. Если вы закрыли его случайно или просто переместили курсор в новое место, вы можете использовать CTRL+Пробел, чтобы открыть его снова.
Например, при использовании Lambda, вы можете быстро их написать, используя этот метод.

Генерация кода
Меню «Создать» можно быстро открыть с помощью комбинации клавиш Alt+Insert (⌘ Command+N в macOS) или перейдя в верхнюю часть окна в раздел «Код» и выбрав «Создать». В файле Java вы сможете генерировать конструкторы, геттеры, сеттеры, переопределять или реализовывать методы и многое другое. Вы также можете генерировать аксессоры и инвокеров, если у вас установлен плагин Minecraft Development plugin.
Кроме того, вы можете быстро переопределять методы с помощью ⌘/CTRLO и реализовывать методы с помощью ⌘/CTRLI.

В тестовом файле Java вам будут предоставлены возможности для генерации связанных методов тестирования, как указано ниже:

Отображение параметров
Отображение параметров должно быть активировано по умолчанию. Типы и имена параметров вы получите автоматически при написании кода. Если вы случайно закрыли их или просто переместили курсор в новое место, вы можете использовать CTRL+P, чтобы снова открыть их.
Методы и классы могут иметь несколько реализаций с разными параметрами, что также известно как перегрузка. Таким образом, вы можете решить, какую реализацию вы хотите использовать, при написании вызова метода.

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

Особенно полезно привыкнуть к сочетанию клавиш инструмента рефакторинга Rename, Shift+F6, поскольку в будущем вам придется переименовывать множество вещей. Используя эту функцию, каждое вхождение переименованного кода будет переименовано и останется функционально прежним.
Вы также можете переформатировать код в соответствии с вашим стилем кода. Для этого выделите код, который нужно переформатировать (если ничего не выделено, будет переформатирован весь файл), и нажмите ⌘/CTRL+⌥/ALT+L. Чтобы изменить способ форматирования кода в IntelliJ, посмотрите настройки в разделе Файл > Настройки > Редактор > Стиль кода > Java.
Контекстные действия
Контекстные действия позволяют рефакторить определенные участки кода в зависимости от контекста. Чтобы воспользоваться им, просто подведите курсор к области, которую вы хотите рефакторить, и нажмите ⌥/ALT+Enter или щелкните по лампочке слева. Появится всплывающее окно с контекстными действиями, которые можно использовать для выбранного кода.


Поиск и замена содержимого файла
Иногда для редактирования фрагментов кода требуются более простые инструменты.
| Горячие клавиши | Функция |
|---|---|
| CTRL+F | Найти в текущем файле |
| CTRL+R | Заменить в текущем файле |
| CTRL+Shift+F | Найти в более широком диапазоне (можно задать маску определенного типа файла) |
| CTRL+Shift+R | Заменить в большей области (можно задать маску определенного типа файла) |
Если эти инструменты включены, они позволяют выполнять более конкретное сопоставление с шаблоном с использованием «Regex».

Другие полезные привязки
Выделив текст и используя ⌘/CTRL+Shift+↑ Вверх / ↓ Вниз, можно переместить выделенный текст вверх или вниз.
В IntelliJ привязка клавиш для Redo может быть не совсем обычной ⌘/CTRL+Y (Удалить строку). Вместо этого можно использовать ⌘/CTRL+Shift+Z. Вы можете изменить это в Keymap.
Еще больше сочетаний клавиш вы можете найти в документации IntelliJ.
Комментарии
Хороший код должен быть легко читаемым и самодокументирующимся. Выбор выразительных имен для переменных, классов и методов может оказать большую помощь, но иногда комментарии необходимы, чтобы оставлять заметки или временно отключать код для тестирования.
Чтобы быстрее закомментировать код, можно выделить текст и использовать комбинацию клавиш ⌘/CTRL+/ (строчный комментарий) и ⌘/CTRL+⌥/Shift+/ (блочный комментарий).
Теперь вы можете выделить нужный код и, используя сочетания клавиш, закомментировать раздел.
java
// private static final int PROTECTION_BOOTS = 2;
private static final int PROTECTION_LEGGINGS = 5;
// private static final int PROTECTION_CHESTPLATE = 6;
private static final int PROTECTION_HELMET = 1;1
2
3
4
2
3
4
java
/*
ModItems.initialize();
ModSounds.initializeSounds();
ModParticles.initialize();
*/
private static int secondsToTicks(float seconds) {
return (int) (seconds * 20 /*+ 69*/);
}1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Сжатие кодов
В IntelliJ рядом с номерами строк можно разместить небольшие значки [+] и [-]. Их можно использовать для временного сворачивания методов, операторов if, классов и многих других вещей, если вы не работаете над ними активно. Чтобы создать пользовательский блок, который можно свернуть, используйте комментарии region и endregion.
java
// region collapse block name
ModBlocks.initialize();
ModBlockEntities.registerBlockEntityTypes();
ModItems.initialize();
ModSounds.initializeSounds();
ModParticles.initialize();
// endregion1
2
3
4
5
6
7
2
3
4
5
6
7
Комментарии региона
WARNING
Если вы заметили, что используете их слишком много, рассмотрите возможность рефакторинга кода, чтобы сделать его более читабельным!
Отключение форматера
Комментарии также могут отключить форматер во время рефакторинга кода, о котором говорилось выше, окружив часть кода таким образом:
java
//formatter:off (disable formatter)
public static void disgustingMethod() { /* ew this code sucks */ }
//formatter:on (re-enable the formatter)1
2
3
2
3
Подавление инспекций
//noinspection Комментарии могут использоваться для подавления проверок и предупреждений. Они функционально идентичны аннотации @SuppressWarnings, но не имеют ограничений, связанных с аннотацией, и могут использоваться в утверждениях.
java
// below is bad code and IntelliJ knows that
@SuppressWarnings("rawtypes") // annotations can be used here
List list = new ArrayList();
//noinspection unchecked (annotations cannot be here so we use the comment)
this.processList((List<String>)list);
//noinspection rawtypes,unchecked,WriteOnlyObject (you can even suppress multiple!)
new ArrayList().add("bananas");1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
WARNING
Чтобы быстрее комментировать код, откройте настройки IntelliJ, найдите записи «Комментарий с помощью строчного комментария» и «Комментарий с помощью блочного комментария» и установите для них сочетания клавиш в соответствии с вашими предпочтениями.
Примечания TODO и FIXME
При работе с кодом может оказаться полезным оставлять заметки о том, над чем еще нужно позаботиться. Иногда вы также можете заметить потенциальную проблему в коде, но не хотите прекращать концентрироваться на текущей проблеме. В этом случае используйте комментарии TODO или FIXME.

IntelliJ будет отслеживать их в окне TODO и может уведомить вас, если вы зафиксируете код, который использует этот тип комментариев.


Документирование Javadoc
Отличным способом документирования вашего кода является использование JavaDoc. JavaDocs не только предоставляют полезную информацию для реализации методов и классов, но и глубоко интегрированы в IntelliJ.
При наведении курсора на имена методов или классов, к которым добавлены комментарии JavaDoc, эта информация будет отображена в их информационном окне.

Чтобы начать, просто напишите /** над определением метода или класса и нажмите Enter. IntelliJ автоматически сгенерирует строки для возвращаемого значения и параметров, но вы можете изменить их по своему усмотрению. Доступно множество пользовательских функций, а при необходимости можно использовать HTML.
Класс ScreenHandler в Minecraft имеет несколько примеров. Чтобы переключить вид рендеринга, используйте кнопку пера рядом с номерами строк.

Просмотр байткода
Просмотр байт-кода необходим для написания мискинов. Чтобы просмотреть байт-код класса библиотеки (например, класса Minecraft), откройте этот класс в редакторе, а затем выберите пункт Show Bytecode в меню View.


Дальнейшая оптимизация IntelliJ
Существует еще множество простых приемов и полезных трюков, описание которых выходит за рамки этой страницы. На сайте Jetbrains есть много хороших статей, видео и страниц документации о том, как еще больше настроить свое рабочее пространство.
Постфиксное завершение
Используйте PostFix Completion для быстрого изменения кода после его написания. Часто используемые примеры содержат .not, .if, .var, .null, .nn, .for, .fori, .return и .new. Помимо существующих, вы также можете создать свои собственные в настройках IntelliJ.
Живые шаблоны
Используйте живые шаблоны для более быстрой генерации собственного шаблонного кода.
Дополнительные советы и рекомендации
Антон Архипов из Jetbrains также подробно рассказал о сопоставлении регулярных выражений, дополнении кода, отладке и многих других темах в IntelliJ.
Для получения более подробной информации посетите сайт советов и рекомендаций Jetbrains. Большинство их постов применимы и к экосистеме Fabric.



