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

Исходный код Minecraft можно найти, если поискать net.minecraft в разделе «Внешние библиотеки» окна проекта. Если ваш проект использует разделенные исходные коды из онлайн шаблонов модов —то будет два источника, как указано в названии (client/common). Кроме того, также будут доступны другие источники проектов, библиотек и зависимостей, которые импортируются через файл build.gradle. Этот метод часто используется при просмотре ресурсов, тегов и других файлов.


Поиск
Двойное нажатие клавиши Shift открывает окно поиска. Там вы можете искать файлы и классы вашего проекта. При активации флажка «включить элементы, не входящие в проект» или повторном нажатии клавиши Shift два раза поиск будет осуществляться не только в вашем проекте, но и в других, например, во внешних библиотеках.

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

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

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

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

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

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

Генерация кода
К меню «Создать» можно быстро получить доступ с помощью ⌘/CTRLN. В файле Java вы сможете генерировать конструкторы, геттеры, сеттеры, переопределять или реализовывать методы и многое другое. Вы также можете генерировать аксессоры и инвокеры, если у вас установлен плагин Minecraft Development.
Кроме того, вы можете быстро переопределять методы с помощью ⌘/CTRLO и реализовывать методы с помощью ⌘/CTRLI.

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

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

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

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

Комментарии
Хороший код должен быть легко читаемым и самодокументирующимся. Выбор выразительных имен для переменных, классов и методов может оказать большую помощь, но иногда комментарии необходимы, чтобы оставлять заметки или временно отключать код для тестирования.
Подготовить ярлыки
Чтобы быстрее комментировать код, откройте настройки IntelliJ, найдите записи «Комментарий с помощью строчного комментария» и «Комментарий с помощью блочного комментария» и установите для них сочетания клавиш в соответствии с вашими предпочтениями.

Теперь вы можете выделить нужный код и, используя сочетания клавиш, закомментировать раздел.
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
Если вы заметили, что используете их слишком много, рассмотрите возможность рефакторинга кода, чтобы сделать его более читабельным!
Примечания TODO и FIXME
При работе с кодом может оказаться полезным оставлять заметки о том, над чем еще нужно позаботиться. Иногда вы также можете заметить потенциальную проблему в коде, но не хотите прекращать концентрироваться на текущей проблеме. В этом случае используйте комментарии TODO или FIXME.

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


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

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

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

