今天JetBrains正式发布了IDEA 2021.1正式版!新版本全面支持Java16、WSL2、Docker等新特性。idea现在可以在WSL,Docker和远程SSH主机上直接运行和调试程序。

码农老杨已经第一时间升级到了最新版本,启动界面风格大变,的确欣赏不来……

idea连接云服务器 idea连接wsl_intellij idea

启动界面

idea连接云服务器 idea连接wsl_Kotlin_02

支持正版我用开源授权

IntelliJ IDEA 2021.1 最新变化

IntelliJ IDEA 2021.1 引入 Java 16 和 WSL 2 支持、Space 集成、Code With Me、IDE 内部的 HTML 预览窗口、在 SSH 主机和 Docker 容器中运行代码的选项以及其他实用更新。

Space 集成

idea连接云服务器 idea连接wsl_idea连接云服务器_03

 

idea连接云服务器 idea连接wsl_idea连接云服务器_04

 

idea连接云服务器 idea连接wsl_java_05

 

idea连接云服务器 idea连接wsl_Kotlin_06

 

idea连接云服务器 idea连接wsl_java_07

 

PreviousNext

idea连接云服务器 idea连接wsl_Kotlin_08

 

与 Space 集成,我们新的软件开发和团队协作平台,现在可以开箱即用。 您可以通过欢迎屏幕上的 Get from VCS 连接到 JetBrains Space 中的组织。 登录后,您可以查看和克隆项目存储库,检查队友的代码以及编写 Space Automation 脚本。

WSL 2 支持

idea连接云服务器 idea连接wsl_java_09

 

Java 项目 WSL 2 支持

我们知道您一直在期待这次更新! 现在,您可以在 IntelliJ IDEA 中使用 WSL 2 中的 Java 项目。 IDE 可以检测 JDK 安装、安装 JDK、编译和运行 Maven 和 Gradle 项目以及使用 IntelliJ IDEA 构建系统的项目。

协作开发

idea连接云服务器 idea连接wsl_intellij idea_10

 

Code With Me,一项用于协作开发和结对编程的新服务,已在 IntelliJ IDEA 中开箱即用。 它还具有视频和语音通话功能,让远程协作更上一层楼。 无论您何时想与同事交流,都可以直接从 JetBrains IDE 中发起音频和视频通话。 Code With Me 完美匹配 1:1 会议和小组会议,您可以邀请数十人参与。 要详细了解这些更新,请阅读我们的博文。

运行目标

idea连接云服务器 idea连接wsl_Kotlin_11

 

Run Targets 功能允许您在 Docker 容器或远程机器上运行、测试、分析和调试应用程序。 IntelliJ IDEA Ultimate 目前允许您在 Docker、SSH 和 WSL 目标上运行 Java 应用程序、JUnit 测试以及 Maven、Gradle、Micronaut、基于 Maven 的 Quarkus 和 Spring Boot 项目。 更多信息,请查看此博文。

用户体验

idea连接云服务器 idea连接wsl_java_12

 

内置 HTML 预览

新的内置浏览器预览可以让您快速预览 HTML 文件。 在编辑器右上角,点击文件中带有 IntelliJ IDEA 徽标的图标即可将其打开。 您如果在 HTML 中进行了更改,或者改变了链接的 CSS 和 JavaScript 文件,则预览将即时更新。

idea连接云服务器 idea连接wsl_Kotlin_13

 

在搜索范围内自定义外部依赖项

我们已经使搜索范围更易于自定义。 您可以将 External Dependencies 设置为包含在范围中或从范围中排除。 转到 Preferences/Settings | Appearance & Behavior | Scopes,使用右侧按钮更改 External Dependencies 的状态。

idea连接云服务器 idea连接wsl_UI_14

 

在 Windows 上快速访问最近的项目

我们更新了对 Windows 跳转列表的支持,现在,右键点击任务栏或开始菜单上的 IntelliJ IDEA 图标即可打开您最近的项目。

改进了辅助功能

我们的一大关键任务是让所有用户都能不受阻碍地使用我们的 IDE。 在这个版本中,我们为欢迎屏幕、Project Structure 视图和 VCS 日志中的 UI 元素添加了更多标签。 启用屏幕阅读器后,现在可以正确读出这些元素以及间距图标。 我们也在努力改善对 macOS 用户的辅助功能支持。

