JetBrains MPS 2024电脑版是一款功能强大、灵活且易于使用的语言编程环境和DSL创建工具,不仅为开发人员提供了创建自定义语言结构的能力,还提供了一套完整的开发工具,以支持高效的编程实践。无论你是一名经验丰富的开发人员还是初学者,软件都能帮助你实现面向语言编程范例,并加速你的开发过程。
目前JetBrains MPS的核心功能之一是允许用户自由地创建语言结构,例如方法或类,开发人员可以轻松地定义和实现自定义的方法和类,以满足特定领域的需求,除了创建语言结构外,软件还提供了丰富的工具和功能,包括智能代码补全、语法高亮、错误检查和调试等功能,可以有效地帮助开发人员提高编码效率并减少错误。此外,JetBrains MPS还与其他JetBrains工具和生态系统无缝集成,使开发人员能够充分利用已有的代码库和插件,欢迎有需要的用户朋友们下载使用。
JetBrains MPS 2024.1新功能
一、针对 Kotlin 的增强平台支持
MPS 中的 Kotlin 支持最初设计为仅支持通用代码。不过,MPS 中唯一可能的用例是编译到 JVM,并且通用代码和 JVM 代码之间的区别并不清晰。
在这个版本中,我们为 Kotlin 节点引入了平台源集配置。这让您可以识别一段代码支持哪些目标平台并隐藏不兼容代码中的声明。
1、源集
在常规 Kotlin 项目中,您可以使用源集来分离针对不同平台的代码。在 MPS 中,我们在根级别引入了此功能,其中包含为每个 Kotlin 根节点指定一组支持平台的选项。这些源集可以在意图操作的帮助下在根节点级别进行配置。
在实践中,这意味着:
- 给定源集下的代码只能访问具有兼容平台的声明。例如,特定于 JVM 的代码可能只访问 JVM 特定代码和针对 JVM 的通用代码。
- 生成的源在源集特定目录下组织。如果未指定目录,它将使用默认源集,该集对应于模块的默认值。
- expect 和 actual 声明现已得到支持。
没有显式平台的 Kotlin 代码默认使用 JVM,旨在保持向后兼容。
2、存根的加载和编译
存根已经得到改进,支持新的多平台用例。过去,MPS 为 Kotlin 和 Kotlin/JVM 存根提供独立选项,分别加载通用存根和 JVM 存根。
这两个选项现已统一在 Kotlin 存根下,可以自动确定提供的工件是公开通用代码、JVM 代码还是其他平台的代码。
由于通用库和平台特定库之间的声明冗余(两个工件都包含所有必要声明),我们引入了一种新的重复筛选机制来保持存根整洁。在同一模块下声明时,平台特定库可以访问通用声明,因此您不必再次声明。
依赖项配置与以前相同:
- 通用库和平台特定库均可用作存根。
- JVM 库是将通用代码编译到 JVM 的必要条件,并且应该在 Java facet 中声明。
例如,编写通用代码要求您使用通用存根库(使用通用源集),但您还必须在 Java facet 中声明 Java 工件。
3、在没有 CodeRules typesystem 的情况下提高的 Kotlin 可读性
当基于 CodeRules 的 Kotlin Typesystem 插件不可用时,MPS 中的 Kotlin 代码此前会引发大量 typesystem 和作用域错误。为了提高可读性和可测试性,当基于 CodeRules 的 typesystem 插件不可用时,这些检查和错误现在会被忽略。
在这种情况下,Kotlin 语言中的所有作用域都被替换为包括所有兼容概念节点的默认作用域。由于所有有效节点都在作用域内,这会移除误报错误。
处理 Kotlin 代码的准则与以前相同:
- 编写和检查 Kotlin 代码应在启用 CodeRules 和安装 Kotlin Typesystem 插件的情况下完成。
- 即使没有它们,也可以安全读取和生成 Kotlin。
4、Logical View(逻辑视图)窗格重新实现
Logical View(逻辑视图)窗格现在基于异步架构,这有助于保持 UI 快速响应和提高 IDE 的整体性能。新实现还简化了扩展和修改。有关详情,请参阅知识库中题为 ProjectPane implementation on top of ProjectViewTree 的文章。
新实现带来了一些显著变化:
- 错误和警告指示器不再可用。
- 层次结构中发现的错误和警告都以红色下划线标出。
- Show Descriptor Models(显示描述符模型)选项会影响所有描述符模型。
- 一些拖放操作的工作方式有所不同。
- Logical View(逻辑视图)窗格中的设置已稍微重新组织。
5、占位符单元
我们在 BaseLanguage 中引入了一种新样式,这种新样式使常量单元在存在缺失值(子节点或引用)时可以充当占位符。例如,当类中没有构造函数时,可以显示 <no default constructor> 占位符单元。该样式使常量单元表现出您期望从此类占位符单元中得到的行为。光标只能放在第一个位置,并且不能编辑值。只可以进行附加转换菜单提供的修改。
6、构建语言的更改
构建语言中模块的布尔 doNotCompile 选项已被替换为 Java 枚举,可以更好地区分以下情况:
- 模块不包含任何代码。
- 模块包含代码,但代码是由 MPS 以外的工具编译。
这两种情况都曾以值 true 表示。
新的 Java 枚举有三个可能的值:
- compile in MPS
- compile externally
- no code
迁移到 2024.1 时,doNotCompile 的原始 false 值将迁移到 compile in MPS,而 doNotCompile 的 true 值将迁移到 compile externally。
7、生成方案中的条件复刻
一个小型实验性新功能,让您能够为生成方案添加复刻,而无需实际修改正在复刻的原始方案。生成方案可以被标记为另一个生成方案的复刻。标记的方案将被视为显式引用并在复刻的生成方案的最开始处插入了标准 fork 语句。
此外,定义复刻时,您可以使用字符串修饰符作为触发器。只有当生成的模型由具有生成目标 facet 且 facet ID 与字符串触发器匹配的模块拥有时,才会发生复刻。
8、MPS 中的 JUnit5 XML 报告
MPS 中的 JUnit 测试现在不仅可以生成 Vintage 和 Jupiter 格式的测试报告,还可以生成 Open Test Reporting 格式的测试报告。构建语言的测试选项中有一个新选项,用于控制是否在生成的报告中包含 Open Test 报告。如果该选项设为 true,会在项目目录中创建名为 junit-platform-events*-$BUILD_NAME$.xml 的报告文件。
如果该选项设为 false,将为 Vintage 和 Jupiter 引擎创建旧版报告。
9、传播到测试报告的 JUnit5 注解 @DisplayName
MPS 测试报告现在会考量 JUnit @DisplayName 注解并将名称传播到测试报告工具窗口中显示的报告。
10、试运行时改进
运行节点或编辑器测试时,MPS 过去会将整个测试模型复制到瞬态模型中,并为每个测试用例节点制作额外副本(从根 NodeTestCase 或 EditorTestCase 开始)。对于大型测试模型,这往往会明显影响性能。它还会导致带有重复测试节点的奇怪设置。在 MPS 2024.1 中,带有测试的模型将不再被复制,只有 NodeTestCase 或 EditorTestCase 的 TestNode 子项及其各自环境节点(它们的引用的目标)会被复制。
11、TestInfo 中的项目路径不再需要
对于需要打开 MPS 项目的测试,不再需要 TestInfo 声明。这适用于执行 JUnit 测试的所有方式:
- 如果测试是从 IDE 运行,无论是在进程内还是进程外,都将使用当前打开的项目。
- 如果测试是使用 <launchtests> 任务运行,则可以将 project path 指定为任务的额外项目路径选项。如果未指定,将使用 ${basedir},它对应于当前项目的主目录。
- 对于上述方式均无法使用的特殊情况,您可以通过 -Dmps.test.project.path 系统属性指定项目位置。
12、模块类加载的彻底重做
在将类加载与模型访问和 ReloadableSModule 的弃用分离的过程中,我们改变了模块的类加载的工作方式。虽然我们已经尽力为最终用户避免明显更改,但更新可能导致以前不存在的类加载问题。
作为此次重做的一部分,MPS 现在继续使用在 module.xml 中为部署的模块声明的依赖关系,而不会尝试在启动时根据分散在模块文件中的信息来计算。在设计阶段,依赖关系派生自模型转换阶段收集的信息,并且在这里也不会重新计算。分析 .mpl 或 .msd 文件的模块依赖项的旧逻辑仍然有效,以防新方法失败。
这些更改是改进 Java 模块 facet 以及模块 facet 的长期工作的一部分。
二、其他
1、十六进制长文字已引入 BaseLanguage。
2、当项目需要迁移并且存在模块/模型版本不兼容时(例如,如果模块提到的语言版本与模型中提到的版本不同),将弹出通知窗口,显示所有存在不兼容问题的模块。这有助于合并迁移的代码,因为您可以确保合并的状态反映正确的语言和模块版本。
3、Logical View(逻辑视图)窗格中 devkit 下的模块显示为模块引用节点。这类似于语言模块下运行时模块的呈现方式。
三、大量 bug 修正
同样,这个版本修正了许多 bug。这里列出了我们修正的所有问题。
四、平台更新
1、新 UI 中的新终端 测试版
MPS 2024.1 推出了重做的终端,具有可视化和功能增强,有助于简化命令行任务。此更新为既有工具带来了全新的外观,命令被分为不同的块,扩展的功能集包括块间丝滑导航、命令补全和命令历史记录的轻松访问等。在这篇博文中了解详情。
2、用于缩小整个 IDE 的选项
您现在可以将 IDE 缩小到 90%、80% 或 70%,从而可以灵活地调整 IDE 元素的大小。
3、Gradle 版本支持更新
从这个版本开始,MPS 不再支持使用低于 Gradle 版本 4.5 的项目,并且 IDE 不会对带有不支持的 Gradle 版本的项目执行 Gradle 同步。
五、大量 VCS 功能
1、在 Log(日志)标签页中显示审查分支更改的选项
MPS 2024.1 通过提供分支相关更改的集中视图简化了代码审查工作流。对于 GitHub、GitLab 和 Space,现在可以在 Git 工具窗口中的单独 Log(日志)标签页中查看具体分支中的更改。为此,点击 Pull Requests(拉取请求)工具窗口中的分支名称,然后从菜单中选择 Show in Git Log(在 Git 日志中显示)。
2、对代码审查评论回应的支持
MPS 2024.1 开始支持对 GitHub 拉取请求和 GitLab 合并请求的审查评论发表回应,已有一组表情符号可供选择。
3、从推送通知创建拉取/合并请求
成功将更改推送到版本控制系统后,IDE 现在将发布一条通知,提醒您已成功推送并建议创建拉取/合并请求的操作。
4、待处理 GitHub 更新的可视化指示器
我们引入了可视化指示器来提示代码审查工作流中待处理的更新。有需要您注意的更改时,工具窗口的图标上会出现一个点。未查看的拉取请求也将用点标记,确保您不会错过代码审查流程中的更新。
5、防止大文件提交到仓库
为了帮助您避免由于文件过大而导致版本控制拒绝,IDE 现在包含预提交检查,防止您提交此类文件并通知您该限制。
6、Git 工具窗口中 History(历史记录)标签页的分支筛选器
在 Git 工具窗口中,Show all branches(显示所有分支)按钮已被替换为分支筛选器,允许您审查对指定分支内的文件所做的更改。我们还调整了工具栏的方向,将其水平放置以提高实用性。
7、Branches(分支)弹出窗口中改进的搜索
在 Branches(分支)弹出窗口中,您可以按操作和仓库筛选搜索结果,以在版本控制系统中更快、更精确地导航。
8、Allow unrelated histories(允许不相关的历史记录)合并选项
Merge into(合并到)对话框的下拉菜单中新增了 Allow unrelated histories(允许不相关的历史记录)选项。选择后,该选项允许合并两个分支,即使它们没有共同的历史记录。
9、从比较中排除文件夹和文件的选项
在差异查看器中,您可以指定在比较中要忽略的文件夹和文件,从而仅关注有意义的更改。右键点击您不想在比较结果中看到的文件或文件夹,然后从上下文菜单中选择 Exclude from results(从结果中排除)。
为什么选择JetBrains MPS?
1、领域专用语言
以一种直接使用您所在领域的概念和逻辑的语言表达您的特定领域的流程和知识。
2、投影编辑器
使用所在领域所有人都理解的术语进行交流。将非文本符号与投影编辑结合使用,包括数学符号、图表和表格。
3、编辑器支持
我们的智能编辑器可以通过快速修复、单词补全和意图来帮助和指导您完成整个过程。
软件功能
1、Kotlin MVVM Generator
使用Kotlin为MVVM + Dagger + Rx生成活动和片段的插件。
2、Rust
Rust语言支持。
3、Senya编辑
Senya编辑:快速有效地设计OpenAPI和Swagger规范。
4、自定义视图制作工具
开发自定义视图,而不必在每一步之后重建!
5、Perl的
Camelcade插件支持以下语言和框架。
6、ReasonML语言插件
Reason(和OCaml)语言插件。
7、IntelliJ API观察器
开发该插件提供了“查找外部用法”操作,允许开发人员快速找到使用IntelliJ平台类,方法或字段的插件,并检查...
8、GitPrefix
易于'表情符号(或文本)前缀提交'。
9、Quokka
javascript的Quokka是编辑器中的快速原型操作平台,可以访问项目的文件,内联报告,代码覆盖和丰富的输出格式
JetBrains MPS Mac软件特色
软件特色
【发电机测试】
除了现有的节点和编辑器测试系列之外,我们还实现了一种测试生成器的新方法。目的是确保发电机或发电机组完成其工作。IDE支持进程内和进程外执行模式,以及MPS Ant构建脚本的执行。
【在生成计划中分叉】
在生成计划中有一个新的声明:与 另一代人交叉计划在给定点分支转换序列。引用的计划接收一个模型,它处于fork步骤中的状态,并作为常规转换继续进行。在该示例中,首先,我们使用crossmodel.entity生成器转换输入模型并记录状态,然后继续使用crossmodel.property#prop2class生成器以最终获得输出模型#1。然后crossmodel.property#prop2xml生成器转换记录的模型以获得输出模型#2。请注意,'then'这里不是合同 - 没有承诺分支以任何特定顺序处理。
【在生成测试中分叉】
Generator测试使用fork语句支持生成计划,并将所有输出模型与提供的参考模型进行匹配。
【新的VCS方面】
我们引入了一个新的VCS语言方面。现在,您可以为此创建语言方面,而不是在概念声明上编写注释。方面生成为特定的运行时代码。VCS方面已替换MergeHints批注,并包含迁移。
【github插件】
github插件现已实现。您可以从VCS登录 - >从版本控制中检出 - > Git - >登录到github ...
【迁移通知】
我们已经实施了迁移通知,以便您就所发生的事情进行更好的沟通:现在,如果项目依赖于无论出于何种原因无法加载的语言,或者何时推迟迁移,您将收到通知。
更新日志
v2024.1版本
MPS 2024.1 为 Project(项目)工具窗口中的 Logical View(逻辑视图)窗格带来了新的异步实现,显著改进了对各种平台的 Kotlin 支持,并大幅缩短了测试运行时间。您还将发现生成方案中的条件复刻、TestInfo 中项目路径的弃用、新 UI 改进以及大量平台更新。
同厂商
JetBrains更多+Writerside文档创作工具 v2024.3432.31M
DataSpell官方版 v2024.3870.71M
RustRover 2024电脑版 v2024.3官方版825.21M
RubyMine2024电脑版 v2024.3官方版740.36M
jetbrains rider 2024(C语言编辑开发工具) v2024.3官方版1.43G
JetBrains goland 2024电脑版 v2024.3官方版781.48M
发表评论
1人参与,1条评论- 第1楼广东省深圳市电信网友发表于: 2020-04-18 08:21:36
- 感谢楼主,非常棒,找了几天了,今天终于搞定了。0盖楼(回复)
软件排行榜
热门推荐
- 猿编程电脑版 v4.27.0官方版211.48M / 简体中文
- RubyMine2024电脑版 v2024.3官方版740.36M / 多国语言[中文]
- jetbrains rider 2024(C语言编辑开发工具) v2024.3官方版1.43G / 多国语言[中文]
- php for windows版 v8.3.7官方正式版30.67M / 英文
- idea2023官方版 v2023.3.6661.39M / 简体中文
- pycharm2023专业版 v2023.3.5544.09M / 简体中文
- clion2023官方版 v2023.3.4750.29M / 多国语言[中文]
- Goland2023官方版 v2023.3.6476.44M / 英文
- java runtime environment官方版 v1.8.0823K / 简体中文
- myeclipse2023官方电脑版 v2023.1.21.47G / 英文