• Stars
    star
    114
  • Rank 308,031 (Top 7 %)
  • Language
    Java
  • License
    Eclipse Public Li...
  • Created about 5 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

IntelliJ Quarkus Tools

Quarkus Tools for IntelliJ

Java CI with Gradle Validate against IJ versions JetBrains plugins JetBrains plugins codecov

Description

A plugin aimed at Quarkus based development, providing easy bootstrapping and code assist from Quarkus related assets and Qute.

application.properties support

Code completion (Ctrl + ENTER)

Property documentation

Select a property and press Ctrl+Q

Goto property definition

Select a property and press Ctrl+B

Syntax validation

Wrong property key names or values are reported

Property hover in Java files

Property managed in your code through @ConfigProperty:

  • code completion in application.properties is adjusted accordingly if you define new properties
  • hover over the property field will display the current value

CodeLens / Inlay

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 path name and the HTTP server port from your application.properties file in order to create the URL.

Clicking on the CodeLens URL will open the URL in your default browser.

InLayHint

InlayHint is now a supported feature. It allows to add inline information about parameters and variables. This is very useful for Qute templates to get type information. InlayHints may also be clickable.

DocumentHighlight

DocumentHightlight allows to hightlight parts of the document that are related to the current selection. This is useful for Qute templates to highlight matching part of a Qute section.

CodeActions / Quick Fixes

When an error is detected on one of your Quarkus project files, it is highlighted in the source editor (example when you define one property through @ConfigProperty but it is not defined.).

If this error can be fixed through an automatic action, it will be available from the More actions context menu or through the Alt+Enter key binding.

In this example, we will add a default value for a property defined though @ConfigProperty

In this another example, a Microprofile REST Client is defined and bound to a REST resource but the RestClient annotation is missing from the binding.

MicroProfile Health

Syntax validation is being performed for Java files using the MicroProfile Health assets:

MicroProfile Fault Tolerance

MicroProfile Health related properties are supported in application.properties completion and syntax validation as soon as you use MicroProfile related annotation in your Java source files

Methods referenced in @Fallback(fallbackMethod) are validated:

Activating code completion on the @Fallback(fallbackMethod) value will get the list of available methods being proposed:

MicroProfile Rest Client

MicroProfile Rest Client references are checked against valid injections

MicroProfile LRA

MicroProfile LRA related properties references are supported in application.properties completion and syntax validation as soon as you use MicroProfile LRA in your Quarkus application

MicroProfile OpenAPI

MicroProfile OpenAPI related properties references are supported in application.properties completion and syntax validation as soon as you use MicroProfile OpenAPI in your Quarkus application

MicroProfile Metrics

MicroProfile Metrics related properties references are supported in application.properties completion and syntax validation as soon as you use MicroProfile Metrics in your Quarkus application

Invalid use of the @Gauge annotation is reported as well:

MicroProfile OpenTracing

MicroProfile OpenTracing related properties references are supported in application.properties completion and syntax validation as soon as you use MicroProfile OpenTracing in your Quarkus application

application.yaml

Code completion (Ctrl+ENTER)

Property documentation

Select a property and press Ctrl+Q

Syntax validation

Wrong property key names or values are reported

Qute templates

The Qute templating engine is supported in Java file and templates.

Quarkus project wizards

Generate a Quarkus Maven project, based on https://code.quarkus.io/. Call File > New > Module > Quarkus. It is possible to filter the list of displayed Quarkus extension by name pattern and allow or disallow the inclusion of non platforms Quarkus extensions.

Quarkus application.properties Features

  • Completion support for Quarkus properties
  • Hover support for Quarkus properties
  • Validation support for Quarkus properties
  • Support for Quarkus profiles
  • Outline support (flat or tree view)

Quarkus run/debug command

It is possible to run or debug a Quarkus application from the IDE configurations. Select the Run -> Edit Configurations... menu and click the Add new... link:

Select the Quarkus configuration type:

The first module of the project is selected. For single Quarkus projects, it is ok. If you have a multi module Quarkus project, you can change the module to test. You can also specify a Quarkus profile to use (dev is the default) and environment variables (using the notation VARNAME=varvalue, separated by semicolon)

The click the OK button. The configuration will now appear on the top right side of the window:

If you click the Run icon, it will start the Quarkus application in dev mode. If you click the Debug button, it will start the Quarkus application in dev mode and connect a local Java debugger to the running application.

