IntelliJ IDEA 2022.2 为远程开发功能带来了多项质量改进,使其更美观、更稳定。 从 v2022.2 开始,IntelliJ IDEA 使用 JetBrains Runtime 17,后者可以从多方面增强 IDE 体验和性能。 IntelliJ IDEA Ultimate 添加了对 Spring 6 和 Spring Boot 3 功能的支持,也为多个其他框架引入了更新。 新版本还具有多项值得注意的升级和改进,下文将详细介绍。
我们在 IntelliJ IDEA 2022.2 中为远程开发引入了大量重大升级,让体验更稳定、功能更丰富。 新发布的更新具有多项质量改进。 通过 SSH 将笔记本电脑连接到安装在远程服务器中的 IntelliJ IDEA,获得流畅的开发者体验。 如果您使用 JetBrains Space 在新版本中高效地编排后端,可以直接从 IntelliJ IDEA 管理开发环境。 在这篇博文中了解详情。
IntelliJ IDEA 2022.2 现已完全支持 Spring 6 和 Spring Boot 3 功能,包括新的 @AutoConfiguration
类和 @ConfigurationProperties
类,涵盖新的构造函数绑定语法,无需显式 @ConstructorBinding
。 更新 IDE 或将项目切换到新版本,即可体验 Spring 6。
Run/Debug(运行/调试)微件新增了 Run Current File(运行当前文件)功能,可供在没有专门的运行配置的情况下轻松运行和调试单个文件。 通过它运行和调试当前打开的文件时,IDE 将自动使用最适合该文件的运行配置类型。
新增的键盘快捷键可以更改编辑器中所有位置的字体大小。 要增大字体,请按 Alt+Shift+句号。 要减小字体,请按 Alt+Shift+逗号。 此外还有一个字体大小指示器,它会显示当前字体大小并提供将其恢复为默认值的选项。
我们为 macOS 用户引入了一项功能,利用此功能可以将所有打开的项目窗口合并成一个,将其变成标签页。 转到 Window | Merge All Project Windows(窗口 | 合并所有项目窗口)即可执行此操作。
现在,无需更改严重性级别即可配置检查在编辑器中的显示方式。 如需更改检查高亮显示样式,可以使用新的 Highlighting in editor(编辑器中的高亮显示)下拉菜单进行设置,该菜单清楚显示了所有可用选项。
Cloning repository(正在克隆仓库)进度条现在位于 IDE 的欢迎屏幕上,并直接显示在 Projects(项目)列表中,更清晰、更易用。
Add Mnemonic Bookmark(添加助记书签)对话框现已升级,增加了 Description(描述)字段,您现在可以使用该字段直接向书签添加描述。
现在,可以在按 Enter 键后禁用自动块注释结束。 为此,请转到 Settings / Preferences | Editor | Smart Keys(设置/偏好设置 | 编辑器 | 智能按键),取消选中 Enter 版块中的 Close block comment(结束块注释)复选框。
现在,您可以直接从代码补全弹出窗口中的垂直省略号菜单按钮访问 Code Completion Settings(代码补全设置)并配置偏好设置。
当文件错误地与纯文本显式关联时,IntelliJ IDEA 现在会在通知中说明错误的文件类型关联并建议直接从编辑器中将其重置,无需在 Settings / Preferences(设置/偏好设置)中手动操作。
现在,在 Markdown 文件中可以根据文档标题轻松生成目录。 新操作位于 Insert(插入)和 Generate(生成)弹出菜单中,可以通过 Alt+Insert 快捷键或右键点击调用。 IDE 将在当前文本光标处插入目录并以 <!-- TOC -->
标记将其括起,后续调用相同的菜单可以对其进行更新。
我们对 Java 检查实现了一系列更改,这些更改有助于跟踪潜在错误和简化代码。 例如, Standard ‘Charset’ object can be used(可以使用标准 'Charset' 对象)检查已得到改进,现在可以识别 .name()
和 .toString()
。 IDE 现在可以在模式变量隐藏字段时发出警告,还会捕获无意义的 Objects.requireNonNullElse
调用。 大量 JUnit 相关 Java 检查已转换为 JVM 检查,因此,它们现在也可以在 Kotlin 中使用。 此外,代码补全现在会在适用时建议 .class 字面量。
要详细了解其他 Java 相关改进,请阅读我们的博文。
我们添加了对最新语言版本 Kotlin 1.7.0 中引入的功能的支持。 IDE 现在可以正确呈现绝对不可空的类型,并提供选择加入要求的实用检查。
我们已将 Kotlin 调试器与数据流分析功能集成,因此现在它可以在 DFA 提示中显示哪些条件为 true 以及哪些分支将被执行。 先前,此集成仅适用于 Java,而现在也支持 Kotlin。
从 v2022.2 开始,捆绑的 Kotlin 编译器不再与 IntelliJ IDEA 原生构建器搭配使用。 本地和 CI 构建都将通过项目设置中声明的 Kotlin 编译器版本运行。 这一更改消除了此前由于捆绑的编译器版本与项目构建文件中定义的版本不匹配而导致的本地和 CI 构建的不一致问题。 在这篇博文中了解详情。
最近的索引优化工作对 IDE 在代码高亮显示、补全和 Find Usages(查找用法)方面的速度和性能产生了积极影响。
从 v2022.2 开始,IntelliJ IDEA 可以从 .tasty 文件读取 match 类型,正确解析类型,解析类型变量,将其用作类型实参,支持检查,以及将类型显示为文本。 On top of that, we’ve added support for Option-less extractors , type lambdas and polymorphic function types , type-level compiler intrinsics , and ?
as a wildcard together with _
in Scala 2.13.9 and 2.12.16. 复制粘贴的代码现在也可正确缩进。
在匿名函数内部使用 return
关键字跳出函数而不执行其中的所有代码时,IntelliJ IDEA 2022.2 现在会发出警告。 这通常不是预期用法,并且可能导致泄漏的实现和隐藏的性能开销。 当 private 或 class 形参隐藏超类变量时将触发新警告。 此外,试图以编译器禁止的方式覆盖变量时会显示错误。 如果存在对应编译器选项(-Xlint:nonlocal-return
和 -Xlint:private-shadow
),可以将这些新警告配置为显示。
如果代码行因包含集合中的实参或元素列表而过长,您可以使用弹出菜单中的 Put arguments on separate lines(将实参放在单独的行中)操作快速将列表拆分为多个行。 同样,如果您认为多行列表较短,可以使用 Put arguments on one line(将实参放在同一行中)操作将其合为一行。
为了实现更好的资源利用,基于编译器的高亮显示已有所调整。 IDE 现在将考虑用户定义的文件高亮显示设置。 编译现在将更少触发并使用更少的后台线程。 编译范围已缩小到相关模块和源代码范围。
Safe Delete(安全删除)操作可以从定义及其所有调用中移除一个元素。 此操作现在也适用于类型形参。
We’ve added support for Groovy-Integrated Queries (GINQ). IDE 现在为 Groovy 4 的此功能提供了语法高亮显示、代码补全和检查。
IntelliJ IDEA 2022.2 现在可以帮助您从系统受信任存储区导入受信任的 SSL 证书。 它将自动使用特定于企业环境的自定义证书。 一切都开箱即用,无需额外操作。
我们升级了 IntelliJ Profiler,让快照更易收集。 现在,开始分析时,CPU 和堆内存实时图表将与控制台并排显示。 您可以查看应用程序的执行情况,还可以在所需分析期间从同一应用程序收集许多快照。
Kotlin 内联函数现在与其他函数一起显示在 Flame Graph(火焰图)、Call Tree(调用树)和 Method List(方法列表)中,这样,您可以查看 CPU 时间并根据需要进行优化。 该功能目前在 Linux 和 macOS 上运行,仅适用于 Start profiling(启动分析)选项。 我们正在努力添加对 Windows 的支持,也将很快把它添加到 Attach 模式。
借助 Spring Framework 6,您可以将 HTTP 客户端定义为带有注解方法的 Java 接口。 IntelliJ IDEA 2022.2 为此类接口提供了 URL 补全、导航以及与 HTTP 客户端的集成。
IntelliJ IDEA Ultimate 现在为 Spring Cloud Gateway URL 提供了 URL 补全、Search Everywhere(随处搜索)功能和 Find Usages(查找用法)提示。 使用 Endpoints(端点)工具窗口可以轻松生成 HTTP 请求或查找所有网关路由。
IntelliJ IDEA 2022.2 使用 Spring WebTestClient、RestAssured、WireMock 和 MockServer 等流行 Java API 自动高亮显示测试中的 JSON/XML 体。 因此,这些数据片段具有更好的可读性并且更易编辑。 您还可以在测试中的这些位置使用 URL 补全和导航到声明。
IntelliJ IDEA 2022.2 现在可以协助调试 GraalVM 原生映像二进制文件。 您可以将调试器附加到任何基于 GraalVM 的可执行文件,也可以使用附加的调试器启动应用程序。 将自动为 Maven/Gradle 项目创建相应的运行配置。 此集成仍处于实验性阶段,需要安装 GraalVM 的开发版本和此插件。
您现在可以在 .proto 文件和生成的代码之间轻松导航。 确保 gRPC 和 Protocol Buffers 插件均已启用。
IntelliJ IDEA 2022.2 现在可以识别使用 Spring Shell 库声明的 CLI 命令并检查其是否正确。
IntelliJ IDEA 现在正确支持声明为 @ApplicationPath
的 JAX-RS 通用 Web 服务 URL 模式以及 URL 补全、导航和 Find Usages(查找用法)中的子资源。
IntelliJ IDEA Ultimate 2022.2 支持 WebSocket 连接,允许创建请求以及发送和接收消息。
IntelliJ IDEA Ultimate 现在可以原生通过 HTTP 和 WebSocket 协议发送 GraphQL 查询。 对于 http:// 和 https://,使用的是简单的 HTTP 请求,ws:// 和 wss:// 则被委托给 WebSocket 执行器。
我们在 HTTP 客户端上实现了一些 UI/UX 改进。 首先,我们引入了一种使用装订区域图标选择运行环境的便捷方式。 要启用此功能,请从 Run with(运行方式)组合框中选择 Select Environment Before Run(运行前选择环境)选项。 另外,新增的进度条改进了响应视图,您可以跟踪下载过程。
JSON、YAML 和 .properties 文件现在会在以 http:// 和 https:// 开头的值中自动插入 Web 引用。 只需点击一下,即可轻松地在 Web 浏览器中打开这些链接,或者您可以在 HTTP 客户端中通过 Context Actions(上下文操作)菜单 (Alt + Enter) 生成一个请求。
IntelliJ IDEA 2022.2 现在为 Java 和 Kotlin 的 Bean Validation 注解中的消息特性提供引用并支持折叠。 您可以为消息键使用补全或导航到 i18n ValidationMessages.properties 文件中的声明。
我们通过更新元数据架构和改进属性补全重做了 AWS CloudFormation 插件。 您可以从 JetBrains Marketplace 安装插件的更新版本。
IntelliJ IDEA now supports all of the features in Jakarta Persistence 3.1, including the new JPQL syntax, functions, and types, and it provides language highlighting and code completion for them.
IntelliJ IDEA 2022.2 introduces image completion for the Testcontainers API where you can find all available Docker images and their versions. 点击引用即可在 Web 浏览器中打开相应的 Docker Hub URL。
现在,您可以使用新的 Copy Docker Image(复制 Docker 镜像)操作将镜像从一个 Docker 守护进程复制到另一个,该操作会将镜像保存到文件中,然后将其推送到所选连接。
重新启动 IDE 后,IntelliJ IDEA 2022.2 现在会自动连接到 Docker。 此新设置默认启用,也可以在 Settings / Preferences | Advanced Settings | Docker(设置/偏好设置 | 高级设置 | Docker)中进行切换。
从 v2022.2 开始,IntelliJ IDEA 与 Colima 和 Rancher 集成,支持更多用于建立与 Docker 守护进程的连接的选项。
The Kubernetes plugin for IntelliJ IDEA 2022.2 provides integration with the Telepresence tool in order to intercept HTTP requests from services in the Kubernetes cluster and route them to your service running locally. 您可以由此更轻松地调试这些服务,并仅在本地运行所需服务子集。
网页结构 UI 得到了显著改进。 得益于文本格式高亮显示,您可以轻松阅读最重要的部分,例如标记名称、ID 和应用的 CSS 类。
现在,只需点击装订区域中的图标即可轻松导航回页面元素。
创建新的页面对象文件时,向导现在将提供一个可选的 URL 字段。 如果包含 Web 地址,向导会根据链接地址建议页面对象文件名。 此外,当 Page Object Editor 打开时,会自动加载插入的 URL。
在代码中添加新的页面元素时,文本光标现在将自动移动到添加的代码块的末尾,这样,您可以轻松导航并继续编辑。
在处理现有页面对象类时如果输入了新的非引用页面对象类,只需导航到警告的上下文菜单并创建新的页面对象即可修正未解决的代码警告。
对于 v2022.2,我们实现了选择多个 CSV 文件并将其一次导入的功能,以此增强文件导入过程。
Modify(修改)对话框的新 UI 已成为默认选项。 从 2022.2 版开始,可以使用新 UI 添加和编辑表的所有子对象。 上下文菜单将继续提供旧 UI。
为了使 SQL 脚本中数据库对象的解析更加精确,我们实现了两种解析模式:Playground(演练场)和 Script(脚本)。 如果文件只是一组未连接的查询,彼此独立且没有特定顺序,前者效果更佳。 后者适合查询具有顺序逻辑且应该作为单个脚本运行的情况。
我们一直在积极推进 IntelliJ IDEA 2022.2 中对 Angular 14 的支持。 此版本最重要的新特性是对 Angular 独立组件的支持。 IntelliJ IDEA 现在可以正确识别标记为 standalone: true
的组件、指令和管道。
IntelliJ IDEA 2022.2 对 Vue 3 提供了更出色的支持。 例如,它现在可以理解 v-if/else
指令中的类型缩小。 此外,对 Pinia(Vue 团队推荐的作为全局存储的状态管理解决方案)的支持也得到了改进。 现在,补全和解析都可以在 Vue 中与 Pinia 库一起使用,您可以导航到存储中定义的状态属性和操作。
IntelliJ IDEA 2022.2 与 TypeScript 4.7 捆绑,支持在 Node.js 中使用 moduleSuffixes 和 ESM 等新语言功能。 如果 module 在 tsconfig.json 文件中被设为 node16 或 nodenext,它会自动将 .js 扩展名插入 import 语句。 此外, IDE 还支持 package.json 文件中的 typesVersions 字段。