company_banner

IntelliJ IDEA 2021.1

Автор оригинала: Irina Maryasova
  • Перевод

Привет, Хабр!

Сегодня у нас особый день: состоялся первый релиз этого года — IntelliJ IDEA 2021.1! Обновление уже доступно на нашем сайте и в Toolbox App. Кроме того, можно обновиться из самой IDE или с помощью snap-пакета, если вы являетесь пользователем Ubuntu.

В этой версии введено множество новых функций и устранены некоторые недочеты. Теперь вы можете работать с Java-проектами в WSL 2, использовать интегрированный Space, устраивать видеозвонки при совместной работе над кодом с сервисом Code With Me и запускать код на SSH хостах и в Docker-контейнерах. А еще мы добавили базовую поддержку Java 16, ряд новых полезных инспекций и возможность предпросмотра HTML-файлов прямо из IDE. И это далеко не все! Изменения затронули практически каждый раздел IDE.

Что ж, без лишних слов перейдем к видеообзору самых заметных изменений.

Подробное описание всех новых фич вы найдете на странице «Что нового». Обязательно туда загляните!

Ниже перечислены основные нововведения версии 2021.1.

Главные изменения

  • Наша новая платформа для разработки и командного взаимодействия Space теперь интегрирована с IntelliJ IDEA. После того как вы вошли в свою организацию в JetBrains Space, вы сможете просматривать и клонировать репозитории проектов, ревьюить код своих коллег и писать скрипты автоматизации Space.

  • Появилась поддержка WSL 2 для Java-проектов. 

  • Сервис для совместной разработки и парного программирования Code With Me теперь доступен из коробки, а кроме того, в нем появилась поддержка видео- и аудиозвонков. 

  • Новая функция Run Targets позволяет запускать, тестировать, профилировать и отлаживать приложения в Docker-контейнерах и на удаленных компьютерах. 

Взаимодействие с IDE

  • В IDE добавлен встроенный браузер для превью HTML-файлов. Превью обновляется в реальном времени при редактировании HTML-кода или связанных файлов CSS и JavaScript. 

  • Внешние зависимости можно включать в область поиска и исключать из нее.

  • Мы расставили лейблы на элементах пользовательского интерфейса и полях редактора, и теперь они корректно обрабатываются программами чтения с экрана

  • IDE автоматически включит высококонтрастную тему при первом запуске, если в Windows выбран режим высокой контрастности. 

  • Работая в Windows, теперь вы можете открывать недавние проекты, кликнув правой кнопкой мыши по значку IntelliJ IDEA на панели задач или в меню Пуск.

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

  • В этом релизе представлены обновления для работы с пул-реквестами: ускорился процесс их создания, появилась возможность быстро открывать diff в редакторе и добавилась поддержка шаблонов пул-реквестов. 

  • Появилась поддержка шаблонов Git-коммитов, и в них можно вносить любую информацию, которая должна быть в сообщении коммита. 

  • Теперь можно просто выбрать профиль инспекций кода перед коммитом. Нажмите на значок шестеренки, чтобы открыть параметры коммита, отметьте галочкой Analyze code, кликните Choose profile и выберите нужный профиль.

  • С помощью нового действия рядом с Show diff в диалоге Compare with branch можно получить файл из другой ветки. 

  • Новое действие Save to Shelf позволяет скопировать изменения на вкладку Shelf, сохранив их при этом в локальной истории.

  • Perforce-плагин теперь полностью совместим с IntelliJ IDEA Community Edition и поставляется вместе с IDE. 

Редактор

  • Благодаря новым настройкам типографики можно регулировать толщину обычных и жирных шрифтов в меню Preferences / Settings | Editor | Fonts.

  • Когда в редакторе открыто несколько вкладок в режиме Split, любую из них можно развернуть двойным кликом. 

  • IDE поддерживает выражения JSONPath с синтаксисом Goessner и Jayway. Теперь через меню Edit | Find можно вызывать новое действие Evaluate JSONPath Expression для написания и тестирования JSONPath-запросов.

  • IntelliJ IDEA поддерживает формат JSON Lines и распознает файлы с расширениями .jsonl, .jslines, .ldjson и .ndjson.

Профилировщик

  • Мы переработали интерфейс профилировщика и добавили два новых действия, которые вызываются щелчком правой кнопки мыши по запущенному приложению. Действие Capture Memory Snapshot позволяет делать HPROF-снэпшоты ваших приложений, а CPU and Memory Live Charts открывает вкладку с инструментами для отслеживания и визуализации потребления ресурсов.

Java

  • В IntelliJ IDEA появилась базовая поддержка Java 16, вышедшей в марте этого года.

  • Мы добавили новые инспекции, в том числе и для анализа потока данных.

  • Появились новые настройки, благодаря которым методы Builder, вызываемые по цепочке, стало проще читать.

