Вышел второй мажорный релиз PhpStorm в этом году. Под катом подробный разбор всех изменений и новых возможностей с кучей гифок.

Скачать PhpStorm можно на сайте или через приложение Toolbox App.

Как и раньше, для тех, кто занимается опенсорс-проектами, а также для студентов и преподавателей есть бесплатные лицензии. Также предлагаем скидку для стартапов.

PHP


IDE


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

Code With Me


PHP



Поддержка дженериков


Дженерики остаются одной из самых желаемых фич PHP, судя по результатам опроса JetBrains Developer Ecosystem. И тем не менее на данный момент планов их реализовать на уровне языка нет.

В этом релизе мы добавили поддержку нескольких основных сценариев использования дженериков через PHPDoc-аннотации. Этот подход был популяризирован инструментами статического анализа Psalm и PHPStan.

Коллекции и template


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

Вот простейшая реализация коллекции с помощью тега @template:



Для коллекций Doctrine (doctrine/collections) в простых сценариях теперь работает автодополнение:



2021.2 не поддерживает автодополнение элементов в цикле foreach для интерфейса Collection. Этот сценарий уже реализован, но появится в одном из следующих минорных обновлений. Можно подписаться на тикет WI-61438, чтобы получать уведомления.

Поддерживаются только дженерики первого уровня
Это значит, что PhpStorm будет выводить типы и делать автодополнение только для тегов вида Base<T> или Base<T1, T2>.

А вот вложенные дженерики вида Base<Child<T>> не поддерживаются, и, скорее всего, не будут поддерживаться в будущем из-за накладных расходов на производительность.

@class-string<T>


Еще одно применение дженериков — фабрики. Они часто принимают строку с именем класса в качестве аргумента и возвращают объект.

Если вы аннотируете параметр тегом @class-string<T>, то PhpStorm предоставит вам соответствующий вывод типа:



Вообще, если вы используете оператор new для инстанцирования объекта из параметра, то можете не добавлять аннотацию @class-string — все будет работать и без нее:



Что дальше?


Планируем постепенно покрыть еще несколько важных сценариев использования дженериков. Например, вот эти:

  • WI-56034 Support the use of generics on classes
  • WI-60894 Support parameter wrapping
  • WI-61497 Generics template @implements should inherit annotations from the interface
  • WI-60895 Infer generic type from constructor

Основной тикет по дженерикам WI-47158 мы закроем, а работу продолжим уже по каждому конкретному кейсу в рамках отдельных тикетах.

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

PHP 8.1


Выход новой версии интерпретатора ожидается в конце ноября. А мы по традиции начинаем выкатывать поддержку пораньше.

Одной из самых значимых и ожидаемых фич PHP 8.1, конечно же, будут перечисления (enum).

Перечисления


Объявить перечисление можно ключевыми словами enum и case. Поскольку фича новая и синтаксис может запомниться не сразу, PhpStorm поможет вам автодополнением и подсветит ошибки синтаксиса языка.



Перечисления можно использовать в объявлениях типов (тайпхинтах) параметров, возвращаемых значений и свойств класса.

PhpStorm отследит любые ошибки, связанные с использованием типов, и подсветит их в редакторе.



Новые значения в перечислениях (cases) можно создавать с помощью специального квик-фикса: переставьте указатель туда, куда хотите добавить использование нового кейса, введите его, а затем нажмите Alt+Enter и выберите Add enum case.



Backed enums


По умолчанию кейсы в перечислениях — это простые синглтон-объекты. Но если вы хотите сохранить их в базе данных, то можете определить для них скалярные значения.

Перечисления со скалярными эквивалентами для кейсов, называются backed enums.



Если вы объявили стандартное перечисление (unit enum) и затем решили сделать из него backed enum, то можно нажать Alt+Enter на подчеркнутых кейсах и добавить декларацию типа для всего перечисления.



