Советы по IntelliJ IDEA Pro
Это руководство нацелено на пользователей IntelliJ IDEA, уже знакомых с основами и на тех, кто хотел бы изучить больше.
☕ Подтянуть свои знания по Java вы можете на нашем телеграм-канале «Библиотека Java для собеса»
Если вы новичок в IntelliJ IDEA, рекомендую вам прочитать руководство Discover IntelliJ IDEA перед тем, как читать данную статью.
Помощь в программировании
Информация о типах
Если вы хотите видеть больше информации о выражении под курсором (откуда оно вызывается или его тип), вам поможет Quick Documentation. Нажмите Ctrl+Q (Ctrl+J для OS X), чтобы активировать его и вы увидите всплывающее окно с данными. Если вам не нужна полная информация, используйте Type Info: он показывает только тип выбранного выражения, но не занимает столько места на экране.
Автодополнение, чувствительность к регистру
По умолчанию в IntelliJ IDEA автодополнение чувствительно к регистру только первого символа. Это можно изменить в настройках: Settings → Editor → General → Code Completion, так что вы можете сделать IDE регистрозависимым для всех символов. Или же задать настройки так, как вам хочется.
Всплывающее окно автодополнения
Вы также можете отключить функцию всплывающего окна. Это имеет смысл, если вы хотите, чтобы всплывающее окно появлялось только тогда, когда вы его вызовете.
Отключение использования подсветки для элементов под курсором
По мере того, как вы будете осваивать IntelliJ IDEA, вам захочется изменять настройки, выбранные по умолчанию. Я не могу пропустить функцию подсветки элементов: Settings → Editor → General. Если вы знаете сочетание клавиш Ctrl+Shift+F7 (Cmd+Shift+F7 для OS X) и вам не нравится появляющаяся и исчезающая подсветка в редакторе каждый раз, когда вы передвигаете курсор, вам не нужна эта функция.
CamelHumps
По умолчанию, когда вы выделяете что-то в редакторе, IntelliJ IDEA не чувствителен к регистру. Если вы предпочитаете написание согласно верблюжему регистру, т.е. вместо выделения целого слова, выделять его часть, вы можете включить его в настройках: Settings → Editor → General → Smart Keys.
Дополнение Hippie
IntelliJ IDEA обеспечивает дополнение Basic через Ctrl+Space, дополнение Smart — через Ctrl+Shift+Space, дополнение Statement — через Ctrl+Shift+Enter (Cmd+Shift+Enter для OS X). Все эти особенности основаны на понимании строения кода. Однако, иногда вам нужна простая, но гибкая логика, которая предложит слова, использованные ранее в текущем файле или даже проекте, независимо от их контекста. Здесь придёт на помощь дополнение Hippie, вызов через Alt+/.
Рефакторинг
Отмена
С IntelliJ IDEA вам не нужно беспокоиться о последствиях рефакторинга кода, потому что вы всегда можете отменить всё, выбрав Отмену из окна инструментов через Ctrl+Z (Cmd+Z для OS X).
Выделение фрагментов строки
IntelliJ IDEA способен реорганизовывать не только исполняемый код, но и строковые литералы. Выделите один фрагмент строки и выберите параметр Extract variable/constant/field/, чтобы выделить его, как постоянный и заменить его употребление во всем коде.
Изменение типов
Когда вы рефакторите код, вы обычно переименовываете символы, или выделяете и перемещаете выражение в коде. Однако, для реорганизации есть кое-что ещё. Например, изменение типов (доступен через Ctrl+Shift+F6 / Cmd+Shift+F6 для OS X) даёт вам возможность менять тип, обновлять зависимый код и решать возможные проблемы.
🧩☕ Интересные задачи по Java для практики можно найти на нашем телеграм-канале «Библиотека задач по Java»
Инвертирование булевского значения
Если IntelliJ IDEA может анализировать и изменять тип выражения, почему не сделать то же самое с семантикой? Чтобы инвертировать все использования булевского выражения, используйте Invert Boolean.
Анализ кода
Зависимость структуры матрицы
IntelliJ IDEA позволяет вам анализировать насколько сильно компоненты кода зависят друг от друга. Вам нужно обращать на это внимание, потому что много зависимостей могут стать проблемой. Действие Dependency structure matrix (доступное через Analyze menu) поможет вам визуализировать и найти зависимости между модулями и классами.
Несмотря на сложность внешнего вида, этот инструмент очень прост в использовании. Просто выберите класс и посмотрите, где он используется.
Структурный поиск и замена
Структурированный поиск и замена имеет много возможностей (после того, как вы научитесь правильно его использовать), и может быть использован для статического анализа кода и автоматизации рефакторинга. В двух словах, это позволяет вам осуществлять поиск конкретных шаблонов в коде и заменять их параметризованными шаблонами. Для этого он оснащен своим языком для определения шаблонов кода, который описан более детально в этой статье.
Чтобы воспользоваться этой функцией, используйте Edit → Find menu. Если вы хотите создать свои шаблоны или паттерны, воспользуйтесь Settings → Editor → Inspections, а также включите General → Structural Search Inspection.
Пользовательский интерфейс
Отключение заглавия и подсветки дерева тегов
Если вы много работаете с HTML и XML и не хотели бы попусту отвлекаться, вы можете отключить заглавие и подсветку дерева тегов в Editor → General → Appearance.
Отключение ненужной информации
Крайний левый столбец редактора, обычно показывает полезную информацию, связанную с кодом, который вы редактируете. Если вам иногда кажется, что там слишком много информации, вы можете настроить то, что вы хотите видеть через Settings → Editor → General → Gutter.
Отключение надоедливой лампочки
Еще одна вещь, которая может надоедать — это лампочка напоминания, которая появляется в редакторе каждый раз, когда есть доступная подсказка. Здесь отключение несколько сложнее: вам нужно отредактировать< IntelliJ IDEA preferences folder >/options/editor.xml
, и добавить следующее: < option name=”SHOW_INTENTION_BULB” value=”false” / >
.
Переключение настроек для Search everywhere
С Search everywhere вы можете найти произвольные фрагменты текста буквально везде: в коде, библиотеке, частях UI, настройках и даже в названиях действий. Если вы часто используете эту функцию, вам нужно знать, что вы можете получить доступ к настройкам IntelliJ IDEA, нажав Enter во всплывающем окне. Например, здесь мы получаем доступ к настройкам редактора:
Включение и отключение плагинов от Search everywhere
Если вы начинаете свой поисковой запрос с #plugins
, вы сможете включать и выключать.
Другие тэги: #appearance
, #system
, #inspections
, #registry
, #intentions
, #templates
, и #vcs
.
Аббревиатуры в Search Everywhere
Еще один интересный факт, что Search Everywhere поддерживает аббревиатуры. Вы можете зайти в Settings → Keymap, чтобы присвоить каждому действию сокращенный текст.
Свернуть вкладки редактора
Когда вам нужно закрыть все вкладки в редакторе, кроме текущей, нажмите на закрытие текущей вкладки, зажимая Alt. Если вы вообще не хотите видеть вкладки редактора, перейдите в Settings → Editor → General → Editor Tabs, и выберите None under Placement.
Открытие файла в новом окне
Особенность, которую не так просто найти, но она очень удобно открывает файл в новом окне с помощью нажатия Shift+Enter в окне инструментов Project.
Добавление кнопки остановки и восстановления на панель инструментов
Очень удобно добавить кнопки остановки и восстановления на панель инструментов. Вы можете сделать это через Settings → Appearance & Behaviour → Menus and Toolbars. Если вы предпочитаете использовать мышку, а не комбинации клавиш, в таком случае вам не нужно будет открывать окно инструмента отладки, чтобы управлять текущей сессией.
Переключение между окнами
Если ваш IntelliJ IDEA открывает каждый проект в отдельном окне, вы можете быстро переключаться между ними с помощью Ctrl+Alt+` (Ctrl+` для OS X).
Редактор
Сравнение с буфером обмена
В IntelliJ IDEA есть встроенная программа для просмотра различий в коде, jar файлах и изображениях. Чтобы открыть его, выделите любую пару и нажмите Ctrl+D (Cmd+D для OS X). Если вы выделите отдельный файл, IDE предложит вам выделить еще один, с которым его можно сравнивать. Для быстрого сравнения активного редактора с буфером обмена, используйте View → Compare with Clipboard.
Вставить из истории
Говоря о буфере обмена, IntelliJ IDEA отслеживает все, что вы вставляете в него. Когда вы хотите вставить что-то из ранее скопированных элементов, нажмите Ctrl+Shift+V (Cmd+Shift+V для OS X).
Множественный выбор
Множественный выбор — это сравнительно новая, но мощная функция редактора, которая позволяет вам быстро выделять и редактировать несколько фрагментов кода сразу.
В двух словах, вот что происходит: Вы либо начинаете с нажатия Alt+J (Ctrl+G для OS X) (затем IntelliJ IDEA выделяет символ курсора), или вы можете просто выделить что-то, как вы бы сделали это обычно.
Затем, нажмите Alt+J (Ctrl+G для OS X) и IntelliJ IDEA будет искать в текущем файле, пока не найдет соответствующий фрагмент текста, который он добавит к выделенному. Вы можете нажать Alt+J снова, чтобы продолжить, или Alt+Shift+J (Ctrl+Shift+G для OS X), чтобы вернуться назад. Но обратите внимание, что когда поиск достигает конца файла, он переключается на начало.
После того как выбор будет завершен, вы можете начать редактировать все фрагменты так же, как если бы это был один фрагмент:
Важный совет: Другой способ копирования курсора — нажатие Ctrl (Alt для OS X) и перемещение его вверх и вниз с помощью стрелочек или мыши.
Emmet
Если вы не в курсе, Emmet — это отличный способ писать код на HTML, XML и CSS. IntelliJ IDEA поддерживает данную функцию: просто напишите Emmet-выражение и нажмите Tab, чтобы развернуть его. Используйте предварительный просмотр Emmet для просмотра получившегося кода.
Regex
Регулярные выражения широко используются, но иногда слишком сложно написать их правильно. IntelliJ IDEA поможет вам проверить любое Regex в вашем коде: поместите курсор на него и нажмите Alt+Enter, чтобы использовать Check Regex intention.
Найти и заменить Regex группами
Еще один случай, когда IntelliJ IDEA помогает с Regex — функции поиска и замены. Стоит знать, что он поддерживает выделенные группы в заменяемых выражениях.
Поиск и замена также позволяет вам исключить комментарии и литералы из поиска: чтобы сделать это, используйте значок шестеренки.
Просмотр байт-кода
Иногда очень полезно увидеть реальный байт-код вашей программы. В IntelliJ IDEA вы всегда можете это сделать через View → Bytecode.
Контроль версий
Исправить изменения
В Commit диалоге IntelliJ IDEA предлагает выполнить различные операции. Одна из них — исправление изменений. Полезна, когда вы хотите изменить ваш последний коммит.
Shelves and patches
Shelves — это функция IDE похожая на Git Stash, но работает для всех систем контроля версий.
Помогает вам, когда нужно остановить текущую работу и сделать pull из репозитория, чтобы быстро исправить что-то, и возобновить работу. Эта функция заботится о локально измененных файлах без использования систем контроля версий, так что больше никаких потерянных изменений или поспешно сделанных мердж-коммитов.
Патчи позволяют вам сохранять набор изменений в текстовом файле, которые могут быть переданы по почте (или другим способом) и затем применены к коду. Очень полезно, когда вам нужно закоммитить что-то, после того как ваш самолет совершил аварийную посадку на необитаемом острове, или если вы просто остались без связи.
Отладка
Точки остановки
Иногда вы, возможно, хотите получить значение чего-то в конкретной строке кода, без использования точек остановки. Вы можете сделать это, используя Action breakpoint. Чтобы создать их, просто нажмите на боковую панель, зажимая Shift. Таким образом, вы можете напечатать любое выражение, не меняя код. Особенно это полезно при отладке библиотек или удаленного приложения.
В дополнении к action breakpoints, вы можете так же использовать Field breakpoints. Эти точки остановят выполнение, когда поля, связанные с ними, доступны. Для этого просто нажмите на боковой панели, зажимая Alt (Ctrl+Cmd для OS X).
Маркеры объектов
Когда вы отлаживаете приложение, IntelliJ IDEA позволит вам отмечать экземпляры произвольных объектов цветными пометками для более простой идентификации, через действие Mark Object. Доступно в Evaluate Expression, Variables, Watches диалоговых окнах.
И если у вас есть какой-нибудь отмеченный объект, вы также можете использовать его в условных выражениях.
Визуализация пользовательских данных
Evaluate Expression, Variables, Watches и встроенный отладчик используют стандартный способ визуализации значений переменных, обычно на основе реализации классов toString. Не каждый знает, что вы можете определить свои собственные средства визуализации для любого класса. Для этого выберите Customize Data Views из контекстного меню в окне инструмента отладки.
Это особенно полезно, когда некоторые классы в библиотеке, которую вы используете, не обеспечивают значимую реализацию toString — поэтому вы можете найти его сами вне библиотеки.
Drop frame
В случае, если вы хотите вернуться назад во времени во время отладки, вы можете сделать это через действие Drop frame. Это отличная функция, если по ошибке вы ушли слишком далеко.
Принудительный возврат
Если вы, наоборот, хотите попасть в будущее, и сделать принудительный возврат без выполнения дополнительных инструкций, используйте действие Force Return. Если метод возвращает значение, вы должны указать его.
DCEVM
Иногда, когда вы вносите быстрые изменения в код, вы хотите сразу видеть, как он будет работать в приложении. К сожалению, у Java HotSwap VM много ограничений: вы не можете, допустим, добавить новый метод; единственное, что вы можете изменить — тело метода.
К счастью, есть способ, как изменить эту ситуацию с новым open-source проектом Dynamic Code Evolution VM. Это модификация Java HotSwap VM с неограниченной поддержкой для перезагрузки классов во время исполнения.
Для использования данной виртуальной машины в IntelliJ IDEA — разработан специальный плагин. При включении плагина, IDE предложит вам установить DCEVM JRE. Затем, вы должны будете выбрать его в списке альтернативных JRE.
Обновление приложения
Если вы запускаете ваше приложение на сервере приложений (Tomcat, JBoss и т.д.), вы можете перезагрузить измененные классы и ресурсы, используя действие Обновление приложений через Ctrl+F10 (Cmd+F10).
Заметьте, что перезагрузка ресурсов доступна только если вы развернули ваше приложение, используя WAR.
Инструменты
Внешние инструменты
IntelliJ IDEA интегрировал много инструментов для разработчиков. Если приложение, которое вам нужно, ещё не интегрировано, но вы бы хотели использовать его через ярлык, откройте Settings → Tools → External Tools, и настройте, как запускать данное приложение. Тогда вы сможете активировать этот инструмент через меню Tools → External Tools.
Командная строка запуска
Если вы хотите использовать IntelliJ IDEA из командной строки ( т.е. открывать проект или файл: “idea “), нажмите Tools → Create Command-Line Launcher.
Перевод: Софья Лепёхина
Другие статьи по теме
50 советов, хитростей и ссылок для Android Studio и Intellij IDEA