MPS 2024.3 最新变化

MPS 2024.3 引入了 UI 改进、许多组件的内部重做以及启用二进制的 TextGen。 您还将看到对图标和大量平台更新的增强支持。

具体增强如下所示。

逻辑视图根

瞬态和检查点模型的顶层文件夹

ProjectView 工具窗口现在提供三个顶层文件夹,使项目结构更加有序:

  • 项目名称
  • Modules Pool
  • Checkpoints and Transient Models

Checkpoints and Transient Models 文件夹始终显示在 Modules Pool 下方,除非有瞬态或检查点模型可用,否则为空。 这些模型显示在此文件夹下,而不是像以前一样位于顶层。

副作用是,新的 Checkpoints and Transient Models 文件夹允许 ProjectView 工具窗口在 MPS 重新启动时记住项目结构的已展开和已收起子树。

启用预览标签页

启用 Preview Tab(预览标签页)选项

现在,MPS 尊重以下由 IntelliJ Platform 提供的启用/禁用 Preview Tab(预览标签页)选项,并保证编辑器的行为与其他 JetBrains 工具相同:

  • Settings | Editor | General | Editor Tabs | Opening Policy | Enable Preview Tab(设置 | 编辑器 | 常规 | 编辑器标签页 | 打开策略 | 启用预览标签页)
  • Logical View | Behavior | Enable Preview Tab(逻辑视图 | 行为 | 启用预览标签页)
针对工具提示更新的对话框设计 2

launchtests:报告目录路径选项

构建脚本中的 test configuration 的选项部分增加了 reports dir 选项。 用户可以指定存储生成的 JUnit 测试报告的输出目录。

Inspector(检查器)

快速修复适用性条件控制

Quick-Fix(快速修复)定义中增加了名为 applicable(适用)的新部分,供您控制快速修复的适用性。 默认值 <always> 将保证不受限制的适用性。

图标处理

使用模块相对路径的图标和图像不再在生成过程中被复制到其个别用法的位置旁边。 它们会作为图像文件被一次性复制到分发模块并且可在此单一位置使用。 这有两个直接的好处:避免图像文件重复以节省磁盘空间,以及从分发和源模块访问图像。

常量图标

常量图标

除了现有的 TextIconFileIcon 概念之外,现在还新增了 ConstantFieldIcon 概念。 它允许通过引用保存 javax.swing.Icon 实例的具体静态字段声明来指定图标。

TextGen 二进制结果

基于对更好地处理图标文件的需求,我们添加了一种新机制,在文本生成期间生成二进制输出,而不是文本。 新 API 包含一个 write 操作,直接将数据作为 byte[] 的实例进行操作。

工具窗口已从 ProjectComponent 移出

所有工具窗口,例如 Inspector(检查器)、HierarchyViewUsages(用法),都已重做,不再遵循 IntelliJ Platform 的项目组件 (ProjectComponent) 早已弃用的机制。 API 的更改很小,但对于某些工具窗口,从代码获取的方式有所改变:

  • Project.getComponent() 方法不再返回工具窗口。
  • 作为 MPS 工具概念实现的工具可以使用 com.intellij.openapi.project.Project.tool <ToolConcept> 获取。
  • Java 中经常使用的工具提供了静态 getInstance() 方法:
    • UsagesViewTool.getInstance()
    • InspectorTool.getInstance()
  • EditorContext.inspectorTool() 一直以来也提供 Inspector(检查器)工具。

IntelliJ Platform 组件和服务

除了工具窗口,大多数 MPS 核心功能都已重做,不再使用 IntelliJ IDEA 的 ApplicationComponentProjectComponent

MPS 过去严重依赖 IntelliJ Platform 基础架构来组成完整的应用程序。 现在,大多数遗留组件都已重构,使用当代 MPS 或 IntelliJ IDEA API(如 IntelliJ IDEA 的应用程序/项目服务和扩展点、MPS 的 CoreComponents 和扩展等)。 目前还剩下一些组件,MPS 团队计划在下一个版本中将其完全移除。