Кстати, перечисление можно назвать Enum, потому что оно определено как контекстное ключевое слово. И поэтому, если вы использовали какие-либо пакеты с реализацией перечислений через классы, то конфликтов не возникнет — можно переключиться на PHP 8.1 и потом мигрировать.

В перечислениях можно объявлять свои методы, но нельзя объявлять конструкторы, деструкторы и магические методы (кроме __call, __callStatic, и __invoke). Также нельзя объявлять свойства и динамические свойства. Все эти нюансы PhpStorm проверит и, если что не так, подсветит ошибки.



Это все по перечислениям. Будем рады вашим идеям по возможным улучшениям!


Поддержка синтаксиса аrray shape в PHPDoc


Иногда может быть удобнее работать с данными в структурированных ассоциативных массивах. Однако при этом в PhpStorm переставала работать подсветка и автодополнение для ключей и значений.

В этом релизе добавили поддержку PHPDoc-синтаксиса для описания структуры массивов. Это значит, что для ключей будет автодополнение, а для значений определен их тип.



Поддержка работает только для однострочных определений. Многострочные и вложенные определения array shape не поддерживаются.

В качестве альтернативы можно использовать атрибут #[ArrayShape]. Доступен начиная с версии PhpStorm 2020.3 и среди его преимуществ: более красивая подсветка синтаксиса, поддержка многострочности, а также возможность использовать константы для описания структуры.



Улучшенное форматирование кода


Долгое время в PhpStorm были мелкие недоработки по части форматирования. В большинстве случаев оно работало как надо, но недоработки порой могли очень раздражать.

В PhpStorm 2021.2 исправили проблемы с форматированием — теперь оно всегда работает правильно и предсказуемо!

Чтобы отформатировать код, нажмите Ctrl+Alt+L. Вы можете применить форматирование только к выделенному коду либо ко всему файлу сразу.



Все настройки стиля кода доступны в разделе Settings/Preferences | Editor | Code Style | PHP.

Некоторые функции PhpStorm было сложно использовать из-за проблем с форматированием. Например, были проблемы при разделении списков на отдельные строки / объединении их в одну строку. Теперь все будет работать как надо.

Для массивов, списков аргументов и списков параметров теперь можно нажать Alt+Enter и выбрать опцию Split comma-separated values into multiple lines:



Вы можете выбрать способ выравнивания элементов списка. Например, для параметров с тайпхинтами можно выровнять типы и имена по столбцам:



Если вы обнаружите косяк с форматированием, который мы упустили, сразу создайте тикет в нашем баг-трекере.

Новые инспекции и квик-фиксы


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

Вот некоторые из них.

Условие можно заменить оператором `?->`


Эта проверка находит выражения, которые можно заменить nullsafe-оператором из PHP 8. Нажмите Alt+Enter, чтобы выполнить замену.



Использование константы из класса, в котором она определена


PhpStorm подсветит константы, которые читаются через дочерний класс или интерфейс, а не через тот, где они объявлены. Заменить имя сущности можно нажав Alt+Enter.



Избыточное условие в логическом выражении


Теперь PhpStorm будет проверять все части составных условий, чтобы выявить лишние.

Вот простой пример:



А вот менее очевидный:




Инспекции Refactoring opportunities


Добавили новую группу проверок в Settings/Preferences | Editor | Inspections.



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

Вот три примера.

Complex class should be refactored


Эта проверка находит раздутые классы полагаясь на три метрики: мера сцепленности класса (Tight Class Cohesion, TCC), сумма цикломатических сложностей для всех методов в классе (Weighted Method Count, WMC) и количество полей другого класса, к которым обращаются в данном классе (Access To Foreign Data, ATFD).



Когда PhpStorm обнаруживает раздутый класс, он предлагает извлечь методы в новый класс. Если исходный класс слишком велик, может потребоваться еще несколько итераций рефакторинга.

Complex function should be refactored


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

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



PhpStorm предлагает несколько блоков, которые можно извлечь в новый метод.

