- ChatGPT开源公众号:https://gitee.com/wy521a/astar-weixin-mp
- 最新变化 2023.1
- 主要更新
- 用户体验
- 编辑器
- Java
- Scala
- 分析器
- 版本控制系统
- 构建工具
- 运行/调试
- 框架和技术
- Docker
- Kubernetes
- 远程开发和协作
- Web 开发
- 其他
在浏览器中打开
IntelliJ IDEA 2023.1 最新变化
主要更新
PreviousNext
新 UI 增强 测试版
根据有关 IDE 新 UI 的反馈,我们针对最热门的请求实现了多项更新。 我们引入了 Compact Mode(紧凑模式),通过缩小间距和元素提供更统一的 IDE 外观。 新 UI 提供了垂直拆分工具窗口区域和便捷排列窗口的选项,与在旧 UI 中相同。 主窗口标题中的 Run(运行)微件经过重新设计,外观更柔和、更悦目。 详细了解新 UI 增强,我们也继续邀请您尝试新 UI!
启用新 UI
在项目打开时更早提供 IDE 功能
我们通过在智能模式下执行 Scanning files to index(正在扫描要建立索引的文件)进程改进了 IDE 启动体验。 这样可以在启动过程中更早地提供完整的 IDE 功能。 打开项目时,IntelliJ IDEA 2023.1 会使用项目先前会话中的现有缓存,并同时查找要建立索引的文件。 如果在扫描中没有发现更改,IDE 将准备就绪,消除此前启动时建立索引所造成的延迟。
更快地导入 Maven 项目
我们通过优化依赖项解析以及重做导入和配置 facet 背后的流程,显著提高了 IDE 在导入 Maven 项目时的性能。
后台提交检查
我们重做了 Git 和 Mercurial 提交检查的行为,旨在加快整个提交流程。 检查将在提交之后且推送之前在后台执行。
Spring Security 匹配器和请求映射的导航 Ultimate
为了使应用的安全规则更易查看,IntelliJ IDEA Ultimate 2023.1 提供了从 Spring 控制器到安全匹配器的轻松导航。 导航可在安全匹配器和控制器之间双向进行。
用户体验
PreviousNext
全 IDE 缩放
在 v2023.1 中,可以完全放大和缩小 IDE,同时增加或缩减所有 UI 元素的大小。 从主菜单中,选择 View | Appearance(视图 | 外观),调整 IDE 的缩放比例。 此外,您可以在 Settings/Preferences | Keymap | Main Menu | View | Appearance(设置/偏好设置 | 按键映射 | 主菜单 | 视图 | 外观)中指定调用这些操作的自定义快捷键。
保存多个工具窗口布局的选项
在 IntelliJ IDEA 2023.1 中,您可以保存和管理多个工具窗口布局,并根据需要在它们之间切换。 要保存新布局,首先请根据需要排列工具窗口,然后转到 Window | Layouts | Save Current Layout as New(窗口 | 布局 | 将当前布局另存为新布局)。 如果您进一步调整布局,可以使用 Save Changes in Current Layout(保存当前布局中的更改)选项更新当前设置,或将这些更改保存为单独的自定义布局。 要激活已保存的布局,首先在 Window | Layouts(窗口 | 布局)的列表中找到它,将鼠标悬停在它的名称上,然后点击 Apply(应用)。
PreviousNext
新的 Remember size for each tool window(记住每个工具窗口的大小)设置
在 IntelliJ IDEA 2023.1 中,我们引入了一个新的布局选项,允许您统一侧面工具窗口的宽度或保留在自定义布局时自由调整其大小的能力。 新的 Remember size for each tool window(记住每个工具窗口的大小)复选框位于 Settings/Preferences | Appearance & Behavior | Tool Windows(设置/偏好设置 | 外观与行为 | 工具窗口)中。 在这篇博文中了解这个设置如何适用于新旧 UI。
PreviousNext
示例项目中的入门提示
对于刚接触 IntelliJ IDEA 和编码的用户,我们引入了打开包含示例代码与入门提示的新项目的选项。 在 New Project(新建项目)向导中,选中 Generate code with onboarding tips(使用入门提示生成代码)获得基本沙盒项目,其中包含演示 IDE 基本功能的提示。 遵循这个小指南,用户可以尝试 Search Everywhere(随处搜索)功能、应用快速修复、运行和调试代码,从而更快地熟悉 IDE。
为新项目配置 Actions on Save(保存时的操作)的设置
IntelliJ IDEA 2023.1 添加了为新项目预定义 Actions on Save(保存时的操作)行为的选项。 转到 File | New Projects Setup | Preferences For New Projects | Tools | Actions on Save(文件 | 新项目设置 | 新项目偏好设置 | 工具 | 保存时的操作),选择在未来项目中保存更改时要触发的操作。
Search Everywhere(随处搜索)中机器学习驱动的类搜索默认启用
为了提供更有意义和更准确的搜索结果,我们将机器学习排名进一步集成到 Search Everywhere(随处搜索)(Double ⇧)功能中。 Classes(类)标签页中的排序算法现在也默认由机器学习驱动,与 Actions(操作)和 Files(文件)标签页中的结果相同。
重新配置 Microsoft Defender 设置以获得更好性能的新建议
IntelliJ IDEA 2023.1 包含一个新通知,会在启用 Microsoft Defender 实时保护时触发。 由于这些防病毒检查会显著降低 IDE 的速度,IntelliJ IDEA 会建议将特定文件夹添加到 Defender 的排除项列表。 通知提供了自动重新配置这些设置或首先检查 Defender 的配置说明并手动执行的选项。
编辑器
指定粘贴内容的位置的选项
在 v2023.1 中,我们微调了粘贴复制或剪切时未选择内容的行时的用户体验。 新增了一个允许您控制粘贴内容位置的特殊设置。 在 Settings/Preferences | Advanced Settings(设置/偏好设置 | 高级设置)中,找到 Editor(编辑器)版块,然后从下拉列表中为 Paste(粘贴)操作选择所需行为。
PreviousNext
仅显示所选代码中空格的选项
IntelliJ IDEA 2023.1 在 Settings/Preferences | Editor | General | Appearance | Show Whitespaces(设置/偏好设置 | 编辑器 | 常规 | 外观 | 显示空格)中提供了一个新的 Selection(选区)复选框,允许您配置此设置,让 IDE 仅在选择代码时将空格显示为小点。
PreviousNext
自定义基于正则表达式的搜索和替换检查
借助 IntelliJ IDEA 2023.1,您可以使用正则表达式创建自己的搜索和替换检查。 这些检查对于高亮显示基于样式或基于格式的问题特别实用。 在这篇博文中了解详情。
重新格式化 Markdown 文件中表的新意图操作
一项新意图操作可用于更正 Markdown 文件中表的格式设置。 您可以通过 Context actions(上下文操作)快捷键 (⌥⏎) 或点击黄色灯泡图标并从出现的列表中选择 Reformat table(重新格式化表)来使用快速修复。
Markdown 文件的 Fill Paragraph(填充段落)
Markdown 文件现在支持 Fill Paragraph(填充段落)编辑器操作,您可以将长文本分成几个长度相等的行。 为此,将文本光标置于要编辑的段落内,然后从 Edit(编辑)菜单调用操作,或使用 Find Action(查找操作,⇧⌘A)搜索 Fill Paragraph(填充段落)命令。
Markdown 的新 Smart Keys(智能按键)设置页面
我们在 Settings/Preferences | Editor | General | Smart Keys(设置/偏好设置 | 编辑器 | 常规 | 智能按键)中添加了一个专属页面,用于配置和编辑 Markdown 偏好设置。 这个页面简化了偏好设置管理,为不同编辑器功能提供单独的复选框,取代了以前 Settings/Preferences | Languages & Frameworks(设置/偏好设置 | 语言和框架)中的单个复选框。
不检查哈希和特殊值的拼写
更新的 Typo(拼写错误)检查不再检查哈希和特殊值的拼写,也不会将其报告为拼写错误。 此更新涵盖以下值:
Md5
、Sha1
和Sha256
十六进制值。- 带有
shaNNN-
前缀的Sha384
和Sha512
base64 编码的完整性值。 JWT
令牌。
Java
PreviousNext
新的 Java 检查
为了帮助保持代码干净无误,我们升级了一些现有 Java 检查并添加了新的检查。 Malformed format string(格式错误的字符串)检查现在会报告不符合常见 Java 语法的非法时间转换。 Redundant String operation(冗余的 String 操作)检查现在能够检测冗余的 StringBuilder.toString()
调用并提供快速修复将其替换为 contentEquals()
,从而让您可以不创建中间 String
对象。 它还报告 String
构造函数调用中不必要的实参,并建议将其移除的快速修复。 在这篇博文中详细了解 IntelliJ IDEA 2023.1 的其他代码检查改进。
Java 20 支持
IntelliJ IDEA 2023.1 继续减轻 Java 开发者的认知负担,支持 Java 20 中添加的最新更新,包括对语言功能 *Pattern Matching for switch (switch 模式匹配)*和 *Record Patterns (Record 模式)*的更改。 有关详情,请参阅此博文。
改进了 Extract Method(提取方法)重构
借助一个新选项,即使所选代码段具有多个需要返回的变量,升级的 Extract Method(提取方法)重构也可应用。 在这些情况下,IDE 会首先建议将变量包装到一个新的记录或 Bean 类中,然后执行方法提取。
VM Options(虚拟机选项)字段中的自动补全
我们已将自动补全功能集成到 Run/Debug configuration(运行/调试配置)弹出窗口的 VM Options(虚拟机选项)字段中。 现在,输入标志的名称时,IDE 会建议可用命令行选项的列表。 这适用于 -XX:
和 -X
选项,以及一些未由 IntelliJ IDEA 自动配置的标准选项,如 -ea
,但不适用于 -cp
或 –release
。
Scala
改进了针对无大括号 Scala 语法的支持
IntelliJ IDEA 现在可以正确对无大括号 Scala 代码脱糖,还可以处理使用“更少大括号”功能的重构。 它也支持工作表中的无大括号语法,并在代码中上下移动扩展方法时正确解释缩进。
改进了对 sbt 项目的支持
在 Gradle 中,如果您有一个空模块并想为源代码创建根目录,您可以使用 New Directory(新建目录)对话框,其中包含一些实用建议。 在 v2023.1 中,这个对话框也可用于 sbt 项目。 您还可以在 Settings/Preferences | Build, Execution, Deployment | Build Tools | sbt(设置/偏好设置 | 构建、执行、部署 | 构建工具 | sbt)中指定 sbt 启动器的形参,Find Usages(查找用法,⌥F7)操作现在可以在 sbt 文件中搜索符号。
升级了 Scala 检查
Unused declaration(未使用的声明)检查得到许多修正和改进。 IntelliJ IDEA 现在可以检测项目 XML 文件中的符号用法。 该检查还会区分对术语的引用和对类型的引用并正确标记。 Can be private(可为 private)检查也已更新。 例如,您不会再看到工作表和局部类中顶级定义的高亮显示。 对于递归调用,调用行的左侧将有一个间距图标。
针对 Scala 3 的代码编辑改进
我们改进了 Scala 3 在导入大量隐式形参并且需要解析代码时(例如使用 Cats 库时)高亮显示的性能。 IntelliJ IDEA 2023.1 还具有许多语法支持改进,例如使用 using
子句正确自动生成重写方法。
简化了 import 管理
先前使用基于编译器的高亮显示时,所有 import 都被标记为已使用。 不过,Scala 3.3 引入了新的编译器选项 -Wunused:imports
。 如果项目使用此选项,IDE 现在可以识别未使用的 import。 我们还修正了 Enums
的自动导入操作。
针对 Scala 3 和 Scala 2 反编译器的改进
IntelliJ IDEA 2023.1 为 Scala 3 和 Scala 2 反编译器带来了大量修正和改进。 反编译 Scala 2 和 Scala 3 字节码的输出已经统一,更易阅读。
分析器
针对 Flame Graph(火焰图)标签页改进了 UI Ultimate
我们更新了 Flame Graph(火焰图)标签页,为调用引入了颜色编码的高亮显示。 属于当前打开的项目的方法现在以黄色高亮显示。 由此,您可以轻松区分能够修改以解决给定性能问题的代码。 我们还重做了 Flame Graph(火焰图)标签页的整体配色方案,使其更加柔和。
版本控制系统
Structure(结构)工具窗口中的 VCS 状态颜色提示
我们在 Structure(结构)工具窗口中添加了颜色提示,使文件更改更易于跟踪。 被修改对象的名称现在为蓝色,新添加对象的名称在工具窗口中高亮显示为绿色。
针对 GitHub 改进了代码审查工作流
为了简化在 IDE 中审查代码的过程,我们重做了 Pull Request(拉取请求)工具窗口。 它现在为您打开的每个拉取请求提供一个专用标签页。 标签页会立即显示已更改文件的列表,但它提供的信息比先前更少,让您可以更好地专注于当前任务。 现在,可以通过一个新增的专属按钮轻松执行拉取请求当前状态下最相关的操作。
改进了 Branches(分支)弹出窗口
我们改进了 Branches(分支)弹出窗口的实用性。 例如,分支被分组并存储在可扩展列表中,导航更加轻松。
Create New Branch(创建新分支)弹出窗口中的自动补全
IntelliJ IDEA 2023.1 在 Create New Branch(创建新分支)弹出窗口中提供了自动补全。 为新分支输入名称时,IDE 将根据现有本地分支的名称建议相关前缀。
构建工具
在项目创建时指定 Gradle 版本的选项
配置新的 Gradle 项目时,现在可以直接在 New Project(新建项目)向导中选择所需包装器版本。 展开 Advanced Settings(高级设置)版块,取消选中 Auto-select(自动选择),然后指定首选选项。 您可以在 Gradle version(Gradle 版本)组合框下方启用 Use these settings for future projects(将这些设置用于未来的项目),让 IDE 记住您的选择。
从 Gradle 工具链检测 Java SDK
导入项目时,IntelliJ IDEA 2023.1 现在可以检测 Gradle 工具链配置并在模块设置中设置匹配的 Java SDK。
运行/调试
PreviousNext
指定自定义快捷键以使用覆盖率运行当前文件的选项
在 IntelliJ IDEA 2023.1 中,可以为当前打开的文件创建快捷键启动 Run with coverage(使用覆盖率运行)操作,即使尚未创建运行配置。 要指定此类快捷键,首先转到 Settings/Preferences | Keymap(设置/偏好设置 | 按键映射),查找 Run with Coverage context configuration(使用覆盖率上下文配置运行)选项,然后为其添加新的组合键。
在 Coverage(覆盖率)视图中筛选类的选项
在 IntelliJ IDEA 2023.1 中,您可以在 Coverage(覆盖率)视图中筛选类,关注最近更新的类和测试时需要特别注意的方法。 默认情况下,您将看到一个包含未提交更改的类列表。 第二个筛选选项可以隐藏完全覆盖的类。
框架和技术
Spring Security 6 支持 Ultimate
IntelliJ IDEA Ultimate 2023.1 为 Spring Security 6 中引入的 API 的 URL 映射和安全角色导航提供了更新的支持。
PreviousNext
在 Spring 运行配置中将构建和运行委托给 Gradle Ultimate
在 Spring 运行配置中,Gradle 现在是运行和构建项目的默认选项。 IDE 现在使用 Settings/Preferences | Build, Execution, Deployment | Build Tools | Gradle(设置/偏好设置 | 构建、执行、部署 | 构建工具 | Gradle)中定义的 Gradle 以主设置构建和运行项目。
通过 VCS 共享 Spring 和 JPA facet 设置的选项 Ultimate
在 IntelliJ IDEA Ultimate 2023.1 中,您可以通过 File | Project Structure | Modules(文件 | 项目结构 | 模块)中的自定义 facet 更改和共享 Spring 和 JPA 设置。 例如,在团队中共享 JPA 的所选数据源时,您可以创建一个 JPA facet,并通过添加带有 *.iml 扩展名的模块文件的方式将其设置提交到版本控制系统。
从 Spring 和 Micronaut Data 仓库在 Database(数据库)控制台中运行 MongoDB 查询 Ultimate
IntelliJ IDEA Ultimate 2023.1 可以从 Spring 和 Micronaut Data 仓库在 Database(数据库)控制台中运行 MongoDB 查询。 在查询字符串中使用新的 Run query in console(在控制台中运行查询)意图操作即可。 IDE 将生成对应的 JavaScript 调用,包括额外的请求形参,例如 sort
。
Project Reactor:针对反应式代码改进了检查 Ultimate
IntelliJ IDEA Ultimate 2023.1 为反应式代码提供了更广泛的检查。 例如,IDE 现在会报告 Reactor 3 Reference Guide 中描述的 Mono<Void>
类型的转换运算符的用法。
PreviousNext
Apache Dubbo 支持 Ultimate
我们实现了一个集成 Apache Dubbo 的新专属插件,作为 IntelliJ IDEA 对 Spring 支持的一部分提供该框架的功能。 您可以从 JetBrains Marketplace 下载这个插件,或通过 Settings/Preferences | Plugins(设置/偏好设置 | 插件)直接在 IDE 中安装。
针对 OpenAPI 生成的 Swagger 注解识别 Ultimate
在 Spring 控制器中使用 Swagger 2.X 注解为 API 定义额外元数据时,IntelliJ IDEA Ultimate 会在从 URL 内嵌弹出对话框或从 Endpoints(端点)工具窗口生成 OpenAPI 文件时包含这些注解。
在多个文件上拆分编辑 OpenAPI 规范部分的选项 Ultimate
现在,可以在单独的文件中编辑较大 OpenAPI 规范的部分,并轻松导航。 此外,IDE 还以与主规范文件相同的方式为这些文件提供代码补全和高亮显示。
从 Endpoints(端点)工具窗口运行 GRPC 请求的选项 Ultimate
在 IntelliJ IDEA Ultimate 2023.1 中,可以从包含 .jar 存档中 import 的 proto 文件运行 GRPC 请求。 我们还改进了请求主体的代码补全,例如 OneOf
和 Map<K,V>
类型。 此外,我们在 Endpoints(端点)工具窗口中为 Protobuf 端点添加了 HTTP Client(HTTP 客户端)标签页。
针对 Ktor 中 application.yaml 配置文件改进了编辑支持 Ultimate
IDE 提供了在 Ktor 中使用 application.yaml 配置文件所需的所有编辑功能,包括代码补全、高亮显示和验证。
Docker
来自所有 Docker Compose 容器的合并日志
Docker Compose 节点的 Dashboard(仪表板)标签页现在将来自各个 Docker Compose 容器的日志拉取到一处显示,并实时更新。
对 Azure 容器注册表的支持
您现在可以轻松连接到 Azure 容器注册表。 转到 Settings/Preferences | Build, Execution, Deployment | Docker | Docker Registry(设置/偏好设置 | 构建、执行、部署 | Docker | Docker 注册表),在 Registry(注册表)输入字段中选择 Docker V2 进行设置。
应用 :z
装载选项以在 SELinux 上绑定卷的新设置
您现在可以将 :z
配置标志添加到 Docker 绑定装载,从而将卷连接到 SELinux 工作站上的 Docker 容器。 转到 Settings/Preferences | Advanced Settings | Docker(设置/偏好设置 | 高级设置 | Docker)可以启用此功能。
Services(服务)工具窗口中的 Docker 容器健康状态
IntelliJ IDEA 2023.1 会通知 Docker 健康检查的结果。 您可以在 Services(服务)工具窗口中的名称旁边看到正在运行的 Docker 容器的健康状态。 此外,为了使状态更醒目,正常启动和运行的容器在图标上会带有一个小绿点,不健康的容器则带有红色标记。
Docker 调试已被弃用
Docker 调试功能已被弃用。 要使用 Docker 容器调试应用程序,请改用 Run targets(运行目标)。
Kubernetes
New Kubernetes Resource(新建 Kubernetes 资源)弹出窗口中的文件模板 Ultimate
为了使 Kubernetes 文件的创建更简单,我们在 File | New(文件 | 新建)菜单中添加了一个新操作。 选择 New Kubernetes Resource(新建 Kubernetes 资源)选项后,显示的弹出窗口将列出最流行的资源类型,例如 Pod、Deployment、ConfigMap 等。
创建新 Kubernetes 机密的操作 Ultimate
IntelliJ IDEA Ultimate 2023.1 引入了用于创建 Kubernetes 机密的新对话框。 要定义新机密,您可以手动输入 Key 和 Value 数据,也可以指定内容将被使用的文件。
PreviousNext
从集群加载的 Kubernetes 资源的颜色编码更改标记 Ultimate
对集群中的资源使用 View YAML(查看 YAML)操作和更改打开的文件时,IntelliJ IDEA Ultimate 现在会在间距中使用颜色编码标记高亮显示所有编辑。 这样,您可以确保在应用回集群之前对资源所需部分完成了更改。 此外,使用 Compare with Cluster(与集群比较)图标会打开一个完整差异视图,从集群获取资源的当前版本并与本地版本进行比较。
PreviousNext
改进了 kubeconfig 文件的用户体验 Ultimate
IntelliJ IDEA Ultimate 2023.1 改进了处理 kubeconfig 文件的用户体验。 您可以在 Services(服务)视图中轻松访问 kubeconfig 文件,并在编辑器中打开。 如果您在 IDE 之外更改了 kubeconfig 文件,IntelliJ IDEA 将检测到这一点并自动刷新 Services(服务)工具窗口中的配置。 kubeconfig 文件的代码高亮显示和补全也已提供。
为 Services(服务)视图中的操作指定自定义快捷键 Ultimate
您现在可以在 Services(服务)视图中为大多数 Kubernetes 操作指定快捷键,例如 Forward Ports(转发端口)、 Delete Resource(删除资源)和 Describe Resource(描述资源)等。 按照此路径设置自定义快捷键:Settings/Preferences | Keymap | Plugins | Kubernetes(设置/偏好设置 | 按键映射 | 插件 | Kubernetes)。
远程开发和协作
仅 Сode With Me 会话主持人可用条目的额外洞察
现在,当访客连接到会话时,他们的客户端看起来更像是常规的 JetBrains IDE。 访客可以看到主持人看到的所有条目,包括只有主持人可以访问的灰色条目。 访客可以清楚查看不可用的操作,并要求主持人代为执行。
Code With Me 中的一键式权限请求和审批
访客只需点击不可用条目旁边的钥匙图标即可请求额外权限。 支持人不必再从一开始就确定必要的访问权限,并且可以轻松地即时审批任何访客的额外权限。
改进了最近的远程开发项目的概览 Ultimate
最近的项目现在存储在主机而不是客户端上。 即使您从不同的客户端连接,这也将准确提供最新信息。 我们还添加了更多实用选项,例如选择在主机上使用的 IDE 版本。
Web 开发
Astro 支持 Ultimate
备受期待的 Astro 支持现已登陆 IntelliJ IDEA 2023.1! 从 Settings/Preferences | Plugins(设置/偏好设置 | 插件)安装新的 Astro 插件即可获取。 插件提供基本功能,包括语法高亮显示、带自动导入的代码补全、重构、导航、正确的格式设置等。
Vue 模板中对 TypeScript 的支持 Ultimate
我们在 Vue 模板中添加了 TypeScript 支持。 它会在您将 script
标记中的 lang
特性设为 ts
时启用。 此前,无论 script
标记中的 lang
特性如何,使用的都是 JavaScript。 IntelliJ IDEA 现在将提供对内联转换的支持、改进的类型缩小,并在 Vue 单文件组件模板的快速文档中提供正确的推断类型信息。
字符串到模板文字的自动转换 Ultimate
现在,IntelliJ IDEA 在您输入 ${
时会自动将带单引号或双引号的字符串转换为模板文字。 这适用于原始字符串以及 JSX 属性。
Tailwind CSS 配置 Ultimate
在这个版本中,我们添加了对配置选项的支持,例如 classAttributes
选项下的自定义类名补全或 tailwindCSS.experimental.configFile
等实验性选项。 您可以在 Settings/Preferences | Languages & Frameworks | Style Sheets | Tailwind CSS(设置/偏好设置 | 语言和框架 | 样式表 | Tailwind CSS)下设置这些配置选项。
其他
- 与 IntelliJ IDEA 捆绑的 Android 插件现在提供了 Android Studio Electric Eel 的所有功能,包括对 Android Gradle Plugin (AGP) 7.4.0 的支持。