除了缩短的启动时间,大多数用户可能不会注意到任何差异。

如果您的代码由于使用过时的检索机制而无法找到平台组件,请查阅迁移指南

切换到新 UI

MPS 现在使用新 UI。 旧版 UI 可以通过安装 Classic UI 插件启用。

大量 bug 修正

一如既往,此版本也修正了许多 bug。 这里列出了我们修正的所有问题。

平台更新

切换到 JBR21

我们正在从 JetBrains Runtime 17 (JBR17) 过渡到 JetBrains Runtime 21 (JBR21)。 从 IntelliJ IDEA 2024.2 开始,所有 IDE 更新都将附带 JBR21,提供增强的安全性和性能以及对 Linux 的 Wayland 渲染支持。

代理设置自动检测默认为新用户启用

IntelliJ IDEA 现在会默认自动检测并使用您的计算机上配置的系统代理设置,促进与外部资源和服务的无缝交互。

改进的 Customize Main Toolbar(自定义主工具栏)对话框

我们重新设计了 Customize Main Toolbar(自定义主工具栏)对话框中 UI 元素的布局和行为,使其更加直观有序。 现在,在主工具栏中搜索、添加和删除操作都更加简单。

提高的默认标签页上限

我们将编辑器中的默认标签页上限提高到了 30 个。 这意味着在 IDE 开始关闭最近使用最少的标签页之前,您现在可以保留更多标签页。 您可以在 Settings | Editor | General | Editor Tabs(设置 | 编辑器 | 常规 | 编辑器标签页)中控制此设置。

Markdown 文件中的数学语法支持

IntelliJ IDEA 现在可以在 Markdown 文件中原生渲染数学表达式。 处理 Markdown 时,您可以使用 $ 插入内联数学表达式,使用 $$ 插入包含数学内容的代码块。

Version Control(版本控制)微件中的标签

我们在 Version Control(版本控制)微件中为标签提供了一个专属节点,使其更易查看。 节点默认显示,如果您想将其隐藏,只需点击齿轮图标并取消选中 Show Tags(显示标签)选项。

改进的 Log(日志)工具窗口用户体验

所有与 Log(日志)工具窗口相关的设置都已合并到一个专属设置页面中,您可以通过 Settings/Preferences | Version Control | Log(设置/偏好设置 | 版本控制 | 日志)或 Log(日志)工具窗口工具栏上的新增下拉菜单访问。

Welcome(欢迎)屏幕上的分支名称

Welcome(欢迎)屏幕现在会显示分支名称,帮助您在处理多个项目版本时保持整齐,并在工作目录之间轻松切换。

Graph Options(图选项)中新的 First Parent(第一个父项)和 No Merges(无合并)

我们添加了新的 Git 选项来简化查看分支历史记录的操作。 使用 First Parent(第一个父项)选项隐藏合并中的个别提交来专注于主线更改。 或者,您可以使用 No Merges(无合并)选项完全筛选掉合并提交。 现在,这两个选项都可以在 Git 工具窗口的 Graph Options(图选项)图标下获取,使分支中的更改更易跟踪。

新终端改进
Beta 版

新终端现在提供增强的命令处理,其 UI 的对齐也得到改进,营造出更流畅、更直观的体验。 现在,终端的响应速度更快,处理提示的速度也更快。 会话现在可以无缝切换,并且各标签页的状态保持一致,确保工作流不会中断。 自动补全可以更快访问命令名称、标志和路径,帮助减少手动输入。 我们还引入了额外自定义选项,包括提示样式、会话名称和环境变量,让您更好地控制终端环境。

迁移指南

对于每一个主要版本,我们都会准备从旧版本 MPS 迁移的说明,以确保一切顺利。 请仔细查阅。