Method has Feature Envy of another class


Когда метод обращается к данным другого объекта чаще, чем к своим собственным данным, это признак Feature Envy.

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



В группе Refactoring opportunities есть еще несколько инспекций, их описания можно изучить в настройках.

Улучшение рефакторинга Extract Method


Extract Method доступен в PhpStorm с 2011 года и является одним из самых используемых рефакторингов.

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

Решение: переместить часть кода в новый метод и заменить старый код вызовом метода.

Чтобы использовать этот рефакторинг, выделите фрагмент кода и нажмите Cmd+Alt+M / Ctrl+Alt+M.

Теперь давайте рассмотрим улучшения Extract method в PhpStorm 2021.2.

Рефакторинг для дублирующегося кода


Инспекция Duplicated code fragment позволяет находить повторяющиеся фрагменты кода.

Она была доступна и ранее, но теперь добавили квик-фикс для рефакторинга такого кода.

Инспекция подсветит только первую найденную строку. Поставьте на нее курсор, нажмите Alt+Enter и вызовите Extract Method from duplicate code.



Все повторяющиеся фрагменты будут заменены вызовом нового метода.

Обнаружение дубликатов во время рефакторинга


PhpStorm находит более мелкие дублирующиеся куски в текущем скоупе (метод, класс, файл) непосредственно во время рефакторинга. В версии 2021.2 этот процесс обнаружения стал намного умнее.

Выделите кусок кода и вызовите рефакторинг с помощью ⌘⌥M (Cmd+Alt+M / Ctrl+Alt+M). При обнаружении дубликатов, в нижней части диалога вы увидите чекбокс Review and replace duplicates.

Дубликаты будут найдены, даже если код не полностью идентичен, но схож по сути.



Новый умный селектор для фрагментов кода


Если попытаться вызвать Extract Method, не выделив ничего в редакторе, PhpStorm предложит список фрагментов кода, которые можно извлечь. Это могут быть простые выражения или целые блоки.



PhpStorm не выделит фрагмент кода, если его извлечение недопустимо или бессмысленно. В примере ниже выражение присваивания пропускается — вы можете извлечь только его правую часть.



Улучшение Expand selection


Вы наверняка уже знаете, что можно выделять фрагменты кода с помощью горячей клавиши Expand / Shrink selection ⌥+Up / ⌥+Down (Ctrl+W / Ctrl+Shift+W). Это один из способов быстро выделить код для рефакторинга.

В PhpStorm 2021.2 немного обновили это действие — теперь вы можете выбирать блоки, исключая фигурные скобки.



Автоматическое именование для извлеченных методов


PhpStorm 2021.2 пытается решить одну из самых сложных проблем в компьютерных науках — именование.

Когда вы используете рефакторинг Extract Method, PhpStorm предложит имя для нового метода.

Иногда это будет просто extracted, как и раньше, но в некоторых случаях PhpStorm предложит осмысленные имена на основе используемых переменных.



Если у блока кода есть комментарий, то PhpStorm учтет его при генерации имени для извлеченного метода.



IDE


Действия при сохранении кода


В PhpStorm и раньше позволял настроить действия, срабатывающие при нажатии Cmd+S / Ctrl+S. В этой версии переработали все существующие функции и собрали их в одном месте.

Теперь все опции доступны в разделе Preferences / Settings | Tools | Actions on Save. Перечисленные здесь действия можно включить в перечень действий, вызываемых при нажатии на Cmd+S / Ctrl+S.



Просто установите галочку рядом с названием нужных действий. Большинство действий будет активироваться при любом сохранении, включая автосохранение. Для действий типа "File Watcher" и "Upload to default server" вы можете выбрать один из двух вариантов активации.



Изменение иконки проекта


Добавили небольшую, но приятную фичу, которая поможет улучшить внешний вид проектов на экране приветствия.

