IntelliJ Quarkus工具最新改进回顾
IntelliJ Quarkus Tools 是一款免费开源的扩展,通过提供内容辅助、验证、运行配置以及许多其他功能,直接从您喜欢的 IDE 中帮助用户开发 Quarkus 应用程序。
此扩展基于 LSP4MP(即 MicroProfile)及其 Quarkus 附加组件,以及 Qute 语言服务器。这些都在我们流行的 Visual Studio Code 版 Quarkus Tools 扩展 中使用。
在过去的五个月里,我们 **竭尽全力** 改进 IntelliJ Quarkus Tools 的各个方面,平均每两周发布一个版本。
我们一直专注于性能改进、支持 JakartaEE 命名空间 Quarkus 3.x、Qute 模板支持,并普遍努力让 IntelliJ Quarkus Tools 不会打扰您的工作。那么,让我们更详细地看看我们完成了哪些工作。
提高稳定性和性能
我们已经解决了我们自定义语言服务器客户端(LSP4IJ)中的各种关键问题,这些问题此前会导致语言服务器冻结 IntelliJ IDEA。改进包括:
-
在启动语言服务器之前等待索引完成。
-
语言服务器请求不再阻塞编辑器。
-
对某些请求进行去抖动以最大程度地减少繁重处理。
-
新的请求取消支持,以避免不必要的处理。
-
更快的验证和快速修复的延迟加载。
-
减少了 quarkus 属性补全的负载大小。
-
在 Quarkus 项目向导中预先获取 Quarkus 数据,以避免在单击
Next
按钮后等待。
这些修复有助于提供更流畅的编码体验、更好的整体性能,并且,我敢说,带来“开发者的快乐”。
语言服务器客户端改进
Qute 改进
我们投入了大量精力来提供最佳的 Qute 支持。
补全重塑
编辑 Qute 模板现在比以往任何时候都更好,支持新的括号自动闭合、改进的 HTML 集成、新的补全图标。特别是,增强的代码段补全,其行为类似于 IntelliJ 的实时模板,可用于不同的 Qute 部分。
Section {#}
补全现在会显示由 Renarde 或 Web Bundler 等依赖项贡献的用户标签:
改进了 {#insert} 和 {#include} 支持
{#insert}
和 {#include}
部分可用于指定要在当前模板中包含的扩展模板。此版本通过验证、文档链接、补全和代码提示扩展了对这些部分的支持。
模板/代码之间的导航
您可以通过 Ctrl+click
(Mac 上为 Cmd+click
)在模板之间(通过 {#include}
或 {#insert}
引用为用户标签)进行导航,或者从 Java 文件中的模板定义导航到实际文件:
新的模板片段支持
Fragment 部分定义了模板的一部分,这部分可以被视为并呈现为单独的模板。片段的支持包括代码段补全、悬停和验证。在 Java 类中,您可以通过代码提示和文档链接导航到引用的 #fragment
:
Renarde 支持
IntelliJ Quarkus Tools 现在支持 Renarde Web 框架。
-
Renarde
Controller
子类的公共方法即使缺少 HTTP 方法注解,也会自动显示可点击的代码提示,因为它们被视为有效的 JAX-RS 端点: -
在 Renarde
uri
和uriabs
命名空间上补全可列出可用的 Renarde 控制器: -
可以使用快速修复向
{#form}
部分添加缺失的输入字段:
验证
Java 文件
验证已通过以下功能得到增强:
-
Quarkus 3.1 及更高版本允许 GraphQL
void
操作,并且现在会检查 GraphQL 指令的正确放置: -
检查 Quarkus
BuildItem
子类是否是final
或abstract
:
严重性映射
我们尝试将语言服务器报告的一些 Microprofile 和 Qute 诊断绑定到 IntelliJ 的 Inspections 设置,因为这比使用专门的首选项页面更自然。但是,由于这有点 hack,因此 Inspections 设置大多被忽略,只有少数严重性设置被尊重。限制在每个检查描述中都有说明。
在大多数情况下
-
作用域:值被忽略
-
严重性:仅尊重 Error 和 (Weak) Warning。其他值表示不报告错误
-
编辑器中的高亮显示:值被忽略
快速修复更新设置
我们引入了快速修复,允许您禁用某些错误的验证。例如,当您发现误报错误过多地干扰您的开发工作流程时,此功能非常有用。
现在可以通过快速修复从验证中排除 Java 文件中未赋值的 @ConfigProperty
属性(即未在 application.properties
中声明)或 application.properties
中声明的未知属性(看似未使用),例如:
然后,您可以在 Preferences | Editor | Inspections | MicroProfile | Java files | Unassigned properties
或 Preferences | Editor | Inspections | MicroProfile | Properties files | Unassigned properties
中更新这些排除项。
同样,您可以从验证中排除特定的 Qute 模板或其整个模块。
然后,您可以转到 Preferences | Editor | Inspections | Qute | Templates | Validation
。
杂项改进
-
Quarkus 项目向导除了速度超快之外,现在还通过双击扩展来实现轻松(取消)选择。
-
现在支持 WSL2 中的项目。
-
运行配置已重命名为
Quarkus Dev Mode
,以尽量避免与 IntelliJ Ultimate 内置的 Quarkus 支持混淆。 -
Vert.x reactive 路由、JAX-RS 和 Renarde 端点现在显示为隐式使用,以及 Quarkus
@BuildStep
注解的类和@Observer
注解的方法。
展望未来
Quarkus 的“开发者快乐”的宗旨显然也适用于您在 IDE 中花费的时间,而这正是 Red Hat Developer 团队所追求的。回顾过去五个月的发布,我们对在 IntelliJ IDEA 中改进 Quarkus 开发体验所取得的进展感到非常兴奋。
我们不会止步于此,因此请继续关注未来几周更多性能改进和激动人心的新功能。我们实际上计划通过发布到 EAP 发布频道来让您尽快获得这些新功能。
最后,如果您还没有这样做,请在 JetBrains marketplace 上留下您的评价。您的反馈至关重要!
如果您发现错误或对一些很棒的新功能有想法,请随时前往我们的Github 仓库并打开一个问题。