Что такое IntelliJ IDEA
IntelliJ IDEA — интегрированная среда разработки приложений на Java от компании JetBrains. Ее позиционируют как самую умную и удобную среду разработки для Java с поддержкой всех последних технологий и фреймворков.
IntelliJ IDEA входит в тройку самых популярных IDE для Java вместе с Eclipse IDE и NetBeans IDE. Сравнение трех сред разработки есть в данном материале о выборе среды для разработки.
Условия использования IntelliJ IDEA
Первая версия IntelliJ IDEA появилась в январе 2001 года, и с тех пор компания JetBrains дополняет свое детище новыми возможностями и улучшает существующие.
Начиная с версии 9.0, IntelliJ IDEA доступна в двух вариантах:
- Community Edition
- Ultimate Edition
Community Edition — это свободная версия под лицензией Apache 2.0. Она предназначена для JVM и Android разработки, а также приложений с GUI (Graphical user interface, графический интерфейс пользователя). Она будет полезна как начинающим разработчикам для образовательных целей, так и профессионалам для коммерческой разработки.
Ultimate Edition доступна под коммерческой лицензией, и в ней поддерживается больше инструментов по сравнению с Community Edition. Эта версия приложения предназначена для enterprise и web-разработки. Она полезна для backend- и frontend-разработчиков.
На ближайшие полгода тебе будет достаточно Community Edition.
IntelliJ IDEA поставляется для трех платформ: Windows, macOS, Linux. Актуальную версию продукта можно загрузить с официального сайта компании JetBrains.
Почему у меня запускается другой код?
Это один из самых распространенных вопросов, которые возникают у новичков. Все дело в Run Configuration (настройках запуска) приложения.
В IntelliJ IDEA существует несколько способов запустить свой код (метода main ):
- Просто нажать на кнопку Run возле своего метода main или же класса, содержащего метод main .
- Нажать правой кнопкой мыши на файле в дереве проекта. Затем выбрать пункт Run…
- Запуск с расширенными возможностями.
При использовании третьего способа у новичков часто возникают проблемы. После запуска разных файлов, IDEA вместо нас создает конфигурации запуска для каждого из этих файлов/классов и сохраняет в список “конфигураций запуска”.
Если выбрать какую-то настройку и нажать Edit Configurations… , увидим расширенные настройки запуска:
В этих настройках можно указать версию Java, с помощью которой нужно запустить программу, добавить дополнительные настройки окружения или аргументы программы. Аргументы программы — это именно те аргументы, которые передаются в метод main() .
Казалось бы, какой удобный функционал! Но именно в нем и кроется источник самой частой ошибки новичков: “у меня запускается другой код”.
Все дело в том, что можно нажать кнопку Run в момент, когда выбрана настройка запуска, не соответствующая нашему файлу:
Чтобы избежать этой ошибки, выбери нужное имя файла/класса из выпадающего списка.
Инструменты для работы с кодом в IntelliJ IDEA
У IntelliJ IDEA есть много инструментов для работы с кодом. Приведем примеры некоторых из них.
Используя инструмент Live Templates, разработчик в разы сокращает время на написание часто используемых конструкций кода.
Например, для создания метода main достаточно набрать в редакторе psvm и нажать клавишу TAB :
Горячие клавиши
Использование горячих клавиш может существенно упростить и ускорить написание кода. Но для этого нужно знать о этих горячих клавишах. Вот несколько комбинаций, которые станут полезными уже сейчас или в ближайшее время.
Ctrl + Space – показывает список вариантов, которыми можно завершить ввод.
Ctrl + W – умное выделение текста. Сначала выделяет слово, где стоит курсор, а дальше – ближайшие команды, и так вплоть до всего документа.
Ctrl + Y – удаляет целую строку, при этом сохраняет курсор на той же позиции.
Ctrl + Shift + Space – то же, что и Ctrl + Space , только учитывает статические поля и методы. Также помогает инициализировать поле подходящим типом.
Ctrl + B – переходит к объявлению поля, метода или класса. Тот же эффект, что и при нажатии Ctrl + ЛКМ :
Ctrl + / – комментирует строку кода. Если выбрать несколько строк, закомментирует все:
Shift + F6 – переименовывает поле, метод или класс во всех местах, где используется.
Ctrl + Q — во вложенном окне покажет документацию к методу, чтобы не бегать в исходный код. Помогает почитать про принимаемые параметры и про возвращаемое значение.
Shift + Shift ( Double Shift , 2 раза подряд быстро нажать Shift ) — поиск всего и везде (ищет классы и файлы, но не методы). Подходит для случаев, когда ты помнишь, что где-то что-то видел и даже пару букв из названия помнишь, — это окошко поищет за тебя.
При поиске классов можно указывать часть имени или только первые 2 буквы. Например, BuRe найдет BufferedReader :
Ctrl + Shift + V – умная вставка, помнит несколько последних скопированных элементов.
Ctrl + Shift + Space – умное заполнение, предлагает тебе варианты подстановки значений с учетом контекста.
Ctrl + Shift + A – поиск действия. Если юзер вдруг забыл hot keys (горячие клавиши) для действия, но помнит его имя, можно найти любое действие и запустить, например, дебаг.
Ctrl + Alt + M – вынесет выделенный кусок кода в отдельный метод, hot key для рефакторинга очень полезный.
Alt + Enter – комплишен (заполнение) для решения любых проблем. На самом деле выручает почти всегда. Если есть какая-либо ошибка компиляции, и ты не знаешь точного решения, первым делом смотри, что предложит IDEA.
Alt + Insert – автогенерация всего и вся, методов, конструкторов, классов…
Ctrl + O – переопределение методов родителя.
Ctrl + K – при работе с гитом – коммит.
Ctrl + Shift + K – при работе с гитом – пуш.
Ctrl + Alt + S – настройки IDEA.
Ctrl + Alt + Shift + S – настройки проекта.
Это далеко не весь полезный функционал Intellij IDEA. О многих полезных фичах, включая дебаг, мы еще расскажем в дальнейших лекциях.
IntelliJ IDEA – the Leading Java and Kotlin IDE
Write high-quality code faster with coding assistance features that search for possible errors and provide improvement suggestions as you type while seamlessly educating you on community best practices in coding, new language features, and more.
Deep Code Understanding
IntelliJ IDEA knows everything about your code and uses this knowledge to offer blazing fast navigation and an intelligent experience by providing relevant suggestions in every context.
Collaborative and Remote
Work on a project with your team in real time. Create shared sessions to review code, debug, and more. Move your projects to the remote machine to harness the full power of IntelliJ IDEA on any laptop and boost your productivity.
Out-Of-The-Box Experience
Enjoy an unbeatable toolset right from the first launch. Mission-critical tools and a wide variety of supported languages and frameworks are at your fingertips – no plugin hassle included.
The Ultimate Experience
Smart Editor
Run and Debug
Frameworks Ultimate
Web Development Ultimate
Remote Development Ultimate
Collaboration Ultimate
Built-in tools
Plugin Marketplace
New Features
New UI enhancements Beta IntelliJ IDEA 2023.1 includes a host of improvements for the new UI, which has been overhauled based on the valuable feedback we’ve received from users. The range of changes includes the new Compact Mode, which provides a more consolidated look and feel of the IDE; an option to vertically split the tool window area just like in the old UI; a reworked Run widget; and more.
Earlier availability of IDE features on project opening We’ve improved the IDE startup experience by performing the Scanning files to index process in smart mode. Doing so makes the IDE’s full functionality available much earlier in the startup process. When opening a project, IntelliJ IDEA 2023.1 uses existing caches from your previous session with the project and simultaneously looks for files to index. If no changes are found in the scan, the IDE will be ready, eliminating the delays that were previously caused by indexing on startup.
Faster import of Maven projects We’ve notably improved the IDE’s performance in importing Maven projects by optimizing dependency resolution as well as reworking the processes behind importing and configuring facets.
Background commit checks We’ve reworked the behavior of commit checks for Git and Mercurial to speed up the overall commit process. Checks are now performed in the background after you commit but before you push.
Navigation to Spring Security matchers and request mappings To simplify seeing applied security rules, IntelliJ IDEA Ultimate 2023.1 provides easy navigation to security matchers from Spring controllers. The navigation works both from security matchers to controllers and vice versa.
Вышел IntelliJ IDEA 2023.1
Вышло обновление IntelliJ IDEA 2023.1 с усовершенствованным пользовательским интерфейсом, улучшениями производительности, в результате чего импорт Maven стал быстрее, а функции IDE теперь доступны при открытии проектов. Новая версия обеспечивает упрощенный процесс фиксации благодаря фоновым проверкам. IntelliJ IDEA Ultimate также поддерживает навигацию для сопоставлений запросов Spring Security.
Ключевые изменения:
- процесс сканирования файлов для индексирования теперь выполняется в интеллектуальном режиме, благодаря чему все функции IDE становятся доступными намного раньше в процессе запуска;
- заметно улучшена производительность IDE при импорте проектов Maven;
- проверки фиксации для Git и Mercurial выполняются в фоновом режиме после фиксации, но до отправки, что ускоряет общий процесс;
- внедрена удобная навигация по средствам сопоставления безопасности с контроллеров Spring.
Интерфейс
В v2023.1 можно увеличивать и уменьшать размер всех элементов пользовательского интерфейса одновременно. Появилась возможность сохранять несколько макетов окон инструментов и управлять ими, а также переключаться между ними при необходимости. Новый параметр макета позволяет унифицировать ширину боковых окон инструментов или свободно настраивать их размеры. В пример кода можно добавить советы по адаптации в редакторе, чтобы новым пользователям было проще ознакомиться с наиболее важными функциями IDE. Добавлена возможность предопределять поведение действий при сохранении для новых проектов. Поиск классов с помощью машинного обучения в Search Everywhere включили по умолчанию.
Редактор
Появился новый параметр для управления размещением вставленного содержимого, которое было скопировано или вырезано. Также теперь можно отображать пробелы в виде маленьких точек только при выборе кода. Регулярные выражения можно применять для создания собственных проверок поиска и замены. Новое действие намерения позволяет исправить форматирование таблиц в файлах Markdown. Действие редактора «Заполнить абзац» поддерживается для файлов Markdown, что позволяет разбивать длинные тексты на несколько строк одинаковой длины. В Settings / Preferences появилась новая специальная страница «Редактор / Общие / Smart Keys», чтобы упростить управление настройками Markdown. Из проверки опечаток исключили написание хэшей и специальных значений.
Java
IntelliJ IDEA 2023.1 поддерживает новые функции Java 20. Обновлён рефакторинг метода извлечения: его можно применять, даже если в выбранном фрагменте кода есть несколько переменных, которые необходимо вернуть. В поле VM Options всплывающего окна конфигурации Run / Debug интегрирована функция автозавершения.
Scala
IntelliJ IDEA 2023.1 обеспечивает улучшенную поддержку Scala 3. Он включает обновления для работы с кодом Scala без фигурных скобок, поддержку нового параметра компилятора Wunused:imports для расширенного управления импортом, улучшенную подсветку кода Scala и правильное автоматическое создание переопределяющих методов с помощью оговорки. IDE обеспечивает улучшенную поддержку проектов sbt. IntelliJ IDEA 2023.1 содержит множество исправлений и улучшений в декомпиляторах Scala 3 и Scala 2.
Profiler
На вкладке Flame Graph с помощью цветовой кодировки выделяются методы, относящиеся к проекту, что позволяет легко различать код, который можно изменить для решения проблемы с производительностью.
Системы контроля версий
Чтобы сделать отслеживание изменений в файлах более удобным, добавлена цветовая подсветка на основе состояния VCS в окне инструмента «Структура».
Рабочий процесс проверки кода для GitHub улучшили, переработав окно инструмента запроса на вытягивание в среде IDE.
Инструменты сборки
В IntelliJ IDEA 2023.1 можно указать версию Gradle при создании нового проекта.
При импорте проекта IntelliJ IDEA 2023.1 также можно определять конфигурацию цепочки инструментов Gradle и устанавливать соответствующий Java SDK в настройках модуля.
Запуск и отладка
Пользователь может назначить ярлык для запуска действия «Run with coverage» для открытого файла, даже если конфигурация запуска ещё не создана. Также в IntelliJ IDEA 2023.1 появилась возможность фильтровать классы в представлении «Coverage».
Фреймворки и технологии
В конфигурации запуска Spring Gradle теперь является параметром по умолчанию для запуска и сборки проектов. Настройками аспектов Spring и JPA можно обмениваться через VCS. Выполнять запросы MongoDB можно в консоли базы данных из репозиториев данных Spring и Micronaut. Появился специальный подключаемый модуль, который интегрирует Apache Dubbo, предоставляя функциональные возможности платформы в рамках поддержки IntelliJ IDEA для Spring.
Если пользователь определяет дополнительные метаданные для API с помощью аннотаций Swagger 2.X в контроллерах Spring, среда IDE теперь включает эти аннотации при создании файлов OpenAPI.
Также можно редактировать части больших спецификаций OpenAPI, разделённых на отдельные файлы, и легко перемещаться между ними.
IntelliJ IDEA Ultimate 2023.1 позволяет выполнять запросы GRPC из прото-файлов, содержащих импорт из архивов .jar. Кроме того, улучшено завершение кода для тел запросов, например для типов OneOf и Map.
Добавлена вкладка «HTTP-клиент» для конечных точек Protobuf в окне инструмента «Endpoints tool».
IDE теперь предоставляет все функции редактирования, необходимые для работы с файлами конфигурации application.yaml в Ktor, включая завершение кода, выделение и проверку.
Плагин XSLT Debugger был разделён. Его можно получить из JetBrains Marketplace или установить непосредственно в IDE в меню «Настройки».
Docker
Вкладка Dashboard узла Docker Сompose теперь собирает журналы из каждого контейнера Docker Сompose и отображает их в одном месте, обновляя в режиме реального времени.
В IntelliJ IDEA 2023.1 можно увидеть статусы работоспособности запущенных контейнеров Docker в окне инструмента «Службы».
Стало проще подключиться к Azure Container Registry.
Появилась возможность добавлять флаги конфигурации :z к монтированиям привязки Docker, что позволяет подключать тома к контейнерам Docker на рабочих станциях SELinux.
Kubernetes
Всплывающее окно New Kubernetes Resource теперь предоставляет самые популярные типы ресурсов, такие как Pod, Deployment и ConfigMap.
В IntelliJ IDEA Ultimate 2023.1 представлен новый диалог для создания секретов Kubernetes.
В новой версии появились маркеры изменений с цветовой кодировкой в поле для ресурсов Kubernetes, загруженных из кластера, что позволяет легко отслеживать вносимые изменения. Кроме того, с помощью значка «Сравнить с кластером» можно открыть полное представление различий, которое извлечёт текущую версию ресурса из кластера и сравнит её с локальной версией.
IntelliJ IDEA Ultimate 2023.1 обеспечивает улучшенный пользовательский интерфейс при работе с файлами kubeconfig.
Пользователь может назначать ярлыки для большинства действий Kubernetes в представлении «Службы», таких как «Переадресация портов», «Удалить ресурс» и «Описать ресурс».
Удалённая разработка и сотрудничество
Гости сеанса Code With Me теперь получают расширенные сведения об элементах, которые доступны только организаторам. Они могут запрашивать разрешения и утверждать их одним щелчком мыши.
IntelliJ IDEA Ultimate 2023.1 предоставляет улучшенный обзор последних проектов удалённой разработки.
Веб-разработка
IntelliJ IDEA Ultimate 2023.1 добавляет поддержку Astro через плагин. В шаблоны Vue добавлена поддержка TypeScript.
Также появилось автоматическое преобразование строк в литералы шаблонов.
Добавлена поддержка параметров конфигурации Tailwind CSS, таких как настраиваемое завершение имени класса в параметре classAttributes, и экспериментальных, таких как tailwindCSS.experimental.configFile.
Подключаемый модуль Android предоставляет все функции Android Studio Electric Eel, включая поддержку подключаемого модуля Android Gradle (AGP) 7.4.0.
При подготовке материала использовались источники:
https://javarush.com/quests/lectures/jru.module1.lecture09
https://intellij-jetbrain.com/
https://habr.com/ru/news/726510/