Quarkus Tools for IntelliJ 1.11.0 released!
We are very pleased to announce the 1.11.0 release of Quarkus Tools for IntelliJ. This release adds support for Qute templates but also align with LSP4MP 0.4.0 and quarkus-ls 0.11.1.
Qute templates
When a Quarkus project has Qute in the classpath, editing a Qute template (HTML / JSON / YAML / Text) will add new features into the editor.
Let’s do a little tour.
Integration between Qute templates and Java
Now any Template
attribute will show the option to generate a corresponding Qute template, or navigate to the existing template file.
All Qute files paired with a corresponding Java resource support a number of language client features, such as go to definition, hover, autocompletion, etc.. Each of these we will explore further in the article
Method Parameter Support in Qute Templates
The Qute language server has support for built-in and user-defined Java classes, including parameter completion and validation for their methods. Take advantage of this to easily avoid Java related mistakes.
Java Type Hover Support for Qute Templates
Alongside support for Java completion and validation, the extension also supports type hovering for built-in and user-defined Java classes.
Qute Section Completion
Qute templates use sections in its templating language to power any logic required when compiling and displaying the resulting document. To support this, the extension’s Qute support populates a completion list with all available Qute sections, along with any parameters they take and a small code snippet of their usage.
Support for Qute Validation
Java and Qute validation is included for Qute templates with Quarkus Tools for IntelliJ, including diagnostics.
Completion for Qute Value Resolvers
Paired with corresponding Java methods, built-in Java classes also have built-in Qute value resolvers made available by the Qute templating engine that are evaluated and output, or resolve to, a value. Quarkus Tools for IntelliJ supports completion, hover and snippet generation for these built-in value resolvers.
Support for @TemplateExtension Methods
Template extension methods are used to extend the set of accessible properties of data objects. Qute support in Quarkus Tools for IntelliJ has support for marked @TemplateExtension
Java methods, which extend a given data model.
Support for Directly Injecting Beans into Qute Templates
Support for Directly Injecting Beans into Qute Templates
A CDI bean annotated with @Named
can be referenced in any template through cdi and/or inject namespaces. Quarkus Tools for IntelliJ provides completion and definition navigation support for Beans.
Improved features
In addition to the new Qute support, we’ve enhanced existing features around MicroProfile 2.0 and Quarkus 2.x new features.
Configs all the way down
While we had support for configuration profiles through property prefixing (eg. %dev.name
), we now also support profile-aware files. We’ve added support for this, and many other features part of the MicroProfile 2.0 release.
MicroProfile Fault Tolerance
We’ve added basic validation support for @Bulkhead
, @Timeout
, @Asynchronous
, and @Scheduled
annotations.
Application Path support
When launching a Quarkus application, the code lens URL endpoints now supports @ApplicationPath
and will take its value into account.
In this example, the @ApplicationPath
is set to /api
, and the code on the method declaration (below) takes that into account when generating the URL.
Completions
At the end of the day, everyone wants to spend less time trying to hunt down some obscure setting, and more time developing the logic.
If you’re using the @CacheResult
annotation on a method in your Java sources, we automatically suggest the settings available to configure it from your configuration file. It’s also fairly reactive to changes so you’ll always know if something has gone wrong.
@ConfigMapping
is now also supported with some basic validation as well as completion for the application properties.
Moving Forward
If you have any questions, suggestions or feedback, by all means please open an issue.
Thank you for reading and stay tuned for the next release!
Links
-
GitHub repository: https://github.com/redhat-developer/intellij-quarkus
-
Open an issue: https://github.com/redhat-developer/intellij-quarkus/issues