This Visual Studio Code extension provides support for the development of MicroProfile®-based applications, via the LSP4MP project, which consists of:
MicroProfileproperties
Features
In microprofile-config.properties
files, you will benefit with:
Java
Features
In Java
files, you will benefit with:
win32-x64
, linux-x64
, linux-arm64
, darwin-x64
, darwin-arm64
. See JDK Tooling for details.The following settings are supported:
microprofile.tools.formatting.surroundEqualsWithSpaces
: Insert spaces around the equals sign when formatting the application.properties file. Default is false
.microprofile.tools.trace.server
: Trace the communication between VS Code and the MicroProfile Language Server in the Output view.microprofile.tools.symbols.showAsTree
: Show MicroProfile properties as tree (Outline). Default is true
.microprofile.tools.validation.enabled
: Enables MicroProfile validation. Default is true
.microprofile.tools.validation.duplicate.severity
: Validation severity for duplicate properties for MicroProfile *.properties
files. Default is warning
.microprofile.tools.validation.syntax.severity
: Validation severity for property syntax checking for MicroProfile *.properties
files. Default is error
.microprofile.tools.validation.required.severity
: Validation severity for required properties for MicroProfile *.properties
files. Default is none
.microprofile.tools.validation.expression.severity
: Validation severity for property expressions for MicroProfile *.properties
files. Default is error
.microprofile.tools.validation.unknown.severity
: Validation severity for unknown properties for MicroProfile *.properties
files. Default is warning
.microprofile.tools.validation.unknown.excluded
: Array of properties to ignore for unknown properties validation. Patterns can be used ('*' = any string, '?' = any character). Default is ["*/mp-rest/providers/*/priority", "mp.openapi.schema.*", "kafka-streams.*", "camel.*"]
.microprofile.tools.codeLens.urlCodeLensEnabled
: Enable/disable the URL code lenses for REST services. Default istrue
.microprofile.tools.validation.value.severity
: Validation severity for property values for MicroProfile *.properties
files. Default is error
.microprofile.tools.validation.unassigned.excluded
: Array of properties to ignore for unassigned properties validation in Java files. Patterns can be used ('*' = any string, '?' = any character).microprofile.tools.inlayHint.enabled
: Enable/disable the inlay hint support. Default is false
.Due to this issue, the MP Rest property: <mp-rest-client-class>/mp-rest/providers/<mp-rest-provider-class>/priority
reports an unknown error.
To avoid having this error, you must configure the following in settings.json
:
"microprofile.tools.validation.unknown.excluded": [ "*/mp-rest/providers/*/priority" ]
This settings is set by default.
Extending Tools for MicroProfileBy default, Tools for MicroProfile provides:
microprofile-config.properties
file (completion, validation, etc.) for the properties of MicroProfile specs (config, health, fault tolerance, etc.).The support for properties and java files can be extended with:
microprofile-config.properties
(Ex. the application.properties
file for Quarkus)To contribute these features, you must create a vscode-extension that declares the microprofile
contributions in its package.json. These contributions will be picked up automatically by vscode-microprofile when it starts up the language server.
"contributes": { "microprofile": { "jarExtensions": [...], "documentSelector": [...], } }Contributing to properties and Java support
LSP4MP can be extended to support custom completion, hover, validation, etc by using the Java Service Provider Interface (SPI). vscode-microprofile provides the ability to use your custom lsp4mp extension by contributing external JARs to the classpath of lsp4mp.
To contribute an external JAR you must create a vscode extension which embeds your lsp4mp extension JAR and declares the path to your JAR in the extensions package.json
"contributes": { "microprofile": { "jarExtensions": [ "./jar/com.demo.custom-lsp4mp-extension.jar" ] } }
For an example of how this can be used you can look at vscode-quarkus and the quarkus-ls lsp4mp extension. vscode-quarkus contributes an external jar which provides additional language support for quarkus properties and java files.
Contributing to MicroProfile Language / Document Selector supportIt is also possible to contribute additional document selectors which are used to register additional file types / languages with the lsp4mp language server
"contributes": { "microprofile": { "documentSelector": [ { "scheme": "file", "language": "my-custom-properties" } ] } }
For an example of how this can be used you can look at vscode-quarkus which contributes a document selector for Quarkus's application.properties
file in order to provide MicroProfile/Quarkus properties support in this file.
With your approval, vscode-microprofile extension 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 redhat.telemetry.enabled
setting, which you can learn more about at https://github.com/redhat-developer/vscode-redhat-telemetry#how-to-disable-telemetry-reporting Note that this extension abides by Visual Studio Code's telemetry level: if telemetry.telemetryLevel
is set to off, then no telemetry events will be sent to Red Hat, even if redhat.telemetry.enabled
is set to true. If telemetry.telemetryLevel
is set to error
or crash
, only events containing an error or errors property will be sent to Red Hat.
This is an open source project open to anyone. Contributions are extremely welcome!
For information on getting started, refer to the CONTRIBUTING instructions.
CI builds can be installed manually by following these instructions:
Download the latest development VSIX archive from here. (vscode-microprofile-XXX.vsix)
Click View/Command Palette
Type 'VSIX'
Select 'Install from VSIX...' and choose the .vsix
file.
Please report bugs, issues and feature requests by creating a GitHub Issue.
Apache License 2.0. See LICENSE file.
MicroProfile® and the MicroProfile logo are trademarks of the Eclipse Foundation
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4