+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новости

IntelliJ IDEA 2019.3: улучшение функциональности, оптимизация производительности

IntelliJ IDEA 2019.3: улучшение функциональности, оптимизация производительности

В релизе IntelliJ IDEA 2019.3 JetBrains сосредоточилась на производительности и качестве. JetBrains занималась оптимизацией производительности, повышением отзывчивости интерфейса, улучшением существующей функциональности.

Чтобы правильно расставить приоритеты, JetBrains полагалась на отзывы пользователей и благодарит всех, кто делился идеями и сообщал об ошибках в трекере. В результате JetBrains исправила более 1600 проблем, которые в общей сложности получили около 4000 голосов пользователей.

JetBrains также работала над поддержкой новых фреймворков для создания микросервисов, таких как MicronautQuarkus и Helidon, и сделала долгожданную поддержку MongoDB.

Оптимизация производительности

JetBrains много работала над улучшением производительности IntelliJ IDEA. Вот что получилось:

  • IntelliJ IDEA запускается гораздо быстрее.
  • Меньше зависаний редактора и интерфейса.
  • IDE потребляет меньше памяти, особенно при импорте Gradle-проектов.

Одной из главных задач в этом году было сократить время запуска IDE. JetBrains внесла существенные архитектурные изменения в платформу IntelliJ: некоторые процессы, которые при запуске происходили последовательно, теперь выполняются параллельно. Кроме того, JetBrains реорганизовала классы, чтобы ускорить инициализацию, оптимизировала загрузку шрифтов на macOS и многое другое.

JetBrains уделила внимание повышению отзывчивости интерфейса и избавилась от многих зависаний в различных частях IntelliJ IDEA. Удалось устранить причины зависаний из более чем 1600 баг-репортов. Кроме того, сообщать о зависаниях теперь легче.

Теперь IntelliJ IDEA работает гораздо быстрее, когда в редакторе или отладчике открыто много вкладок, а также когда регулярное выражение соответствует очень длинным строкам в Find in Path. Открытие дерева проекта тоже занимает меньше времени.

JetBrains ускорила работу редактора, оптимизировав вывод типов в Java. Вывод типов для длинных цепочек вызовов методов теперь работает намного быстрее. Подсветка синтаксиса Java тоже работает быстрее, особенно это касается методов с generic varargs (Arrays.asList, Map.ofEntries и т.д.), которые могут содержать десятки аргументов. Объединение нескольких строк с помощью действия Join Lines тоже ускорилось.

Поддержка Kotlin 1.3.60 тоже привела к улучшениям, например, ускорилась подсветка синтаксиса Kotlin в редакторе.

Другие исправления коснулись VCS: удалось сократить время обработки событий и игнорируемых файлов, устранить зависания и ускорить обновление статуса в больших проектах.

В подсистеме сборки JetBrains снизила пиковое потребление памяти при импорте больших Gradle-проектов. А еще исправила проблемы с редактированием файлов pom.xml в Maven-проектах: теперь IDE предлагает варианты автодополнения без задержек.

В следующих версиях JetBrains будет и дальше оптимизировать производительность и постарается сделать запуск IDE еще быстрее.

Улучшение качества

Плагины

У IntelliJ IDEA богатая экосистема плагинов, но есть недостаток: при установке или удалении плагина нужно перезапускать IDE. JetBrains начала решать эту проблему и реализовала базовую инфраструктуру для динамической установки плагинов, без перезапуска IDE. Пока что это работает только для тем интерфейса и сочетаний клавиш.

Системы контроля версий

Много нового в поддержке VCS. Чтобы упростить работу с ветками, вместо действия Checkout as... JetBrains добавила два новых: Checkout и New Branch from Selected. Действие New Branch from Selected создает новую локальную ветку, но не включает отслеживание какой-либо удаленной ветки. При вызове действия Checkout IDE создает новую локальную ветку, извлекает ее из репозитория и включает отслеживание выбранной удаленной ветки, если нет локальной ветки с таким же именем.

JetBrains переработала диалог Clone и сделала единый интерфейс для скачивания проектов с различных VCS-хостингов. Теперь вы можете войти в свой аккаунт прямо из обновленного диалога. Если вы уже залогинились, IDE покажет списки всех репозиториев, сгруппированных по учетным записям или организациям, в которых вы состоите.

Кроме того, больше не нужно загружать ветку, чтобы отправить изменения в репозиторий: выберите нужную ветку в окне Branches и нажмите Push. Для перемещенных или переименованных файлов мы добавили столбец с именами файлов в File History. Еще одно полезное улучшение — возможность принудительно добавить файл в Git (или Mercurial), даже если он находится в списке .gitignore (или .hgignore).

Другие улучшения

В предыдущей версии JetBrains поддержала функциональность Java 13, а в этот раз значительно улучшила поддержку текстовых блоков Java 13. 

