Интерфейс
Сделали новые темы интерфейса и возможность создавать их самостоятельно.
Java
- Появилась поддержка функции 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
- В новых Gradle-проектах действия сборки и запуска делегируются Gradle по умолчанию.
- Делегирование сборки и запуска можно настроить отдельно для каждого Gradle-проекта.
- Когда сборка делегируется Gradle, работает функция HotSwap.
- Встроенная версия Gradle обновилась до 4.10.3.
- С помощью инструмента запуска тестов Gradle теперь можно запускать параметризованные тесты JUnit.
- IDE правильно выбирает, какую тестовую задачу Gradle запускать из редактора.
- В окне Gradle можно просмотреть структуру многомодульного проекта без необходимости запускать команду gradle projects.
Maven
- Когда сборка делегируется Maven, работает функция HotSwap.
- Теперь IntelliJ IDEA работает только с Maven 3.3.9. Maven 2 больше не поддерживается.
- Все выходные данные сборки Maven теперь отображаются в одном месте — в окне инструментов Build.
- Диаграммы Maven показывают конфликтующие зависимости и дубликаты. Кроме того, можно отдельно просмотреть соседей выбранного узла или пути к ним, а также отключить рамки на диаграмме.
Системы контроля версий
- Действия 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
- Чтобы скопировать текст в пустое окно Diff, можно перетащить в него файл.
- Теперь в Diff Viewer можно просматривать различия не только по словам, но и по символам.
- Новая опция Swap Sides позволяет выбрать, какой файл в Diff Viewer будет отображаться слева, а какой — справа.
Recent Locations
В новом всплывающем окне Recent Locations (Cmd-Shift-E / Ctrl-Shift-E) можно просмотреть все места в коде, которые вы недавно посещали или редактировали.
Отладчик JVM
- Вычислитель выражений отладчика теперь поддерживает операторы synchronized, выражения assert и операторы switch.
- Во время отладки Java-проекта можно выйти из текущего блока, используя новое действие Step Out of the block.
- Теперь вы можете вызывать действие перехода к курсору с помощью мыши — кликните по нужному номеру строки в режиме отладки.
Редактор
- Работает экспорт настроек стиля кода в 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-контейнера.
Плагин 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
Комментарии (19)
borv
09.04.2019 21:55Спасибо! Как дела в Scala plugin с "good code is red"? Есть ли надежда увидеть поддержку whitebox прежде чем их выпилят в Scala3?
moscas Автор
10.04.2019 12:21Копипейст от ребят из скала-плагигна:
Про улучшения в последнем релизе:
blog.jetbrains.com/scala/#highlighting
Whitebox макросы в общем случае поддержать не получится, но мы собираемся добавить многие макросы из shapeless в ближайшее время. Для менее популярных макросов можно написать поддержку самостоятельно, как отдельный плагин. Мы с радостью поможем в гиттере
gitter.im/JetBrains/intellij-scala
panchmp
09.04.2019 23:16а можно пример как дебажить ява приложение в докере
кроме варианта как создать
ENTRYPOINT ["java","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005", ...
и дебажить через remoute debug ничего не нашелmoscas Автор
10.04.2019 17:32Можно добавить Launch Docker before run task и заранее перед этим ремоутным дебагом застартовать нужный сервис в композе или контейнер
Revertis
09.04.2019 23:40В IntelliJ IDEA 2019.1 попали все нововведения Android Studio 3.3.
Ммм, так и чем теперь лучше пользоваться? :)
Или просто подождать, пока в какую-нибудь Android Studio 3.5 попадут все нововведения из IntelliJ IDEA 2019.1?Prototik
10.04.2019 02:38Всё, что касается Android развивается в Android Studio, и только потом падает в IDEA.
ChPr
10.04.2019 10:26Android 3.5 Canary уже основана на 2019.1
developer.android.com/studio/preview/features
ivanych
10.04.2019 18:28Что на счёт плагина golang в чем-нибудь ещё, кроме Idea ultimate? Хочу использовать его в PyCharm, а он не хочет.
moscas Автор
10.04.2019 19:00Пока не ожидается
ivanych
10.04.2019 20:20Есть какая-то техническая сложность или это политика? У меня платная версия PyCharm, покупать ещё Goland?
moscas Автор
10.04.2019 20:58Это не связано с техничечскими сложностями. Если хочется всё иметь в одной IDE, подходит Idea Ultimate. Если хочется именно в PyCharm иметь Go, то единсвтенный вариант, который потенциально возможен: платный Go-плагин по цене GoLand.
DouTro
10.04.2019 21:30А я уже давно мечтаю об отображении двумерных массивов как DataFrame в PyCharm. Жутко намучаться можно, если матрица больше чем 10х10.
И люди ищут на stack, на форуме самой Intellij задают вопросы(предлагают только мелкие хаки с функцией для отображения, но для больших массивов все равно не подходит). Есть какие-то причины не вводить такой функционал? Или спрос слишком низок?moscas Автор
11.04.2019 18:32У нас есть SciView tool window в PyCharm Professional www.jetbrains.com/pycharm/features/scientific_tools.html
Он умеет отображать двумерные numpy arrays наряду с pandas data frames. Обычно когда хотят численные массивы, то хотят или numpy или pandas. Если хочется других типов данных, то можно завести feature request
ifqthenp
Поставил эту версию, но откатился обратно на 2018.3.4, там какой-то баг с Gradle, не распознает таски, ключевые слова… Надеюсь в следующем году починят.
moscas Автор
Мы что-то не в курсе. Можете поподробней? Пример воспроизведения, скажем, показать :)
ifqthenp
Для этого мне надо снова установить последнюю версию, потратить время, потом снова откатиться на старую. Я и так деньги вам плачу. В следующий раз обязательно сделаю скриншоты хотя бы.
moscas Автор
Хорошо. Вообще, сообщать о багах – иногда единственный способ сделать так, чтобы их починили.
Borz
зачем? обе версии прекрасно живут рядом — хотите одну запускайте, хотите другую.
Иногда при "не распознаёт таски" и прочих "багах" помогает инвалидация кеша у IDEA