在 Windows 中将高对比度模式与 IDE 主题同步

如果您在 Windows 上使用了高对比度模式,当您第一次启动 IDE 时,您的 IDE 将自动应用高对比度主题。

版本控制

idea连接云服务器 idea连接wsl_Kotlin_15

 

更好的 Pull Request 支持

Pull Request 可以更快完成创建:只需在 Pull Request 视图中点击 + 图标并填写所有细节。 视图顶部的新选项卡包含关于您的 Pull Request 的所有信息。 双击 Files 选项卡中的任意文件,IDE 将打开编辑器中的差异。 您还会发现对 Pull Request 模板的支持,其中包含 Pull Request 的描述文本。

idea连接云服务器 idea连接wsl_Kotlin_16

 

支持 Git 提交模板

IntelliJ IDEA 支持 Git 提交模板。 如果要创建自定义提交消息,您可以使用模板,在其中填写必要信息。 然后,IDE 将把文本显示为初始提交消息。

idea连接云服务器 idea连接wsl_java_17

 

为预提交检查配置配置文件

现在,在将变更提交到 VCS 之前,可以轻松选择代码检查配置文件。 点击齿轮图标显示提交选项,选中 Analyze code 复选框,点击 Choose profile,然后选择所需的配置文件。 您的 IDE 会在提交前用它来检查代码。

idea连接云服务器 idea连接wsl_intellij idea_18

 

从另一个分支获取文件

在 v2021.1 中,您可以通过 Compare with branch 对话框从另一个分支获取文件。 您只需选择要获取的文件,然后点击 Show diff 旁边新增的向下箭头图标。

idea连接云服务器 idea连接wsl_UI_19

 

保存到 Shelf

您可以使用新的 Save to Shelf 操作将变更保留在本地并复制到 Shelf。 在 macOS 上按 ⇧⌘A(在 Windows 或 Linux 上按 Ctrl+Shift+A),然后输入 Save to Shelf 即可访问此操作。

Perforce 集成

Perforce 插件现在与 IntelliJ IDEA Community Edition 完全兼容,并与您的 IDE 捆绑。 此插件源代码位于 GitHub。

编辑器

idea连接云服务器 idea连接wsl_UI_20

 

字体粗细选项

在长时间的编码工作中,选择一个舒适的编辑器字体非常重要。 最近增加的版式设置让这个选择变得更加简单和个性化。 在 v2021.1 中,您可以在 Preferences / Settings | Editor | Fonts 中调整主字体和粗体字体的粗细。

idea连接云服务器 idea连接wsl_intellij idea_21

 

最大化分割视图中的选项卡

打开多个垂直分割编辑器的选项卡时,可以双击其中任意一个以最大化该特定选项卡的编辑器窗口。 只需再次双击即可将窗口恢复到原始大小。

idea连接云服务器 idea连接wsl_Kotlin_22

 

idea连接云服务器 idea连接wsl_idea连接云服务器_23

 

PreviousNext

JSONPath 支持

IntelliJ IDEA 现在支持使用 Goessner 或 Jayway 语法的 JSONPath 表达式。 对于 JSON 文件,您可以通过 Edit | Find 调用 Evaluate JSONPath Expression 操作,在 JSONPath 写入查询。 如果文件包含由 JSONPath 编写的部分,您可以使用相同的功能并添加 JSON 输入与测试 JSONPath 查询。

idea连接云服务器 idea连接wsl_java_24

 

JSON Lines 支持

IntelliJ IDEA 支持以换行符分隔的 JSON Lines 格式,该格式用于处理结构化数据和日志。 IDE 将识别 .jsonl.jslines.ldjson 和 .ndjson 文件类型。

分析器 ULTIMATE

idea连接云服务器 idea连接wsl_intellij idea_25

 

idea连接云服务器 idea连接wsl_idea连接云服务器_26

 

PreviousNext