Теперь есть простой способ просмотреть иерархию вызовов для выбранного поля: используйте новое действие Field Call Hierarchy (Ctrl/Cmd+Alt+H).

Если у вас установлен флажок Show quick documentation on mouse move, при наведении указателя мыши на предупреждение или ошибку отобразится единая подсказка с описанием предупреждения или ошибки и справочной информацией о коде.
Раньше в таких случаях IDE показывала только подсказку об ошибке без документации, а иногда появлялось целых два всплывающих окна.

JetBrains обновила поведение диалога intention actions: действия не исчезнут из списка предложений, если вы выбрали одно из них и закрыли диалог.

Окно Services теперь всегда отображается, и его поведение можно можно настроить внутри самого окна. Кроме того, вы можете скрыть определенные конфигурации запуска.

А также:

— Подсказки о несоответствии типа стали более подробными и понятными.
— При открытии проекта IntelliJ IDEA показывает его название.
— JetBrains поддержала вставки фрагментов кода на новых языках шаблонов, в частности Pug (ранее — Jade), HandlebarsEJS и Slim.
— Появилась плавная прокрутка колесом мыши.
— Полосы прокрутки можно сделать более заметными, используя чекбокс Use contrast scrollbars в меню Preferences/Settings | Appearance & Behavior | Appearance.

Поддержка новых фреймворков и технологий

Несмотря на то, что при подготовке этой версии JetBrains в основном была сосредоточена на качестве, JetBrains также работала над несколькими новыми функциями и рада их представить. Всё, что описано ниже, есть только в IntelliJ IDEA Ultimate.

Вокруг микросервисов было много разговоров задолго до того, как JetBrains начала планировать этот релиз. В какой-то момент JetBrains подумала, что стоит добавить поддержку технологий, которые используются для разработки Java и Kotlin-проектов с микросервисной архитектурой. Звезды сошлись, и JetBrains начала работать над интеграцией.

Во-первых, JetBrains расширила помощь при написании кода и возможности навигации для фреймворков разработки микросервисов нового поколения: Micronaut, Quarkus и Helidon. Для тех, кто занимается реактивным программированием, JetBrains добавила поддержку Spring Web Flux.

Обычно микросервисы взаимодействуют друг с другом через HTTP/WebSocket, поэтому следующим шагом для JetBrains было добавить поддержку API HTTP-клиентов Java, таких как java.net.URI/URL, Retrofit v2, OkHttp v3, а также клиентских библиотек популярных серверных фреймворков: Spring Feign, MicroProfile REST Client и т.д. Что важно, теперь IDE предоставляет автодополнение URL-адресов и навигацию для HTTP/WebSocket API.

Во-вторых, JetBrains добавила новое окно Endpoints, чтобы было удобно просматривать конечные точки вашего проекта. В этом окне отображаются как клиентские, так и серверные API. Постепенно сюда будут добавлены не только HTTP API, но и API обмена сообщениями, gRPC и GraphQL.

Наконец, JetBrains расширила поддержку спецификаций API. В этой версии JetBrains поддержала Swagger 2 и OpenAPI Specification 3. Поддержка включает в себя проверку на соответствие схеме, автодополнение, навигацию, поиск использований и рефакторинг Rename в YAML/JSON-файлах, содержащих описания API.

На данный момент все это работает только для проектов на Java и Kotlin, но в следующих версиях JetBrains планирует поддержать другие языки и фреймворки.

Кроме того, IntelliJ IDEA 2019.3 наконец поддерживает MongoDB. В этой версии коллекции и поля отображаются в проводнике баз данных, вы можете выполнять запросы и просматривать их результаты.

Важные исправления

— IDE теперь находит каталог, в который Gradle был установлен через Homebrew.
— Стало проще вручную устанавливать домашний каталог Gradle.
— IntelliJ IDEA теперь поддерживает хранение паролей в KWallet на Linux.
— Для проектов JavaFX IDE может отображать файл FXML со встроенным Scene Builder на вкладке Scene Builder.
— В окне Debug работает навигация с клавиатуры.
— Можно скопировать выбранный текст из окна инспекции через Ctrl/Cmd+C.
— Фокус не теряется при переключении между окнами IDE.
— Улучшено расположение окон и всплывающих подсказок.
— Если в IDE выбрана тема Darcula, системные окна MacOS при вызове открываются в темной теме.

JetBrains также обновила JetBrains Runtime 11 (JBR 11).

— Исправлен рендеринг шрифтов на macOS Catalina.
— Устранен проблему с открытием проекта на macOS 10.15 Catalina.
— Исправлены символы в диалоге Evaluate Expression.
— IntelliJ IDEA обнаружит конфликты между сочетаниями клавиш IDE и шорткатами операционной системы.
— В редакторе устранена ​​проблема со шрифтами, которые всегда были выделены курсивом.
— Исправлен начальный экран на Windows.

Другие новости

Лучшая цена