diff --git a/topics/reference_guide/custom_language_support/language_server_protocol.md b/topics/reference_guide/custom_language_support/language_server_protocol.md index cec282223..4e9a39f28 100644 --- a/topics/reference_guide/custom_language_support/language_server_protocol.md +++ b/topics/reference_guide/custom_language_support/language_server_protocol.md @@ -1,6 +1,7 @@ # Language Server Protocol (LSP) + Language Server Protocol (LSP) support in IntelliJ-based IDEs @@ -22,14 +23,45 @@ Therefore, plugins using Language Server integration are not available in Commun The LSP API is publicly available as part of the IntelliJ Platform in the following IDEs: IntelliJ IDEA Ultimate, WebStorm, PhpStorm, PyCharm Professional, DataSpell, RubyMine, CLion, Aqua, DataGrip, GoLand, Rider, and RustRover. -## Plugin Configuration +## LSP Plugin Setup -To use the LSP API in a third-party plugin based on the [](tools_gradle_intellij_plugin.md), it is required to upgrade the Gradle IntelliJ Plugin to the latest version available. -This plugin will attach the LSP API sources and code documentation to the project. +The plugin must target [](idea_ultimate.md) version `2023.2` or later. -As LSP became available in the 2023.2 EAP7 of IntelliJ-based IDEs, the plugin must target [](idea_ultimate.md) version `2023.2` or later. +### Gradle -Example build.gradle.kts configuration: + + + +Relevant build.gradle.kts configuration: + +```kotlin +plugins { + id("org.jetbrains.intellij.platform") version "%intellij-platform-gradle-plugin-version%" +} + +repositories { + mavenCentral() + + intellijPlatform { + defaultRepositories() + } +} + +dependencies { + intellijPlatform { + intellijIdeaUltimate("%ijPlatform%") + } +} +``` + + + + + +Upgrade the Gradle IntelliJ Plugin to the latest version. +It will attach the LSP API sources and code documentation to the project. + +Relevant build.gradle.kts configuration: ```kotlin plugins { @@ -43,22 +75,26 @@ intellij { } ``` -For projects based on the [](plugin_github_template.md), update the Gradle IntelliJ Plugin to the latest version, and amend the gradle.properties file as follows: +For projects based on the [](plugin_github_template.md), update the Gradle IntelliJ Plugin to the latest version, +and amend the values in gradle.properties accordingly. -``` -platformType = IU -platformVersion = %ijPlatform% -``` + + -The plugin.xml configuration file needs to specify the dependency on the IntelliJ IDEA Ultimate module: +### plugin.xml + +The plugin.xml configuration file must specify the dependency on the IntelliJ IDEA Ultimate module: ```xml + - - com.intellij.modules.ultimate + + com.intellij.modules.ultimate ``` +### IDE Setup + The LSP API sources are bundled in IntelliJ IDEA Ultimate and can be found within the \$IDEA_INSTALLATION\$/lib/src/src_lsp-openapi.zip archive. > Due to technical limitations in IDEs before 2024.1, it is necessary to manually attach sources to the IntelliJ IDEA Ultimate dependency. @@ -118,6 +154,7 @@ private class FooLspServerDescriptor(project: Project) : ProjectWideLspServerDes ### Status Bar Integration + A dedicated Language Services status bar widget is available to monitor the status of all LSP servers.