我们重新设计了分析器 UI。 Home 窗口的信息量更大,将分析器附加到进程的速度也更快。 我们还添加了两个新操作,可以通过右键点击正在运行的应用程序来访问:Capture Memory Snapshot,用于获取应用程序的 *.hprof 快照;CPU and Memory Live Charts,会打开一个带有可视化工具的选项卡,用于跟踪资源消耗。

Java

idea连接云服务器 idea连接wsl_idea连接云服务器_27

 

idea连接云服务器 idea连接wsl_Kotlin_28

 

PreviousNext

支持 Java 16

IntelliJ IDEA 具有对 Java 16 的基本支持,于 2021 年 3 月发布。 部分更新包括内部类声明显式或隐式静态成员的新功能,以及 Stream.collect(toUnmodifiableList()) 的变化,其已转换为 stream.toList()。 IDE 在流的代码补全列表上首先显示 toList() 项。

idea连接云服务器 idea连接wsl_Kotlin_29

 

idea连接云服务器 idea连接wsl_idea连接云服务器_30

 

idea连接云服务器 idea连接wsl_intellij idea_31

 

idea连接云服务器 idea连接wsl_java_32

 

PreviousNext

数据流分析的新检查

IntelliJ IDEA 会在数组初始化为负数时发出警告。 它还可以识别 Arrays.copyOf() 和 Collection.toArray() 方法。 而且,IDE 还支持拆箱或转换整数的方法,如 Integer.longValue 和 Byte.intValue。

idea连接云服务器 idea连接wsl_UI_33

 

idea连接云服务器 idea连接wsl_UI_34

 

PreviousNext

其他改进的新检查

现在,您可以缩小 for-each 循环参数类型,避免不必要的转换。 如果筛选器使用的值与映射器生成的值相同,则另一项检查允许您通过互换 .filter() 和 .map() 调用简化代码语法。 此外,将 StringBuffer 替换为 StringBuilder 的检查已更新,涵盖了更多情况。

idea连接云服务器 idea连接wsl_UI_35

 

idea连接云服务器 idea连接wsl_intellij idea_36

 

PreviousNext

链式构建器方法的格式设置

链式构建器方法的新格式设置选项有助于提高其可读性。 您可以在 Chained method calls 下拉列表的 Preferences/Settings | Editor | Code Style | Java | Wrapping and Braces 中配置格式化程序。 builder methods 选项可以让您创建一列方法,IDE 将把这些方法视为构建器方法,把每个方法置于单独一行。 选中 Wrap first call 复选框时,第一个构建器方法也将出现在单独一行上。 您也可以手动添加缩进,如果勾选 Keep builder methods indents 复选框,IDE 将使其保持不变。

Kotlin

idea连接云服务器 idea连接wsl_Kotlin_37

 

更快地高亮显示代码问题

实时代码分析能够更快地检测到错误和警告。 与之前版本相比,IntelliJ IDEA 2021.1 几乎可以即时高亮显示代码问题。 现在,代码补全机制可以更快地运行,并且 IDE 对冻结的响应有所改善。

idea连接云服务器 idea连接wsl_Kotlin_38

 

改进的代码补全

Kotlin 中的代码补全机制提供了需要类型参数的函数。 选择此类函数后,IDE 会将正确的类型参数添加到前面的代码。

idea连接云服务器 idea连接wsl_java_39

 

更好的代码覆盖率

IntelliJ IDEA 的 code coverage 运行程序现在完全支持 Kotlin 的内联函数和协同程序。

idea连接云服务器 idea连接wsl_Kotlin_40

 

重构改进

我们重新设计了 Change Signature 重构的 UI,并添加了一个新复选框,用于将添加的参数设置为默认参数。

idea连接云服务器 idea连接wsl_idea连接云服务器_41

 

Kotlin 调试器更新

IntelliJ IDEA 调试器可以评估 Kotlin 中的 get 表达式,并将其显示在 Variables 视图中。 您也可以从 IDE 跳转到源。

idea连接云服务器 idea连接wsl_intellij idea_42

 

适用于 Kotlin 的 UML 类图

UML类图现已适用于编译到 JVM 的 Kotlin 代码,并且可以同时显示 Java 和 Kotlin 类。 我们计划即将支持其他 Kotlin 后端的 UML 图。

Scala