When the console is running, you can open a browser to either the Quarkus DevUI or to the Quarkus application. When the Quarkus application has been started, right click in the console and a sub menu Quarkus will be displayed. It has 2 sub menus Open DevUI and Open application. When one of these menus are selected, a new browser window is opened to the desired location.

Quarkus code snippets

This plugin provides several code snippets, available when editing Java files:

  • qrc - Create a new Quarkus resource class
  • qrm - Create a new Quarkus resource method
  • qtrc - Create a new Quarkus test resource class
  • qntrc - Create a new Quarkus native test resource class

When editing application.properties files, you have access to:

  • qds - Configure a Quarkus datasource
  • qj - Configure a Jaeger tracer

Requirements

  • Intellij IDEA 2022.2 or more recent (we try to support the last 4 major IDEA releases)

  • Java JDK (or JRE) 17 or more recent

Contributing

This is an open source project open to anyone. Contributions are extremely welcome!

Building

Project is managed by Gradle. So building is quite easy.

Building the plugin distribution file

Run the following command:

./gradlew buildPlugin

The plugin distribution file is located in build/distributions.

Testing

You can also easily test the plugin. Just run the following command:

./gradlew runIde

Unit test infrastructure

The IntelliJ SDK does not provide helpers to create Maven or Gradle based project. But the Maven and Gradle plugins have some test class helpers but they are not part of the IntelliJ SDK or the respective plugin distributions.

So we extracted these classes into the intellij-community folder. But as these classes are highly linked to the version of the IntelliJ SDK used to build, there is a script to copy them from the GitHub intellij-community repository.

This script is pull_intellij_tests

If the version of the IntelliJ SDK used to build is changed (see gradle.properties), you must update the branch in pull_intellij_tests and run the script again.

UI testing

You can perform UI testing by running the following command:

./gradlew integrationTest 

Testing nightly builds

You can easily install nightly builds from the nightly channel:

  • in IntelliJ, open Setting > Plugins > [Gear icon] > Manage Plugin Repositories...
  • Add https://plugins.jetbrains.com/plugins/nightly/13234 and press OK

Nightly Channel Repository

- install the latest `Quarkus Tools` version

Nightly builds are published once a day.

Testing the CI builds

You can also download and install CI builds of the latest commits or a specific pull request:

  • open the Build plugin zip workflow
  • click on the build you are interested in
  • scroll down and download the Quarkus Tools <version>.zip file
  • install Quarkus Tools <version>.zip into IntelliJ IDEA by following these instructions.

Data and Telemetry

The JetBrains IntelliJ Quarkus Tools plugin collects anonymous usage data and sends it to Red Hat servers to help improve our products and services. Read our privacy statement to learn more. This extension respects the Red Hat Telemetry setting which you can learn more about at https://github.com/redhat-developer/intellij-redhat-telemetry#telemetry-reporting

Articles

Feedback

File a bug in GitHub Issues.

License

Eclipse Public License 2.0. See LICENSE file.

More Repositories

1

vscode-java

Java Language Support for Visual Studio Code
TypeScript
2,060
star
2

yaml-language-server

Language Server for YAML Files
TypeScript
1,048
star
3

odo

odo - Developer-focused CLI for fast & iterative container-based application development on Podman and Kubernetes. Implementation of the open Devfile standard.
Go
777
star
4

vscode-yaml

YAML support for VS Code with built-in kubernetes syntax support
TypeScript
643
star
5

vscode-xml

Editing XML in Visual Studio Code made easy
TypeScript
254
star
6

rpm-packaging-guide

RPM Packaging Guide
251
star
7

vscode-extension-tester

ExTester: Your Essential UI Testing Companion for Visual Studio Code Extensions! Seamlessly execute UI tests with Selenium WebDriver, ensuring robustness and reliability in your extension development journey. Simplify UI testing for your VS Code extensions and elevate the quality of your user interface effortlessly.
TypeScript
227
star
8

developers.redhat.com

Sources for developer.redhat.com
CSS
191
star
9

gitops-operator

An operator that gets you an ArgoCD for cluster configuration out-of-the-box on OpenShift along with the UI for visualizing environments.
Go
148
star
10

kam

GitOps Application Manager: An opinionated CLI that generates the Kubernetes resources for managing your Tekton-based CI manifests, ArgoCD-based CD manifests and Application manifests in Git.
Go
142
star
11

reactive-microservices-in-java

Source code from the Reactive Microservices in Java book
Shell
139
star
12

kestrel-linux-transport

