Что нового в PhpStorm 2023.2

Вот что мы подготовили для вас в этом обновлении:

  • Улучшения для работы с дженериками в PHP
  • Поддержка Laravel Pint
  • Нативная поддержка assert в PHP
  • AI Assistant (Ограниченный доступ)
  • Интеграция с GitLab
  • Текстовый поиск в Search Everywhere

AI Assistant Ограниченный доступ

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

Чат-бот

Чат-бот

В окне AI Assistant можно пообщаться с большой языковой моделью (LLM): задать вопросы и обсудить, как улучшить фрагмент кода. PhpStorm предоставит ассистенту нужный контекст: например, сообщит какая версия PHP и какие фреймворки используются в вашем проекте. Если вас устраивает сгенерированный искусственным интеллектом код, вы можете скопировать его в редактор при помощи действия Insert Snippet at Caret или вручную.

AI Actions

AI Actions

В контекстном меню Alt+Enter теперь есть раздел AI Actions: там перечислены задачи, с которыми вам может помочь AI Assistant.

Документирование кода

Документирование кода

AI Assistant также умеет генерировать документацию. Нажмите Alt+Enter, откройте меню AI Actions и выберите Write Documentation. Кроме того, AI Assistant попытается объяснить ваш код через чат.

Генерация сообщений коммитов

Генерация сообщений коммитов

В диалоге сообщений коммитов появилась кнопка Generate Commit Message with AI Assistant. При нажатии на нее информация об изменениях передается в LLM, которая создает сообщение коммита с описанием внесенных изменений.

Доступ к AI Assistant

Доступ к AI Assistant

AI Assistant работает на базе сервиса JetBrains AI. Чтобы получить доступ к возможностям искусственного интеллекта, нужно вручную установить плагин AI Assistant и войти в сервис JetBrains AI, используя свой JetBrains-аккаунт. Самый простой способ это сделать — нажать на значок More tool windows на панели инструментов, выбрать AI Assistant и следовать инструкциям.

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

Попробуйте возможности искусственного интеллекта и расскажите нам о своих впечатлениях. Для этого просто нажмите Share your feedback в окне AI Assistant. Вы также можете сообщать нам об ошибках через YouTrack.

PHP

Дженерики в PHP

Новый рефакторинг Rename generic

Новый рефакторинг Rename generic

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

Другой способ сделать то же самое — нажать Ctrl+T и выбрать Rename.

Поддержка типа static в дженериках

Поддержка типа static в дженериках

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

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

Поддержка @mixin с шаблонами

Поддержка @mixin с шаблонами

С помощью дженерик-аннотаций @mixin можно в полной мере использовать возможности декораторов и других паттернов для вставки поведения в объекты. PhpStorm теперь предоставляет для них автодополнение.

Оптимизированная генерация PHPDoc

Оптимизированная генерация PHPDoc

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

Для генерируемых геттеров и сеттеров PhpStorm добавляет PHPDoc-комментарии только при отсутствии объявленных типов.

Для генерации геттеров и сеттеров используйте действие Add getter/setter (Alt+Enter) или действие Generate code (Alt+Insert).

Встроенная поддержка Laravel Pint

Встроенная поддержка Laravel Pint

PhpStorm has added Laravel Pint to the list of supported quality tools. Теперь проблемы со стилем кода, о которых сообщает Laravel Pint, обрабатываются так же, как и собственные инспекции PhpStorm.

Чтобы настроить интеграцию с Laravel Pint, перейдите в раздел Settings | PHP | Quality Tools и разверните раздел Laravel Pint.

Там же можно выбрать Laravel Pint в качестве внешнего форматера. Это позволит исправить все проблемы, обнаруженные Laravel Pint, одним действием Reformat Code (Ctrl+Alt+L).

Чтобы включить Laravel Pint в качестве инспекции PhpStorm, перейдите в меню Settings | Editor | Inspections и установите флажок Laravel Pint validation в разделе PHP | Quality Tools.

При включенной инспекции все проблемы, обнаруженные Laravel Pint, будут подсвечиваться в любом открытом PHP-файле и отображаться в окне Problems.

Инспекции для утверждений PHP

Инспекции для утверждений PHP

В этой версии логика анализа кода охватывает утверждения PHP.

Теперь PhpStorm находит и подсвечивает избыточные утверждения, которые всегда истинны или всегда ложны. This is available for PHP’s built-in assert() constructs, PHPUnit’s assertion methods, and methods from the webmozart/assert and beberlei/assert libraries.

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

Цветные заголовки проектов в новом интерфейсе

Цветные заголовки проектов в новом интерфейсе

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

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

Текстовый поиск в Search Everywhere