idea连接云服务器 idea连接wsl_intellij idea_43

 

Type Diff 中的 Kind

Scala 开发者用到 kind 程度较高的类型时,往往倾向于采用独特的样式。 Type Diff 工具提示现在支持 kind。

idea连接云服务器 idea连接wsl_idea连接云服务器_44

 

机器学习补全

该版本引入了基于机器学习的 Scala 代码补全。 您可以在 Settings | Editor | Code Completion | ML | Scala 中启用该功能。

idea连接云服务器 idea连接wsl_Kotlin_45

 

idea连接云服务器 idea连接wsl_idea连接云服务器_46

 

PreviousNext

编译图表中的阶段和单元

除了模块,编译图表现在还可以显示阶段和单元,让您更深入地了解编译。 打开 Build 工具窗口,选择 Chart 节点,选择细节的所需 Level

idea连接云服务器 idea连接wsl_idea连接云服务器_47

 

IntelliJ 平台插件模板

通过 sbt-idea 插件即可使用 Scala 和 sbt 开发 IntelliJ 平台插件。 新增的内置 Project Wizard 模板将使过程更加简单(这个功能取决于 Plugin DevKit)。

构建工具

idea连接云服务器 idea连接wsl_java_48

 

我们已经恢复了导入 Maven 项目是自定义设置的功能。 要激活该选项,请在 File | New Projects Settings | Preferences for new Projects | Build, Execution, Deployment | Build Tools | Maven 中选择 Show settings dialog for new Maven projects

框架与技术 ULTIMATE

idea连接云服务器 idea连接wsl_idea连接云服务器_49

 

支持替换 http:// 的新检查

您的 IDE 现在可以高亮显示 http:// 协议用法,并将其更改为 https://。 该检查默认启用。 您可以将 URL 添加到忽略的 URL 列表,或者在 Preferences/Settings | Editor | Inspections | Security – Link with unencrypted protocol 中禁用对整个或部分项目的检查。

idea连接云服务器 idea连接wsl_java_50

 

改进了 HTTP 客户端

如果您从 HTTP 客户端运行请求,响应将出现于在此版本获得 UI 和 UX 更新的 Services 工具窗口。 您可以折叠返回的 HTML、JSON 或 XML,复制其正文,隐藏行号,选择显示格式,并快速滚动到响应的顶部和底部。

idea连接云服务器 idea连接wsl_Kotlin_51

 

HTTP 客户端中的 SSL 支持

如果将 SSL 客户端身份验证用于 https:// 协议,则可以在 HTTP 客户端中配置 SSL 设置。 为此,请点击 Add environment file,然后选择 Private。 IDE 将自动创建一个文件,您可以在其中添加 SSL 配置。 代码补全将提供帮助。

idea连接云服务器 idea连接wsl_idea连接云服务器_52

 

适用于 JVM 框架的新项目向导

我们重新设计了用于创建 Spring、Micronaut、Quarkus 和 MicroProfile 项目的向导。 开始一个新项目现在只需两步! 第一个屏幕方便地包含了所有核心信息,第二个屏幕则显示了特定于框架的设置。 新的 UI 更加整洁,项目创建流程也更加直观。

idea连接云服务器 idea连接wsl_java_53

 

改进了 JPA 支持

我们为包含 JPA 实体的项目添加了重新设计的间距图标。 这些图标可以点击,并包含了对实体及其特性最实用的操作列表。 我们还改进了对 Kotlin 和多模块项目的 JPA 支持。

idea连接云服务器 idea连接wsl_UI_54

 

适用于 Jakarta EE 9 的 JPA 控制台

现在可以使用 JPA 控制台在 Jakarta EE 9 项目中编写和运行 JPQL 查询。

idea连接云服务器 idea连接wsl_idea连接云服务器_55

 

UML 图的新配色方案

我们给使用浅色主题的用户带来一个好消息:UML 图现已拥有新的配色方案,更加整洁易读。

idea连接云服务器 idea连接wsl_intellij idea_56

 

Swagger 改进

Swagger 支持带有外部文件引用 ($ref) 的规范。 此外,规范文件的 Structure 视图也获得更多节点,包括 SecurityCallbacks 和 Examples