Kotlin

  • Анализ кода обнаруживает ошибки и показывает предупреждения намного быстрее. 

  • Если вы пользуетесь функциями, которые требуют параметров типов, в IDE есть функция добавления правильного параметра типа в предшествующий код. 

  • Диаграммы классов UML теперь работают для Kotlin-кода, компилируемого под JVM.

  • Собственный инструмент анализа покрытия кода в IntelliJ IDEA теперь полностью поддерживает Kotlin во встроенных функциях и корутинах. 

  • Отладчик IntelliJ IDEA вычисляет  get-выражения в Kotlin и показывает их на вкладке Variables. 

  • Мы переработали интерфейс рефакторинга Change Signature: там появился новый флажок, и теперь добавленный параметр можно сделать параметром по умолчанию.

JavaScript

  • Исправлять ошибки в коде с помощью Stylelint стало проще: просто наведите указатель мыши на проблемное место в файле или поместите туда курсор и нажмите Alt+Enter, а затем выберите Stylelint: Fix current file.

  • Документация MDN для JavaScript API, HTML и CSS теперь встроена в IDE, что значительно ускоряет работу с документами.

  • Появилась возможность проверять специфичность селекторов при работе с файлами стилей.

Scala

  • Подсказки о несоответствии типа (Type Diff) теперь поддерживают род.

  • В новой версии для Scala доступно автодополнение на основе алгоритмов машинного обучения.

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

  • Плагин sbt-idea позволяет разрабатывать плагины для платформы IntelliJ с использованием Scala и sbt. В мастере проектов появился новый шаблон, который делает этот процесс еще проще (функциональность зависит от Plugin DevKit).

Инструменты для работы с базами данных

  • Мы добавили интерфейс для изменения прав доступа при редактировании объектов. Это обновление доступно для PostgreSQL, Redshift, Greenplum, MySQL, MariaDB, DB2, SQL Server и Sybase.

  • Добавлены шаблоны Live Templates, с помощью которых можно генерировать простые операторы прямо из проводника баз данных.

  • Упростилась навигация: действие Go to declaration (Ctrl/Cmd+B), вызванное для объекта в SQL, теперь открывает DDL, а не проводник базы данных.

  • Мы улучшили сортировку данных.

  • Появилась возможность копировать, вырезать и вставлять источники данных при помощи всем известных сочетаний клавиш Ctrl/Cmd+C/V/X.

  • Теперь вы можете редактировать данные в коллекциях MongoDB. Также доступен предпросмотр запросов.

Инструменты сборки

  • Мы вернули возможность менять настройки при импорте Maven-проектов.

Фреймворки и технологии

  • Новая инспекция подсвечивает случаи использования протокола http:// и предлагает их заменить на https://.

  • Обновился HTTP-клиент. Можно свернуть возвращенный HTML, JSON или XML, скопировать тело ответа, скрыть номера строк, выбрать формат отображения и быстро прокрутить ответ вверх или вниз.

  • Если для протоколов https:// вы используете SSL-аутентификацию клиентов, настроить SSL можно в HTTP-клиенте.

  • Чтобы создать проект Spring, Micronaut, Quarkus или MicroProfile, достаточно выполнить всего два шага. Всю важную информацию можно ввести на первом экране обновленного мастера, а на втором — задать настройки, зависящие от фреймворка.

  • В поле редактора для проектов, включающих сущности JPA, появились обновленные и интерактивные значки. Мы также улучшили поддержку JPA для Kotlin и многомодульных проектов.

  • В проектах Jakarta EE 9 для написания и выполнения запросов JPQL теперь можно использовать JPA-консоль.

  • Хорошая новость для тех, кто пользуется светлой темой: у UML-диаграмм появилась новая цветовая схема.

  • Swagger поддерживает спецификации со ссылками на внешние файлы ($ref) и больше узлов на панели Structure для файлов спецификаций.

  • Мы добавили экспериментальный инструмент для обнаружения DOM-элементов в веб-приложениях. Его можно открыть в меню Tools | Generate Selenium Page Object.

Другие изменения

  • В IntelliJ IDEA Community Edition встроена поддержка общих индексов, находящихся в свободном доступе.

  • IntelliJ IDEA поддерживает все нововведения Android Studio 4.1.1.

  • В IntelliJ IDEA теперь можно импортировать настройки фасетов OSGI из bnd-maven-plugin.

Впечатляющий список, не правда ли? Мы надеемся, что все эти новые возможности и исправления вам понравятся и повысят эффективность вашей работы.

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

JetBrains
Делаем эффективные инструменты для разработчиков

