https://github.com/openliberty/liberty-language-server
The Liberty Config Language Server provides language server features for Liberty server configuration files through any of the supported client IDEs.
https://github.com/openliberty/liberty-language-server
Last synced: about 1 year ago
JSON representation
The Liberty Config Language Server provides language server features for Liberty server configuration files through any of the supported client IDEs.
- Host: GitHub
- URL: https://github.com/openliberty/liberty-language-server
- Owner: OpenLiberty
- License: epl-2.0
- Created: 2020-08-31T13:59:31.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2024-10-23T17:20:00.000Z (over 1 year ago)
- Last Synced: 2024-10-24T00:45:14.072Z (over 1 year ago)
- Language: Java
- Homepage:
- Size: 4.17 MB
- Stars: 6
- Watchers: 13
- Forks: 11
- Open Issues: 46
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Liberty Config Language Server
> Note: Starting with the [Liberty LemMinX Language Server 1.0-M1 early release](https://github.com/OpenLiberty/liberty-language-server/releases/tag/lemminx-liberty-1.0-M1) and [Liberty Config Language Server 1.0-M1 early release](https://github.com/OpenLiberty/liberty-language-server/releases/tag/liberty-langserver-1.0-M1), Java 17 is required.
The Liberty Config Language Server provides language server features for Liberty server configuration files through any of the supported client IDEs. It adheres to the [language server protocol](https://github.com/Microsoft/language-server-protocol).
## Client IDEs
The Liberty Config Language Server is included in the following client IDEs.
* [Liberty Tools for Visual Studio Code](https://github.com/OpenLiberty/liberty-tools-vscode)
* [Liberty Tools for Eclipse IDE](https://github.com/OpenLiberty/liberty-tools-eclipse)
* [Liberty Tools for IntelliJ IDEA](https://github.com/OpenLiberty/liberty-tools-intellij)
## Supported files
Liberty Config Language Server features are available for the following configuration files.
- Any XML file that contains a `server` root element.
- A `server.env` file located in a directory specified by the `configDirectory` configuration in the Liberty Maven or Gradle plugin, or in the default `src/main/liberty/config` directory.
- Any file with the extension `.env` that is specified by the `serverEnvFile` configuration in the Liberty Maven or Gradle plugin.
- A `bootstrap.properties` file located in a directory specified by the `configDirectory` configuration in the Liberty Maven or Gradle plugin, or in the default `src/main/liberty/config` directory.
- Any file with the extension `.properties` that is specified by the `bootstrapPropertiesFile` configuration in the Liberty Maven or Gradle plugin.
## Features
The following language server features are available through any of the supported client IDEs.
### Completion for Liberty server configuration files
Start typing a Liberty property, variable, or XML configuration to view a list of possible options.
* Completion for Liberty properties and values


* Completion for Liberty variables and values


* Completion for Liberty XML configs

### Hover on Liberty server configuration files
Hover your cursor over Liberty properties, variables, or XML configuration to view a description.
* Hover for Liberty properties and variables


* Hover for Liberty XML configs

### Diagnostics and quick fixes on Liberty server configuration files
Diagnostics highlight potential problems in your configuration, such as invalid values. Quick fixes provide potential solutions to those problems.
* Diagnostics on Liberty properties and variables


* Diagnostics and quick fixes for Liberty XML configs




## Minimum version recommendations for the Liberty Maven and Gradle plug-ins
A minimum version of the Liberty Maven Plug-in 3.7.1 or Liberty Gradle Plug-in 3.5.1 is recommended. If the [Liberty Maven Plug-in](https://github.com/OpenLiberty/ci.maven) or [Liberty Gradle Plug-in](https://github.com/OpenLiberty/ci.gradle) is configured with the Liberty project, the Liberty Config Language Server automatically generates a schema file based on the Liberty runtime and version. This schema file provides relevant information about the supported `server.xml` elements and Liberty features. If an earlier version of either plug-in is used, the schema file is not regenerated when additional features are installed. This limitation might result in a lack of hover, completion, or diagnostic support for elements related to those newly installed features.
If you are using dev mode for containers, a minimum version of the Liberty Maven Plug-in 3.7 or Liberty Gradle Plug-in 3.5 is recommended. If an earlier version is used, the Liberty Config Language Server cannot generate a schema file for use with `server.xml` editing. In this case, a default schema that is based on Liberty 23.0.0.9 is used instead.
## Contributing
See the [DEVELOPING](./DEVELOPING.md) and [CONTRIBUTING](./CONTRIBUTING.md) documents for more details.
## License
Eclipse Public License - v 2.0 See [LICENSE](./LICENSE) file.