idea连接云服务器 idea连接wsl_UI_57

 

Selenium 页面对象生成器

IntelliJ IDEA 现在支持用于检测 Web 应用程序 DOM 元素的实验性工具。 使用前安装 Selenium UI Testing 插件。

您可以通过 Tools | Generate Selenium Page Object 访问这个新工具。 在打开的对话框中,输入网页地址,选择任意 DOM 元素,然后将其添加到下面的区域。 您可以在那里更改元素的语言或框架。 我们的页面对象生成器支持Java、Kotlin 和 Groovy 以及 Selenium、FluentLenium、Selenide、Geb、Atlas 和 JDI Light 等框架。

您可以自定义每个框架的代码模板。

Kubernetes ULTIMATE

idea连接云服务器 idea连接wsl_Kotlin_58

 

快速删除资源

可以从编辑器中删除当前上下文中的所有群集资源 - 只需点击间距中的 Run 图标,然后选择 Delete

idea连接云服务器 idea连接wsl_UI_59

 

支持 Kustomize 3.7.0 组件

您可以在 Settings/Preference | Languages & Frameworks | Kubernetes 的 Kustomize 版本下拉列表中选择新的 Kustomize 3.7.0 组件。

idea连接云服务器 idea连接wsl_idea连接云服务器_60

 

支持 kind: List

如果您需要使用 kubectl get <resource type> -o yaml 命令返回的内容或将资源整理到列表,IDE 现已支持 kind: List。 在列表的每个资源中,您都可以重命名标签,并通过间距图标使用代码辅助和导航。 您还可以将列表与多文档 YAML 文件相互转换。

idea连接云服务器 idea连接wsl_java_61

 

idea连接云服务器 idea连接wsl_UI_62

 

PreviousNext

Helm 项目的非默认值

可以创建自定义 values.yaml 文件。 IDE 会将名称中带有“values”的文件视为值文件。 从上下文菜单选择 Configure Helm ParametersHelm Lint 或 Helm Template,打开对话框,配置图表模板将使用的值文件。 您也可以将值粘贴到对话框的 Additional values 区域手动添加值。

Docker

idea连接云服务器 idea连接wsl_UI_63

 

idea连接云服务器 idea连接wsl_intellij idea_64

 

PreviousNext

改进了 Run/Debug Configuration

Run/Debug Configuration 对话框现在更加简洁灵活。 要添加所有必要的构建选项,请点击 Modify options。 要添加运行选项,请点击 Modify。 IDE 现在会验证每个选项以确保其兼容。 我们支持 Docker Compose 的所有现有选项。 代码补全现在支持 Dockerfiles Run Options 和 Image ID or name.

idea连接云服务器 idea连接wsl_intellij idea_65

 

BuildKit 支持

我们增加了对 BuildKit 的实验性支持,可加快项目构建速度。 同时简化了从整个多阶段 Dockerfile 分别构建命名阶段的操作。 您只需单击阶段名称旁边的 hammer 图标,IDE 即可使用 BuildKit 构建映像。

idea连接云服务器 idea连接wsl_Kotlin_66

 

多阶段 Dockerfiles 中的 UI 增强

如果使用多阶段 Dockerfile,您现在可以折叠阶段并在阶段之间发现明显的分隔线。

idea连接云服务器 idea连接wsl_intellij idea_67

 

取消 Docker 运行

正在运行的 Dockerfile 可以快速停止。 为此,请转到 Services 工具窗口,选择正在运行的项,调用上下文菜单,然后点击 Stop Deploy

idea连接云服务器 idea连接wsl_intellij idea_68

 

Docker 挂载的环境变量和宏

使用 Bind mount 时,现在可以更快地输入主机上目录的路径。 补全机制允许您在 Run/Debug Configuration 的 Bind mount 选项中选择宏和环境变量。

idea连接云服务器 idea连接wsl_java_69

 

Dockerfiles 中的映像补全

代码补全现在可以用于映像名称。

JavaScript ULTIMATE

idea连接云服务器 idea连接wsl_intellij idea_70

 

改进了对 Stylelint 的支持

