Skip to main content
Redhat Developers  Logo
  • Products

    Featured

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat OpenShift AI
      Red Hat OpenShift AI
    • Red Hat Enterprise Linux AI
      Linux icon inside of a brain
    • Image mode for Red Hat Enterprise Linux
      RHEL image mode
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • Red Hat Developer Hub
      Developer Hub
    • View All Red Hat Products
    • Linux

      • Red Hat Enterprise Linux
      • Image mode for Red Hat Enterprise Linux
      • Red Hat Universal Base Images (UBI)
    • Java runtimes & frameworks

      • JBoss Enterprise Application Platform
      • Red Hat build of OpenJDK
    • Kubernetes

      • Red Hat OpenShift
      • Microsoft Azure Red Hat OpenShift
      • Red Hat OpenShift Virtualization
      • Red Hat OpenShift Lightspeed
    • Integration & App Connectivity

      • Red Hat Build of Apache Camel
      • Red Hat Service Interconnect
      • Red Hat Connectivity Link
    • AI/ML

      • Red Hat OpenShift AI
      • Red Hat Enterprise Linux AI
    • Automation

      • Red Hat Ansible Automation Platform
      • Red Hat Ansible Lightspeed
    • Developer tools

      • Red Hat Trusted Software Supply Chain
      • Podman Desktop
      • Red Hat OpenShift Dev Spaces
    • Developer Sandbox

      Developer Sandbox
      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Openshift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • View All Technologies
    • Programming Languages & Frameworks

      • Java
      • Python
      • JavaScript
    • System Design & Architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer Productivity

      • Developer productivity
      • Developer Tools
      • GitOps
    • Secure Development & Architectures

      • Security
      • Secure coding
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
      • View All Technologies
    • Start exploring in the Developer Sandbox for free

      sandbox graphic
      Try Red Hat's products and technologies without setup or configuration.
    • Try at no cost
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • Java
      Java icon
    • AI/ML
      AI/ML Icon
    • View All Learning Resources

    E-Books

    • GitOps Cookbook
    • Podman in Action
    • Kubernetes Operators
    • The Path to GitOps
    • View All E-books

    Cheat Sheets

    • Linux Commands
    • Bash Commands
    • Git
    • systemd Commands
    • View All Cheat Sheets

    Documentation

    • API Catalog
    • Product Documentation
    • Legacy Documentation
    • Red Hat Learning

      Learning image
      Boost your technical skills to expert-level with the help of interactive lessons offered by various Red Hat Learning programs.
    • Explore Red Hat Learning
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

Introducing 10 new features in Quarkus Tools for Visual Studio Code

February 7, 2020
David Kwon
Related topics:
Developer ToolsIDEs
Related products:
Red Hat OpenShift

