Jails is an experimental language server for the Jai programming language.
In the future, the language server will support all other basic stuff you would get from any other LSP. Also, the plan is to support some specific Jai features from an editor support perspective like for example macro evaluation inside the editor etc.
Be aware that this language server is still pretty much unstable... Nonetheless, it can be quite useful even in this early stage of development.
This repo uses git submodules. Clone it using git clone --recurse-submodules
.
Compile the release version of the server with jai build.jai - -release
. Jails binary will be generated in the bin
folder.
cd Jails
).npm install --global @vscode/vsce
to install the Visual Studio Code Extension Manager.jai build.jai - -release
to build the binary.cd vscode_extension
to enter the subdirectory vscode_extension
.npm install
to install npm dependencies.npm run compile
to generate an extension bundle.npm run pack:unix
or npm run pack:windows
to pack the bundle into a file called something like jails-x.x.x.vsix
.code --install-extension jails-x.x.x.vsix
to install the extension in VS Code.You can create a config file jails.json
inside your project root to specify:
roots
(main.jai
, build.jai
) - this is used to set up files that are being parsed on init - you don't need to set this but it will improve your experience.local modules
(modules
) - this tells the language server to also search for modules in these folders.build_root
- entry file for compiling (currently used for running compiler diagnostics - errors in the editor){
"local_modules": [
"modules"
],
"roots": [
"server/main.jai",
"build.jai"
],
"build_root": "build.jai"
}
Compile server with jai build.jai
or compile and run test VSCode with preinstalled LSP with jai build.jai - -vscode
.