IntelliJ IDEA 2019.3: покращення функціональності, оптимізація продуктивності
IntelliJ IDEA 2019.3: покращення функціональності, оптимізація продуктивності
У релізі IntelliJ IDEA 2019.3 JetBrains зосередилася на продуктивності та якості. JetBrains займалася оптимізацією продуктивності, підвищенням чуйності інтерфейсу, поліпшенням існуючої функціональності.
Щоб правильно розставити пріоритети, JetBrains покладалася на відгуки користувачів і дякує всім, хто ділився ідеями і повідомляв про помилки в трекері. В результаті JetBrains виправила понад 1600 проблем, які загалом отримали близько 4000 голосів користувачів.
JetBrains також працювала над підтримкою нових фреймворків для створення мікросервісів, таких якMicronaut, Quarkus і 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), Handlebars, EJS і 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 .