wilzbach / storyscript-sls

An Asyncy Language Server for Storyscript

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Storyscript Language Server (SLS)

PyPi CircleCI Codecov Contributor Covenant Code style: black

SLS implements a Language Server for Storyscript.

Features

TBD (work in progress).

Install

Work in a fresh virtual environment:

virtualenv venv -p /usr/bin/python3.6
. ./venv/bin/activate

And then install all dependencies:

pip install -r requirements.txt

Developing

You can start the LSP server with:

./sls.py

Furthermore, install pre-commit and set up a git hook:

pip install --user pre-commit
pre-commit install

This will ensure that every commit is formatted according to black.

Testing with VSCode

  1. Setup the VS client

Initially the dependencies of the VSCode extension need to be fetched:

cd client
npm install --prefix client
  1. Start a TCP LSP server
./sls.py tcp
  1. Open up VSCode
cd client
npm run --prefix client vscode

VSCode will automatically try to reconnect if the socket has been lost.

Alternative: spawn via VSCode

You can also start up a VSCode instance via VSCode. This will allow you to debug into an extension.

  1. Open VSCode
  2. Open Folder (-> select "/client")
  3. View -> Debug
  4. Run "Launch Client"
  5. Open up a directory with Storyscript files or create a new .story file

If a Stdio server is used, it will automatically spawn the server and connect to it. On changes to the server, it can be killed by e.g.:

pkill sls.py

VSCode will automatically respawn a new LSP server instance.

If you want to continuously build the client extension, do:

npm run --prefix client watch

Issues

For problems directly related to the SLS, add an issue on GitHub. For other issues, submit a support ticket.

About

An Asyncy Language Server for Storyscript

License:Apache License 2.0


Languages

Language:Python 97.3%Language:TypeScript 2.3%Language:Dockerfile 0.4%