PyCharm 2024.3 最新变化

内联 AI 提示和 dataclass_transform 装饰器的编码辅助

AI Assistant

内联 AI 提示

直接在编辑器中提示 AI

您可以直接在进行大部分工作的编辑器中与 AI Assistant 交互。 代码出错了? 需要添加文档或测试? 开始在编辑器中另起一行输入您的请求即可。 PyCharm 将自动识别您的自然语言请求并生成响应。 如果新行缩进,请在请求前面加上 $? 符号。

PyCharm 会在 AI Assistant 更改的行旁边的装订区域中留下紫色标记,让您可以轻松看到更新的内容。

如果您不喜欢初始建议,可以按 Tab 生成新的建议。 您还可以点击装订区域中的紫色块或按 Ctrl+\(Windows)或 Cmd+\(macOS)来调整初始输入。

此功能适用于 Python、JavaScript、TypeScript、JSON 和 YAML 文件以及 Jupyter Notebook。

为内联提示缩小上下文

需要有关特定实参的帮助? 您可以根据需要缩小 AI Assistant 用于响应的上下文。 将文本光标置于相关上下文中,输入 $? 符号,然后开始编写即可。 PyCharm 会识别您的提示并将当前上下文纳入其建议的考虑范围。

生成文档

现在,当 PyCharm 检测到 docstring 格式时,它会显示 Generate with AI Assistant(使用 AI Assistant 生成)嵌入提示。 此功能可以帮助您利用 AI 来加快生成文档的过程。

改进的上下文管理

在此更新中,对于 AI Assistant 在其建议中考虑的上下文,我们使其管理更加透明直观。 改进的 UI 可让您查看和管理作为上下文包含的每个元素,提供完全的可见性和控制。 现在,打开的文件以及其中选择的代码都会自动添加到上下文中,您可以根据需要轻松添加或移除文件,自定义上下文以匹配您的工作流。 此外,您还可以附加项目范围说明来指导 AI Assistant 在整个代码库中的响应。

选择聊天模型提供商的选项

现在,您可以选择自己喜欢的 AI 聊天模型,例如 Google Gemini、OpenAI 或您机器上的本地模型。 有了更多选择,您可以自定义 AI 聊天的响应以适合您的具体工作流,享受适应性更强的个性化体验。

在 Python 控制台中运行来自 AI 聊天的代码

在 Python 控制台中运行来自 AI 聊天的代码段,更快地迭代 AI Assistant 建议的代码。 点击代码段右上角绿色的 Run(运行)按钮,查看建议的代码段如何运作。

立即访问 PyCharm 文档

现在,AI Assistant 可以根据 PyCharm 文档的最新状态建议在 PyCharm 中执行给定任务的最佳方式。 使用 /docs 命令可以获取有关如何最有效完成任务的定制提示。

能够识别提示中的 DataFrame 和变量

AI Assistant 现在能够处理 Notebook 中的 DataFrame 和变量。 只需在 DataFrame 或变量的名称前加上 #,AI Assistant 就会帮助您进行分析。 AI Assistant 可以直接访问 DataFrame 的摘要和统计信息,因此能够为您提供最理想的结果。

此外,您可以直接从聊天中导航到 Jupyter 工具窗口的 Variables(变量)视图。 只需在提及 DataFrame 或变量时点击回形针图标。

支持将 for 循环转换为列表推导式

AI Assistant 现在可以将大量的 for 循环转换为列表推导式,加快代码重构速度。 此功能适用于所有 for 循环,包括嵌套循环和 while 循环。

通过 AI Assistant 进行的 SQL 错误处理

我们为通过 AI Assistant 处理 SQL 查询执行错误实现了一些实用操作。 现在,对于每条错误消息,PyCharm 都会在错误消息的最右侧显示两个操作:Explain with AI(使用 AI 解释)和 Fix with AI(使用 AI 修正)。

Explain with AI(使用 AI 解释)会打开 AI 聊天,发送自动提示,并给出 AI Assistant 对错误的解释。

Fix with AI(使用 AI 修正)会在编辑器中为查询执行错误生成修正。

这两个新操作的工作方式与 Fix SQL Problem Under Caret(修正文本光标下的 SQL 问题)和 Explain SQL Problem Under Caret(解释文本光标下的 SQL 问题)意图操作类似。

此功能需要附加数据库架构以建议适当的解释和修正。

本地多行 AI 代码补全 PyCharm Professional

PyCharm Professional 现在基于用于全行代码补全的专有 JetBrains ML 模型提供本地多行 AI 代码补全建议。 注意,我们不会使用您的数据来训练模型。

本地多行代码补全通常会在可以预测逻辑步骤下一个序列的场景中生成 2-4 行代码,例如在循环内、处理条件时或补全常见代码模式和样板部分时。

Python

针对 dataclass_transform 装饰器的编码辅助 (PEP 681)

当您处理通过使用 dataclass_transform 装饰器的库创建的自定义数据类时,IDE 现在能够为您提供与标准数据类相同的智能编码辅助。 例如,您可以获得针对特性的代码补全以及针对构造函数签名的类型推断。

