Привет! Традиционно рассказываем, что нового в IntelliJ IDEA 2019.2. Список большой и все равно неполный: если хочется больше подробностей, добро пожаловать на страницу What’s new in IntelliJ IDEA 2019.2.
Во-первых, мы существенно ускорили запуск. Надеемся, вы заметили :)
А еще:
Java
- Java 13 выходит в сентябре, и IntelliJ IDEA уже готова работать с ней. IDE поддерживает новый синтаксис switch-выражений (JEP 354) и новую функциональность текстовых блоков (JEP 355).
- IDE может выполнять рефакторинг Inline Method, даже если return-выражение прерывает поток выполнения.
- Если при анализе потока данных нашлись проблемы, новое действие Find cause поможет перейти к проблемному фрагменту кода.
- Мы объединили инспекцию для Java «Duplicated code fragment» с инструментом для других языков «Locate duplicates».
- Автодополнение кода теперь распознает опечатки и предлагает наиболее подходящие варианты для неправильно введенного текста.
- Теперь при работе со структурным поиском IDE мгновенно подсвечивает в редакторе все найденные фрагменты кода, соответствующие шаблону поиска.
Инструменты профилирования
- IntelliJ IDEA 2019.2 теперь интегрируется с Java Flight Recorder на платформах Windows, macOS и Linux, а также с Async-profiler на macOS и Linux.
Окно сервисов
- В новом окне Services собраны все подключения, а также конфигурации запуска, которые вы подключили к Services.
- IDE позволяет просматривать файловую систему запущенного Docker-контейнера (окно Services → узел Docker → вкладка Files).
Редактор
- Управлять всеми настройками стиля кода для разных областей можно с помощью файла EditorConfig. Подробнее.
- Благодаря встроенной интеграции с редактором TextMate доступна подсветка синтаксиса более чем для 20 языков программирования.
- IntelliJ IDEA теперь беспроблемно работает с большими файлами.
- Изменилось выбранное по умолчанию поведение действия Move Caret to Next Word. Теперь IDE передвигает курсор к концу текущего слова.
- Настройка Surround a selection with a quote or brace включена по умолчанию. Если при выделенном фрагменте кода набрать кавычку или скобку, фрагмент окажется внутри кавычек или скобок.
- По умолчанию клавиша Tab, нажатая при вводе текста, перемещает курсор за закрывающие скобки или кавычки.
- Чтобы сделать код более читаемым, мы изменили межстрочный интервал: теперь он равен 1,2. Изменить межстрочный интервал можно в разделе Settings / Preferences | Editor | Color Scheme | Color Scheme Font.
Обновления интерфейса
- Чтобы сделать быстрые исправления более заметными, мы поменяли дизайн всплывающего окна инспекций — оно теперь не только содержит описание проблемы, но и сразу же предлагает вам исправление.
- У окна New Class новый дизайн: теперь есть предпросмотр возможных вариантов.
- Современный безрамочный интерфейс в Windows 10.
- Возле элементов списков и деревьев в окне Project View отображается дополнительная информация: размеры файлов и время их изменения. Это включается в меню View | Appearance | Descriptions in Tree Views.
Gradle
- Зависимости Gradle теперь можно просматривать в виде диаграммы: нажмите значок Show Dependencies на панели инструментов в окне Gradle (Alt+Shift+Ctrl+U в Linux и Windows / Alt+Shift+Cmd+U в macOS).
- Внесены улучшения в анализ кода в файлах build.gradle. Автодополнение теперь работает в объявлении задач, нотации задач Gradle и даже внутри блоков зависимостей.
- Мы усовершенствовали отображение выводимой информации об операциях Gradle, чтобы предоставлять вам информацию о текущем статусе процесса синхронизации/сборки, — теперь дерево статуса и консоль вывода информации располагаются рядом друг с другом.
Maven
- Выводимая информация о синхронизации Maven теперь отображается в инструментальном окне Build, что делает сообщения об ошибках и прогрессе более заметными и упрощает навигацию.
- Автодополнение работает по умолчанию в рамках зависимостей Maven в файлах pom.xml.
Контроль версий
- В IntelliJ IDEA 2019.2 появилась поддержка нативной обработки игнорируемых файлов Git. Подробнее.
- IDE будет напоминать вам, если вы забудете включить в коммит файлы, которые обычно включаете вместе с файлами, редактируемыми в данный момент.
- Теперь можно делать коммит из вкладки Local Changes: установите флажок Commit from the Local Changes without showing a dialog в разделе Preferences / Settings | Version Control | Commit Dialog.
- Теперь можно смотреть файловую историю Git одной или нескольких директорий, выбранных в окне Project View.
- При выполнении процесса merge или cherry-pick во всплывающем окне Branches есть новые опции: Abort Merge и Abort Cherry-pick.
- Новое действие Show Diff with Working Tree показывает Diff-сравнение текущей и выбранной веток.
- IDE теперь предлагает вам добавлять в систему контроля версий файлы, которые были скопированы в проект извне.
Kotlin
- Поддержка JPA с Kotlin стала лучше: появилась возможность генерировать entity-классы Kotlin.
- Действие Async stack trace теперь отображает состояние переменных на момент последней приостановки.
- Новый режим interactive для вспомогательных файлов Kotlin автоматически показывает вам результаты по истечении определенного интервала времени без необходимости перезапускать скрипт.
- IDE подсвечивает TODO-комментарии Kotlin в редакторе и отображает их в инструментальном окне TODO.
- Если вы используете внешние аннотации допустимости значения null для Java, IDE предупреждает вас о неверных случаях применения аннотированных методов Java из Kotlin.
Scala
- IDE теперь отображает подсказку по аскрипции типа и подсвечивает те части, которые не соответствуют ожидаемому типу.
- Подсказки о несоответствии типа стали более подробными и показываются с выравниванием по вертикали, также используется отображение кода в режиме «было — стало».
- Подсказки аннотаций типов теперь поддерживают динамическое сворачивание, всплывающие подсказки, навигацию и подсветку парных скобок.
Groovy
- Усовершенствована поддержка синтаксиса Groovy 3.0 — теперь поддерживаются вложенные блоки кода, а фигурные скобки и стрелки в замыканиях по умолчанию выделяются полужирным шрифтом, чтобы блоки кода было легче отличить от замыканий.
JavaScript и TypeScript
- Теперь можно заменять избыточные переменные еще одной деструктуризацией: нажмите в редакторе Alt+Enter и выберите Propagate to destructuring.
- Теперь, когда вы переименовываете идентификатор в файле JavaScript или TypeScript, IDE группирует динамические вхождения отдельно от остальных вхождений и по умолчанию исключает их из рефакторинга.
- Мы сделали более точное автодополнение кода для компонентов и их свойств из библиотек Vuetify и BootstrapVue.
Отладчик JVM
- Теперь можно выбрать метод при выполнении действия Step Into.
Поддержка баз данных
- Поиск по данным.
- Быстрое изменение размера страницы.
- Фильтрация по источникам данных в навигации.
JetBrains Runtime
- IntelliJ IDEA 2019.2 теперь по умолчанию работает под JetBrains Runtime 11.
Благодарим всех пользователей за то, что вы делились с нами своими мыслями и рекомендациями в комментариях на Хабре, в трекере и в Твиттере.
Команда IntelliJ IDEA
Автор: Максим Соболевский