IntelliJ IDEA 2023.2 最新变化
IntelliJ IDEA 2023.2 最新变化
程序员朱永胜IntelliJ IDEA 2023.2 引入 AI Assistant,通过一组由 AI 提供支持的功能助力开发。 升级的 IntelliJ 分析器现在提供编辑器内提示,使分析进程更加直观详尽。
此版本还包括有助于简化开发工作流的 GitLab 集成,以及其他多项值得关注的更新和改进,如下所述:
主要更新
AI Assistant
限定访问 Ultimate 在此版本中,我们为 IntelliJ IDEA 引入了一项重要补充 – AI Assistant。 AI Assistant 当前具备一组由 AI
提供支持的初始功能,提供集成式 AI 聊天,可以完成一些任务,例如自动编写文档注释、建议名称、生成提交消息等。 JetBrains AI 服务为
AI Assistant 提供技术支持,此服务目前可以连接到 OpenAI,后续还将包含其他语言模型提供商。 要访问 Assistant 的 AI 功能,您需要安装
AI Assistant 插件并使用 JetBrains Account 登录 JetBrains AI 服务。 JetBrains AI 服务的初始可用性可能受限。 有关 AI
Assistant
的更多信息以及访问说明,请查阅 这篇博文。
编辑器内性能提示
Ultimate 在 IntelliJ IDEA 2023.2 中,我们增强了 IntelliJ 分析器,为应用程序性能提供更有价值且易于理解的洞察。
新的编辑器内提示可供快速逐行分析代码性能,帮助您更快识别和解决问题。 编辑器装订区域中的颜色编码注解可以高亮显示关键方法,让您专注于性能瓶颈。
因此,您不再需要使用 _Flame Graph_(火焰图)和 _Call Tree_(调用树)视图执行彻底、耗时的分析。
在这篇 博文
中了解详情。
GitLab 集成
IntelliJ IDEA 2023.2 引入了与 GitLab 的集成,帮助简化您的开发工作流。 现在,您可以直接在 IDE 中使用 Merge Requests
(合并请求)功能:查看请求列表、检查更改、留下评论,以及导航到相关视图。 了解详情。
用户体验
Search Everywhere_(随处搜索)中的文本搜索
Search Everywhere_(随处搜索)(按两次 Shift)主要用于搜索文件、类、方法、操作和设置。 在此更新后,它将包含类似于 Find in Files
(在文件中查找)的文本搜索功能。 现在,当给定查询的其他搜索结果很少或没有时,将显示文本搜索结果。 此功能默认启用,可以在
_Settings/Preferences | Advanced Settings | Search Everywhere_(设置 / 偏好设置 | 高级设置 |
随处搜索)中管理。
新 UI 中的彩色项目标题
IntelliJ IDEA 2023.2 引入了彩色标题,可以简化多个打开的项目之间的导航。 现在,您可以为每个项目分配唯一的颜色和图标,使其在工作区中更易区分。
标题现在默认带有预定义的颜色,但您也可以自定义。 要为项目设置新的颜色,首先右键点击标题,然后访问上下文菜单。 然后,选择
_Change Project Color_(更改项目颜色)选项,并从建议的列表中选择所需颜色,或者浏览调色盘。 如果您想禁用此功能,只需在上下文菜单中取消选择
Show Project Gradient
(显示项目渐变)选项。
在 Windows 和 Linux 上的主工具栏中重做了汉堡包菜单
我们改进了 Windows 和 Linux 上新 UI 中主工具栏汉堡包菜单的行为。 点击菜单图标后,元素现在水平显示在工具栏上方。
此外,现在还有一个选项可以将此菜单转换为单独的工具栏,此选项的路径为 View | Appearance | Main menu as a Separate Toolbar
(视图 | 外观 |
主菜单作为单独的工具栏)。
在 _Project_(项目)视图中按修改时间对文件进行排序
IntelliJ IDEA 2023.2 添加了备受期待的功能,让您可以根据修改时间在 _Project_(项目)视图中排列文件。
每当项目中有更改被保存时,这个新功能就会自动重排文件。 要启用此功能,首先打开 _Project_(项目)视图中的竖三点菜单,然后选择
_Tree Appearance | Sort by Modification Time_(树外观 |
按修改时间排序)。
新 UI 中带有浅色标题的浅色主题
在 v2023.2 中,我们通过引入替代的 Light with Light Header
(带有浅色标题的浅色主题)选项提升了_浅色_主题的用户体验,该选项可为窗口标题、工具提示和通知气球提供匹配的浅色。
更新了 macOS 上的窗口控件
在 macOS 上以全屏模式使用新 UI
时,窗口控件现在将在主工具栏上显示,而不是像以前一样在浮动栏上显示。
在新 UI 中移除了 Linux 上的标题栏
为了方便 Linux 用户,新 UI 中移除了操作系统的原生标题,使界面更加整洁。 默认将显示 IDE 的自定义标题,该标题提供了一系列工作区自定义选项。
如果您希望将标题还原为之前的外观,请取消选择 _Settings | Appearance & Behavior | Appearance | UI Options_(设置 |
外观与行为 | 外观 | UI 选项)中的 Merge main menu with window title
(将主菜单与窗口标题合并)选项。
检查描述中的语法高亮显示
在 _Settings / Preferences | Editor | Inspections_(设置 / 偏好设置 | 编辑器 |
检查)中,代码示例现在将包含语法高亮显示,让您可以更容易理解是什么触发了检查并决定使其处于活跃状态还是停用状态。
在项目目录之间单击导航
在 _Project_(项目)视图中,新增了 _Open Directories with Single Click_(单击打开目录)选项,可以更快展开和收起项目文件夹,更快响应。
点击竖三点菜单后,可以从下拉菜单中选择该选项。
改进了主工具栏自定义
我们扩展了新 UI 主工具栏的自定义选项。 现在,您可以使用下拉菜单快速选择要添加到工具栏的操作。 右键点击任意微件,选择 Add to
Main Toolbar
(添加到主工具栏),然后浏览可用选项。
Settings/Preferences_(设置 / 偏好设置)中的推荐插件
为了让您可以更轻松地为特定项目配置 IDE 以及通过插件扩展其功能,我们更新了 Settings/Preferences | Plugins
(设置 / 偏好设置 | 插件)部分的 UI。
它现在包含一组推荐插件,根据您的项目具体情况自动定义,并在列表顶部显示。
更新了 Services(服务)工具窗口中 _Run/Debug_(运行 / 调试)
微件的 UI 我们重做了 _Services_(服务)工具窗口中运行和调试操作的 UI,使工具栏外观与主 Run/Debug
(运行 / 调试)微件一致。
在 _Run_(运行)微件中固定运行配置
为了简化多个运行配置的管理,我们在 _Run_(运行)微件中实现了固定首选配置的选项。 要将运行配置添加到 Pinned
(固定)部分,首先打开其名称旁边的竖三点菜单,然后选择 _Pin_(固定)。 如果有多个固定的配置,在列表中拖放即可轻松排列。
#Java
新检查和其他代码分析改进
我们改进并扩展了 Java 检查,帮助您维护优质代码并更有效地检测潜在问题。 当模式引用与实参不匹配时,新的 _Incorrect
‘MessageFormat’ pattern_(’MessageFormat’ 模式不正确)检查会发出警告,并且它还会检测 MessageFormat
模式中引号和大括号的错误用法。
此外,IDE 现在将报告带有显式 ChronoField
或 ChronoUnit
实参的调用,并建议将其替换为更具体的方法的调用,从而简化代码。
在这篇 博文
中详细了解 IntelliJ IDEA 2023.2
中的新检查和其他代码分析改进。
格式字符串的代码高亮显示和导航
现在,将文本光标置于格式说明符上后,IDE 将高亮显示相应实参和指向它的其他说明符。 此外,您现在可以使用 Go To Declaration
(转到声明)(Ctrl+B)
跳转到特定格式字符串占位符的关联代码位置。
改进了对 Javadoc 注释中 @snippet
标记的支持
IntelliJ IDEA 改进了 Javadoc 注释中的 @snippet
标记功能。 它允许在 @snippet
标记内添加标记注释,并在文档中正确呈现。
代码区域已得到支持,您可以指定要在 Javadoc 注释中引用的代码部分。 此外,IDE 现在还支持在 @snippet
标记内包含外部代码段,这将允许您引用存储在单独文件或源中的代码段,并将其包含在 Javadoc
文档中。
扩展了多个选定成员的重构选项
我们添加了新方式,可供同时将特定重构应用于多个成员。 现在,您可以在 _Project_(项目)或 _Structure_(结构)工具窗口中直接选择多个成员,同时对其调用
_Extract Delegate_(提取委托)、_Extract Interface_(提取接口)、_Extract Superclass_(提取超类)、_Pull Members Up_(向上拉取成员)和
_Push Members Down_(向下推送成员)。 此外,IntelliJ IDEA 现在支持以多文本光标选择进行扩展范围的重构,包括 _Encapsulate
Fields_(封装字段)、_Move Static Members_(移动 static 成员)、_Extract Delegate_(提取委托)、_Extract Interface_(提取接口)和
_Extract Superclass_(提取超类)。 要利用此功能,请将文本光标放置在您希望应用重构的各成员中,IDE
将自动在重构对话框中预选并检查这些成员。
改进了堆栈跟踪分析的导航
为了改进堆栈跟踪分析并更快地解决 bug,IntelliJ IDEA
现在可以准确猜测报告中方法的位置,即使行号不可用或已偏离。
增强了动态 SQL 查询的污点分析
Ultimate IntelliJ IDEA 现在可以更好地分析 Java 和 Kotlin 中 SQL 的串联和内插,检测潜在的不安全查询,使代码避免可能的 SQL
注入漏洞。
Scala
更出色的 Scala 3 支持
IntelliJ IDEA 2023.2 增强了 Scala 3 支持,专注于简化开发体验。 值得注意的改进包括对 Scala 3 枚举高亮显示的修正、枚举定义导航,以及多种上下文中枚举
case 的正确解析。 TASTy 反编译器得到显著增强,确保对 Akka、Cats、Play、ZIO 等流行 Scala 库进行准确的反编译。
此外,调试器中的 scala-expression-compiler
集成也将为 Scala 开发者提供更好的调试体验。 其他改进包括 Scala 3
通用应用方法的增强补全提示、对 IArray
的编辑器内支持,以及对“更少大括号”语法的改进支持。
更好的 sbt 支持
此版本对 IntelliJ IDEA 的 sbt 支持进行了许多改进。 重新打开项目后,为 sbt 设置的环境变量将被保留并正确处理。 重新设计的设置页面
_File | Settings | Build, Execution, Deployment | Build Tools | sbt_(文件 | 设置 | 构建、执行、部署 | 构建工具 |
sbt)更为易用,并新增了 _Environment variables_(环境变量)字段,因此,您可以将自定义环境变量传递到 sbt-shell
进程。
ScalaDoc 呈现
在这个版本中,ScalaDoc 的快速文档与 Javadoc 的更加一致。 现在,显示的声明中的注解、关键字和文字将根据所选主题高亮显示。
如果超出可用空间,扩展的特征和类的列表将分成多行。 此外,文档中现在也支持 Scala 3
关键字。
修正了类型推断错误
新版本对某些复杂或罕见情况下的无效类型推断进行了许多修正,例如类型具有复杂边界、sealed 特征层次结构可能不清晰或在复杂模式匹配中的情况。
Zinc 作为默认编译器
鉴于 Zinc 最近的性能改进,我们在 v2023.2 中将其设为默认增量编译器。 这确保了对 Scala 3 新功能(包括 inline
方法)的增量编译的全面支持。
改进了源目录和目标目录的管理
目标文件夹的子文件夹不再自动包含为源,除非它们被标记为托管。 这将加快在生成源代码的项目中进行搜索的速度。 此外,IDE
还为 sbt-projectmatrix
提供了更好的支持。
性能分析器
从 _Run_(运行)工具窗口使用分析功能
Ultimate 在 IntelliJ IDEA 2023.2 中,您可以直接从 _Run_(运行)工具窗口轻松访问 IntelliJ 分析器的功能。 使用新按钮,点击一下即可调用
_Attach IntelliJ Profiler_(附加 IntelliJ 分析器)和 _Capture Memory Snapshot_(捕获内存快照)操作,无需打开 Profiler
(分析器)工具窗口或从头启动应用程序。
默认挂钟分析模式
Ultimate 我们将挂钟分析模式设为默认选项,增强了 IntelliJ IDEA 2023.2 中的分析体验。 此分析方法会考虑在方法中花费的总时间,包括等待时间。
它以毫秒为测量单位,是更强大、更直观的选项。
运行 / 调试
Reactor Mono
和 Flux
值求算
Ultimate 调试反应式应用程序时,您现在可以轻松求算 Mono
和 Flux
类型的监视和局部变量的值。 IDE 现在会在调试会话期间进行检测,并在
_Variables_(变量)视图中提供相应的 get
或 collectList
链接,点击即可立即计算 Reactive Streams 条目。
默认情况下,调试器会获取 Flux
的前 100 个条目。 您可以在 File | Settings | Languages & Frameworks | Reactive Streams
(文件 | 设置 | 语言和框架 | Reactive
Streams)中配置此数量。
Gradle、Maven 和 JPS 项目的持续测试
我们扩展了自动测试功能,使其与 Maven、Gradle 和 JPS 构建系统完全兼容。 我们还使持续测试模式更易激活。 要启用该模式,请使用
_Run/Debug_(运行 / 调试)工具窗口中新增的 _Rerun Automatically_(自动重新运行)按钮。
每当更改保存时,测试都会自动运行,对代码更新提供即时反馈。
return 语句的内联断点
IntelliJ IDEA 提供了对直接在 return 语句处设置断点的改进支持,类似于已在 lambda 表达式中实现的设置方式。
这一改进将为开发者提供更高的调试精度和更深入的代码分析,带来更有价值的代码行为和返回值洞察。 要设置内联断点,只需右键点击语句旁边的装订区域并选择
return 选项即可。
版本控制系统
提交特定代码行的选项
IntelliJ IDEA 2023.2 引入了一项备受期待的功能,可供有选择地提交代码区块的特定部分。 要执行部分提交,请选择区块中的行,然后从上下文菜单中调用
_Include these lines into commit_(将所选行包含到提交中)。 区块将被分为单独的行,所选行将被高亮显示。
您可以使用复选框或上下文菜单在选区中添加或排除行。
性能
轻松生成共享索引的新工具
IntelliJ IDEA 2023.2 提供了新的命令行工具,用于快速构建和上传共享索引。 它旨在简化团队合作并消除本地索引大型项目花费的时间。
新工具将简化为团队生成共享索引的过程,只需几下点击,无需多个脚本和服务。 了解详情。
框架和技术
在 WSL 上运行和调试
Tomcat Ultimate 从 IntelliJ IDEA 2023.2 开始,您可以在适用于 Linux 的 Windows 子系统 (WSL) 上运行和调试部署到 Tomcat
的应用程序。 要在 WSL 上使用基于 Tomcat 的应用程序,您需要在 /etc/environment
或 ~/.bashrc
文件中声明 JAVA_HOME
环境变量。
在 HTTP 客户端中使用 TLS 发送 gRPC 请求
Ultimate 您现在可以在 HTTP 客户端中通过传输层安全 (TLS) 发送 gRPC 请求。 TLS 提供加密和身份验证,确保数据传输的保密性和完整性。
请求语法支持 https://
和 grpcs://
架构。
针对 Swagger Codegen 的改进
Ultimate 设置 Swagger Codegen 配置时,IDE 现在将提供更好的用户体验。 我们重做了 _Edit Swagger Codegen Configuration_(编辑
Swagger Codegen 配置)对话框,让您可以更轻松地根据需求定制运行配置。 另外,您现在还可以直接从装订区域访问 Swagger Codegen
运行配置,无需指定额外设置。
HTTP 客户端中对 Swagger 和 OpenAPI 架构的支持
Ultimate HTTP 客户端现在能够理解 Swagger 和 OpenAPI 规范,并为 JSON
请求正文提供相应的代码补全选项。
OpenAPI 和 Swagger 文件的 Redoc UI 预览
Ultimate IntelliJ IDEA 现已支持 OpenAPI 和 Swagger 规范文件(包括 YAML 和 JSON 文件)的 Redoc UI
预览,允许您在 IDE 内的 Redoc 和 Swagger UI 之间切换。 通过 Redocly 集成,您可以从 IntelliJ IDEA 中访问 Try it
控制台,使用它设置参数并向 API
发送请求。
JavaScript 中的 JSON 正文补全
Ultimate IDE 现在为 JavaScript 代码中的 JSON 对象键提供补全,例如使用 fetch()
调用或引用 Axios 库的代码。 Spring MVC
服务器端点现已得到支持,未来将有更多服务器框架加入支持列表。 ###
HTTP 客户端中对 JavaScript 导入的支持 Ultimate 在 IntelliJ IDEA 2023.2 中,现在可以通过导入的模块共享 HTTP 客户端请求处理程序的通用
JavaScript 代码。
HTTP 客户端中响应的 PDF 和 HTML 预览
Ultimate IntelliJ IDEA 现在能够在 HTTP 客户端的请求结果中显示 PDF 和 HTML
文件的预览。
HTTP 客户端 CLI 中对 GraphQL 和 WebSocket 的支持
Ultimate 您现在可以在 IntelliJ IDEA
中使用 HTTP 客户端 CLI 与
GraphQL API 交互,并与服务建立 WebSocket
连接,用于测试或自动化脚本。
_VM options_(虚拟机选项)中 Spring Boot 配置键的自动补全
Ultimate 设置新的 Spring Boot 运行配置时,_VM options_(虚拟机选项)字段为 -D
标志后面出现的键提供自动补全选项。
Spring 配置 Bean 不再需要注解处理器
Ultimate 我们简化了在 IntelliJ IDEA 中使用 Spring 的自定义配置 Bean 时的用户体验。 IDE 现在会在属性和 YAML
配置文件中提供代码补全和验证,无需设置 Spring Boot
配置注解处理器。
Kotlin 中对 Spring AOP 的支持
Ultimate 我们扩展了 IntelliJ IDEA 对在 Spring 应用程序中使用 AspectJ 的支持。 IDE 现在可为 Kotlin 代码提供分析和补全,此前已经为
Java 代码提供。
针对检测 YAML 文件中不匹配值类型的新检查
Ultimate 在 IntelliJ IDEA 2023.2
中,我们引入了一项新检查,旨在消除 Norway Problem 并防止对
YAML 文件中布尔值的意外误解。 当列表主要由字符串组成但包含布尔式文字时,IntelliJ IDEA 将高亮显示此文字,指示潜在的不一致,并建议为其添加引号。
如果列表主要由布尔式文字(例如 true
、false
、off
、on
、yes
或 no
)组成,则偏离此模式的任何文字都将被高亮显示为可能的错误,不过,在这种情况下不会建议具体的快速修复。
对编辑 AsyncAPI 文件的支持
Ultimate 现在,在 IntelliJ IDEA 中使用 AsyncAPI 规范格式更加简单。 IDE 支持架构验证功能,并为引用、_Endpoints_(端点)视图和
_Editor Preview_(编辑器预览)窗格提供了代码补全。
Docker
在 Docker 镜像层内预览文件
现在可以在 _Services_(服务)工具窗口中轻松访问和预览 Docker 镜像层的内容。 从列表选择镜像,选择 _Show layers_(显示层),然后点击
_Analyze image for more information_(分析镜像以获得更多信息)。 这将打开层中存储的文件列表,您可以右键点击文件,然后点击
_Open File_(打开文件)(对于二进制文件,则为 Download File
(下载文件)),在编辑器中轻松打开所选文件。
将 Docker 容器设为作为运行配置的 _Before Launch_(启动前)任务运行
现在,可以将 Docker 运行配置指定为 _Before Launch_(启动前)任务,从而在另一个配置之前运行。 IDE 将等待当前运行的容器恢复正常,然后再启动下一个运行配置。
要将 Docker 运行配置放入队列中,首先创建配置,然后通过 Modify options | Add before launch task | Run configuration
(修改选项 | 添加启动前任务 | 运行配置)将其添加到相关容器中。
Kubernetes
对单个项目中多个 kubeconfig 文件的支持
Ultimate 这项新引入的功能允许您在单个项目中设置多个 kubeconfig 文件。 这简化了处理多个集群或在同一项目中的不同集群上使用环境的体验。
转到 _File | Settings | Build, Execution, Deployment | Kubernetes_(文件 | 设置 | 构建、执行、部署 |
Kubernetes)即可设置文件。
查看部署日志
Ultimate 现在,您可以在 _Services_(服务)工具窗口中查看 Kubernetes 集群中的部署日志。 右键点击树中的 Deployment
(部署),然后从上下文菜单中选择 _Follow Log_(关注日志)或 _Download Log_(下载日志)。
Web 开发
针对 JavaScript 和 TypeScript 改进了错误格式设置
Ultimate 我们在 IntelliJ IDEA 2023.2 中关注如何改进呈现 JavaScript 和 TypeScript 中类型错误的方式。
现在,您的错误和警告将以可读性更高的方式格式化,使代码中的问题更易发现。 这适用于所有 TypeScript 和一些最常见的 JavaScript
错误,甚至包括本地化后的错误。
CSS 嵌套支持
Ultimate IntelliJ IDEA 2023.2 现在支持 CSS 嵌套。
我们实现了语法支持和检查,新检查会在嵌套选择器以标识符或函数符号开头时发出提醒。
Vue 语言服务器支持
Ultimate Vue 语言服务器(VLS,又称 Volar)支持可在快速导航和文档弹出窗口中提供更准确的错误检测和更好的类型信息。 VLS 默认将用于
TypeScript v5.0 及更高版本,TypeScript 服务的包装器将用于更低版本的 TypeScript。 在 _Settings | Languages & Frameworks |
TypeScript | Vue_(设置 | 语言和框架 | TypeScript | Vue)下,您可以将 Vue 服务设置为在所有 TypeScript 版本上使用 VLS
集成。
适用于 React 挂钩的新实时模板
Ultimate 我们在 _Settings | Editor | Live Templates | React hooks_(设置 | 编辑器 | 实时模板 | React 挂钩)下为 React
挂钩添加了一组新的实时模板。 要使用实时模板,首先在编辑器中输入缩写,然后按 Tab 将其展开。
代码质量工作流
捆绑了 Qodana 代码质量平台
通过完全集成我们旨在适应任何 CI/CD
管道的智能静态分析引擎 JetBrains Qodana
,IntelliJ IDEA 2023.2 简化了静态分析工具的配置。 这一集成具备两大重要优势。 首先,简单的配置让您只需点击几下即可触发分析、查看项目级问题,以及在首选
CI/CD 系统中设置质量门。 其次,您现在无需离开 IDE 即可直接查看服务器端分析结果。
在这篇 博文
中详细了解 Qodana 及其最新版本。
数据库工具
Redis Cluster 支持
Ultimate 您现在可以连接到 Redis Cluster 并拥有与独立 Redis 相同的功能集。 连接到集群时,必须在所需 URL
之前输入 jdbc:redis:cluster:
。 为此,您需要选择适当的连接类型。 如果连接到集群需要 SSH 隧道,应在 URL
中指明集群中所有节点的主机和端口。
架构迁移对话框的新 UI
Ultimate 在 v2023.2 中,我们重做了架构迁移功能。
主要区别在于,同一个对象现在位于对话框两个部分的同一行上,从而更清晰地显示将在目标架构中添加、移除或更改的对象。
数据编辑器的 _Time zone_(时区)设置
Ultimate _Data Editor and Viewer_(数据编辑器和查看器)设置页面新增了 _Time zone_(时区)字段,用于设置显示 datetime
值的时区。
对 Redshift 中外部数据库和数据共享的支持
Ultimate 现在,共享数据库及其内容均会内省。 创建这些数据库的数据共享也会内省。
其他
- 在这个版本中,我们为想要在 IDE 中使用特定 LSP 服务器提供编码辅助的插件开发者引入了 LSP API。 如果您已经创建了自己的编程语言或框架,则可以创建
LSP 服务器和插件以在 IDE 中获得支持。 请注意,此功能仅在 IDE
的付费版本中可用。 了解详情。 - 我们分解了 Big Data Tools 插件,允许单独使用其各个部分。 这让
IntelliJ IDEA
得到六个新插件:Kafka、Spark、Flink、Remote File Systems、Big Data File Viewer
和 Zeppelin。 如果您需要全部六个插件,仍然可以一键安装 Big Data
Tools 插件。 IntelliJ IDEA 捆绑的 Android 插件现在提供 Android Studio Giraffe Beta 2 的所有功能,包括对 Android Gradle Plugin (AGP) 8.0.0 的支持。 请注意,此支持不包括需要登录 Firebase 帐号的功能。
从 2023.2 开始,最大堆大小 (-Xmx) 的默认值已更改为 2 GB。
�值已更改为 2 GB。