Что нового в IntelliJ IDEA 2017.2

в 15:41, , рубрики: groovy, intellij, intellij idea, java, javascript, kotlin, mocha, spring boot, TypeScript, Блог компании JetBrains

Привет!

Мы рады сообщить о выходе крупного обновления IDE – IntelliJ IDEA 2017.2. Поскольку далеко не все следят за новостями в нашем официальном блоге (а также потому, что многим удобнее будет прочитать об этом на русском), в этом посте я расскажу что ждать от новой версии IDE. Кто спешит попробовать обновление самостоятельно, качайте с сайта JetBrains, либо из Toolbox App. Все остальные, добро пожаловать под кат.

Что нового в IntelliJ IDEA 2017.2 - 1

Java

Автодополнение остается одной из самых востребованных функций IDE и поэтому продолжает улучшаться от релиза к релизу. В этот раз, улучшения коснулись функции Smart Completion.

Во-первых, IDE научилась подсказывать выражения использующие Builder паттерн:

Что нового в IntelliJ IDEA 2017.2 - 2

Во-вторых, подсказки содержащие цепочки вызовов, ранее доступные по второму вызову Smart Completion, теперь показываются при первом вызове, а кроме того сортируются на основе их популярности проекте:

Что нового в IntelliJ IDEA 2017.2 - 3

Последнее улучшение пока доступно только после компиляции проекта компилятором IDE (иначе говоря, функция пока недоступна, если компиляция делегируется Gradle).

Анализ потока выполнения кода (control flow analysis) также стал умнее и теперь находит еще большее множество потенциальных ошибок в коде, незаметных с первого взгляда.

Во-первых, IDE замечает условия, противоречащие или повторяющие друг друга. Напрямую такой код не является причиной ошибки, однако часто он свидетельствует о ней косвенно.

Что нового в IntelliJ IDEA 2017.2 - 4

Кроме того, IDE теперь научилась понимать контракт многих методов, и использовать это для нахождения логических проблем в коде. Например, если метод Collection#isEmpty() возвращает true, это означает, что итерация по этой коллекции не будет выполняться, а вызов метода List#get(int index > 0) приведет к ошибке.

Что нового в IntelliJ IDEA 2017.2 - 5

Новые инспекции включают: Replace with Set.of, Add Thread#onSpinWait() (обе требуют Java 9), а также Extract set from comparison chain.

Последняя может быть очень полезна, т.к. она помогает избавить от громоздких конструкций и сделать код гораздо читабельнее:

Что нового в IntelliJ IDEA 2017.2 - 6

Java 9 продолжает медленно но неумолимо двигаться вперед. Поэтому в обновлении мы добавили диаграммы модулей, которые, надеемся, сделают работу с модулями еще удобнее:

Что нового в IntelliJ IDEA 2017.2 - 7

Окно Run для Spring Boot теперь отображают информацию о состоянии запущенных приложений, полученную с помощью Endpoints: Beans, Health и Mappings.

Что нового в IntelliJ IDEA 2017.2 - 8

Отладчик теперь позволяет удобно фильтровать массивы и коллекции в окне Variables, Evaluate Expression, Watches, Inspect и других.

Что нового в IntelliJ IDEA 2017.2 - 9

Kotlin 1.1.3

Кроме поддержки более свежей версии языка, IDE получила подсказки имен параметров методов (Parameter Hints, знакомые по Java и Groovy), подсказки выведенных типов (Type Hints), семантическую подсветку (также знакомую ранее по Java и другим языкам), а также подсветку TODO элементов.

Подсказки выведенных типов – принципиально новая функция, делающая код более читаемым.

Что нового в IntelliJ IDEA 2017.2 - 10

Groovy 2.5.0

Поддержка Groovy 2.5.0 главным образом включает поддержку новых аннотаций: groovy.transform.builder.Builder#includeSuperProperties, groovy.transform.AutoImplement, и groovy.lang.Delegate для методов.