Теперь стало проще установить иконки для проектов. Для этого щелкните правой кнопкой мыши на любом проекте и выберите в контекстном меню Choose project icon.



Улучшения scratch-файлов


С помощью scratch-файлов можно делать заметки и писать черновой код вне контекста проекта. Чтобы создать новый scratch-файл, нажмите Ctrl+Shift+N.

В это релизе теперь можно выделить нужный код, нажать Alt+Enter, и выбрать Create new scratch file from selection.



Кроме того, теперь PhpStorm автоматически удаляет пустые файлы, как только вы их закрываете, чтобы помочь вам соблюдать порядок.

Настраиваемый каталог для scratch-файлов


Вы можете настроить папку для хранения scratch-файлов. По умолчанию это каталог конфигурации IDE, но можно указать расшаренную по сети папку и использовать одни и те же scratch-файлы на разных компьютерах.

Для этого необходимо указать опцию командной строки:

-Didea.scratch.path/scratches=<path>

Улучшения в диалоге настроек


В настройках появился новый раздел Advanced Settings. Он содержит некоторые дополнительные параметры конфигурации. Большинство из них были перенесены из Registry.

Там же вы найдете некоторые новые параметры, например, возможность установить отступ слева в режиме Distraction-free mode.

Планируем переносить редко используемые настройки в этот раздел, чтобы сделать основные настройки чище.



Кроме того, теперь можно перемещаться вперед и назад между настройками с помощью стрелок в правом углу окна.



Автоматическая очистка папок с кэшем и логами


Раньше файлы логов и кэша PhpStorm со временем начинали занимать значительное количество места на жестком диске.

Теперь с каждым мажорным обновлением PhpStorm будет автоматически очищать все каталоги кэша и логов, которые не обновлялись более 180 дней.

Можно запустить очистку вручную из главного меню: Help | Delete Leftover IDE Directories....



Быстрый доступ к режиму Power Save


Не секрет, что иногда загрузка CPU при использовании PhpStorm может быть довольно высокой. В основном это происходит во время индексирования. Мы специально используем много ресурсов при индексировании, чтобы максимально ускорить его.

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

Переключиться в режим Power Save можно из статус-бара. Найдите значок батареи или щелкните правой кнопкой мыши в правом нижнем углу статус-бара, и вы найдете опцию Power Save в списке.

Если вы работаете без статус-бара, включить энергосберегающий режим можно в меню File | Power Save Mode.



При включении режима энергосбережения синтаксические ошибки все равно будут подсвечиваться и вам будут доступны все возможности редактора. Но индексирование и некоторые проверки кода, требующие больших затрат CPU, не будут выполняться.

Переключать режим очень легко — вы сможете возвращаться в обычный режим на пару минут, чтобы выполнить нужные проверки, а затем возвращаться в режим энергосбережения.

Если вы заметили какие-либо странности, связанные с загрузкой процессора, сделайте снэпшот процессора и поделитесь им с нашим саппортом.
Вот инструкция о том, как это сделать.

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


Единообразное поведение для Show Diff


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

Если вам удобнее отслеживать изменения в отдельном окне, вы можете вынести нужный файл в отдельное окно. При этом PhpStorm запомнит, что вы это сделали, и будет открывать последующие диффы в отдельном окне.


GPG-подписи для Git


Теперь можно подписывать Git-коммиты с помощью GPG. Настроить это можно в разделе Preferences/Settings | Version Control | Git.



Текстовый поиск по версиям Local History


Локальная история может выручить, если вы сделали последовательность изменений и не зафиксировали их в системе контроля версий.

Чтобы просмотреть локальную историю файла, щелкните правой кнопкой мыши по названию файла и выберите Local History | Show History.

Теперь в этом окне есть поле поиска, с помощью которого можно найти нужное изменение.



Запуск тестов перед коммитом


PhpStorm и раньше умел автоматически выполнять различные действия перед коммитом.

В PhpStorm 2021.2 появилась еще одна опция — Run Tests.