Share:

    Quarkus Tools for Visual Studio Code version 1.3.0 has been released on the VS Code Marketplace to start off the new year. As Quarkus continues to introduce improvements and new features like application.yaml and server-side templating support, Quarkus Tools for Visual Studio Code continues to evolve to accompany these new features and improvements.

    For a list of all changes, please refer to the changelog.

    You can also watch a demo video of all the features presented in this article.

    New features

    The new features added to Quarkus Tools for Visual Studio Code 1.3.0 include:

    • A new URL CodeLens for RESTEasy JAX-RS GET methods.
    • Hover support for @ConfigProperty name in Java sources.
    • MicroProfile properties support for the REST Client.
    • Kubernetes, Red Hat OpenShift, Docker, and S2I property support.
    • A Quick Fix to add unknown property namespaces to ignore.
    • Go to definition support for enum values from application.properties.
    • YAML support (experimental).
    • A new extension descriptions toggle button.
    • Different ways to open a new Quarkus project.
    • Syntax highlighting for Qute languages.

    URL CodeLens for RESTEasy JAX-RS GET methods

    When editing a resource class while the current Quarkus application is running in development mode (./mvnw compile quarkus:dev or ./gradlew quarkusDev), there are now CodeLenses that provide the URL for the GET endpoints. This feature takes into account the pathname and the HTTP server port in your application.properties file in order to create the URL.

    Clicking on the CodeLens URL opens this URL in your default browser, as shown in Figure 1.

    Clicking on the CodeLens URL

    Once the Quarkus application stops running, the CodeLens URL will no longer appear, as shown in Figure 2.

    Animation showing edits and then the missing CodeLens URL.

    Please keep in mind that CodeLenses in VS Code are only updated when certain events happen. If the URL CodeLens does not appear, there are two easy ways to trigger a CodeLens update: switch tabs or start typing in any file. Also, make sure that the quarkus.tools.codeLens.urlCodeLensEnabled VS Code setting is set to true.

    Hover support for @ConfigProperty name in Java sources

    Hovering over the name value in a @ConfigProperty annotation now displays the hovered property's value, as shown in Figure 3. Currently, the value either comes from application.properties file, or the default value field.

    Animation showing that you can hover over these name values to see the property's value.

    MicroProfile properties support for the REST Client

    There is now completion, hover, documentation, and validation for the MicroProfile properties from the REST Client. After registering a REST Client using @RegisterRestClient like so:

    package com.mycompany.remoteServices;
    
    @RegisterRestClient
    public interface MyServiceClient {
        @GET
        @Path("/greet")
        String greet();
    }

    Language features will become available for the related MicroProfile config properties, as shown in Figure 4.

    Animation showing the new properties available in the extension.

    More information about using the MicroProfile REST Client is available in the Quarkus guides here.

    Kubernetes, Openshift, Docker, and S2I property support

    Likewise, there is now completion, hover, documentation, and validation for the kubernetes.*, openshift.*, docker.*, and s2i.* properties coming from the Kubernetes Quarkus extension, as shown in Figure 5.

    Animation showing the new properties available in the extension.

    In-depth documentation about generating Kubernetes resources and the config properties involved can be found in the Quarkus guides here.

    Quick Fix to add unknown property namespaces to ignore

    There is now a new Quick Fix that helps you exclude large groups of unknown properties from unknown property validation, as long as they share the same parent namespace. For example, if your application.properties file contains four properties with an unknown property error, like so:

    # All four properties cause an 'Unknown property' error
    unknown.test1=a
    unknown.test2=b
    unknown.test3=c
    unknown.test4=d

    Ignoring all four properties from unknown property validation is easily done with the Quick Fix, which adds unknown.* to the quarkus.tools.validation.unknown.excluded workspace configuration array, as shown in Figure 6.

    Animation showing how you can ignore certain properties.

    Go to definition support for enum values from application.properties

    Up until now, Go to definition was only supported for config property keys and not their values. This release brings the Go to definition feature for enum values, as shown in Figure 7.

    Animation showing how to use the definition features for enum values.

    YAML support (experimental)

    The release of Quarkus 1.1.0.Final, brought YAML configuration support, meaning that you can now configure your Quarkus application with either an application.yaml file or an application.properties file (but try to stick with one or the other).

    As a result, there is now completion support for application.yaml files, as shown in Figure 8. Similar to application.properties, the completion options in application.yaml file will be in sync with the Quarkus extensions that are available to the current project at the time (in pom.xml or build.gradle), therefore giving you only the relevant completion options.

    This feature depends on the YAML Language Support by Red Hat extension. If it is not currently installed, a new prompt will propose to install it.

    Animation showing the completion support in use.

    Language feature support for application.yaml files is in its experimental stages. Compared to application.properties support, there are missing features:

    • Go to definition support.
    • Code action support.
    • Automatic completion for default values.
    • Limited config property and value validation support.

    A new extension descriptions toggle button

    As the number of Quarkus extensions continues to rise, the new extension descriptions in the extension selection prompt help you recognize and discover new extensions, as shown in Figure 9. The extension selection prompt appears when selecting Quarkus extensions from the Quarkus: Generate a Quarkus project and Quarkus: Add extensions to current project wizards.

    Animation showing extension discovery before and after this release.

    There is also a new button on the top right of the selection box that toggles whether or not the extension descriptions should appear, as shown in Figure 10.

    Animation showing how to use the toggle for extension descriptions.

    Different ways to open a new Quarkus project

    After creating a new project with the Quarkus: Generate a Quarkus project wizard, there is now a new prompt that asks how the new project should be opened. The following before and after diagrams describe the changes:

    'Before' diagram.
    'After' diagram.

    To help visualize one of the possible scenarios, Figure 13 shows the options presented when generating a project while a workspace is open.

    Generating a project while a workspace is open

    Syntax highlighting for Qute languages

    Qute is a new server-side templating engine created with Quarkus in mind. This release brings new Qute language modes in VS Code: Qute HTML, Qute JSON, Qute YAML, and Qute Text. These new language modes are automatically applied to your current file if your file’s extension is .qute.html, .qute.json, .qute.yaml, or .qute.txt respectively.

    Thanks to the new language modes, Qute-specific syntax highlighting and commenting are now provided, as shown in Figure 14.

    Animation showing Qute-specific syntax highlighting and commenting.

    For more information about the Qute templating engine, please refer to the Quarkus templating engine guide.

    Moving forward

    This wraps up the new major features in this release. If you have any suggestions or feedback, please feel free to open a GitHub issue.

    For future releases, alongside general enhancements, we aim to bring more robust language feature support for application.yaml and Qute languages. Stay tuned for the next release!

    Links

    Here are the important links:

    • VS Code Marketplace
    • GitHub repository
    • Open a GitHub issue
    • Changelog
    • Version 1.2.0 release article
    • Version 1.0.0 release article
    Last updated: August 17, 2023

    Recent Posts

    • Exploring Llama Stack with Python: Tool calling and agents

    • Enhance data security in OpenShift Data Foundation

    • AI meets containers: My first step into Podman AI Lab

    • Live migrating VMs with OpenShift Virtualization

    • Storage considerations for OpenShift Virtualization

    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Products

    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform

    Build

    • Developer Sandbox
    • Developer Tools
    • Interactive Tutorials
    • API Catalog

    Quicklinks

    • Learning Resources
    • E-books
    • Cheat Sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site Status Dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2025 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue