Qute模板引擎支持 - 用于Quarkus Tools for Visual Studio Code

417 阅读6分钟

Qute模板引擎支持--现在可用于Quarkus Tools for Visual Studio Code

Quarkus Tools for Visual Studio Code 1.10.0版本已经在VS Code MarketplaceOpen VSX上发布。

如果你还没有看过关于Quarkus Tools for Visual Studio Code - 1.10.0版本的博文,我们建议你看看我们在这个期待已久的版本中引入的奇妙功能。

在1.10.0版本中增加的主要新功能之一是引入了对Quarkus特有的Qute模板引擎的语言支持。这些新功能使Quarkus开发者能够直观地看到他们对Quarkus Java项目所做的修改,位于src/main/resources/templates 的所有文件和子目录都会被监视,以了解其变化和修改情况,并使其立即可见。

对于在Visual Studio Code中打开的、安装了Quarkus Tools for Visual Studio Code扩展的任何特定Quarkus项目,*.html*.txt*.yaml*.jsonsrc/main/resources/templates 下的所有文件都将得到Qute支持和语法高亮。此外,所有在上述扩展文件之前添加的*.qute.* (即*.qute.html )也将受益于Qute支持功能。要检查当前文件是否被支持,请确保 "选择语言模式"选项已经选择了下列之一。

Qute languages

图1:支持的Qute语言模式

关于Quarkus Tools for Visual Studio代码中包含的Qute功能的更多细节,请看文档,并从Qute参考指南中了解更多关于Qute模板引擎的能力。

关于目前支持的所有Qute功能的列表,请参考更新日志以了解更多信息。

现在让我们深入了解1.10.0版本中引入的伟大的Qute功能。

新的Qute功能

Quarkus Tools for Visual Studio Code 1.10.0中包含的值得注意的Qute功能包括:

  • 开始使用Quarkus Qute模板扩展

  • Java和Qute模板文件之间的整合

  • Qute模板中的方法参数支持

  • Qute模板的Java类型悬停支持

  • Qute模板中的链接编辑范围支持

  • Qute部分完成

  • 支持Qute验证

  • Qute值解析器的完成

  • 支持@TemplateExtension方法

  • 支持直接将Bean注入Qute模板中

开始使用Quarkus Qute模板化扩展

使用Quarkus: Generate a Quarkus project命令,可以选择为下载的Quarkus项目添加RESTEasy Qute 扩展,以便用Qute模板进行初始化。

RESTEasy Qute Extension

图2:在Quarkus: Generate a Quarkus project命令的扩展阶段的Qute扩展选项

Java和Qute模板文件之间的整合

生成和访问Qute模板的一个快速而简单的方法是通过CodeLens支持。qute.codeLens.enabled 设置控制Qute CodeLens是否可见。

CodeLens Setting

图3:Qute CodeLens设置

现在任何Template 属性都会显示生成相应的Qute模板的选项,或者导航到现有的模板文件。

CodeLens Template Inject

图4:使用CodeLens生成和导航到Qute模板文件Template

此外,任何带有标记@CheckedTemplate 注释的Java文件,其TemplateInstance 字段也会显示生成相应的Qute模板的选项,或者导航到现有的模板文件。

CodeLens Checked Template

图5:使用CodeLens生成和导航到Qute模板文件@CheckedTemplate

模板文件将总是在项目现有的src/main/resources/templates 目录下创建,否则将创建必要的目录来存储模板。

所有与相应的Java资源配对的Qute文件都支持一些语言客户端功能,如转到定义、悬停、自动完成等。每一项我们都会在文章中进一步探讨。

Java to Template Navigation

图6:Java到模板的交互概述

这些功能对于有效地开始使用Qute模板和浏览多个模板文件来说是很方便的!

Qute模板中的方法参数支持

Qute语言服务器支持内置和用户定义的Java类,包括其方法的参数完成和验证。利用这一点,可以轻松地避免与Java有关的错误。

Method Parameter Support

图7:内置Java方法和Quarkus Java文件的方法参数支持

Qute模板的Java类型悬停支持

除了对Java完成和验证的支持,该扩展还支持对内置和用户定义的Java类的类型悬停。

Java Type Hover

图8:内置Java类和用户定义类的Java类型悬停支持

Qute模板中的链接编辑范围支持

与大多数语言客户端类似,Qute模板现在也支持链接编辑,允许同时重命名多个参数表达式。要启用这个功能,必须在你的settings.json 中把设置editor.linkedEditing 设为true。

Linked Editing

图9:支持Qute模板的链接编辑

Qute分段完成

Qute模板在其模板语言中使用章节,为编译和显示结果文件时需要的任何逻辑提供动力。为了支持这一点,扩展的Qute支持将所有可用的Qute部分填充到一个完成列表中,以及它们采取的任何参数和其使用的小代码片段。

Section Completion

图10:使用章节开始完成Qute的章节

对Qute验证的支持

Quarkus Tools for Visual Studio Code为Qute模板提供了Java和Qute验证功能,包括诊断和快速修复建议。

Parameter Quick Fix

图11:参数声明Qute快速修复建议

开发者可以在他们的设置中禁用这种验证。qute.validation.enabled ,控制当前工作区的全局验证,而qute.validation.excluded ,可以用Qute模板填充,应该忽略验证。

Enable/Disable Qute Validation Settings

图12:全局和局部验证启用的Qute验证设置

如果任何可用的验证干扰了你的开发,可以使用打开Qute模板时出现在编辑栏右上方的按钮,一键禁用当前文件的Qute验证,或者使用出现在每个Qute相关诊断上的 "快速修复",禁用整个工作区的验证。

Enable/Disable Qute Validation

图13:启用/禁用每个文件和全局的Qute验证

Qute值解析器的完成

与相应的Java方法配对,内置的Java类也有内置的Qute值解析器,由Qute模板引擎提供,被评估并输出,或解析为一个值。Quarkus Tools for Visual Studio Code支持这些内置值解析器的完成、悬停和片段生成。

Value Resolver Completion

图14:对内置的Qute值解析器的支持和Java文档,如take、orEmpty和or

点击这里查看这些Qute值解析器的列表。

对@TemplateExtension方法的支持

模板扩展方法是用来扩展数据对象的可访问属性集的。Quarkus Tools for Visual Studio Code中的Qute支持标记的@TemplateExtension Java方法,这些方法扩展了一个给定的数据模型。

@TemplateExtension Support

图15:对@TemplateExtension 数据模型方法的支持

在这里阅读更多关于@TemplateExtension

支持直接将Bean注入Qute模板中

一个用@Named 注释的CDI Bean可以通过cdi和/或inject命名空间在任何模板中被引用。Quarkus Tools for Visual Studio Code为Bean提供完成和定义导航支持。

Injecting Beans Directly into Qute Templates

图16:使用@Named 注释允许Qute模板的Bean注入支持。

在这里了解更多关于注入Bean的信息。

下一步是什么?

希望这篇文章向你展示了Quarkus Tools for Visual Studio Code提供的Qute模板支持的一些显著特点,并鼓励你在下次进行Quarkus项目工作时尝试一下这些功能。

有建议或反馈吗?请随时在GitHub上开一个问题

随着许多实验性功能被添加到Qute模板引擎中,我们的目标是继续更新Qute语言支持,以鼓励各地现有的和有抱负的Quarkus开发人员尝试Qute!

链接

一些重要的链接供参考: