LSP Implementation for the Smart Data Lake Builder configuration files.
This LSP server currently provides:
- smart autocompletion suggestions
- Hovering description of objects, their attributes etc.
The server communicate with an LSP client, which can be a plugin in a code editor like Intellij, VSCode, Atom etc. or even a web interface.
Standard Input/Output channels are used to communicate with its client, using JSON-RPC protocol.
Usually the client has responsibility to start the server. They first communicate their capabilities and then the client make requests or provide notifications to the server.
You can either download the jar and jump directly to Setting a basic LSP client in Intellij or compile and generate the jar yourself.
To download it, go here and take the one finishing with XXX-jar-with-dependencies.jar
.
You can now read Setting a basic LSP client in Intellij.
If you prefer build the jar, follow the instructions below.
To be able to build an executable jar with this project, you will need:
- maven
- java 11 or newer
- Clone the repo locally.
- run
mvn clean package
- Download the generic LSP support for Intellij here. Please note that if you are running an Intellij version later than 2022.X.X, you will be warned that the plugin is not compatible with your Intellij version, but you should be able to run it nevertheless. Please ignore this warning.
- Go to
plugins
in your Intellij IDE. - Click on the gear aside
Marketplace
andInstalled
and click onInstall Plugin from disk...
. Add the downloaded plugin. - Go to
Settings > Languages & Frameworks > Language Server Protocol > Server definitions
- Choose
Raw command | Extension: conf | Command: java -jar ${path-to-project}/target/sdl-lsp-1.0-SNAPSHOT-jar-with-dependencies.jar
. Be sure you ranmvn clean package
before. Please adapt the name if you downloaded the jar. - A red, yellow or green dot should have appeared in the bottom of your IDE. Red just means the LSP is inactive, yellow means the LSP is initializing and green means up and running. You can check timeouts, restart the server or check the connected files.
This project is licensed under the GNU General Public License (GPL) version 3 - see the LICENSE.txt file for details