Вот что мы подготовили для вас в этом обновлении:
Мы официально выпустили своего ИИ-помощника AI Assistant, добавив ряд новых возможностей и улучшив уже известные функции, чтобы сделать работу в IDE JetBrains еще эффективнее.
Теперь AI Assistant умеет генерировать многострочные блоки кода. Просто начните вводить новую строку: если у LLM есть предложения, появится сниппет, набранный серым шрифтом. Чтобы принять предложенный код, нажмите Tab.
В настоящее время предложения генерируются в пределах контекста класса или внутри определений функции.
AI Assistant умеет также генерировать тесты для методов классов. Просто поместите курсор на метод класса, для которого нужны юнит-тесты, нажмите Alt+Enter, а затем AI Assistant, и выберите Generate Unit Tests.
Раньше генерировать сниппеты можно было с помощью чат-бота. Теперь для этого можно использовать действие AI Assistant | Generate code…: оно открывает окно запроса прямо в редакторе. В это окно нужно ввести описание кода, который вы хотите сгенерировать. После этого AI Assistant предложит свои варианты, которые можно принять целиком или частично.
Иногда при выполнении PHP-скрипта, при запуске конфигурации или при выполнении действия Composer по тем или иным причинам происходит ошибка. AI Assistant поможет выяснить причину проблемы. Нажмите кнопку Explain with AI в трассировке стека или в сообщении об ошибке, чтобы получить объяснение, сгенерированное ИИ.
Use AI Assistant in PhpStorm as a supplemental feature with a JetBrains AI Service subscription.
PhpStorm теперь поддерживает тестовый фреймворк Pest из коробки. Недавно мы договорились с оригинальным автором плагина Pest о том, чтобы взять на себя его разработку и включить его в PhpStorm. Вы можете прочитать детали в нашем недавнем посте в блоге.
Как и тесты PHPUnit, тесты Pest теперь можно запускать прямо из PhpStorm. Если поместить курсор в тест и вызвать окно запуска, генерируется конфигурация запуска для этого теста. Если поместить курсор внутрь файла, но не внутрь конкретного теста, будут запущены все тесты в этом файле.
Благодаря появлению поддержки Pest в новой версии можно писать утверждения путем вызова функций или методов на $this. Кроме того, это позволяет улучшить работу автодополнения в функциях тестов: пользователь по мере набора кода видит доступные утверждения.
В Pest можно писать пользовательские ожидания, чтобы сократить число стандартных проверок в тестах. PhpStorm поможет найти использования пользовательских ожиданий и переименовать их.
PhpStorm 2023.3 полностью поддерживает PHP 8.3. Большинство изменений в IDE органично впишутся в привычный процесс работы с PhpStorm, так что вы их даже не заметите. Мы рассказываем только о тех нововведениях, о которых нужно знать, чтобы эффективно ими пользоваться.
#[\Override] В PHP 8.3 появился новый атрибут #[\Override]. Его можно использовать, чтобы явно показать свои намерения при переопределении метода. Движок PHP может проверить, действительно ли метод с атрибутом #[\Override] переопределяет родительский метод, и сгенерировать исключение, если это не так. PhpStorm 2023.3 заранее предупреждает вас о таких случаях.
Кроме того, в тех случаях, когда это применимо, PhpStorm предлагает добавить атрибут #[\Override].
json_validate() В PHP 8.3 в стандартную библиотеку добавлена новая функция json_validate(). Раньше был только один способ проверить, является ли строка допустимым кодом JSON: декодировать его и посмотреть, возникнут ли ошибки. PhpStorm может распознавать такие шаблоны и предлагает заменить их вызовом функции json_validate(). Это удобно, если вам достаточно понимать, является ли введенная строка допустимым кодом JSON, поскольку этой функции нужно меньше памяти, чем для декодирования строки.
В PHP 8.3 можно объявлять типы для констант классов. Можно использовать любые объявления типов, кроме void, callable и never.
Для типизированных констант классов PhpStorm предлагает:
В PHP 8.3 прекращена поддержка нескольких функций. PhpStorm предлагает необходимые инспекции, которые позволят их обнаружить.
В PhpStorm 2023.3 добавлен ряд улучшений для разработчиков на Symfony.
Новый встроенный инициализатор проектов для Symfony позволяет создавать новые проекты, используя нужные типы и версии, прямо на главном экране.
Новая версия IDE обеспечивает полную поддержку DQL внутри вызовов методов QueryBuilder: подсветку, автодополнение полей, возможность разрешения в целевой класс модели и многое другое.
С введением атрибутов в PHP 8.0 аннотации Doctrine объявляются устаревшими и скоро будут удалены. Чтобы помочь вам перейти на атрибуты Doctrine, PhpStorm 2023.3 предлагает функцию их преобразования из аннотаций.
Кроме того, PhpStorm поддерживает преобразование аннотаций Symfony в соответствующие атрибуты, например #[Required], #[Route] и так далее.
В новой версии мы добавили экспериментальную функцию: возможность исключить директории, полученные из индексированных библиотек. Исключив из проекта такие файлы, вы избежите проблем с несколькими определениями одного объекта и улучшите производительность индексации.
Мы постоянно стремимся сделать работу с дженериками удобнее. Начиная с PhpStorm 2023.3, можно настроить цветовые обозначения для дженериков, чтобы их типы было легко отличить.
Атрибуты используются в коде все чаще, но читать код с длинными многострочными атрибутами из какого-то определенного фреймворка бывает тяжело. В PhpStorm 2023.3 эта проблема решена: многострочные атрибуты можно свернуть.
PHPUnit 10 внедрил поддержку атрибутов для добавления метаданных к тестовым классам и методам тестирования, а также к протестированным единицам кода. Мы внедрили специальную инспекцию и быстрое исправление, которые помогут перейти со старых аннотаций PHPDoc на новый стиль.
PhpStorm 2023.3 предлагает обновленный подход к проверке изменений в файлах. Вам больше не нужно просматривать файлы по одному: все измененные файлы из выборки отображаются в едином фрейме с возможностью прокрутки. Новый инструмент поиска различий можно открыть из окна Git Log. В настоящее время он поддерживает ревью в JetBrains Space, и мы работаем над обеспечением его совместимости с GitLab и GitHub.
В PhpStorm 2023.3 появился новый встроенный параметр Run to Cursor. Он позволяет в ходе отладки выполнить код до определенной строки. После приостановки выполнения программы наведите курсор мыши на строку, до которой нужно выполнить код, и откройте всплывающее окно Run to Cursor. Можно также поместить курсор в нужную строку и нажать сочетание клавиш Alt + F9.
Мы изучили ваши отзывы о новом интерфейсе и добавили возможность скрыть основную панель инструментов при использовании IDE в режиме просмотра по умолчанию — точно так же, как это было в старом интерфейсе. Чтобы скрыть панель инструментов, откройте меню View | Appearance и снимите флажок Toolbar.
В версии PhpStorm 2023.1 мы добавили возможность сохранить несколько вариантов расположения окон и переключаться между ними, чтобы вам было удобнее настраивать свое рабочее пространство. В PhpStorm 2023.3 мы расширили возможности этой функции и добавили вариант Default layout, который позволяет быстро вернуть исходные настройки рабочего пространства. Этот вариант расположения окон нельзя изменить. Чтобы перейти к нему, откройте Window | Layouts.
Чтобы разработчикам было проще одновременно работать в редакторе с разными типами файлов, мы добавили цветовые обозначения вкладок редактора по умолчанию — они соответствуют обозначениям в окне Project.
Благодаря тому, что в PhpStorm добавлены все возможности WebStorm, IDE теперь успешно справляется с некоторыми неприятными проблемами, которые возникали при добавлении инструкций import type. Кроме того, стало удобнее работать с синтаксисом verbatimModuleSyntax. Мы добавили возможность настроить инструкции import type как в TypeScript. Кроме того, улучшено поведение поля exports в package.json для файлов TypeScript.
В новой версии, когда вы вставляете код HTML в файл JSX, PhpStorm не только преобразует атрибуты, но и автоматически закроет одиночные теги. Эту функцию можно настроить в меню Settings | Editor | General | Smart Keys | JavaScript.
@property для пользовательских свойств в CSS-файлах
Чтобы обеспечить поддержку нового API @property для создания пользовательских свойств в CSS-файлах, PhpStorm 2023.3 предлагает инспекции и возможности автодополнения для явного определения свойств CSS. Это позволяет проверять и ограничивать типы свойств, устанавливать значения по умолчанию и определять возможности наследования для пользовательских свойств.
Мы добавили поддержку defineSlots: автодополнение и навигацию для имени slot, а также рефакторинг Rename. Кроме того, добавлена поддержка автодополнения для свойств с defineExpose. В PhpStorm 2023.3 необходимые импорты для компонентов будут добавляться, исходя из имени, определенного функцией defineOptions.