IntelliJ IDEA 2016.3 чергове велике оновлення Java IDE від JetBrains
Основні зміни та нововведення в IntelliJ IDEA 2016.3
Java 8
З релізу Java 8 IntelliJ IDEA надає інспекції, що допомагають писати коректний та ідіоматичний Java 8. У IntellIJ IDEA 2016.3 ці інспекції були серйозно перероблені, розширивши сферу застосування за рамки тривіальних прикладів. Тепер, якщо ви натиснете Alt+Enter всередині нетривіального for циклу, IDE запропонує переписати його за допомогою Stream API. При цьому IDE спиратиметься на практично всі доступні API: count, sum, flatMap, map, mapToInt, collect, filter, anyMatch, findFirst, toArray та інші. Примітка: схожа інспекція доступна для Kotlin. Також IDE запропонує замінити відповідні конструкції на Map.computeIfAbsent, Collections.removeIf або ThreadLocal.withInitial там, де це має сенс.
Scala
Scala.js
Оновлений Scala плагін тепер надає навігацію та автодоповнення для js.Dynamic – на основі змінних та методів, оголошених у JavaScript бібліотеках або файлах проекту.
scala.meta
Також плагін отримав підтримку scala.meta. IntelliJ IDEA підтримує “нові” макро-анотації та надає допомогу при редагуванні scala.meta quasiquotes.
JVM відладчик
Class-level Watches
Ця нова потужна функція налагоджувача дозволяє додавати Watch вирази на рівні класів. Ці вирази виглядають як поля класів, проте їх значення визначаються самими виразами. Вирази вказуються у контексті класу.
Memory View
Цей новий плагін дозволяє досліджувати об'єкти в пам'яті JVM під час налагодження коду. Плагін показує кількість об'єктів у пам'яті, з групуванням на ім'я класу. У міру того як ви переміщуєтеся під час налагодження за кодом, колонка Diff показує, як ця кількість змінюється. Подвійний клік на класі відкриє діалог із об'єктами. Також плагін дозволяє відстежувати stacktraces створення об'єктів.
Інтерфейс
Підказки імен параметрів методів
Опція Parameter Hints (ввімкнена за замовчуванням) показує імена параметрів методів, якщо як аргументи використовуються літерали або null. Такі підказки роблять код більш читаним. Якщо підказки для якихось методів є надмірними, ви можете попросити IDE не показувати їх.
Семантичне підсвічування
Раніше з'явився в KDevelop і деяких інших IDE, Semantic highlighting тепер доступний в IntelliJ IDEA. Ця опція додає до стандартного підсвічування унікальні кольори. для кожного параметра та локальної змінної. Ця опція вимкнена за умовчанням, але може бути включена в Settings → Editor → Colors & Fonts → Language Defaults → Semantic highlighting.
Інструменти збирання
Delegate IDE Build/Run actions to Gradle
Ця нова опція дозволяє делегувати такі дії IDE як Build, Build Artifacts та Run безпосередньо Gradle. Коли цю опцію увімкнено, IDE замість стандартних дій викликає відповідні Gradle-таски. Увімкнути цю опцію можна в Settings → Build, Execution, Deployment → Build Tools → Gradle → Runner → Delegate IDE Build/Run actions to Gradle.
Gradle Composite Builds.
Ця нова потужна опція дозволяє замінити будь-яку з залежностей проекту іншим проектом. Ця опція вимагає Gradle 3.1 або старшого.
Polyglot Maven
Тепер pom.xml можна писати Groovy, Scala, Ruby та іншими мовами. (Примітка: підказки під час редагування pom.xml доступні лише для Groovy.)
Контроль версій
Log для Git та Mercurial
Вікно Log знову перероблено, цього разу – з метою підвищення ергономічності та швидкості роботи. Панель докладних змін змістилася праворуч, звільнивши більше місця. Опис змін тепер вирівняні та більш читані. Мітки з тегами та назвами гілок змістилися праворуч і відображаються більш елегантно. Рядок пошуку зберігається між запусками IDE. Для Git пошук по тексту, автору та шляху став набагато швидшим.
Merge та Diff
Вікно Merge тепер може вирішувати конфлікти автоматично там, де це можливо. У таких випадках ліворуч відображатиметься іконка Resolve з чарівною паличкою. Також ми додали маркери, що відображають зміни, які будуть застосовані поверх базової ревізії. Крім цього, і Merge і Diff тепер пропонують підсвічування синтаксису та навігацію для “не-базових” ревізій.
Також додано керування віддаленими репозиторіями.
JavaScript
ECMAScript 6
IntelliJ IDEA дозволяє автоматично конвертувати змінні оголошені var у const/let залежно від семантики їх використання.
Для всіх викликів require, IDE запропонує автозаміну на import.
Для всіх класів, оголошених за допомогою функцій та ланцюжків prototype, IDE запропонує автозаміну на повноцінні класи.
Подробиці, скріншоти та відео про дозвіл IntelliJ IDEA 2016.3 можна знайти на сторінці What’s New (англійською). Також можна завантажити IntelliJ IDEA 2016.3 оновлення.