This repository contains code to generate Language Server Protocol types and classes for various languages.
You will need a python environment to run the generator. Here are the steps:
- Clone this repository.
- Create environment using
python -m venv .venv
in the root directory of this project. - Activate the environment using
.venv\Scripts\activate
on Windows or.venv/bin/activate
on Linux/Mac. - Run this command to install
nox
:python -m pip install nox
- Run this command to install dependencies:
python -m pip install -r ./packages/python/requirements.txt -r ./generator/requirements.txt -r ./tests/python/requirements.txt -r ./tests/generator/requirements.txt
Clone this repository and run generator
like a module.
>python -m generator --help
usage: __main__.py [-h] [--schema SCHEMA] [--model MODEL]
Generate types from LSP JSON model.
optional arguments:
-h, --help show this help message and exit
--schema SCHEMA, -s SCHEMA
Path to a model schema file. By default uses packaged
schema.
--model MODEL, -m MODEL
Path to a model JSON file. By default uses packaged
model file.
--plugin PLUGIN, -p PLUGIN
Name of a builtin plugin module. By default uses all
plugins.
This project uses nox
as a task runner to run the code generator. You can install nox
and run build_lsp
session to generate code from spec available in the repo.
> python -m pip install nox
> nox --session build_lsp
You can format code, run tests, and other tasks using nox
as well.
Follow these steps to generate boiler plate code for new plugin:
- Create a virtual environment for python using python 3.7 and activate that environment.
- If you have python extension for VS Code installed then run
Python: Create Environment
command. Be sure to select all therequirements.txt
files in the repo. This should, install all packages needed and select the environment for you.
- If you have python extension for VS Code installed then run
- Ensure
nox
is installed.- Run
nox --list
, is nox is installed oyu should see a list of available sessions. Otherwise, runpython -m pip install nox
from the python 3.7 environment you created above.
- Run
- Run
nox --session create_plugin
and follow the prompts to create a new plugin.
Example:
> nox --session create_plugin
nox > Running session create_plugin
nox > Creating virtual environment (virtualenv) using python.exe in .nox\create_plugin
Enter the name of the plugin: java
nox > Created plugin java.
nox > Session create_plugin was successful.
Language | Plugin | Package | Notes |
---|---|---|---|
Python | generator-plugin.python | Active |