PhpStorm 2023.2 最新变化

此重大更新的亮点包括:

  • 针对 PHP 中泛型的改进
  • Laravel Pint 支持
  • 对 PHP 断言的原生支持
  • AI Assistant(限定访问)
  • GitLab 集成
  • Search Everywhere(随处搜索)中的文本搜索

AI Assistant 限定访问

此版本的一大主要补充是 AI Assistant,旨在以 AI 功能增强您的编码。 在目前的初始功能集下,您可以与 AI Assistant 聊天,让它完成一些任务,例如自动编写文档注释、建议名称、生成提交消息等。

AI 聊天

AI 聊天

使用 AI Assistant 工具窗口与 LLM(大型语言模型)交流、提出问题或获取代码段的帮助。 PhpStorm 将提供特定于项目的上下文,例如项目中使用的 PHP 语言级别和框架。 对 AI 生成的代码感到满意后,您可以点击 Insert Snippet at Caret(在文本光标处插入代码段)功能或手动复制,将代码放入编辑器。

AI Actions(AI 操作…)

AI Actions(AI 操作…)

Alt+Enter 上下文菜单现在具有 AI Actions(AI 操作)功能,AI Assistant 可以帮助您完成许多任务。

代码文档

代码文档

AI Assistant 还可以为您生成文档。 按 Alt+Enter,选择 AI Actions(AI 操作)菜单,然后选择 Write Documentation(编写文档)。 或者,AI Assistant 会很乐意通过聊天解释您的代码。

提交消息生成

提交消息生成

提交消息对话框现在有一个 Generate Commit Message with AI Assistant(使用 AI Assistant 生成提交消息)按钮。 点击将更改的差异发送到 LLM,后者将生成描述更改的提交消息。

如何访问

如何访问

AI Assistant 由 JetBrains AI 服务提供支持。 要访问 AI 功能,您需要手动安装 AI Assistant 插件并使用 JetBrains Account 登录 JetBrains AI 服务。 最简单的方法是点击工具栏上的 More tool windows(更多工具窗口)图标,选择 AI Assistant,然后按照提示操作。

另请注意,AI Assistant 的访问权限目前可能受等候名单的限制。 您可以在这篇博文中详细了解 AI Assistant 的运作方式以及我们对您的代码和数据的处理方式。

我们希望您尝试这些新 AI 功能并向我们发送您的想法和建议。 点击 AI Assistant 工具窗口中的 Share your feedback(分享反馈)即可。 您也可以在 YouTrack 上报告 AI Assistant 的 bug。

PHP

PHP 中的泛型

新的 Rename generic(重命名泛型)重构

新的 Rename generic(重命名泛型)重构

在泛型类型上按 Shift+F6 开始重命名,PhpStorm 将在整个代码库中自动更新名称。

另一种方法是按 Ctrl+T,然后选择 Rename(重命名)。

对泛型中 `static` 类型的支持

对泛型中 static 类型的支持

此领域最受期待的功能之一是对泛型模板中的 static 引用的支持。

我们已在这个版本中将其实现,但我们仍会继续改进 PHP 泛型支持。

对 @mixin 和模板的支持

@mixin 和模板的支持

通过泛型 @mixin 注解,您可以充分使用装饰器和其他将行为注入对象的模式。 PhpStorm 现在在适用情况下为此提供代码补全。

消除冗余的 PHPDocs 生成

消除冗余的 PHPDocs 生成

现在,PhpStorm 会在大量操作中舍弃自动生成的 PHPDoc 块中的冗余声明,并报告文档注释中的特定冗余 PHPDoc 标记。

对于生成的 getter 和 setter,PhpStorm 现在仅在没有声明类型时添加 PHPDoc 注释。