使用 Stylelint,您可以更轻松地检查 CSS 代码。 现在,点击几下即可解决这个常见的 linter 的问题。 将鼠标悬停在文件中的问题上或将文本光标放在其上,然后按 Alt+Enter,选择 Stylelint: Fix current file。 此外,您现在可以在 Preferences / Settings | Languages & Frameworks | Style Sheets | Stylelint 的相应字段下指定配置文件的路径。

idea连接云服务器 idea连接wsl_Kotlin_71

 

捆绑的 MDN 文档

MDN 文档现与 IntelliJ IDEA 捆绑。 这将有助于防止 MDN 网站的连接问题,并使编辑器内文档在 HTML、CSS 和 JavaScript 文件中显示得更快。 编辑器内文档也将提供更多信息 - 例如,您将看到有关 JavaScript API 受支持的浏览器版本的详细信息。

idea连接云服务器 idea连接wsl_UI_72

 

样式表的选择器特异性

使用样式表时,您现在可以查看选择器的特异性 - 只需将鼠标悬停在要查看的选择器上即可。 或者,将焦点放在选择器上,按 F1/Ctrl+Q 在 Documentation 弹出窗口中查看这些信息。

数据库工具 ULTIMATE

关于数据库工具更新的详细描述,请阅读最新变化。

idea连接云服务器 idea连接wsl_java_73

 

授权 UI

我们为修改对象时的授权编辑添加了一个 UI。 您可以使用 Cmd/Ctrl+F6 在数据库浏览器中的用户上调用 Modify user 窗口,该窗口现在具有向对象添加授权的 UI. 这些更新适用于 PostgreSQL、Redshift、Greenplum、MySQL、MariaDB、DB2、SQL Server 和 Sybase。

idea连接云服务器 idea连接wsl_java_74

 

上下文实时模板

我们推出了从数据库浏览器直接生成简单语句的解决方案 - 实时模板。 您可以使用 SQL node 中的 Preferences/Settings | Editor | Live Templates 添加自己的模板或编辑现有的模板。

idea连接云服务器 idea连接wsl_idea连接云服务器_75

 

简单明了的操作

我们简化了导航 - 在 SQL 中的对象上调用 Go to declaration (Ctrl/Cmd+B) 现在会将您带到 DDL,而不是数据库树。 我们还为 Select in database tree 操作引入了快捷键:Windows/Linux 为 Alt+Shift+B,macOS 为 Opt+Shift+B。

idea连接云服务器 idea连接wsl_java_76

 

更好的排序

我们改进了数据排序。 新的 ORDER BY 字段的工作原理类似于 WHERE 字段(之前叫做 Filter):输入工作子句将其应用于网格查询。 如果要在客户端使用排序(IntelliJ IDEA 不会重新运行查询,也不会在当前页面对数据进行排序),应取消选中 Sort via ORDER BY。 另一个更新是,排序默认不会“堆叠”;点击用于排序数据的列名后,基于其他列的排序将被清除。

idea连接云服务器 idea连接wsl_idea连接云服务器_77

 

轻松复制粘贴数据源

闻名世界的快捷键 Ctrl/Cmd+C/V/X 现在可以用于复制、剪切和粘贴数据源。 复制数据源时,XML 会被复制到剪贴板,然后可以通过通讯工具共享。 您也可以使用 Paste 操作从其他位置粘贴 XML。 如果您在项目中剪切并粘贴数据源,它会被直接移动,无需密码。 但在其他情况下都需要密码。

idea连接云服务器 idea连接wsl_intellij idea_78

 

编辑 MongoDB 中的数据

您现在可以编辑 MongoDB 集合中的数据。 还有语句预览可供使用。 为了使编辑更加灵活,我们引入了从 UI 更改字段类型的功能。 您可以从字段的上下文菜单或值编辑器中完成此操作。

其他

嵌入式共享索引支持

IntelliJ IDEA Community Edition 内嵌了对公开共享索引的支持。 您无需安装专用插件。 而可以从 IDE 使用共享索引功能。

Android

IntelliJ IDEA 现在支持所有 Android Studio 4.1.1 更新。

支持 bnd-maven-plugin

IntelliJ IDEA 现在可从 bnd-maven-plugin 导入 OSGI facet 设置。