IDEA是啥?
IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言。
我们来一起看看 IntelliJ IDEA 2022发了什么内容吧.
新功能(特性)
主要更新
1.依赖分析
新引入的 Dependency Analyzer 提供了关于您的项目和子项目中使用的所有 Maven 和 Gradle 依赖项的大量信息。 它可以帮助您检测并解决冲突的依赖项、筛选出相同的依赖项并检查它们是否存在于不同库中,以及轻松地在依赖项之间导航以更正构建配置。
2.增强 New Project(新建项目)向导
重新设计了 New Project 向导界面,以简化创建新项目的操作。 您可以快速启动一个空项目;为 Java、Kotlin、Groovy 和 JavaScript 使用预配置选项;或者如果您拥有更复杂的项目,可以使用生成器。
3.新的 Notifications(通知)工具窗口
Event Log(事件日志)实例被一个新的 Notifications(通知)工具窗口替换。 它可以更清楚地高亮显示重要的和实用的建议和通知,并将它们集中在一个专门的工具窗口中。 有关详情,请 参阅博文。
用户体验
4.New Project(新建项目)向导中的 Maven Archetype
New Project(新建项目)向导中更新的 Maven Archetype 项目生成器引入了浏览 Archetype 时边输入边搜索的功能、在模块创建期间管理 Archetype 目录的功能以及按 Archetype 输入所需属性的功能。
5.改进的内嵌提示
改进的 Code Vision 内嵌提示,让您可以直接在编辑器中即时获取代码洞察。 显示的指标列表现在包括继承者、用法、代码作者和相关问题。 指标现在默认全部启用,可以在 Inlay Hints(内嵌提示)设置中修改。 这些设置也已更新并获得了新的配置 UI。
6.平均拆分选项卡(打开多个展示栏同时查看)
可以在编辑器选项卡之间均匀分配工作空间,使其具有相同的宽度。 为此,请转到 Settings / Preferences | Advanced Settings | Editor Tabs | Equalize proportions in nested splits(设置 / 偏好设置 | 高级设置 | 编辑器选项卡 | 在嵌套拆分中平衡比例)。
7.将 UML 图表导出为其他格式 ULTIMATE
UML 图表现在可以导出为 yEd .graphml、JGraph .drawio、Graphviz .dot、带有位置的 Graphviz .dot、Mermaid .md、Plantuml 和 IntelliJ IDEA .uml 文件,从而与第三方工具兼容。
8.新的 Structural Search and Replace(结构化搜索和替换)对话框
Structural Search and Replace(结构化搜索和替换)对话框现在包含所有模板的列表,可以实现更轻松的导航。 该对话框还具有 Pin Dialog(固定对话框)图标和重新排列的 Injected code(注入的代码)和 Match case(区分大小写)复选框。
安全性
9.Package Checker 插件 ULTIMATE
IntelliJ IDEA Ultimate 捆绑的 Package Checker 插件,IntelliJ IDEA 2022.1 现在可以对照 Checkmarx SCA 数据库 和 漏洞数据库 检测项目所用 Maven 和 Gradle 依赖项中的漏洞。
在这篇 博客 中了解详情。
编辑器
10.从 Markdown 文件运行命令
如果 Markdown 文件包含需要执行的命令的指令,您可以使用间距中的运行图标直接从文件运行这些命令。
11.Markdown 文件的 Copy code snippet(复制代码段)
使用 Markdown 块中新增的 Copy code snippet(复制代码段),您可以轻松地将内容一键复制到剪贴板。
![Markdown 文件的 Copy code snippet(复制代码段)
](https://www.jetbrains.com/idea/whatsnew/2022-1/img/Copy_code_in_md_files.png)
12.更新了 Markdown 编辑器浮动工具栏
重新设计的 Markdown 编辑器浮动工具栏现在将提供列表创建功能和允许您选择标题样式的下拉菜单。 您可以使用所需选项自定义此工具栏。
13.LightEdit 下的代码重新格式化
增强了 LightEdit 模式,让您无需创建或打开专用项目即可完成更多工作。 现在,您可以在无项目模式下执行代码重新格式化。
14.新的 Incorrect formatting(格式设置不正确)检查
Incorrect formatting(格式设置不正确)检查,当文件的当前格式格式设置与代码样式设置不匹配时,它会发出通知。
15.格式设置改进
为了实现一致的代码格式设置,Add a space at line comment start(在行注释开始处添加空格)选项已增加自动启用的 Enforce on reformat(强制重新格式化)复选框。 它默认可用于 Java、Kotlin 和 Groovy,并且仅修改以字母数字符号开头的行注释。
16.命令行格式化程序中的 dry run 模式支持
命令行格式化程序支持以 dry run 模式验证项目文件。 如果文件需要格式化,它将以非零状态退出。
Java
17.Java 18 支持
IntelliJ IDEA 2022.1 支持 2022 年 3 月发布的 Java 18 的新功能。 IDE 现已支持代码段、switch 表达式的模式匹配变更等。 有关详情,请参阅此 这篇博文 。
18.Java 反编译器
Java 反编译器现在与 Java 17 版本更兼容。 它支持 sealed 类型和模式匹配等现代语言构造函数,具有更好的字符串反编译切换功能,提供类型注解并且可以检测公共常量。
19.更好的 JUnit 5 支持
添加了对 JUnit 5.7 中引入的新功能的支持,包括对 @EnabledIf/DisabledIf
、@NullSource/EmptySource
和 @TempDir
注解的支持。
20.更新的 Surround with try/catch(使用 try/catch 环绕)模板
更新的 Surround with try/catch(使用 try/catch 环绕)模板现在会重新抛出包装到 RuntimeException 中的异常,而不是将其吞下。
Kotlin
21.Kotlin 1.6.20 支持
IntelliJ IDEA 2022.1 支持 Kotlin 1.6.20,对并行编译的支持、上下文接收器原型以及跨所有 Kotlin 目标的更好的代码共享等最新语言功能现在都可以在 IDE 中使用。 在 这篇博文 详细了解新 Kotlin 更新。
22.针对 Kotlin 改进了 IDE 性能
在执行代码补全、高亮显示和引用搜索相关操作时,优化的软件包索引显著提高了 IDE 速度。 代码更改后发生的重新索引的数量和范围也有所减少。
23.调试器改进
我们在调试 Kotlin 项目时为 Smart Step Into(智能步入)功能引入了一些实用改进和更新。 我们还解决了一些与断点有关的问题。
24.Kover 插件集成
为了确保更好的 Kotlin 代码覆盖率, Kover 插件 已与 IntelliJ IDEA 集成
Groovy
25.对 Groovy 的后缀模板支持
Groovy 的代码补全现已支持大多数 Java 类后缀模板,例如 arg
、cast
、for
、ite
r、nn
、notnull
、null
、not
、throw
、try
、var
、par
、sout
、serr
、while
、new
、reqnonnull
和 return
。
框架与技术
26.Go 微服务支持 ULTIMATE
IntelliJ IDEA Ultimate 现在支持 Go 微服务,提供 URL 路径引用、端点、Search Everywhere(随处搜索)和间距图标等功能。 这些功能在安装 Go 插件后可用,目前仅适用于标准库函数。 在 此处 了解详情。
27.Spring Data Mongo 的代码洞察改进 ULTIMATE
使用 Spring Data MongoDB 时,IntelliJ IDEA 现在将高亮显示 JSON 查询、补全运算符和文档字段,并提供从映射实体到 Database(数据库)工具窗口的导航。
28.对 .proto 文件更好的支持 ULTIMATE
.proto 文件有了新的意图操作,该操作会为未解析的消息引用添加缺失的 import 语句。 添加缺失的 import 语句后,IDE 会为消息引用提供补全建议。
29.gRPC 反射支持 ULTIMATE
使用 IntelliJ IDEA Ultimate,您可以直接从正在运行的服务器实例运行请求并获得服务和方法名称补全。 项目不需要包含 .proto 文件,但服务器应该支持 gRPC 反射
30.Thymeleaf 支持改进 ULTIMATE
IntelliJ IDEA Ultimate 为 Thymeleaf 提供了更好的支持,包括更少的误报检查、编辑 Thymeleaf 模板时增强的 IDE 性能,以及为改善通知显示而微调的检查和高亮显示级别。
31.Helidon 配置文件中的补全 ULTIMATE
IntelliJ IDEA Ultimate 现在能更好地支持 Helidon 框架。 IDE 现在可以在属性文件和 .yaml 文件中提供配置键补全,并支持 Go to Declaration(转到声明)和 Quick Doc(快速文档)操作。
生成工具
32.更新 Gradle 的进度条
为 Gradle 流程(例如下载依赖项和导入工件)引入了进度条。 这可用于跟踪文件的确切情况和估计完成时间。
33.Maven 编译器插件中对单独测试模块的支持
我们向 Maven 编译器插件添加了实验性功能。 它现在允许您为生产和测试源分别设置特定语言级别。 您可以在 Preferences/Settings | Build, Execution, Deployment | Build Tools | Maven | Importing(偏好设置/设置 | 构建、执行、部署 | 构建工具 | Maven | 导入)中启用此选项。
VCS
34.通过内嵌提示提供的 Code Author(代码作者)信息
我们更新了 Code Vision 功能,IntelliJ IDEA 现在可以根据 VCS 历史立即提供代码作者身份信息。 Code Author(代码作者)内嵌提示在 Preferences / Settings | Editor | General | Inlay Hints | Code Vision(偏好设置 / 设置 | 编辑器 | 常规 | 内嵌提示 | Code Vision)中默认启用。
35.更新了 Annotate with Git Blame(使用 Git 追溯注解)
改进了 Annotate with Git Blame(使用 Git 追溯注解)功能,使引入的变更更易于调查。 将鼠标悬停在注解上时,IDE 会在编辑器中高亮显示行中的差异,点击后,它会打开 Git Log(Git 日志)工具窗口。
36.更新了 Git 工具窗口中的 Commit Details(提交详细信息)
Commit Details(提交详细信息)现在包含有关 GPG 签名和构建状态的信息。 此前,此数据仅在 Git 日志中显示为一列。
37.Git File History(Git 文件历史记录):没有索引的新 UI
Git File History(Git 文件历史记录)工具窗口的新 UI 现在独立于索引进程。 即使 Log(日志)索引关闭,数据也会在新界面中表示。
38.拉取请求注释中的建议变更
现在您可以在 IntelliJ IDEA 中本地应用或提交变更,更轻松地处理建议的变更。
39.按文件媒体类型定义外部差异与合并工具
IntelliJ IDEA 2022.1 现在允许根据文件类型指定不同的外部差异与合并工具。 要进行配置,请转到 Settings / Preferences | Tools | Diff & Merge | External Diff Tools(设置 / 偏好设置 | 工具 | 差异与合并 | 外部差异工具)。
分析器
40.基于 Async Profiler 的单一分析器配置 ULTIMATE
新的分析器配置 IntelliJ Profiler 现已实现。 它结合了 Async Profiler 和 Java Flight Recorder 的强大功能,让我们距离为所有平台实现多合一分析工具的目标更近了一步。
调试器
41.Reset Frame(重置帧)
在 Debugger(调试器)工具窗口的 Frames(帧)视图中,我们从工具栏移除了 Drop Frame(丢帧)操作,换为内联 Reset Frame(重置帧)图标。
42.隐藏了选项卡标签
为了最大化 Debugger(调试器)工具窗口中的可用空间,我们默认隐藏了选项卡标签。 要使其再次可见或自定义它们的位置,请使用 Layout Settings(布局设置)中的 Show Tab Labels(显示选项卡标签)选项。
QA 工具
43.Page Object Editor 改进
Selenium UI Testing 插件对其 Page Object Editor 做出了巨大改进。 我们优化了工作流并重新设计了 UI,以确保减少干扰的元素的出现。 您可以将网页元素从网页实时添加到代码,然后在 Page Object Editor 中继续编辑。 您还可以选择将新页面元素添加到代码时使用的选择器类型。
44.新的 Page Object(页面对象)向导
新的 Page Object(页面对象)向导允许您在创建新页面对象类时选择语言和测试自动化框架。 我们还使向导在代码中具有 Selenium 库依赖项的所有位置都可用。 如果您想在不创建新文件的情况下尝试使用不同框架和自定义模板自动生成页面对象,可以通过 Tools | Open Selenium Page Object Playground(工具 | 打开 Selenium 页面对象 Playground)使用特殊的 Playground 模式。
Kubernetes
45.编辑群集上的资源 ULTIMATE
46.kubectl 的自定义路径 ULTIMATE
如果 kubectl 不在标准位置,您现在可以手动配置路径。 要设置自定义路径,请转到 Settings/Preferences | Build, Execution, Deployment | Kubernetes | Path to kubectl executable(设置/偏好设置 | 构建、执行、部署 | Kubernetes | kubectl 可执行文件路径)。
47.Services(服务)视图中的端口转发操作 ULTIMATE
pod 的端口转发功能现已推出。 要转发端口,可以使用工具栏上的图标或选择上下文菜单项。
48.Services(服务)视图中的 Describe Resource(描述资源)操作 ULTIMATE
Services(服务)视图中的所有资源都具有一个新的 Describe Resource(描述资源)操作。 您可以从上下文菜单调用,或使用工具栏按钮。
49.支持群集中的 Events(事件) ULTIMATE
群集事件现在显示在 Services(服务)视图的单独节点中,提供有关系统中最近事件的数据。 要查看特定 pod 的事件,请在它上面调用 Describe Resource(描述资源)并在操作结果中查找 Events(事件)部分。
50.Werf 支持 ULTIMATE
我们为 werf.yaml 和相关 Helm 模板文件引入了有限的编辑器支持,包括代码补全功能、检查、快速修复建议、对 .Values.werf.image.* 的重构 / 重命名,以及对 boolean 和 int 等字段的验证。
51.对 Helm 的导入子值支持 ULTIMATE
IntelliJ IDEA Ultimate 现在支持通过 import-values 设置导入子值,这会影响模板中内置对象的补全/导航。
Docker
52.新的 Services(服务)视图 UI
对于 IntelliJ IDEA 2022.1,我们在 Services(服务)工具窗口中重做了 Docker UI。 重做已经覆盖容器、镜像、网络和卷。
![]新的 Services(服务)视图 UI(https://www.jetbrains.com/idea/whatsnew/2022-1/img/New_Service_view_UI.png)
53.对 Docker Compose 目标的支持
对 Docker Compose 目标的支持现已推出。 例如,要在 Compose 目标上运行 Spring Boot 应用程序,请转到运行配置,通过 Manage targets(管理目标)创建一个 Compose 目标,然后运行该应用程序。
54.Docker Registry V2 支持
我们添加了对 Docker Registry HTTP API V2 的支持,配合 Docker 1.6+。 您可以创建简单的或受密码保护的 Docker V2 注册表并执行查看、推送和拉取镜像等常规操作。
远程开发
55.远程服务器的更多设置 ULTIMATE
远程开发新增了 Backend Control Center(后端控制中心)微件,显示 CPU 负载、内存、磁盘容量和后端状态监控可能需要的其他参数。
现在,您可以通过新的安全设置使用 SSH 密钥转发验证远程机器对 git 仓库的访问。 您也可以使用 SSH 代理助手执行此操作。
您可以在远程机器上为 IDE 后端指定下载路径和确切位置。
56.本地瘦客户端增加新功能 ULTIMATE
JetBrains 客户端现已支持更多文件编辑器,既可以处理基于文本的文件,也可以处理 PNG 图像、UML 图表、Jupyter Notebook 文件和 Android 布局资源。
Run with coverage(使用覆盖率运行)和 Profiler(分析器)窗口已被添加到间距菜单。 上下文菜单现在包括 Maven 和 Gradle 工具窗口,并添加了更多实用的子菜单项。
我们还改进了调试功能并提供了多个操作,让您可以在远程开发时轻松检查代码。
数据库工具
57.复制多个对象 ULTIMATE
您现在可以选择多个表并将其复制到另一个架构。 选择表,然后按 F5 打开导出对话框。 与导出单个表一样,您可以映射列以及查看和更改新表的 DDL。
IDE 支持跨 DBMS 导出,这意味着目标架构可以属于您项目中的任何数据库。 在这篇 博文 中了解详情。
58.MongoDB:编辑结果中的字段 ULTIMATE
现在,您可以像在关系数据库中一样在 MongoDB 集合中轻松编辑结果。 您还可以编辑通过 .find() 获得的结果集。 即使在 .find() 后执行了修改结果的光标方法(如 sort() 或 limit()),这也可以运行。
59.取消正在运行的语句 ULTIMATE
取消正在运行的语句的逻辑已经更新。 现在,请求被取消这一点更加明确,我们不会在没有警告的情况下停用数据源。 有关详情,请参阅此 博文 。
60.取消连接而不停用数据源 ULTIMATE
您现在可以在不停用数据源的情况下停止连接创建过程。 如果您在创建连接时点击 Cancel(取消)按钮,创建将被停止并显示 Connection canceled(连接已取消)消息。 在这篇 博文 中详情了解此更新。
Web 开发
61.更好的 Next.js 支持 ULTIMATE
得益于针对 React 的内置支持,所有关键功能都应该已经可以在 Next.js 项目中运行。 IntelliJ IDEA 2022.1 添加了对页面等特定于框架的对象的支持。 IDE 将解析 Link
组件的 href
属性以及 form 和其他标记中使用的路径。 代码补全、导航和重构也将可以运行。
62.对 Volta 的支持 ULTIMATE
在此版本中,我们添加了与 JavaScript 工具管理器 Volta 的集成。 IntelliJ IDEA 2022.1 将自动识别使用 Volta 安装的 Yarn 和 npm。
Scala
63.Scala 3 支持改进
现在 extension
方法可以自动补全。 此外,编辑器还将自动建议导入 extension
方法和 given
实例。 针对 infix
修饰符和 @targetName
注解的新检查可以帮助您保持一致的代码风格。 我们显著提高了 .tasty
阅读器的性能,Scala 3 库的索引编制速度现在提高了两倍。
64.新 Scala 项目向导
新的 Scala 项目更加易于配置。 使用更新的 New Project(新建项目)向导,您可以一步选择项目 JDK、所需构建系统和 Scala 版本。
65.别名导出
Scala 中的大多数内容都是别名,包括 String
、Seq
、List
、Set
和 Map
。 这会影响语法高亮显示、GoTo、Quick Documentation(快速文档)、Quick Definition(快速定义)、Find Usages(查找用法)、Optimize Imports(优化 import) 和其他 IDE 功能,因为它们作用于别名而不是实际定义。 为了改善用户体验,编辑器现在将标准库中的别名视为透明导出,例如,List
表示 scala.collection.immutable.List
而不是 scala.List
。
66.Unused declaration(未使用的声明)检查
此前,未使用声明的检测仅限于 private
绑定。 现在,Unused declaration(未使用的声明)检查支持由类、方法、变量、形参等引入的公共绑定。
67.Scala 调试器升级
在此版本中,我们改进和简化了 Scala 调试器。 我们升级了 objects
、主构造函数形参、值 class
、Array
、lazy val
和集合的处理,并改进了表达式评估。
Space 集成
68.代码审查评论:Post Now(立即发布)或 Save as Draft(另存为草稿)
在 IDE 中审查代码变更时,您现在可以选择何时发布代码审查评论。
- Post Now(立即发布)会立即在代码审查中发布评论,并立即通知作者和其他代码审查参与者。
- Save as Draft(另存为草稿)会批量处理所有评论,并在您批准变更或等待回复时一次性发送。
有关详情,请参阅此 博文 。
67.代码审查的键盘快捷键
改进的代码审查用户界面将显示适用键盘快捷键。 发布代码审查评论时,您可以使用 Enter
添加新行。 按 Ctrl+Enter
将保存或发布评论。