- PVSM.RU - https://www.pvsm.ru -

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

Привет!

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

Что нового в 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

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

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

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

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

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

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

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

Автор: JetBrains

Источник [6]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/java/260727

Ссылки в тексте:

[1] IntelliJ IDEA 2017.2: https://jetbrains.com/idea/whatsnew/?landing

[2] сайта JetBrains: https://www.jetbrains.com/idea/download/

[3] Toolbox App: https://www.jetbrains.com/toolbox/app/

[4] другую операцию: https://www.jetbrains.com/help/idea/2017.2/temporarily-ignoring-unused-modules.html

[5] What’s New: http://jetbrains.com/idea/whatsnew/

[6] Источник: https://habrahabr.ru/post/333648/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best