Linux Transport for Kestrel
C#
118
star
13

s2i-dotnetcore

.NET Core OpenShift images
Shell
111
star
14

service-binding-operator

[Deprecated] The Service Binding Operator: Connecting Applications with Services, in Kubernetes
Go
109
star
15

vscode-openshift-tools

OpenShift extension for Visual Studio Code
TypeScript
93
star
16

redhat-sso-quickstarts

Quickstarts for the Red Hat Single Sign-On (SSO) Server
Java
93
star
17

vscode-didact

Framework and tools for providing interactive tutorials with active links that call VS Code commands
TypeScript
79
star
18

devspaces

Red Hat OpenShift Dev Spaces (formerly Red Hat CodeReady Workspaces) forks of the registries, plus product-related tools/scripts
Shell
78
star
19

vscode-quarkus

Quarkus Tools for Visual Studio Code, by Red Hat
TypeScript
72
star
20

s2i-dotnetcore-ex

Example application for the OpenShift s2i-dotnetcore builder image
HTML
71
star
21

vscode-tekton

Tekton support for Visual Studio Code
TypeScript
69
star
22

opencompose

OpenCompose - A higher level abstraction for Kubernetes Resource
Go
64
star
23

lsp4ij

LSP Client for IntelliJ
Java
63
star
24

introduction-to-eclipse-vertx

An introduction to Eclipse Vert.x - a toolkit to build reactive and distributed systems
Java
62
star
25

vscode-server-connector

📦 Connects Visual Studio Code to your server adapters and run, deploy apps !!
TypeScript
57
star
26

redhat-helm-charts

This repository contains the Helm charts that power charts in the OpenShift Developer Catalog
Smarty
48
star
27

quarkus-ls

Language server for Quarkus tooling
Java
43
star
28

app-services-cli

Command Line Interface for RHOAS
Go
41
star
29

web-terminal-operator

OpenShift Console Web Terminal
Go
40
star
30

rh-che

Eclipse Che hosted by Red Hat
Java
40
star
31

vscode-rsp-ui

A unified UI for all RSP servers and RSP server-providers to integrate with
TypeScript
38
star
32

cheat-sheets

Repository containing cheat sheets in asciidoc form
37
star
33

red-hat-developer-hub-software-templates

Collection of Software Templates for Red Hat Developer Hub
HTML
36
star
34

microservices-book

Source code for book Microservices for Java Developers - 2nd edition
Java
35
star
35

gitops-repo-example

34
star
36

rsp-server

A server management protocol based on LSP4J
Java
30
star
37

rsp-server-community

A repository for additions to rsp-server and the associated vscode extension to add support for other runtimes
Java
30
star
38

app-labels

Kuberbetes/OpenShift recommended labeling
27
star
39

argocd-terraform-controller

Argo CD Terraform Controller
Go
26
star
40

devspaces-images

Identical copies of the code used in Brew/OSBS to build OpenShift Dev Spaces, but made public to enable pull requests and easier contribution; also copies of CasC Jenkins job configs
TypeScript
26
star
41

devfile

devfile v1
24
star
42

devconsole-operator

Enable a developer-focused view in OpenShift 4 web console
Go
24
star
43

intellij-dependency-analytics

IntelliJ Dependency Analytics
Java
24
star
44

app-services-guides

End User Guides for popular programming languages and tools
JavaScript
24
star
45

vscode-redhat-telemetry

TypeScript
22
star
46

openshift-actions

Please see the new actions under the redhat-actions organization.
TypeScript
22
star
47

openshift-dd-ext

OpenShift Extension for Docker desktop
TypeScript
20
star
48

intellij-tekton

IntelliJ Tekton plugin
Java
20
star
49

intellij-kubernetes

IntelliJ Kubernetes plugin
Kotlin
20
star
50

oc-helm

oc CLI plugin to interact with Helm features provided by the OpenShift Console
Go
19
star
51

vscode-microprofile

Microprofile tools for Visual Studio Code
TypeScript
18
star
52

redhat-datagrid-tutorials

Red Hat Datagrid simple tutorials
Java
18
star
53

openshift-web-console-customizations

A collection of customized templates for the OpenShift Web Console
HTML
18
star
54

observability-operator

Operator installing the Telemetry stack in a Kubernetes cluster and installing the metrics and alerts
Go
17
star
55

intellij-openshift-connector

IntelliJ OpenShift Toolkit
Java
16
star
56

devspaces-chectl