Контроль версий

Окно инструментов Log для Git предоставляет две новые функции: Revert Commit (откат изменений), а также Reword Commit. Последняя позволяет изменить описание неотправленного изменения.

Что нового в IntelliJ IDEA 2017.2 - 11

Кроме этого, IDE получила возможность автоматического форматирования описаний изменений согласно настройкам (Version Control | Commit Dialog): blank line between the subject and the body, limit body line, и limit subject line. При редактировании описания изменения в Commit диалоге стали доступны инспекция и функция Reformat:

Что нового в IntelliJ IDEA 2017.2 - 12

Пользовательский интерфейс

Область редактора внутри попапа Find in Path получила левую панель с элементами навигации и индикаторами локальных изменений. Попап отображает прогресс поиска. Результаты поиска с одних и тех же строк объединяются в один результат.

Что нового в IntelliJ IDEA 2017.2 - 13

Элементы интерфейса на Window 10 стали выглядеть нативно.

Что нового в IntelliJ IDEA 2017.2 - 14

В случае нескольких мониторов с высоким разрешением (HiDPI), теперь IDE правильно определяет разрешение: в зависимости от того, на котором мониторе элемент отображается (ранее всегда использовалось разрешение главного монитора).

Размер шрифтов теперь также автоматически корректируется в зависимости от разрешения.

JavaScript и TypeScript

В TypeScript-коде, как и в Java, теперь показываются имена параметров. Также стало доступно действие Expression Type (ранее знакомое по Java):

Что нового в IntelliJ IDEA 2017.2 - 15

Действие Rearrange Code, знакомое тем, кто работал с Java-кодом в IntelliJ IDEA, стало доступно для JavaScript и TypeScript. Оно позволяет упорядочить код внутри классов.

Что нового в IntelliJ IDEA 2017.2 - 16

С помощью нового Move Symbol рефакторинга можно безопасно переносить классы, методы и переменные из одного ES6-модуля в другой. IDE автоматически обновит все импорты и экспорты.

Что нового в IntelliJ IDEA 2017.2 - 17

В новой версии мы улучшили поддержку Angular Material, — библиотеки UI-компонентов для Angular. Теперь IDE понимает и подсказывает специальные атрибуты из Angular Material.

Что нового в IntelliJ IDEA 2017.2 - 18

При тестировании JavaScript-приложений с Mocha теперь можно узнать, насколько хорошо код покрыт тестами. А при работе с Karma теперь можно запускать каждый тест отдельно.

Что нового в IntelliJ IDEA 2017.2 - 19

Автодополнение и навигация в JavaScript-коде теперь учитывает конфигурацию проекта (например, aliases), описанную в webpack.config.js.

Что нового в IntelliJ IDEA 2017.2 - 20

Производительность

Любой модуль теперь можно указать как “незагруженный” (Unloaded). В этом случае IDE исключит его из индексации и компиляции.

Что нового в IntelliJ IDEA 2017.2 - 21

Эту функцию рекомендуется использовать только для исключения модулей, от которых не зависят модули, с которыми вы планируете работать. Если вы выполняете рефакторинг, поиск или другую операцию, на которую потенциально может повлиять незагруженный модуль, IDE сообщит об этом:

Что нового в IntelliJ IDEA 2017.2 - 22

Кроме модулей, теперь также стало возможно исключить файлы из индексации по выражению. Это может быть полезно, если вы хотите исключить файлы определенного типа, в именах которых повторяются определенные паттерны (например, *_min.js).

Процесс индексации теперь можно приостанавливать. Это может быть полезно, когда нужно срочно высвободить ресурсы CPU.

Вкратце, это все важные изменения. Подробнее об изменениях можно узнать на странице What’s New. Там же можно скачать обновление.

Буду рад ответить на любые вопросы.

Программируйте с удовольствием!

Автор: JetBrains

Источник

Поделиться

* - обязательные к заполнению поля