Комментарии 28

    +7
    Спасибо разработчикам этой прекрасной IDE за то, что позволяют нам экономить время
      +2

      И опять ничего о Wayland. Когда же Idea будет Wayland native? Единственная программа, требующая xwayland

        +1

        Видимо не раньше чем ее перепишут на Jetpack Compose.

          0
          It's important functionality and we're going to start working on it as soon as we complete some urgent tasks. Native Wayland support should be based on the latest OpenJDK codebase (JDK17), so currently we're moving our JetBrains runtime based on OpenJDK11 to the OpenJDK17 source base. (с)

          Надеюсь еще не долго осталось

        +3
        А зачем стиль splash-screen опять так поменяли? ну чет ваще как-то по детски выглядеть стало =(

        Ну и чтоб 2 раза не вставать. А сделайте галерею сплеш-скринов идеи разных версий и попросите пользователей проголосовать за лучший?
          +3

          После того как я начинаю думать, что более аляповатого splash сделать нельзя, ребята из JB быстро убеждают меня в обратном))

          0

          Лучше уж splash, чем в очередной раз испорченные иконки.


          Версии должны быть в истории этого файла: idea_community_logo@2x.png
          Там пока по каким-то причинам последняя версия 2021.1 EAP, но со временем должны обновить до актуальной.

          +1
          У меня после обновления, не работают импорты. Весь проект просто светится красным. Еще до обеда работал над проектом. А после обновления копец полный
            +1

            Если проект на Gradle — то я тоже с этим столкнулся. Помогло задизаблить Android плагин (и рестартонуть идею). IrinaMaryasova — передайте, пожалуйста, разработчикам.

              +2

              У меня на мавен. Мне помог invalidate cach и рестарт. Но при следующем открытии проекта повторилось.

                0

                Спасибо за репорт! Мы получили несколько похожих жалоб. К сожалению, пока не понятно в чем причина. Может быть что-то с индексами или обновленной проектной моделью. Было бы очень здорово получить idea.log лог файл (Help | Show Log in… экшен) с дебаг информацией (после добавления "com.intellij.openapi.vfs.newvfs.persistent.FSRecord" строчки в Help | Diagnostic Tools | Debug Log Settings… диалоге) (идеально, после рестарта и воспроизведения проблемы). Отправить можно, например, через форму или в YouTrack'е Спасибо большое!!

                  0

                  Мне помогло mvn dependency:purge-local-repository, но после этого пропали репы в настройках идеи (build tools / maven / repositories), хотя все работает норм О_о

                +1

                Попробуйте сделать File | Invalidate Caches / Restart, у меня и со старыми версиями иногда такое возникало.

                  0
                  invalidate caches and restart попробуйте
                  +1
                  За пару дней уже отправил два автоматических краш-репорта.
                  Раз в сутки приходиться делать инвалидацию кеша, т.к. все инспекции отваливаются и перестают работать.
                  Ну и тормоза. 15 минут на индексирование, при каждом чихе.
                  Хороший релиз качественный. Вот думаю перейти на предыдущий релиз, он чуть постабильнее работал. :-)
                    0
                    На шторме 2020.3.3 то же самое с кешами, да и на предыдущих версиях было, особенно часто замечаю такое когда делаешь работу с файлами, удаление, перемещение, восстановление.
                    Например удалил папку node_modules и установил модули заново — пока не перезапустишь ide будет ругаться на импорты
                      0
                      Перешел на предыдущий релиз, т.к. на текущем работать не возможно. :-(
                      +3
                      Мы расставили лейблы на элементах пользовательского интерфейса и полях редактора, и теперь они корректно обрабатываются программами чтения с экрана. 

                      Спасибо, что не забываете!

                        0
                        Когда подключаюсь к проекту через Code With Me, то мои плагины не работают


                        Так и должно быть?
                          0
                          Три раза за день слетели индексы, как то связано с переносом/переименованием файлов. Третий раз индексация перешла в бесконечный цикл так что пришлось сносить и устанавливать предыдущую версию. Еще есть какая то деградация с перформансом в junit/mockito тестах, автоподсказка тормозит и влияет на процесс ввода кода.

                          Как по мне продукт сырой, для ultimate версии за такие огромные цены вообще стыдно такое выкладывать.
                            –2

                            Чисто теоретически, если заменить в вашей ide java на rust, на сколько снизится потребление памяти и увеличится скорость работы?

                              +3
                              Чисто теоретически, сколько времени займет переписывание такого объема кода с одного языка на другой, с учетом поддержки версий на текущем языке?
                                –1
                                для одного туловища, годы, для огромной кампании, зависит от того сколько тушек она на это бросит…
                                  0
                                  «Тушки» могут и не захотеть заниматься бесполезной хнёй и уйдут пилить жабу в другую компанию.

                                  P.S. JFYI, «кампания» ≠ «компания»
                              0
                              И у меня не работают импорты после этого обновления… Помогла инвалидация кэша.
                                0
                                Наконец-таки Jump Lists появились!

                                Почему режим LightEdit не регистрируется в проводнике в качестве одной из оцпий для открытия файлов? Сейчас его можно лишь запустить из командной строки, т.к. требуется передача аргумента. С таким подходом им пользоваться никто не будет. Как минимум нужен отдельный файл, который можно выбрать в проводнике через «Открыть с помощью».

                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                Самое читаемое