要调用 getter 和 setter 方法的生成,请使用 Add getter/setter(添加 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(设置 | PHP | 质量工具)并展开 Laravel Pint 部分。

在这里,您还可以将 Laravel Pint 设为外部格式化程序。 这将能够通过 Reformat Code(重新设置代码格式)(Ctrl+Alt+L) 操作一次性修正 Laravel Pint 检测到的所有问题。

要启用 Laravel Pint 作为 PhpStorm 检查,请转到 Settings | Editor | Inspections(设置 | 编辑器 | 检查)并选中 PHP | Quality Tools(PHP | 质量工具)下的 Laravel Pint validation(Laravel Pint 验证)复选框。

启用检查后,Laravel Pint 检测到的问题将在任意打开的 PHP 文件中高亮显示或在 Problems(问题)工具窗口中报告。

对 PHP 断言的支持

对 PHP 断言的支持

在这个版本中,我们扩展了代码洞察逻辑以涵盖 PHP 断言。

PhpStorm 现在可以检测并高亮显示冗余断言,因为它们始终为 true 或始终为 false。 This is available for PHP’s built-in assert() constructs, PHPUnit’s assertion methods, and methods from the webmozart/assert and beberlei/assert libraries.

用户体验

新 UI 中的彩色项目标题

新 UI 中的彩色项目标题

现在,您可以为每个项目分配唯一的颜色和图标,使其在工作区中更易区分。

标题默认带有预定义颜色,但现在您可以自定义:右键点击标题,选择 Change Toolbar Color(更改工具栏颜色)选项,然后选择所需的颜色。

Search Everywhere(随处搜索)中的文本搜索

Search Everywhere(随处搜索)中的文本搜索

Search Everywhere(随处搜索)(按两次 Shift)用于搜索文件、类、方法、操作和设置。

它现在包含类似于 Find in Files(在文件中查找)的文本搜索功能。 当给定查询的其他搜索结果很少或没有时,将显示文本搜索结果。

改进了主工具栏自定义

改进了主工具栏自定义

在新 UI 中,您可以使用下拉菜单快速选择要添加到工具栏的操作。

右键点击任意微件,选择 Add to Main Toolbar(添加到主工具栏),然后浏览可用选项。

在 Windows 和 Linux 上的主工具栏中重做了汉堡包菜单

在 Windows 和 Linux 上的主工具栏中重做了汉堡包菜单

我们改进了 Windows 和 Linux 新 UI 中主工具栏汉堡包菜单的行为。 点击菜单图标后,元素现在水平显示在工具栏上方。

此外,现在还有一个选项可以将此菜单转换为单独的工具栏。 转到 View | Appearance | Main menu as a Separate Toolbar(视图 | 外观 | 主菜单作为单独工具栏)即可。

新 UI 中的 Light theme with Light Header(带有浅色标题的浅色主题)

新 UI 中的 Light theme with Light Header(带有浅色标题的浅色主题)

我们引入了替代的 Light with Light Header(带有浅色标题的浅色主题),为窗口标题、工具提示和通知气球提供匹配的浅色。

固定运行配置

固定运行配置

要将运行配置添加到 Pinned(固定)部分,首先打开其名称旁边的竖三点菜单,然后选择 Pin(固定)。 您可以根据需要拖放多个固定配置,轻松地对它们进行重新排列。

在 Project(项目)视图中按修改时间对文件进行排序

Project(项目)视图中按修改时间对文件进行排序

您可以根据修改时间在 Project(项目)视图中排列文件。 要启用此功能,首先打开 Project(项目)视图中的竖三点菜单,然后选择 Tree Appearance | Sort by Modification Time(树外观 | 按修改时间排序)。

HTTP 客户端改进

OpenAPI 和 Swagger 文件的 Redoc UI 预览

OpenAPI 和 Swagger 文件的 Redoc UI 预览

您现在可以在 Redoc 和 Swagger UI 之间切换,预览 OpenAPI 文档。

通过 Redoc 集成,您可以从 PhpStorm 中访问 Try it 控制台,使用它设置参数并向 API 发送请求。

HTTP 客户端 CLI 中对 GraphQL 和 WebSocket 的支持

HTTP 客户端 CLI 中对 GraphQL 和 WebSocket 的支持

您可以使用特殊的 HTTP 客户端 CLI 将 .http 文件作为请求运行。

从这个版本开始,工具将能够与 GraphQL API 交互并与服务建立 WebSocket 连接。

HTTP 客户端中对 JavaScript 导入的支持

HTTP 客户端中对 JavaScript 导入的支持

现在还可以通过导入的模块共享 HTTP 客户端请求处理程序的通用 JavaScript 代码。

VCS / Git / GitLab

GitLab Merge Requests(合并请求)支持

GitLab Merge Requests(合并请求)支持

PhpStorm 2023.2 引入了与 GitLab 的初始集成,可供直接从 IDE 使用 Merge Requests(合并请求)功能。

逐行提交更改

逐行提交更改

PhpStorm 引入了新的提交粒度级别,允许您有选择地仅提交代码区块中的特定更改行。

打开文件差异,选择编辑的区块中的行,然后从上下文菜单中调用 Include these lines into commit(将所选行包含到提交中)。 您将看到每行的复选框,您可以选择也可以不选择。

针对插件开发者的 LSP 支持

PhpStorm 可能(尚未)原生支持某些语言和技术,但可能已经有语言服务器可以提供支持。 因此,我们让插件开发者可以使用 LSP API 和集成特定 LSP 服务器。

如果您已经创建了自己的编程语言或框架,则可以编写 LSP 服务器和插件以在 IDE 中获得支持。

目前,LSP 支持包括错误和警告高亮显示、快速修复、代码补全和声明导航。

捆绑了 JetBrains Qodana

PhpStorm 2023.2 集成了代码质量平台 Qodana – 我们旨在适应任何 CI/CD 管道的智能静态分析引擎。

您只需点击几下即可触发分析,查看整个项目的问题列表,以及在首选 CI/CD 系统中配置 Qodana 来建立质量门和运行服务器端检查。

另外,在 CI/CD 上配置 Qodana 后,您就可以立即查看服务器端分析的结果,无需离开 IDE。

Web 开发

针对 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 语言服务器支持

Vue 语言服务器支持

Vue 语言服务器(VLS,又称 Volar)支持可在快速导航和文档弹出窗口中提供更准确的错误检测和更好的类型信息。 默认情况下,VLS 将用于 TypeScript v5.0 及更高版本。 在 Settings | Languages & Frameworks | TypeScript | Vue(设置 | 语言和框架 | TypeScript | Vue)下,您可以将 Vue 服务设置为在所有 TypeScript 版本上使用 VLS 集成。