{"id":18429064,"url":"https://github.com/openliberty/liberty-language-server","last_synced_at":"2025-04-07T17:32:28.193Z","repository":{"id":38239098,"uuid":"291730264","full_name":"OpenLiberty/liberty-language-server","owner":"OpenLiberty","description":"The Liberty Config Language Server provides language server features for Liberty server configuration files through any of the supported client IDEs.","archived":false,"fork":false,"pushed_at":"2024-10-23T17:20:00.000Z","size":4373,"stargazers_count":6,"open_issues_count":46,"forks_count":11,"subscribers_count":13,"default_branch":"main","last_synced_at":"2024-10-24T00:45:14.072Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenLiberty.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2020-08-31T13:59:31.000Z","updated_at":"2024-10-23T17:20:04.000Z","dependencies_parsed_at":"2023-02-14T02:15:24.650Z","dependency_job_id":"ab19000d-6622-4623-9ab9-2def2965e11e","html_url":"https://github.com/OpenLiberty/liberty-language-server","commit_stats":{"total_commits":99,"total_committers":16,"mean_commits":6.1875,"dds":0.7676767676767677,"last_synced_commit":"02ec60a9a596244b34a0d2bd12336cc03e838422"},"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenLiberty%2Fliberty-language-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenLiberty%2Fliberty-language-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenLiberty%2Fliberty-language-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenLiberty%2Fliberty-language-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenLiberty","download_url":"https://codeload.github.com/OpenLiberty/liberty-language-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247697897,"owners_count":20981270,"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":"2024-11-06T05:15:41.194Z","updated_at":"2025-04-07T17:32:24.566Z","avatar_url":"https://github.com/OpenLiberty.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Liberty Config Language Server\n\n\u003e 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.\n\nThe 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).\n\n## Client IDEs\n\nThe Liberty Config Language Server is included in the following client IDEs.\n\n* [Liberty Tools for Visual Studio Code](https://github.com/OpenLiberty/liberty-tools-vscode)\n* [Liberty Tools for Eclipse IDE](https://github.com/OpenLiberty/liberty-tools-eclipse)\n* [Liberty Tools for IntelliJ IDEA](https://github.com/OpenLiberty/liberty-tools-intellij)\n\n## Supported files\n\nLiberty Config Language Server features are available for the following configuration files.\n\n- Any XML file that contains a `server` root element.\n- 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.\n- Any file with the extension `.env` that is specified by the `serverEnvFile` configuration in the Liberty Maven or Gradle plugin.\n- 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.\n- Any file with the extension `.properties` that is specified by the `bootstrapPropertiesFile` configuration in the Liberty Maven or Gradle plugin.\n\n## Features\n\nThe following language server features are available through any of the supported client IDEs.\n\n### Completion for Liberty server configuration files\n\nStart typing a Liberty property, variable, or XML configuration to view a list of possible options.\n\n* Completion for Liberty properties and values \n\n![Screen capture of Liberty property name suggestions in a bootstrap.properties file](./docs/images/property-completion.png \"Completion suggestions for Liberty properties in bootstrap.properties\") \n![Screen capture of value suggestions for a Liberty property in a bootstrap.properties file. If there is a default value, it is preselected.](./docs/images/property-value-completion.png \"Completion suggestions for Liberty property values in bootstrap.properties\")\n* Completion for Liberty variables and values \n\n![Screen capture of Liberty variable suggestions in a server.env file](./docs/images/variable-completion.png \"Completion suggestions for Liberty variables in server.env\")\n![Screen capture of value suggestions for a Liberty variable in a server.env file. If there is a default value, it is preselected](./docs/images/variable-value-completion.png \"Completion suggestions for Liberty variable values in server.env\")\n* Completion for Liberty XML configs\n\n![Screen capture of Liberty feature suggestions in a feature block in a server.xml file](./docs/images/feature-completion.png \"Completion suggestions for Liberty configuration in server.xml\")\n\n### Hover on Liberty server configuration files\n\nHover your cursor over Liberty properties, variables, or XML configuration to view a description.\n\n* Hover for Liberty properties and variables\n\n![Screen capture of a documentation dialog appearing when hovering over a Liberty property in a bootstrap.properties file](./docs/images/property-hover.png \"Hover on Liberty properties in bootstrap.properties\")\n![Screen capture of a documentation dialog appearing when hovering over a Liberty variable in a server.env file](./docs/images/variable-hover.png \"Hover on Liberty server variables in server.env\")\n\n* Hover for Liberty XML configs\n\n![Screen capture of feature documentation appearing when hovering over a Liberty feature in a server.xml file](./docs/images/feature-hover.png \"Hover on Liberty features in server.xml\")\n\n### Diagnostics and quick fixes on Liberty server configuration files\n\nDiagnostics highlight potential problems in your configuration, such as invalid values. Quick fixes provide potential solutions to those problems.\n\n* Diagnostics on Liberty properties and variables\n\n![Screen capture showing diagnostics marking an invalid value for a Liberty property in a bootstrap.properties file. Hovering over the diagnostic will provide more details.](./docs/images/property-diagnostic.png \"Diagnostics on Liberty properties in bootstrap.properties\")\n![Screen capture showing diagnostics marking an invalid value for a Liberty variable in a server.env file. Hovering over the diagnostic will provide more details.](./docs/images/variable-diagnostic.png \"Diagnostics on Liberty variables in server.env\")\n\n* Diagnostics and quick fixes for Liberty XML configs\n\n![Screen capture showing diagnostics marking an invalid feature defined in a server.xml file. Hovering over the diagnostic will provide more details.](./docs/images/feature-diagnostic.png \"Diagnostics on Liberty features in server.xml\")\n\n![Screen capture showing a quick fix for a diagnostic on an invalid feature defined in a server.xml file. Hovering over the diagnostic and selecting Quick Fix... will provide more details.](./docs/images/feature-quickFix.png \"Quick fixes on Liberty features in server.xml\")\n\n![Screen capture showing diagnostics marking an configuration element defined in a server.xml file. Hovering over the diagnostic will provide more details.](./docs/images/config-diagnostic.png \"Diagnostics on configuration elements in server.xml\")\n\n![Screen capture showing a quick foix for a diagnostics on a configuration element defined in a server.xml file. Hovering over the diagnostic and selecting Quick Fix... will provide more details.](./docs/images/config-quickFix.png \"Quick fixes on configuration elements in server.xml\")\n\n## Minimum version recommendations for the Liberty Maven and Gradle plug-ins\n\nA 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.\n\nIf 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.\n\n## Contributing\nSee the [DEVELOPING](./DEVELOPING.md) and [CONTRIBUTING](./CONTRIBUTING.md) documents for more details.\n## License\nEclipse Public License - v 2.0 See [LICENSE](./LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenliberty%2Fliberty-language-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenliberty%2Fliberty-language-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenliberty%2Fliberty-language-server/lists"}