Нажмите на значок шестеренки в Commit view, выберите опцию Run Tests и выберите нужную Run-конфигурацию из списка. PhpStorm запустит тесты и уведомит вас, если что-то пойдет не так.



Также теперь вы можете настроить параметры для Analyze code и Cleanup. Для этого нажмите кнопку Choose profile рядом с ними.

Вы сможете следить за ходом и результатами проверок в области Commit — PhpStorm не будет отвлекать вас дополнительными модальными окнами.

Code With Me


Code With Me — это инструмент для парного программирования, который поставляется в PhpStorm из коробки. В этом выпуске он был улучшен множеством дополнительных функций и обновлений. Обо всех изменениях можно прочитать в отдельном посте про Code With Me 2021.2.

Демонстрация экрана (Screen Sharing)


Одна из самых желанных фич для Code With Me теперь доступна в 2021.2 — теперь вы можете расшарить окно PhpStorm или весь экран.



Инструменты для работы с БД


PhpStorm включает встроенные возможности DataGrip. Подробнее обо новых возможностях DataGrip читайте в обзоре релиза DataGrip 2021.2 от наших коллег.

Веб-разработка


И как всегда, в PhpStorm вошли все обновления из WebStorm 2021.2.



А вот видеоролик (на английском) с главными фичами нового релиза:




На этом пока все. Будем рады вашей обратной связи — вопросам, пожеланиям, баг-репортам и просто мыслям. Оставляйте их в комментариях ниже.

