IntelliJ IDEA 2019.1: Кастомизация тем интерфейса, switch-выражения из Java 12, отладка внутри Docker-контейнеров

в 14:13, , рубрики: gradle, groovy, intellij idea, java, jetbrains, kotlin, maven, scala, Блог компании JetBrains, Программирование, Разработка под android

Это – обзор нового в IntelliJ IDEA 2019.1. Ссылки в заголовках ведут на соотвествующие разделы на сайте, где всё описано детально, но на английском.

image

Интерфейс


Сделали новые темы интерфейса и возможность создавать их самостоятельно.

IntelliJ IDEA 2019.1: Кастомизация тем интерфейса, switch-выражения из Java 12, отладка внутри Docker-контейнеров - 2

Java


IntelliJ IDEA 2019.1: Кастомизация тем интерфейса, switch-выражения из Java 12, отладка внутри Docker-контейнеров - 3

  • Появилась поддержка функции Switch Expressions из Java 12 Preview: JEP 325. Подробнее здесь.
  • Рефакторинг Extract Variable сохраняет семантику лучше, чем раньше.
  • В тернарных выражениях IDE подсвечивает только то условие, в котором обнаружено нарушение допустимости значения null.
  • IDE отслеживает значения операций умножения, вычисления остатка и сдвига вправо.
  • Появилась возможность настроить имена переменных для автоматически генерируемых блоков try/catch.
  • IDE теперь автоматически выводит чистоту конструкторов из источников.
  • Можно перейти из трассировки стэка к точному месту ошибки на строке.
  • IDE научилась находить дубликаты веток switch, их можно объединить с помощью быстрого исправления.
  • Можно перемещать switch-выражения и catch-блоки вверх/вниз с помощью действия Move Statement Up/Down.
  • Появилась возможность импортировать и экспортировать шаблоны Structural Search в буфер обмена и из него.

Gradle


IntelliJ IDEA 2019.1: Кастомизация тем интерфейса, switch-выражения из Java 12, отладка внутри Docker-контейнеров - 4

  • В новых Gradle-проектах действия сборки и запуска делегируются Gradle по умолчанию.
  • Делегирование сборки и запуска можно настроить отдельно для каждого Gradle-проекта.
  • Когда сборка делегируется Gradle, работает функция HotSwap.
  • Встроенная версия Gradle обновилась до 4.10.3.
  • С помощью инструмента запуска тестов Gradle теперь можно запускать параметризованные тесты JUnit.
  • IDE правильно выбирает, какую тестовую задачу Gradle запускать из редактора.
  • В окне Gradle можно просмотреть структуру многомодульного проекта без необходимости запускать команду gradle projects.

Maven


IntelliJ IDEA 2019.1: Кастомизация тем интерфейса, switch-выражения из Java 12, отладка внутри Docker-контейнеров - 5

  • Когда сборка делегируется Maven, работает функция HotSwap.
  • Теперь IntelliJ IDEA работает только с Maven 3.3.9. Maven 2 больше не поддерживается.
  • Все выходные данные сборки Maven теперь отображаются в одном месте — в окне инструментов Build.
  • Диаграммы Maven показывают конфликтующие зависимости и дубликаты. Кроме того, можно отдельно просмотреть соседей выбранного узла или пути к ним, а также отключить рамки на диаграмме.

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


IntelliJ IDEA 2019.1: Кастомизация тем интерфейса, switch-выражения из Java 12, отладка внутри Docker-контейнеров - 6

  • Действия Fixup и Squash теперь есть в контекстном меню на вкладке VCS Log, так что вы можете
    быстро создавать коммиты с сообщениями fixup! и squash!
  • Можно черипикнуть файлы из VCS-лога в контектсном меню.
  • В окне Branches теперь можно увидеть наличие входящих и исходящих коммитов для отдельных веток, если включена опция Mark Branches that have incoming/outgoing commits in the Branches popup.
  • Новый узел Recently Deleted на вкладке Shelf показывает все недавно удаленные отложенные файлы и дает возможность их восстановить.
  • Для аннотаций VCS есть режим, в котором отображаются только инициалы автора.
  • Выполняя частичный коммит можно выделить все фрагменты кода и снять с них выделение одним действием: используйте новый флажок Uncheck all на панели Diff диалогового окна Commit Changes.
  • На панели Project файлы и папки, игнорируемые с использованием Git ignore, выделяются оливковым цветом.

Diff Viewer


IntelliJ IDEA 2019.1: Кастомизация тем интерфейса, switch-выражения из Java 12, отладка внутри Docker-контейнеров - 7

  • Чтобы скопировать текст в пустое окно Diff, можно перетащить в него файл.
  • Теперь в Diff Viewer можно просматривать различия не только по словам, но и по символам.
  • Новая опция Swap Sides позволяет выбрать, какой файл в Diff Viewer будет отображаться слева, а какой — справа.

Recent Locations


В новом всплывающем окне Recent Locations (Cmd-Shift-E / Ctrl-Shift-E) можно просмотреть все места в коде, которые вы недавно посещали или редактировали.