Red Hat OpenShift Dev Spaces build of chectl, based on https://github.com/che-incubator/chectl/
TypeScript
16
star
57

openshift-vsts

OpenShift Extension for Azure DevOps.
TypeScript
14
star
58

henge

This project has merged into Kompose.
Go
14
star
59

parodos

Focused on helping enterprise developers get their code to production
Java
14
star
60

gitops-backend

Go
14
star
61

devspaces-demo

Files and script to run a Red Hat OpenShift Dev Spaces demo
Shell
13
star
62

app-services-operator

OpenShift Operator for binding Red Hat OpenShift Application Services
Java
13
star
63

vscode-knative

Knative & Serverless Function plugin for VSCode
TypeScript
13
star
64

red-hat-developers-documentation-rhdh

Red Hat Developer Hub documentation - upstream sources for https://gitlab.cee.redhat.com/red-hat-developers-documentation/rhdh
CSS
12
star
65

alizer

⛔️ DEPRECATED - Application analyzer toolkit, use https://github.com/devfile/alizer instead
Go
12
star
66

opencompose-old

OpenCompose Specification
12
star
67

eclipseide-jdtls

A language server client for Eclipse using JDT-LS
Java
11
star
68

web-terminal-tooling

Kubernetes and OpenShift command line tools packaged in a container.
Shell
10
star
69

vscode-openshift-extension-pack

A collection of extensions for working with Openshift resources in VS Code
10
star
70

dotnet-regular-tests

.NET Core tests for .NET Bunny (RHEL & Fedora RPM tests)
Shell
9
star
71

vscode-wizard

TypeScript
9
star
72

intellij-redhat-telemetry

IntelliJ Red Hat telemetry plugin
Java
9
star
73

mapt

Multi Architecture Provisioning Tool
Go
9
star
74

intellij-common-ui-test-library

IntelliJ IDEA UI test library is a tool for creating automated UI tests for IntelliJ IDEA plugin projects.
Java
9
star
75

kubernetes-image-puller

Kubernetes image puller, with Hosted Che specific settings. For use in Che or CodeReady Workspaces, see https://github.com/che-incubator/kubernetes-image-puller
Go
8
star
76

osd-monitor-poc

HTML
8
star
77

podman-desktop-demo

quick demo scripts for podman desktop
Java
8
star
78

helm-dump

helm-dump is a Helm plugin to create a Helm chart from existing cluster resources
Go
8
star
79

s2i-aspnet-musicstore-ex

OpenShift .NET Core quickstart application
C#
8
star
80

app-services-sdk-java

RedHat Managed Services APIs for Java
Java
8
star
81

app-services-ui

Application Services Federated UI
TypeScript
8
star
82

lab-docker-jboss-eap

Docker JBoss EAP Tutorial
Ruby
7
star
83

rhdh-plugin-export-backstage-backstage

7
star
84

odo-init-image

ODO v3 no loner users this image!!! (Container for ODO v2 to setup SupervisorD inside S2I builder image.)
Go
7
star
85

che-functional-tests

Che functional tests
Java
6
star
86

openshift-jenkins-operator

An operator-managed OpenShift Jenkins for OpenShift 4.x
Go
6
star
87

vscode-redhat-account

Provides authentication support for Red Hat accounts in Visual Studio Code.
TypeScript
6
star
88

dotnet-bunny

.NET Bunny is a simple script that hops through the folders and runs .NET Core tests based on json configuration.
C#
5
star
89

rsp-client

TypeScript
5
star
90

rhd-frontend

npm-installable package for RHDP website assets
CSS
5
star
91

vscode-project-initializer

Red Hat Developer Launcher Visual Studio Code Extension
TypeScript
5
star
92

che-starter

REST API for managing Eclipse Che workspaces
Java
5
star
93

app-services-ui-components

TypeScript
5
star
94

web-terminal-exec

OpenShift Web Terminal container responsible for pod exec
Go
5
star
95

intellij-common

Java
4
star
96

app-services-ui-shared

Shared contexts for the UIs
TypeScript
4
star
97

stickers

Red Hat Hexagon Stickers
4
star
98

code.quarkus.redhat.com

POC for the product version of code.quarkus.io
SCSS
4
star
99

backstage-odo-devfile-plugin

Custom Field Extension and Custom Actions Plugin for generating a starter project with a Devfile using `odo`
TypeScript
4
star
100

devfile-sample

Devfile Example for OpenShift Console
JavaScript
4
star