Что нового в PyCharm 2024.3

Написание промтов для ИИ в редакторе и поддержка декоратора dataclass_transform

AI Assistant

Написание промтов для ИИ в редакторе

Написание промтов прямо в редакторе

Теперь взаимодействовать с AI Assistant можно прямо там, где вы делаете основную работу, — в редакторе. Если вы хотите избавиться от ошибки в коде или добавить документацию или тест, просто введите свой запрос с новой строки в редакторе. PyCharm автоматически поймет, что вам нужно, и предложит решение. Если новая строка начинается с отступа, поставьте перед запросом символ $ или ?.

Строки, отредактированные AI Assistant, отмечаются на полях фиолетовым, чтобы вам было видно, что изменилось.

Если вам не нравится предложенный вариант, можно сгенерировать другой, нажав Tab. Кроме того, вы можете уточнить первоначальный запрос, нажав на фиолетовый значок или сочетание клавиш Ctrl+\ (в Windows) или Cmd+\ (в macOS).

Эта функция доступна в файлах Python, JavaScript, TypeScript, JSON и YAML, а также в Jupyter-ноутбуках.

Сужение контекста для запросов в редакторе

Если вам нужна помощь, например, с конкретным аргументом, вы можете сузить контекст, который AI Assistant использует при подготовке ответа. Достаточно поставить курсор в подходящий контекст, ввести $ или ? и начать писать свой промт. PyCharm распознает его и учтет текущий контекст в своих предложениях.

Генерация документации

Теперь, если PyCharm определит формат docstring, вы увидите подсказку Generate with AI Assistant. Эта функция позволяет ускорить процесс создания документации с помощью ИИ.

Улучшенное управление контекстом

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

Выбор модели для чата с ИИ

Теперь можно выбрать предпочтительную модель для чата с ИИ: Google Gemini, OpenAI или локальную модель на вашем устройстве. Это позволяет адаптировать чат под ваши потребности и сделать работу с ИИ более удобной.

Запуск кода из чата с ИИ в Python-консоли

Запуская в Python-консоли фрагменты кода, предложенного AI Assistant, можно быстрее добиться нужного результата при их редактировании. Нажмите зеленую кнопку Run в правом верхнем углу сниппета, чтобы проверить, как он работает.

Мгновенный доступ к документации PyCharm

AI Assistant теперь может предлагать оптимальные способы решения задач на основе самой свежей версии документации PyCharm. Используйте команду /docs, чтобы получить персональные рекомендации, как выполнять задачи наиболее эффективно.

Распознавание датафреймов и переменных в запросах

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

Кроме того, вы можете перейти на вкладку Variables в окне Jupyter прямо из чата, просто нажав на значок скрепки рядом с упомянутым вами датафреймом или переменной.

Преобразование циклов for в списковые включения

Выполняйте рефакторинг быстрее с помощью AI Assistant, который теперь умеет превращать большие циклы for в списковые включения (list comprehensions). Поддерживаются любые циклы for, включая вложенные и даже while.

Обработка ошибок SQL с помощью AI Assistant

Мы добавили пару удобных действий, позволяющих обрабатывать ошибки выполнения SQL-запросов с помощью AI Assistant. Теперь справа от каждого сообщения об ошибке PyCharm показывает два возможных действия: Explain with AI и Fix with AI.

Explain with AI открывает чат с ИИ, автоматический отправляет запрос и показывает объяснение ошибки.

Fix with AI генерирует исправление в редакторе.

Новые действия работают подобно Fix SQL Problem Under Caret и Explain SQL Problem Under Caret.

Чтобы получать правильные объяснения и исправления, обязательно подключите схему базы данных.

Локальное автодополнение нескольких строк кода с помощью ИИ PyCharm Professional

Новая версия PyCharm Professional предлагает локальное автодополнение сразу нескольких строк на основе собственной ML-модели JetBrains, которая используется для автодополнения одной строки. Важно отметить, что не обучаем нашу модель на ваших данных.

Локальное многострочное автодополнение обычно генерирует 2–4 строки кода, когда может предсказать логические шаги, например, в циклах, при обработке условий или для завершения шаблонного кода.

Python

Поддержка декоратора dataclass_transform (PEP 681)

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

Jupyter-ноутбуки PyCharm Professional

Автоматическая установка нескольких пакетов

В PyCharm 2024.3 стало проще устанавливать пакеты, импортируемые в ваш код. Для массовой автоматической установки добавлено быстрое исправление. Оно позволяет скачать и установить несколько пакетов в один клик.

