Quarkus Tools for Visual Studio Code - 1.10.0版本

359 阅读5分钟

博客Quarkus Tools for Visual Studio Code - 1.10.0发布

2022年3月28日#ide

Quarkus Tools for Visual Studio Code - 1.10.0发布

作者:Roland Grunberg

Quarkus Tools for Visual Studio Code 1.10.0已经在VS Code Marketplace&Open VSX上发布。所有变化的列表,请参考更新日志

距离我们上次发布Quarkus Tools for VS Code已经过去8个月了。8个月!这是一个非常长的时间。我们在1.10.0中引入了一些新的功能,我们很高兴能提到这些功能,希望这段时间的等待是值得的。

由于引入了对Qute模板引擎的支持,我们花了大量的时间来稳定这个版本。我们为它编写了一个容错解析器,提供了各种诊断、代码动作、补全,并尽力使Java源文件和Qute模板文件之间的整合非常顺利。事实上,那里有很多新的功能,我们计划在Quarkus扩展中完全做一个关于Qute支持的单独帖子。然而,Quarkus工具和底层的MicroProfile工具也有很多改进。

下面是在1.10.0中你可以期待的Quarkus方面的东西。

一路下来的配置

当我们通过属性前缀(例如:%dev.name )支持配置配置文件时,我们现在也支持配置文件意识的文件。我们在MicroProfile 2.0版本中增加了对这一点和其他许多功能的支持。

Support for configuration profiles

抛弃你的JRE

TL;DR : 在Windows、Linux或MacOS上,(x86_64或ARM64架构),你将不需要提供JRE来运行VS Code中的Quarkus工具。

Quarkus工具和它的依赖性曾经需要JRE(Java Runtime Environment version 11 or newer)才能运行。这是因为语言服务是基于Java的。然而,随着最近的更新,我们的底层Java工具支持在win32-x64,linux-x64,linux-arm64,darwin-x64, 和darwin-arm64 上提供自己的Java运行时间。这意味着,如果你在这样的系统上,确保扩展可以找到一些至少是Java 11的版本就不再需要了。

对所有注释的支持

好吧,也许有点夸张,但我们在这个新版本中引入的东西之一是一个小框架,使其更容易为各种注解快速编写良好的诊断。作为一个非常简单的例子,这里是支持验证@Scheduled 注释的delay 成员值所需的代码。

<extension point="org.eclipse.lsp4mp.jdt.core.javaASTValidators">
      <!-- Java validation for the Quarkus @Scheduled annotation delay member-->
      <annotationValidator annotation="io.quarkus.scheduler.Scheduled" source="quarkus">
         <attribute name="delay" range="0" /> <!-- x >=0 -->
      </annotationValidator>
   </extension>

这处理了很多非常简单的验证,同时允许我们花更多的时间来处理复杂的东西。

除了使我们的生活更轻松,它还为更多的贡献者开放了扩展。

我们已经为@Bulkhead@Timeout@Asynchronous@Scheduled 注释增加了基本的验证支持。

Asynchronous annotation validation support

@Scheduled 的情况下,我们将cron表达式链接到应用程序的属性定义,就像我们对name 成员的@ConfigProperty 所做的那样。这样的情况使我们能够轻松地将Java源文件与它们的Quarkus配置文件联系起来。

这是小事一桩

对于我们现有的功能,我们希望涵盖更多的现有用例,以及可以轻松标记问题并提出解决方案的情况。

例如,当启动Quarkus应用程序时,代码镜头URL端点(通过microprofile.tools.codeLens.urlCodeLensEnabled 设置启用)现在支持@ApplicationPath ,并将其值考虑在内。

ApplicationPath annotation on a type declaration

在这个例子中,@ApplicationPath 被设置为/api ,方法声明上的代码(下面)在生成URL时考虑到了这一点。

Code lens on method declaration respects the value of ApplicationPath

在其他注释中,比如@Retry ,我们花时间来警告用户,虽然技术上允许,但可能是不受欢迎的用法。

Retry annotation validation support

在这个例子中,重试方法的延迟和尝试重试的最长时间是一样的。这就意味着这些设置没有被按预期使用。当像jitter &jitterDelayUnit 这样的成员值被用来添加更多的复杂性时,这些警告可以作为配置不当的值的一个很好的指示。

对于@ConfigProperty 注释,我们现在根据字段声明验证defaultValue 成员,以增加一些安全性。

Validation for ConfigProperty defaultValue

如果你不使用defaultValue ,并且你的属性没有在应用程序属性中定义,我们也有一个代码动作来自动生成它。

Code action defaultValue

完成度也是 !

在一天结束的时候,每个人都希望花更少的时间去寻找一些晦涩的设置,而花更多的时间去开发逻辑。

如果你在你的Java源中的一个方法上使用了@CacheResult 注解,我们会自动推荐可用的设置来配置你的配置文件。它对变化也有相当的反应,所以你总是知道是否出了问题。

Completion support for CacheResult

@ConfigMapping 现在还支持一些基本的验证,以及应用程序属性的补全。

Completion support for ConfigMapping

我们希望你能试一试我们的VS Code扩展,并期待着得到反馈。非常感谢redhat-developer/vscode-quarkusredhat-developer/vscode-microprofileredhat-developer/quarkus-lseclipse/lsp4mpredhat-developer/vscode-javaeclipse/eclipse.jdt.ls上的许多贡献者,他们帮助项目取得了今天的成果。请继续关注我们关于Qute新增功能的文章。

链接

Quarkus是开放的。这个项目的所有依赖性都在Apache软件许可2.0或兼容许可下提供。

这个网站是用Jekyll建立的,托管在GitHub Pages上,是完全开源的。如果你想让它变得更好,请分叉该网站并向我们展示你的成果。

导航

关注我们

获得帮助

Quarkus是由社区项目组成的

CC by 3.0|隐私政策 赞助者