{"id":28420634,"url":"https://github.com/redhat-developer/vscode-microprofile","last_synced_at":"2025-06-26T17:31:55.561Z","repository":{"id":37086667,"uuid":"279897439","full_name":"redhat-developer/vscode-microprofile","owner":"redhat-developer","description":"Microprofile tools for Visual Studio Code","archived":false,"fork":false,"pushed_at":"2025-06-26T13:39:01.000Z","size":3383,"stargazers_count":19,"open_issues_count":12,"forks_count":16,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-06-26T14:33:52.506Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redhat-developer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-07-15T14:55:00.000Z","updated_at":"2025-06-26T13:33:53.000Z","dependencies_parsed_at":"2023-02-15T12:46:10.792Z","dependency_job_id":"c1e4c066-3fe9-4acf-8504-0617b4f9d215","html_url":"https://github.com/redhat-developer/vscode-microprofile","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/redhat-developer/vscode-microprofile","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-developer%2Fvscode-microprofile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-developer%2Fvscode-microprofile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-developer%2Fvscode-microprofile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-developer%2Fvscode-microprofile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redhat-developer","download_url":"https://codeload.github.com/redhat-developer/vscode-microprofile/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-developer%2Fvscode-microprofile/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262113314,"owners_count":23261003,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-05T03:48:55.982Z","updated_at":"2025-06-26T17:31:55.540Z","avatar_url":"https://github.com/redhat-developer.png","language":"TypeScript","readme":"# Tools for MicroProfile\n\n[![Visual Studio Marketplace](https://img.shields.io/visual-studio-marketplace/v/redhat.vscode-microprofile?style=for-the-badge\u0026label=VS%20Marketplace\u0026logo=visual-studio-code)](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-microprofile)\n[![Installs](https://img.shields.io/visual-studio-marketplace/i/redhat.vscode-microprofile?style=for-the-badge)](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-microprofile)\n[![Chat](https://img.shields.io/gitter/room/redhat-developer/vscode-microprofile?style=for-the-badge\u0026logo=gitter)](https://gitter.im/redhat-developer/vscode-microprofile)\n[![Build Status](https://img.shields.io/github/actions/workflow/status/redhat-developer/vscode-microprofile/tests.yml?branch=master\u0026style=for-the-badge\u0026logo=github)](https://github.com/redhat-developer/vscode-microprofile/actions?query=branch%3Amaster)\n[![License](https://img.shields.io/github/license/redhat-developer/vscode-microprofile?style=for-the-badge)](https://github.com/redhat-developer/vscode-microprofile/blob/master/LICENSE)\n\n## Description\n\nThis Visual Studio Code extension provides support for the development of [MicroProfile®](https://microprofile.io/)-based applications, via the [LSP4MP project](https://github.com/eclipse/lsp4mp), which consists of:\n\n * a [language server for MicroProfile](https://github.com/eclipse/lsp4mp/tree/master/microprofile.ls).\n * a [jdt.ls extension for MicroProfile](https://github.com/eclipse/lsp4mp/tree/master/microprofile.jdt).\n\n![](images/propertiesSupport.png)\n\n## MicroProfile `properties` Features\n\nIn `microprofile-config.properties` files, you will benefit with:\n\n  * [Completion support for MicroProfile properties](./docs/PropertiesFeatures.md#completion-support)\n  * [Hover support for MicroProfile properties](./docs/PropertiesFeatures.md#hover-support)\n  * [Definition support for MicroProfile properties](./docs/PropertiesFeatures.md#definition-support)\n  * [Format support for MicroProfile properties](./docs/PropertiesFeatures.md#format-support)\n  * [Validation and Quick Fix support for MicroProfile properties](./docs/PropertiesFeatures.md#validation-and-quick-fix-support)\n  * [Outline support (flat or tree view)](./docs/PropertiesFeatures.md#outline-support)\n\n## MicroProfile `Java` Features\n\nIn `Java` files, you will benefit with:\n\n  * [Completion support for MicroProfile](./docs/JavaFeatures.md#completion-support)\n  * [Hover support for MicroProfile](./docs/JavaFeatures.md#hover-support)\n  * [Validation and Quick Fix support for MicroProfile](./docs/JavaFeatures.md#validation-and-quick-fix-support)\n  * [Code Lens support for MicroProfile](./docs/JavaFeatures.md#codelens-support)\n  * [Workspace symbols](./docs/JavaFeatures.md#workspace-symbols-support)\n  * [Code snippets](./docs/JavaFeatures.md#snippets-support)\n\n## Requirements\n\n  * [Language Support for Java(TM) by Red Hat](https://marketplace.visualstudio.com/items?itemName=redhat.java)\n  * Java JDK (or JRE) 21 or more recent is required **except** on the following platforms : `win32-x64`, `linux-x64`, `linux-arm64`, `darwin-x64`, `darwin-arm64`. See [JDK Tooling](https://github.com/redhat-developer/vscode-java/#java-tooling-jdk) for details.\n\n## Supported VS Code settings\n\nThe following settings are supported:\n\n* `microprofile.tools.formatting.surroundEqualsWithSpaces` : Insert spaces around the equals sign when formatting the application.properties file. Default is `false`.\n* `microprofile.tools.trace.server` : Trace the communication between VS Code and the MicroProfile Language Server in the Output view.\n* `microprofile.tools.symbols.showAsTree` : Show MicroProfile properties as tree (Outline). Default is `true`.\n* `microprofile.tools.validation.enabled` : Enables MicroProfile validation. Default is `true`.\n* `microprofile.tools.validation.duplicate.severity` : Validation severity for duplicate properties for MicroProfile `*.properties` files.\nDefault is `warning`.\n* `microprofile.tools.validation.syntax.severity` : Validation severity for property syntax checking for MicroProfile `*.properties` files.\nDefault is `error`.\n* `microprofile.tools.validation.required.severity` : Validation severity for required properties for MicroProfile `*.properties` files.\nDefault is `none`.\n* `microprofile.tools.validation.expression.severity` : Validation severity for property expressions for MicroProfile `*.properties` files.\nDefault is `error`.\n* `microprofile.tools.validation.unknown.severity` : Validation severity for unknown properties for MicroProfile `*.properties` files. Default is `warning`.\n* `microprofile.tools.validation.unknown.excluded` : Array of properties to ignore for unknown properties validation. Patterns can be used ('\\*' = any string, '?' = any character).\nDefault is `[\"*/mp-rest/providers/*/priority\", \"mp.openapi.schema.*\", \"kafka-streams.*\", \"camel.*\"]`.\n* `microprofile.tools.codeLens.urlCodeLensEnabled` : Enable/disable the URL code lenses for REST services. Default is`true`.\n* `microprofile.tools.validation.value.severity`: Validation severity for property values for MicroProfile `*.properties` files. Default is `error`.\n* `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).\n* `microprofile.tools.inlayHint.enabled`: Enable/disable the inlay hint support. Default is `false`.\n\n### **Note for MicroProfile Rest Client properties**:\n\nDue to [this issue](https://github.com/redhat-developer/quarkus-ls/issues/203), the MP Rest property: `\u003cmp-rest-client-class\u003e/mp-rest/providers/\u003cmp-rest-provider-class\u003e/priority` reports an unknown error.\n\nTo avoid having this error, you must configure the following in `settings.json`:\n\n```json\n\"microprofile.tools.validation.unknown.excluded\": [\n    \"*/mp-rest/providers/*/priority\"\n]\n```\n\nThis settings is set by default.\n\n\n## Extending Tools for MicroProfile\n\nBy default, Tools for MicroProfile provides:\n\n* Support for the `microprofile-config.properties` file (completion, validation, etc.) for the properties of MicroProfile specs (config, health, fault tolerance, etc.).\n* Support in java files (diagnostics, codelens, etc.) taking into account the API of each of the MicroProfile specs.\n\nThe support for properties and java files can be extended with:\n\n* Additional language features (diagnostics, quick fixes, etc.) in Java files for modules other than MicroProfile specs.\n* Additional properties support for properties other than those defined by MicroProfile specs (Ex. Quarkus properties)\n* Additional language / document selectors to allow MicroProfile language features in files other than `microprofile-config.properties` (Ex. the `application.properties` file for Quarkus)\n\nTo 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.\n\n```json\n\"contributes\": {\n  \"microprofile\": {\n    \"jarExtensions\": [...],\n    \"documentSelector\": [...],\n  }\n}\n```\n\n### Contributing to properties and Java support\n\nLSP4MP can be [extended](https://github.com/eclipse/lsp4mp#extensions) to support custom completion, hover, validation, etc by using the [Java Service Provider Interface (SPI)](https://www.baeldung.com/java-spi). vscode-microprofile provides the ability to use your custom lsp4mp extension by contributing external JARs to the classpath of lsp4mp.\n\nTo 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\n\n```json\n\"contributes\": {\n  \"microprofile\": {\n    \"jarExtensions\": [\n      \"./jar/com.demo.custom-lsp4mp-extension.jar\"\n    ]\n  }\n}\n```\n\nFor an example of how this can be used you can look at [vscode-quarkus](https://github.com/redhat-developer/vscode-quarkus) and the [quarkus-ls](https://github.com/redhat-developer/quarkus-ls) lsp4mp extension. vscode-quarkus [contributes an external jar](https://github.com/redhat-developer/vscode-quarkus/blob/f38f4caaf218cf9c6ce91e64a0d9cd632314a483/package.json#L59) which provides additional language support for quarkus properties and java files.\n\n### Contributing to MicroProfile Language / Document Selector support\n\nIt is also possible to contribute additional document selectors which are used to register additional file types / languages with the lsp4mp language server\n\n```json\n\"contributes\": {\n  \"microprofile\": {\n    \"documentSelector\": [\n      {\n        \"scheme\": \"file\",\n        \"language\": \"my-custom-properties\"\n      }\n    ]\n  }\n}\n```\n\nFor an example of how this can be used you can look at [vscode-quarkus](https://github.com/redhat-developer/vscode-quarkus) which [contributes a document selector](https://github.com/redhat-developer/vscode-quarkus/blob/f38f4caaf218cf9c6ce91e64a0d9cd632314a483/package.json#L62) for Quarkus's `application.properties` file in order to provide MicroProfile/Quarkus properties support in this file.\n\n## Telemetry\n\nWith your approval, vscode-microprofile extension collects anonymous [usage data](USAGE_DATA.md) and sends it to Red Hat servers to help improve our products and services.\nRead our [privacy statement](https://developers.redhat.com/article/tool-data-collection) to learn more.\nThis 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\nNote 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.\n\n## Contributing\n\nThis is an open source project open to anyone. Contributions are extremely welcome!\n\nFor information on getting started, refer to the [CONTRIBUTING instructions](CONTRIBUTING.md).\n\nCI builds can be installed manually by following these instructions:\n\n  1) Download the latest development VSIX archive [from here](https://download.jboss.org/jbosstools/vscode/snapshots/vscode-microprofile/?C=M;O=D). `(vscode-microprofile-XXX.vsix)`\n\n  2) Click `View/Command Palette`\n\n  3) Type 'VSIX'\n\n  4) Select 'Install from VSIX...' and choose the `.vsix` file.\n\n## Feedback\n\nPlease report bugs, issues and feature requests by creating a [GitHub Issue](https://github.com/redhat-developer/vscode-microprofile/issues).\n\n## License\n\nApache License 2.0.\nSee [LICENSE](LICENSE) file.\n\n\nMicroProfile® and the MicroProfile logo are trademarks of the Eclipse Foundation\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhat-developer%2Fvscode-microprofile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredhat-developer%2Fvscode-microprofile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhat-developer%2Fvscode-microprofile/lists"}