Запуск определенных строк в консоли Jupyter

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

Просмотр табличных результатов выполнения Jupyter-ноутбуков в окне Data View

Табличные результаты выполнения Jupyter-ноутбуков можно открыть в окне Data View. Это дает доступ к множеству функций: тепловым картам, форматированию, создание срезов и возможностям ИИ для расширенного анализа датафрейма. Достаточно просто нажать на значок Open in Data View.

Переименование локальных переменных и функций в редакторе

Теперь локальные переменные, функции и символы можно переименовать прямо в редакторе, не открывая диалог. Просто выберите нужный объект и нажмите Shift+F6.

Окно Data View PyCharm Professional

Фильтрация данных без написания кода

Теперь можно фильтровать данные в окне Data View и в датафреймах без написания кода. Просто нажмите на значок фильтра в правом верхнем углу и выберите нужные параметры. Результаты сразу отобразятся в том же окне.

Эта функция поддерживается для всех популярных Python-фреймворков, включая pandas, Polars, NumPy, PyTorch, TensorFlow и Hugging Face Datasets.

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

Подсветка вхождений выделенного текста

Теперь PyCharm по умолчанию подсвечивает все вхождения выделенного текста в файле. Так сразу хорошо видно, где в коде встречается выбранный текст. Настроить функцию можно в разделе Settings | Editor | General | Appearance.

Проверка орфографии и грамматики во время индексации

Мы продолжаем работать над тем, чтобы еще больше функций были доступны во время сборки и индексации проекта. Так, в версии 2024.3 работает проверка орфографии и грамматики. Это позволяет находить ошибки в Markdown-документах и тегах документации, не дожидаясь завершения индексации.

Optimized placement for the Rename action

Мы поменяли расположение действия Rename в контекстном меню при его вызове в редакторе и в окне Project. Теперь оно находится в самом верху, и тем, кто часто пользуется мышкой, будет удобнее переименовывать файлы, переменные и другие элементы.

Виджет Run: одновременный запуск нескольких конфигураций

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

Больше открытых вкладок

Теперь в редакторе по умолчанию можно держать открытыми до 30 вкладок, прежде чем IDE начнет закрывать наименее используемые. Эту настройку можно изменить в разделе Settings | Editor | General | Editor Tabs.

Отладчик

Выбор порта отладки PyCharm Professional

В новой версии PyCharm можно указать единый порт отладчика для всех подключений, поэтому выполнять отладку в окружениях с ограниченным доступом (например, в Docker или WSL) стало проще. После настройки порта в свойствах отладчика последний запустится как сервер, и весь обмен данными между отладчиком и IDE пойдет через выбранный порт.

Базы данных PyCharm Professional

Плавающая панель для разделения на страницы

Мы перенесли разделение на страницы с панели инструментов в нижнюю часть редактора данных — так заметнее и удобнее.

Проверка на избыточность операторов JOIN

В некоторых случаях выполнение запроса с чрезмерным количеством операторов JOIN снижает производительность. Теперь редактор умеет выявлять и подсвечивать такие запросы. Чтобы включить эту инспекцию, перейдите в настройки IDE: откройте Editor | Inspections, разверните раздел SQL и выберите Excessive JOIN count.

Частичная интроспекция и умное обновление для MySQL и MariaDB

Новая версия PyCharm поддерживает частичную интроспекцию. Раньше всегда выполнялась полная интроспекция схем в MySQL и MariaDB, а обновить метаданные отдельного объекта было нельзя. Каждый раз, когда в консоли выполнялся DDL-оператор, который мог бы изменить объект в схеме базы данных, IDE начинала полную интроспекцию всей схемы. Это занимало много времени и часто мешало нормальной работе.

Теперь PyCharm анализирует DDL-запрос, определяет, какие объекты могли быть затронуты, и обновляет только их. Если в проводнике баз данных выбрать один объект и вызвать действие Refresh, будет обновлен только этот объект, а не вся схема, как раньше.

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

Переименование компонентов фреймворков и навигация по ним

Мы улучшили подсказки для компонентов Vue, Svelte и Astro в редакторе. Действие Show component usages теперь находит использования как в импортированных файлах, так и в шаблонах разметки. Мы также добавили фильтр Show Component Usages, который позволяет исключать упоминания компонента при поиске обычных ссылок на файлы. Кроме того, в рефакторинг Rename добавлена опция, которая позволяет автоматически обновлять все упоминания компонента при переименовании его файла.