Jupyter Notebook PyCharm Professional

针对多个软件包的自动安装

借助 PyCharm 2024.3,您可以更轻松地安装代码中导入的软件包。 可以使用一项新的快速修复进行批量自动安装,一键下载并安装多个软件包。

在 Jupyter 控制台中运行特定行

PyCharm 现在允许您直接在 Jupyter 控制台中运行所选代码行,无需执行整个单元。 此功能可让您轻松快速地调试或检查特定代码段的输出,有助于提高工作流的灵活性和效率。

Data View(数据视图)窗口中打开 Jupyter 表输出

Data View(数据视图)工具窗口中查看 Jupyter 表输出,访问热图、格式设置、切片和 AI 功能等强大功能,增强 DataFrame 分析。 点击 Open in Data View(在数据视图中打开)图标即可开始。

针对局部变量和函数的内联重命名

现在,您可以直接在编辑器中重命名局部变量、函数和符号,无需打开对话框。 只需选择要重命名的实体,然后按 Shift+F6

Data View(数据视图)PyCharm Professional

无代码数据筛选

现在,您无需编写任何代码即可在 Data View(数据视图)工具窗口和 DataFrame 中筛选数据。 点击位于工具窗口或 DataFrame 右上角的 Filter(筛选)图标,然后选择想要使用的筛选选项。 筛选结果在同一窗口中即时显示。

此功能适用于所有受支持的 Python 框架,包括 Pandas、Polars、NumPy、PyTorch、TensorFlow 和 Hugging Face Datasets。

用户体验

高亮显示所选文本

PyCharm 现在默认自动高亮显示您在文件中选择的文本的所有实例。 这使得跟踪所选文本在整个代码中出现的位置更加简单。 您可以在 Settings | Editor | General | Appearance(设置 | 编辑器 | 常规 | 外观)中自定义功能。

索引编制期间的拼写和语法检查

基于 2024.2 版本取得的进展,我们增加了项目模型构建和索引编制期间可用的关键功能的数量。 在 2024.3 版本中,拼写和语法检查在索引编制期间也可运行。 这样,您无需等待索引编制完成即可捕获错误,例如 Markdown 文档和文档标记中的错误。

优化的 Rename(重命名)操作位置

我们优化了 Rename(重命名)操作在编辑器和 Project(项目)工具窗口中的元素上调用时在上下文菜单中的位置。 此操作现在位于顶层,方便经常使用鼠标的用户快速重命名文件、变量和其他元素。

Run(运行)微件:同时启动多个配置的选项

更新后的 Run(运行)微件可让您按住 Ctrl 并点击弹出窗口中的 Debug(调试)图标同时启动多个配置。 另外,此微件还会显示所有运行中配置的控件,提供清晰的状态概览并简化管理。

提高的默认标签页上限

我们将编辑器中的默认标签页上限提高到了 30 个。 这意味着在 IDE 开始关闭最近使用最少的标签页之前,您现在可以保留更多标签页。 您可以在 Settings | Editor | General | Editor Tabs(设置 | 编辑器 | 常规 | 编辑器标签页)中控制此设置。

调试器

调试端口规范 PyCharm Professional

PyCharm 现在允许您为所有通信指定单个调试器端口,从而简化在 Docker 或 WSL 等受限环境中的调试。 在调试器设置中设置端口后,调试器将作为服务器运行,并且它与 IDE 之间的所有通信都通过指定端口进行。

数据库 PyCharm Professional

浮动分页工具栏

为了使数据编辑器中的网格分页更加明显,我们将控件从工具栏移动到数据编辑器的底部中心。

针对 JOIN 子句数量是否过多的检查

在某些情况下,不建议运行包含过多 JOIN 子句的查询,因为这会降低性能。 编辑器现在可以识别并高亮显示此类查询。 您可以在 IDE 设置中启用此检查。 为此,导航到 Editor | Inspections(编辑器 | 检查),展开 SQL 部分,然后选择 Excessive JOIN count(JOIN 计数过多)。

MySQL 和 MariaDB 的片段内省和智能刷新

PyCharm 现在支持片段内省。 此前,内省器只能对 MySQL 或 MariaDB 数据库中的架构执行完整内省,但不能刷新单个对象的元数据。 每次 DDL 语句在控制台中执行并且该执行可能修改数据库架构中的对象时,IDE 都会启动对整个架构的全面内省。 这非常耗时,并且经常会扰乱工作流。

现在,PyCharm 可以分析 DDL 语句,确定哪些对象可能受其影响并仅刷新这些对象。 如果您在 Database Explorer(数据库资源管理器)中选择单个条目并调用 Refresh(刷新)操作,则只有一个对象会被刷新,而不是像以前一样整个架构都被刷新。

Web 开发 PyCharm Professional

改进的框架组件导航和重命名

