LSP4IJ is a free and open-source Language Server protocol (LSP) client compatible with all flavours of IntelliJ.
It currently doesn't provide any useful functionality on its own, but is instead used as a dependency for other extensions, willing to integrate language servers with IntelliJ products.
LSP4IJ provides:
- Language server
extension points
to add any language server:- com.redhat.devtools.lsp4ij.server extension point to define a language server.
- com.redhat.devtools.lsp4ij.languageMapping to associate an IntelliJ language with a language server definition.
- an LSP Consoles view to tracks LSP requests, responses and notifications in a console:
- a Language Servers preferences page to configure the LSP trace level, the debug port to use to debug language server:
You can start with:
- Developer guide which explains step by step how to integrate a language server in LSP4J in an external IntelliJ plugin.
- User guide which explains how to use LSP console and Language server preferences.
- LSP support which explains the LSP support.
Here are some projects that use LSP4IJ:
- Intellij IDEA 2022.3 or more recent (we try to support the last 4 major IDEA releases)
- Java JDK (or JRE) 17 or more recent
This is an open source project open to anyone. Contributions are extremely welcome!
Project is managed by Gradle. So building is quite easy.
Run the following command:
./gradlew buildPlugin
The plugin distribution file is located in build/distributions
.
You can also easily test the plugin. Just run the following command:
./gradlew runIde
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
LSP4IJ <version>.zip
file - install
LSP4IJ <version>.zip
into IntelliJ IDEA by following these instructions.
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/23257
and pressOK
Nightly builds are published once a day.
The LSP4IJ 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
File a bug in GitHub Issues.
Eclipse Public License 2.0. See LICENSE file.