Написание промтов для ИИ в редакторе и поддержка декоратора dataclass_transform
Теперь взаимодействовать с AI Assistant можно прямо там, где вы делаете основную работу, — в редакторе. Если вы хотите избавиться от ошибки в коде или добавить документацию или тест, просто введите свой запрос с новой строки в редакторе. PyCharm автоматически поймет, что вам нужно, и предложит решение. Если новая строка начинается с отступа, поставьте перед запросом символ $
или ?
.
Строки, отредактированные AI Assistant, отмечаются на полях фиолетовым, чтобы вам было видно, что изменилось.
Если вам не нравится предложенный вариант, можно сгенерировать другой, нажав Tab. Кроме того, вы можете уточнить первоначальный запрос, нажав на фиолетовый значок или сочетание клавиш Ctrl+\ (в Windows) или Cmd+\ (в macOS).
Эта функция доступна в файлах Python, JavaScript, TypeScript, JSON и YAML.
Если вам нужна помощь, например, с конкретным аргументом, вы можете сузить контекст, который AI Assistant использует при подготовке ответа. Достаточно поставить курсор в подходящий контекст, ввести $
или ?
и начать писать свой промт. PyCharm распознает его и учтет текущий контекст в своих предложениях.
Теперь, если PyCharm определит формат docstring, вы увидите подсказку Generate with AI Assistant. Эта функция позволяет ускорить процесс создания документации с помощью ИИ.
В этом обновлении мы упростили управление контекстом, который AI Assistant использует для своих предложений. Переработанный интерфейс позволяет легко управлять всеми элементами, включенными в контекст. Открытый файл и выделенный в нем код автоматически включаются в контекст, и вы можете легко добавлять или удалять файлы по своему усмотрению. Кроме того, теперь можно добавлять общие инструкции для проекта, чтобы ваши указания для AI Assistant учитывались по всей кодовой базе.
Теперь можно выбрать предпочтительную модель для чата с ИИ: Google Gemini, OpenAI или локальную модель на вашем устройстве. Это позволяет адаптировать чат под ваши потребности и сделать работу с ИИ более удобной.
Запуская в Python-консоли фрагменты кода, предложенного AI Assistant, можно быстрее добиться нужного результата при их редактировании. Нажмите зеленую кнопку Run в правом верхнем углу сниппета, чтобы проверить, как он работает.
AI Assistant теперь может предлагать оптимальные способы решения задач на основе самой свежей версии документации PyCharm. Используйте команду /docs
, чтобы получить персональные рекомендации, как выполнять задачи наиболее эффективно.
Теперь AI Assistant может работать с датафреймами и переменными в ваших ноутбуках. Просто поставьте #
перед названием датафрейма или переменной, и AI Assistant поможет вам их проанализировать. У него есть доступ к сводной информации и статистике датафрейма, чтобы предоставить наиболее точные результаты.
Кроме того, вы можете перейти на вкладку Variables в окне Jupyter прямо из чата, просто нажав на значок скрепки рядом с упомянутым вами датафреймом или переменной.
for
в списковые включения Выполняйте рефакторинг быстрее с помощью AI Assistant, который теперь умеет превращать большие циклы for
в списковые включения (list comprehensions). Поддерживаются любые циклы for
, включая вложенные и даже while
.
Мы добавили пару удобных действий, позволяющих обрабатывать ошибки выполнения 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 предлагает локальное автодополнение сразу нескольких строк на основе собственной ML-модели JetBrains, которая используется для автодополнения одной строки. Важно отметить, что не обучаем нашу модель на ваших данных.
Локальное многострочное автодополнение обычно генерирует 2–4 строки кода, когда может предсказать логические шаги, например, в циклах, при обработке условий или для завершения шаблонного кода.
Теперь при работе с пользовательскими классами данных, которые созданы с помощью библиотек, использующих декоратор dataclass_transform
, IDE предоставляет все те же умные подсказки, что и для стандартных классов данных, например автодополнение для атрибутов и вывод типов для сигнатур конструкторов.
В PyCharm 2024.3 стало проще устанавливать пакеты, импортируемые в ваш код. Для массовой автоматической установки добавлено быстрое исправление. Оно позволяет скачать и установить несколько пакетов в один клик.
Теперь можно запускать выбранные строки кода прямо в консоли Jupyter, а не выполнять всю ячейку. Это позволяет легко отлаживать и проверять результаты работы отдельных фрагментов кода, добавляя гибкости и эффективности в ваш рабочий процесс.
Табличные результаты выполнения Jupyter-ноутбуков можно открыть в окне Data View. Это дает доступ к множеству функций: тепловым картам, форматированию, создание срезов и возможностям ИИ для расширенного анализа датафрейма. Достаточно просто нажать на значок Open in Data View.
Теперь локальные переменные, функции и символы можно переименовать прямо в редакторе, не открывая диалог. Просто выберите нужный объект и нажмите Shift+F6.
Теперь можно фильтровать данные в окне Data View и в датафреймах без написания кода. Просто нажмите на значок фильтра в правом верхнем углу и выберите нужные параметры. Результаты сразу отобразятся в том же окне.
Эта функция поддерживается для всех популярных Python-фреймворков, включая pandas, Polars, NumPy, PyTorch, TensorFlow и Hugging Face Datasets.
Теперь PyCharm по умолчанию подсвечивает все вхождения выделенного текста в файле. Так сразу хорошо видно, где в коде встречается выбранный текст. Настроить функцию можно в разделе Settings | Editor | General | Appearance.
Мы продолжаем работать над тем, чтобы еще больше функций были доступны во время сборки и индексации проекта. Так, в версии 2024.3 работает проверка орфографии и грамматики. Это позволяет находить ошибки в Markdown-документах и тегах документации, не дожидаясь завершения индексации.
Мы поменяли расположение действия Rename в контекстном меню при его вызове в редакторе и в окне Project. Теперь оно находится в самом верху, и тем, кто часто пользуется мышкой, будет удобнее переименовывать файлы, переменные и другие элементы.
Теперь в виджете Run можно запустить несколько конфигураций одновременно, удерживая Ctrl и нажимая на значок отладки во всплывающем меню. Кроме того, виджет отображает элементы управления для всех активных конфигураций и дает четкое представление об их статусе.
Теперь в редакторе по умолчанию можно держать открытыми до 30 вкладок, прежде чем IDE начнет закрывать наименее используемые. Эту настройку можно изменить в разделе Settings | Editor | General | Editor Tabs.
В новой версии PyCharm можно указать единый порт отладчика для всех подключений, поэтому выполнять отладку в окружениях с ограниченным доступом (например, в Docker или WSL) стало проще. После настройки порта в свойствах отладчика последний запустится как сервер, и весь обмен данными между отладчиком и IDE пойдет через выбранный порт.
Мы перенесли разделение на страницы с панели инструментов в нижнюю часть редактора данных — так заметнее и удобнее.
JOIN
В некоторых случаях выполнение запроса с чрезмерным количеством операторов JOIN
снижает производительность. Теперь редактор умеет выявлять и подсвечивать такие запросы. Чтобы включить эту инспекцию, перейдите в настройки IDE: откройте Editor | Inspections, разверните раздел SQL и выберите Excessive JOIN count.
Новая версия PyCharm поддерживает частичную интроспекцию. Раньше всегда выполнялась полная интроспекция схем в MySQL и MariaDB, а обновить метаданные отдельного объекта было нельзя. Каждый раз, когда в консоли выполнялся DDL-оператор, который мог бы изменить объект в схеме базы данных, IDE начинала полную интроспекцию всей схемы. Это занимало много времени и часто мешало нормальной работе.
Теперь PyCharm анализирует DDL-запрос, определяет, какие объекты могли быть затронуты, и обновляет только их. Если в проводнике баз данных выбрать один объект и вызвать действие Refresh, будет обновлен только этот объект, а не вся схема, как раньше.
Мы улучшили подсказки для компонентов 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.
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 2024.3 появилась возможность доступа к переменным окружения прямо в HTTP-клиенте с использованием синтаксиса $env.ENV_VAR
. Это позволяет более гибко управлять переменными в запросах и скриптах. Кроме того, теперь можно выполнять запросы из включенного файла .http
— все сразу или только запрос с определенным именем — и переопределять переменные.
Сборки в Dev Containers теперь работают более стабильно на удаленных Docker-движках, предотвращая ошибки, когда локальные директории недоступны удаленно. Корме того, сборка образов и соединения стали более надежными в WSL.
Файл devcontainer.json
обрабатывает features
более стабильно. Новая опция <0>updateRemoteUID0> помогает избежать проблем с доступом, корректно устанавливая идентификатор пользователя. Кроме того, теперь можно настраивать параметры IDE в Dev Containers через файл devcontainer.json
или с помощью кнопки Add currently modified settings from IDE (для всех доступных вариантов есть автодополнение).
В новом терминале улучшена обработка команд, а интерфейс стал более удобным и интуитивным. Терминал стал быстрее и лучше реагирует на запросы. Переключение между сессиями стало плавным, и состояние сохраняется на всех вкладках, чтобы работа не прерывалась. Автодополнение быстрее подбирает команды, флаги и пути, экономя ваше время. Также мы добавили новые возможности кастомизации: стили подсказок, имена сессий и переменные окружения.
Теперь в PyCharm можно просматривать логи всего кластера Kubernetes с поддержкой потоковой передачи и поиска по шаблонам — это удобно для разработчиков, команд DevOps и SRE. IDE собирает события со всех подов, узлов и сервисов, позволяя быстро находить проблемы без ручного поиска по логам. Потоковая передача в реальном времени позволяет оперативно проводить диагностику, а сопоставление шаблонов автоматизирует обнаружение важных событий и ошибок, таких как нехватка памяти или необычная сетевая активность. Подробнее об этой функции читайте в нашем блоге.
PyCharm 2024.3 предоставляет расширенную поддержку Docker Compose. Теперь файлы .env
имеют приоритет в автодополнении для env_file
, что ускоряет настройку окружения. С новыми параметрами сборки — cache_to
, no_cache
, tags
и <0>platforms0> — удобнее контролировать кэширование и выбор платформ. Улучшенная обработка 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
делают управление секретами через переменные окружения проще.
В IntelliJ IDEA добавлена поддержка OpenTofu. В этом обновлении реализовано автодополнение для методов шифрования и поставщиков ключей, а также проверка неизвестных ссылок.
Действия для запуска Terraform теперь легко найти через Search Everywhere, и IDE автоматически отмечает неиспользуемые переменные и локальные значения, помогая поддерживать чистоту кода. Команды Init
, Validate
, Plan
, Apply
и Destroy
были улучшены, а форма конфигурации запуска стала более удобной. Обновленные подсказки и предупреждения о неиспользуемых ресурсах упрощают навигацию и помогают быстро находить неактивный код.