IntelliJ IDEA 2019.1: Кастомизация тем интерфейса, switch-выражения из Java 12, отладка внутри Docker-контейнеров - 8

Отладчик JVM


IntelliJ IDEA 2019.1: Кастомизация тем интерфейса, switch-выражения из Java 12, отладка внутри Docker-контейнеров - 9

  • Вычислитель выражений отладчика теперь поддерживает операторы synchronized, выражения assert и операторы switch.
  • Во время отладки Java-проекта можно выйти из текущего блока, используя новое действие Step Out of the block.
  • Теперь вы можете вызывать действие перехода к курсору с помощью мыши — кликните по нужному номеру строки в режиме отладки.

Редактор


IntelliJ IDEA 2019.1: Кастомизация тем интерфейса, switch-выражения из Java 12, отладка внутри Docker-контейнеров - 10

  • Работает экспорт настроек стиля кода в JSON-файл. Экспортированные настройки можно использовать для интеграции с внешними инструментами.
  • Теперь можно включить soft-wraps для конкретного типа файла.
  • При первом использовании сочетания клавиш Ctrl+Y в Windows вы можете назначить его для действия Delete Line или Redo в диалоге Keymap Configuration.
  • Добавили раскладку Sublime Text.
  • Раскладка VSCode сделана в виде плагина VSCode Text keymap.

Scala

  • Подсветка ошибок, неявные подсказки и действия GoTo / Quick Definition / Quick Documentation теперь работают в for-генераторах.
  • Действие Find Usages можно вызывать для неявных определений, методов apply/unapply, методов for-генераторов и типов Single Abstract Method (SAM).
  • Можно декомпилировать скомпилированные Scala-файлы в Java.
  • Появилась возможность выбрать версию форматтера Scalafmt.
  • Сделали плагин для формата HOCON.
  • Улучшена подсветка ошибок: частичное объединение, подсветка конструкторов, плагин для компилятора better-monadic-for (функция implicit0), kind-projector (полиморфные лямбды на уровне значений), simulacrum (конструкторы типов с большей арностью) и другое.

Groovy

  • Поддержка Java-синтаксиса лямбда-выражений из Groovy 3.0.
  • Intention actions и инспекции для Groovy работают внутри тела лямбды.
  • Отладка Java-лямбд.

Kotlin

  • Встроенный Kotlin- плагин обновился до версии 1.3.21.
  • Можно создать метод main без параметров с помощью live templates.
  • IDE предлагает добавить суффикс Async к функции, возвращающей Deferred.
  • Еще один intention поможет преобразовать SAM в виде лямбды в анонимный объект.
  • Усовершенствованы преобразования строк.

JavaScript и Typescript

  • Новые рефакторинги и intention actions для деструктурирования JavaScript и TypeScript.
  • Новое действие для замены функции, возвращающей Promise, на асинхронную функцию с async/await.
  • Обновленная документация для CSS и HTML.
  • Усовершенствованная консоль в отладчике JavaScript и Node.js.

Docker


Теперь можно отлаживать Java-приложения, запущенные внутри Docker-контейнера.

IntelliJ IDEA 2019.1: Кастомизация тем интерфейса, switch-выражения из Java 12, отладка внутри Docker-контейнеров - 11

Плагин Kubernetes

  • Добавлена возможность загружать спецификации ресурсов из внешних источников.
  • Рефакторинг Rename для чартов можно применять в файлах ресурсов Helm.

Spring Cloud Stream

  • Поддержали редактирование проектов в Spring Cloud Stream: подсветка синтаксиса, автодополнение кода, инспекции и быстрые исправления.
  • Автодополнение имен привязок работает для значений и ссылок в файлах application.properties и application.yml.
  • Переключаться между обработчиками связанных сообщений consumers и producers можно по значку в поле редактора.

Другое

  • В IntelliJ IDEA 2019.1 попали все нововведения Android Studio 3.3. Подробнее.
  • Ранний доступ к новому JetBrains Runtime 11. Пока что IntelliJ IDEA доступна как с JetBrains Runtime 8, так и с JetBrains Runtime 11.
  • Поддержали баз данных Greenplum, Vertica и Apache Hive. В следующем апдейте появится Snowflake.
  • Новые настройки keep-alive и auto-disconnect для источников данных.
  • Поддержали фреймворк Eclipse Concierge OSGi.
  • Появилась возможность поиска настроек плагинов. Даже если плагин установлен вручную, настройки будут отображаться в результатах поиска.

Список важных улучшений получился довольно большим, но в работе над всеми этими классными фичами мы не забывали о качестве и стабильности — продолжаем исправлять ошибки, избавляться от проблем с производительностью и делать IDE еще удобнее.

Полный список можно найти в release notes. Мы благодарим всех, кто голосует за задачи в трекере, отправляет предложения по улучшению, делится мыслями в Твиттере и в комментариях на Хабре. Ваши отзывы помогают нам делать IntelliJ IDEA лучше, продолжайте в том же духе!

Скачать IntelliJ IDEA 2019.1

JetBrains

Автор: Максим Соболевский

Источник

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js