我们增强了针对 Vue、Svelte 和 Astro 组件的编辑器内提示。 Show component usages(显示组件用法)操作现在可以在 import 和标记模板中查找用法。 我们还添加了 Show Component Usages(显示组件用法)筛选器,以便在搜索常规文件引用时排除组件用法。 Rename(重命名)重构也已更新,现在可以在重命名组件文件时包含用法。

更清晰的目录搜索结果

现在,在项目目录中使用 Find in Files(在文件中查找)时,PyCharm 会默认排除 node_modules 结果,减少无关文件造成的混乱。 您可以启用 Settings | Advanced Settings(设置 | 高级设置)下的 Search in library files when “Directory” is selected in Find in Files(在“在文件中查找”中选择“目录”时,在库文件中搜索)选项恢复先前的行为。

VCS

拉取与合并请求的标题和描述生成

现在,AI Assistant 可以帮助您直接从 IDE 为拉取与合并请求生成准确的标题和描述,从而简化您的工作流并确保您的描述清晰直观。

Find in Files(在文件中查找)的更新

Find in Files(在文件中查找)功能得到增强,增加了新的搜索范围 Project Files Excluding Git-Ignored(项目文件,不包括 Git 忽略的文件)。 此选项将从搜索结果中排除 .gitignore 文件中忽略的任意文件,帮助您在项目中搜索时只关注相关代码。

禁用后台预提交检查的选项

现在,您可以使用 Settings | Version Control | Commit(设置 | 版本控制 | 提交)下的新选项 Run advanced checks after a commit is done(提交完成后运行高级检查)在提交过程中管理后台检查。 通过此设置,您可以决定是否在提交后运行测试和检查。 如果您希望在提交之前完成这些检查,将其禁用即可。

框架和技术 PyCharm Professional

HTTP 客户端更新

PyCharm 2024.3 引入了使用 $env.ENV_VAR 语法在 HTTP 客户端内直接访问环境变量的功能。 这使请求和脚本中的变量管理和使用更加灵活。 此外,现在还可以运行来自包含的 .http 文件的请求(一次全部运行或按名称运行特定请求)并重写变量。

增强的 Dev Containers 支持

Dev Containers 构建现在可以在远程 Docker 引擎上更顺畅地运行,并防止本地目录无法远程访问时出现错误。 WSL 的稳定性也得到增强,镜像构建和连接均有所改进。

devcontainer.json 文件更一致地处理 features,新的 <0>updateRemoteUID 选项通过设置正确的用户身份来避免访问冲突。 Dev Containers 中的 IDE 设置可通过 devcontainer.json 文件或 Add currently modified settings from IDE(从 IDE 添加当前修改的设置)按钮进行自定义,所有可用选项均可自动补全。

新终端改进 测试版

新终端现在提供增强的命令处理,其 UI 的对齐也得到改进,营造出更流畅、更直观的体验。 现在,终端的响应速度更快,处理提示词的速度也更快。 会话现在可以无缝切换,并且各标签页的状态保持一致,确保工作流不会中断。 自动补全可以更快访问命令名称、标志和路径,减少手动输入。 我们还引入了额外自定义选项,包括提示样式、会话名称和环境变量,让您更好地控制终端环境。

Kubernetes 集群日志

PyCharm 现在提供具有流式传输和模式匹配功能的集群范围 Kubernetes 日志访问 – 这是开发者以及 DevOps 和 SRE 团队的必备工具。 这项功能提供跨 pod、节点和服务的所有事件的集中视图,帮助您快速发现问题,而无需手动检查每个日志。 实时流式传输可以实现即时诊断,而模式匹配可以自动检测关键事件和错误,例如内存不足问题或异常网络活动。 阅读这篇博文了解此功能的更多信息以及使用方法。

Docker Compose 改进

PyCharm 2024.3 为 Docker Compose 提供了扩展支持。 现在,它在 env_file 自动补全中优先考虑 .env 文件,使环境设置更快。 cache_tono_cachetags 和 <0>platforms 这些新的构建选项提供了对缓存和平台定位的更大控制。 depends_on.requireddepends_on.restart 的增强处理可以更有效地管理依赖容器的启动和关闭顺序。

deploy.placement.preferencesdeploy.resources.pidsdeploy.resources.reservations.devices 等新密钥允许灵活的服务放置和资源限制。 现在多上下文构建和特权构建通过 build.additional_contextsbuild.privileged 获得支持。

额外选项包括 cgroup 配置、自定义 extra_hosts 映射和 healthcheck.start_interval。 增强的端口设置和 secrets.environment 现在通过环境变量简化了密钥管理。

OpenTofu 和 Terraform 增强

OpenTofu 现已获得支持。 此更新包括加密方法、密钥提供方的自动补全以及未知引用的检查。

Terraform 运行配置操作可通过 Search Everywhere 访问,IDE 自动检测未使用的变量和本地变量以保持代码清洁。 InitValidatePlanApplyDestroy 的控制已经得到改进,Run Configuration(运行配置)表单也已简化。 此外,改进的使用指示器和未使用资源警告可增强导航并帮助您识别停用代码。