Комментарии (35)


  1. Staber
    09.08.2021 16:31

    Отличная новость!

    Будем рады вашей обратной связи — вопросам, пожеланиям, баг-репортам и просто мыслям. Оставляйте их в комментариях ниже.

    Кстати, меня периодически мучает один вопрос про сравнение веток.

    Помню, что раньше была возможность сравнивать ветки между собой в отдельном окне.
    Сейчас же, такое сравнение всегда делается в Editor Tab.
    Есть ли возможность изменить это поведение?
    Искал подобную настройку, но, то ли плохо искал, то ли такой нет.
    Конкретно мне текущее поведение не очень удобно, т.к. Editor Tab располагается с правой стороны и в случае, когда делается сравнение веток, например, с большим названием, то ширина этого Editor Tab'a существенно увеличивается перекрывая остальную полезную площадь.

    А при просмотре диффа у конкретного файла, например, есть возможность указать, где именно отображать этот дифф - в Editor Tab, либо в отдельном окне.


    1. pronskiy Автор
      09.08.2021 16:34

      В разделе настроек Preferences | Advanced Settings есть опция Open Diff as Editor Tab — можно ее отключить.


      1. Staber
        09.08.2021 17:03

        Спасибо за ответ, Роман!

        Попробовал, настройка имеет влияние на просмотр диффа для конкретного файла (и ее включение приводит к тому, что дифф показывается в Editor Tab; по сути, еще одно место, где можно включить/выключить дифф с разным вариантом отображения, т.к. тоже самое можно сделать через Settings находясь в режиме просмотра диффа).

        Только вот на дифф при сравнении веток (текущей и какой-либо выбранной через пункт Compare with Current) эта настройка, судя по всему, влияния не оказывает. А вопрос был как раз про эту часть.


        1. pronskiy Автор
          09.08.2021 17:33

          Да, вы правы, теперь понял. Настройки нет, но можно перетащить табу в отдельное окно драг-н-дропом. Такой вариант решает проблему?


          1. Staber
            09.08.2021 17:43

            можно перетащить табу в отдельное окно драг-н-дропом. Такой вариант решает проблему?

            Да, такой вариант подходит.

            При этом, хотелось бы увидеть в одном из будущих релизов возможность "сохранить" желаемый вариант отображения (Editor Tab / Separate Window), как это сейчас возможно для диффа файла.

            Спасибо!


  1. Maslukhin
    09.08.2021 18:46
    +3

    Большая работа. В том числе и по написанию этого текста. Офигенно. Спасибо!


  1. ivegner
    09.08.2021 19:30

    Очень интересные добавления! Жаль, что не могу перейти на новую версию, пока сохраняется новое поведение pinned tabs, при котором они все группируются в начале списка табов (см IDEA-258869). А то бы обязательно стал пользоваться и дженериками, и рефакторингами.


  1. anonymous
    00.00.0000 00:00


    1. Vadiok
      10.08.2021 09:53

      Похожая проблема после обновления возникла с Vue 2 и Vuetify. Vuetify компоненты (которые регистрируются глобально во Vue приложении, а не импортируются в конкретном компоненте) подсвечиваются как unknown html tag.


      1. Vadiok
        10.08.2021 11:56

        Хм, перезапустил IDE, автокомплит заработал.


  1. Mozhaiskiy
    09.08.2021 23:17

    Не знаю, где ещё спросить, поэтому спрошу тут. А есть ли способ один раз и навсегда сказать PhpStorm'у использовать только табуляторы отступа, а не пробелы при нажатии ENTER, всегда и всюду? С "чистым" кодом php проблем нет, а вот если встречается строка SQL (в виде кавычек, или в heredoc/nowdoc, без разницы), то PhpStorm всё время пытается вставить мне часть строки пробелами. Всюду в настройках уже включено "use tabs" в самом php, в MySQL, во всех диалектах SQL. "Smart tabs" выключены. На приведённом скриншоте я нажал ENTER в положении курсора между SELECT и * как видно, IDE вставила мне 2 таба и 7 пробелов. Как заставить PhpStorm забыть, что отступы пробелами существуют в природе?


    1. TCPpoPochte
      10.08.2021 08:17

      Тоже когда-то радел за табы, и не любил пробелы. Пока не пришлось работать с конфигами в php проектах на разных серверах и средах. Это был ад.
      Сейчас многие IDE умеют прозрачно работать с табами, автоматически заменяя их на пробелы и наоборот.


    1. tronin
      10.08.2021 12:13

      Мы как раз сейчас разбираемся в этой проблеме: https://youtrack.jetbrains.com/issue/WI-61556. Постараемся проапдейтить её в ближайшее время.


      1. Mozhaiskiy
        10.08.2021 13:51

        Второй скриншот почему-то не прикреплялся, но даже в preview настроек Coding Style видно, что IDE сама смешивает табы и пробелы рамках одной строки. Там выравнивание комментариев и параметров форматируется пробелами, а отступ самого блока - табами. Проблеме уже много лет. Если есть возможность исправить — было бы круто, потому что приходится плясать с бубном.

        Кстати, та же ситуация и во вставках других языков, например, JSON внутри строки PHP.


  1. vsh797
    10.08.2021 10:17

    Хотел бы обновиться, да jetbrains-toolbox что-то перестал быть доступным. Раньше скринридер распознавал его как веб-страничку, а сейчас при открытии произносит "canvas" и на этом все.


    1. beQL
      10.08.2021 13:32
      +1

      Это явно связано с тем, что ему GUI недавно переделали с "Chromium Embedded Framework" на "Compose for Desktop".


      1. vsh797
        10.08.2021 13:48

        Самое главное нововведение, возможно, окажется для пользователя незаметным. Дело в том, что мы полностью переписали интерфейс приложения

        Вот уж действительно сложно такое не заметить. :) Интересно, jetbrains планирует обеспечивать доступность toolbox?


  1. Vassil
    10.08.2021 10:33

    SSH Remote Tools - они же глобальные. Очень не хватает опции привязки их к отдельному проекту. Подскажите, может есть такое в планах?


    1. tronin
      10.08.2021 12:16

      Есть соответствующий запрос на нашем трэкере: https://youtrack.jetbrains.com/issue/IDEA-178639, но особой популярностью он не пользуется. Можете проголосовать за него или оставить комментарий, описывающий ваш "use case".


  1. anarxistkot
    10.08.2021 10:33

    Благодарю за перевод :)

    В mac os big sur при работе в полноэкранном режиме все diff в separate window открываются как полноценное новое окно, очень напрягает, удобно было поверх табов видеть дифф. Приходится выходить из полноэкранного режима когда надо старое поведение


    1. tronin
      10.08.2021 12:24

      Да, это новое поведение Diff окна. У нас есть багтрекер репорт, где мы собираем соответствующий фидбэк: https://youtrack.jetbrains.com/issue/IDEA-275073. Пожалуйста, проголосуйте за него или добавьте ваш комментарий с описанием проблемы.


      1. anarxistkot
        10.08.2021 13:16

        Благодарю, оставил голос :)


  1. LimpoSa
    10.08.2021 13:23

    Всегда рад новым обновлениям основного инструментария для работы, спасибо большое! :)

    Но с этой обновой появилась такая проблема - при каждом открытии проекта начинается индексация. Когда работаешь с большим количеством проектов и нужно ребутать ноут( или закрывать иде) - то переиндаксация всех проектов сильно замедляет восстановления работы :(


    1. pronskiy Автор
      11.08.2021 11:36

      Должно индексировать только при первом открытии. Попробуйте сделать File | Invalidate caches.... Если не поможет, то свяжитесь с поддержкой через Help | Contact Support.... — поможем разобраться в чем проблема.


      1. LimpoSa
        12.08.2021 12:10

        Спасибо, инвалидация кеша помогла!


  1. franzose
    10.08.2021 13:41

    Есть баг на заголовках окна: цвет текста всегда чёрный, даже на тёмной теме. Это, кстати, видно на гифках в статье :)


    1. pronskiy Автор
      11.08.2021 11:41

      Да, похоже баг на старой макоси https://youtrack.jetbrains.com/issue/IDEA-270448.
      У меня проявляется на OS X(x86_64) v10.13.6. Какая у вас ОС?


      1. franzose
        13.08.2021 14:58

        Тоже 10.13.6


  1. AxelPAL
    10.08.2021 15:19

    Отличные нововведения!

    Планируется ли автоопределение работы от сети либо от батареи для Power Safe Mode?


    1. pronskiy Автор
      11.08.2021 11:32

      Такого запроса еще не было. Создайте, пожалуйста, его в нашем трекере https://youtrack.jetbrains.com/newIssue?project=WI


      1. AxelPAL
        11.08.2021 13:33
        +1

        Посмотрел ваш трекер, разве вот этот тикет не про это? https://youtrack.jetbrains.com/issue/IDEA-134314

        Там же есть ссылка на сторонний плагин для IDEA: Automatic Power Saver - IntelliJ IDEs | JetBrains


        1. pronskiy Автор
          11.08.2021 13:35

          О спасибо! Упустил из виду его.


  1. Staschik
    12.08.2021 05:25

    Единообразное поведение для Show Diff

    Баг на Windows 10?

    Когда diff открывается во вкладке, если открыть diff из панели commit, то имена файлов меняются в названии вкладки.

    Когда diff в отдельном окне и если открыть его из панели commit, то в заголовке отображается имя первого открытого файла и имя не меняется если переключатся по файлам.

    Если открыть diff из панели Git, то имена файлов при переключении не меняются ни в названии вкладки, ни в названии окна. И diff закрывается по нажатию Esc (такое поведение было раньше), в предыдущих случаях по Esc не закрываются.


    1. tronin
      12.08.2021 13:15

      Спасибо за фидбэк! Похоже на https://youtrack.jetbrains.com/issue/IDEA-269958. Соответствующая команда работает над проблемой.


  1. POPSuL
    13.08.2021 02:00

    Автоматическая очистка папок с кэшем и логами

    Ура! Наконец-то! Вы не представляете как долго я этого ждал, и дождался!