Текстовый поиск в Search Everywhere

Функция Search Everywhere (двойное нажатие Shift) в основном используется для поиска файлов, классов, методов, действий и настроек.

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

Расширенные настройки главной панели инструментов

Расширенные настройки главной панели инструментов

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

Кликните правой кнопкой мыши по любому виджету, выберите опцию Add to Main Toolbar, и вы увидите доступные варианты.

Переработанное меню на главной панели инструментов для Windows и Linux

Переработанное меню на главной панели инструментов для Windows и Linux

В новом интерфейсе на Windows и Linux изменился дизайн меню на главной панели инструментов. Теперь элементы меню отображаются по горизонтали на панели инструментов.

Кроме того, само меню можно превратить в отдельную панель инструментов. Для этого перейдите в раздел View | Appearance | Main menu as a Separate Toolbar.

Светлая тема со светлыми заголовками в новом интерфейсе

Светлая тема со светлыми заголовками в новом интерфейсе

Мы усовершенствовали светлую тему, добавив альтернативный вариант Light with Light Header, отличающийся светлыми заголовками окон, всплывающими подсказками и уведомлениями.

Закрепленные конфигурации запуска

Закрепленные конфигурации запуска

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

Сортировка файлов по времени изменения на панели Project

Сортировка файлов по времени изменения на панели Project

На панели Project теперь можно упорядочивать файлы по времени изменения. Чтобы включить эту функцию, нажмите на три точки на панели Project и выберите Tree Appearance | Sort by Modification Time.

Улучшения HTTP-клиента

Превью Redoc UI для файлов OpenAPI и Swagger

Превью Redoc UI для файлов OpenAPI и Swagger

Теперь можно переключаться между интерфейсами Redoc и Swagger для предварительного просмотра документации OpenAPI.

Благодаря интеграции с Redocly у вас есть доступ к консоли Try it из PhpStorm, и вы можете использовать ее для установки параметров и отправки запросов к API.

Поддержка GraphQL и WebSocket в CLI HTTP-клиента

Поддержка GraphQL и WebSocket в CLI HTTP-клиента

В PhpStorm можно запускать .http-файлы в качестве запросов с помощью специального CLI HTTP-клиента.

Начиная с этой версии, можно использовать CLI HTTP-клиента для взаимодействия с API GraphQL и установки WebSocket-соединений с сервисами.

Поддержка импорта JavaScript в HTTP-клиенте

Поддержка импорта JavaScript в HTTP-клиенте

Появилась возможность совместного использования общего JavaScript-кода для обработчиков запросов HTTP-клиента через импортируемые модули.

VCS / Git / GitHub

Поддержка Merge Requests в GitLab

Поддержка Merge Requests в GitLab

В PhpStorm 2023.2 появилась базовая интеграция с GitLab: теперь можно пользоваться функцией Merge Requests прямо из IDE.

Коммит изменений построчно

Коммит изменений построчно

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

Откройте файл с изменениями, выделите строки в редактируемом фрагменте и вызовите действие Include these lines into commit из контекстного меню. Напротив каждой строки появятся флажки, и вы сможете отдельно отметить те строки, которые хотите добавить в коммит.

Поддержка LSP для разработчиков плагинов

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

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

На данный момент поддержка LSP включает в себя подсветку ошибок и предупреждений, быстрые исправления, автодополнение кода и навигацию по декларациям.

Интеграция с JetBrains Qodana

PhpStorm 2023.2 интегрируется с платформой Qodana — умным механизмом статического анализа, подходящим для любого CI/CD-пайплайна.

Вы можете за пару кликов запустить статический анализ кода, просмотреть список проблем по всему проекту, а затем настроить Qodana в вашей CI/CD-системе для установки критериев качества и запуска серверных проверок.

Настроив Qodana в CI/CD-системе, можно просматривать результаты серверного анализа, не покидая IDE.

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

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

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

Благодаря новому форматированию информацию об ошибках и предупреждениях в JavaScript и TypeScript проще читать, а значит легче находить проблемы в коде.

Поддержка вложенности CSS

Поддержка вложенности CSS

We’ve implemented syntax support and an inspection that alerts you if a CSS nested selector starts with an identifier or functional notation.

Поддержка Vue Language Server

Поддержка Vue Language Server

Поддержка Vue Language Server (VLS), также известного как Volar, позволила улучшить обнаружение ошибок и получать более точную информацию о типе во всплывающих окнах навигации и документации. По умолчанию VLS используется для TypeScript 5.0 и более свежих версий. Интеграцию с VLS для всех версий TypeScript можно включить в разделе Settings | Languages & Frameworks | TypeScript | Vue.