Поиск по проекту без лишних файлов

Теперь PyCharm по умолчанию исключает папку node_modulesиз поиска по файлам в директориях проекта, убирая лишние файлы из выдачи. Если вы хотите вернуть прежнее поведение, включите опцию Search in library files when “Directory” is selected in Find in Files в разделе Settings | Advanced Settings.

VCS

Генерация заголовков и описаний для pull- и merge-реквестов

AI Assistant теперь помогает создавать понятные и лаконичные заголовки и описания для pull- и merge-реквестов прямо в IDE, делая этот процесс быстрее и удобнее.

Обновленный поиск по файлам

Теперь у функции Find in Files есть новый режим — Project Files Excluding Git-Ignored. Из поиска исключаются файлы, указанные в .gitignore, помогая вам сосредоточиться только на нужном коде.

Отключение фоновых проверок перед коммитом

Вы можете управлять фоновыми проверками в процессе коммита с помощью новой опции Run advanced checks after a commit is done в разделе Settings | Version Control | Commit. Она позволяет запускать тесты и инспекции после коммита. Если вы хотите, чтобы проверки завершались до коммита, просто отключите эту опцию.

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

Обновления HTTP-клиента

В PyCharm 2024.3 появилась возможность доступа к переменным окружения прямо в HTTP-клиенте с использованием синтаксиса $env.ENV_VAR. Это позволяет более гибко управлять переменными в запросах и скриптах. Кроме того, теперь можно выполнять запросы из включенного файла .http — все сразу или только запрос с определенным именем — и переопределять переменные.

Расширенная поддержка Dev Containers

Сборки в Dev Containers теперь работают более стабильно на удаленных Docker-движках, предотвращая ошибки, когда локальные директории недоступны удаленно. Корме того, сборка образов и соединения стали более надежными в WSL.

Файл devcontainer.json обрабатывает features более стабильно. Новая опция <0>updateRemoteUID помогает избежать проблем с доступом, корректно устанавливая идентификатор пользователя. Кроме того, теперь можно настраивать параметры IDE в Dev Containers через файл devcontainer.json или с помощью кнопки Add currently modified settings from IDE (для всех доступных вариантов есть автодополнение).

Улучшения в новом терминале Бета

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

Логи кластера Kubernetes

Теперь в PyCharm можно просматривать логи всего кластера Kubernetes с поддержкой потоковой передачи и поиска по шаблонам — это удобно для разработчиков, команд DevOps и SRE. IDE собирает события со всех подов, узлов и сервисов, позволяя быстро находить проблемы без ручного поиска по логам. Потоковая передача в реальном времени позволяет оперативно проводить диагностику, а сопоставление шаблонов автоматизирует обнаружение важных событий и ошибок, таких как нехватка памяти или необычная сетевая активность. Подробнее об этой функции читайте в нашем блоге.

Улучшения для Docker Compose

PyCharm 2024.3 предоставляет расширенную поддержку Docker Compose. Теперь файлы .env имеют приоритет в автодополнении для env_file, что ускоряет настройку окружения. С новыми параметрами сборки — cache_to, no_cache, tags и <0>platforms — удобнее контролировать кэширование и выбор платформ. Улучшенная обработка depends_on.required и depends_on.restart позволяет эффективнее управлять порядком запуска и остановки зависимых контейнеров.

С помощью новых ключей, таких как deploy.placement.preferences, deploy.resources.pids и deploy.resources.reservations.devices, можно гибко настраивать размещение сервисов и ограничения ресурсов. Поддерживаются многоконтекстные и привилегированные сборки через параметры build.additional_contexts и build.privileged.

Дополнительные опции включают конфигурации cgroup, пользовательские настройки extra_hosts и параметр healthcheck.start_interval. Улучшенные настройки портов и secrets.environment делают управление секретами через переменные окружения проще.

Улучшения для OpenTofu и Terraform

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

Действия для запуска Terraform теперь легко найти через Search Everywhere, и IDE автоматически отмечает неиспользуемые переменные и локальные значения, помогая поддерживать чистоту кода. Команды Init, Validate, Plan, Apply и Destroy были улучшены, а форма конфигурации запуска стала более удобной. Обновленные подсказки и предупреждения о неиспользуемых ресурсах упрощают навигацию и помогают быстро находить неактивный код.