textX-LS
textX-LS copied to clipboard
Language server for domain specific languages based on textX
textX-LS
textX-LS is a language server that provides smartness for all domain specific languages based on textX.
This repository consists of two python packages:
and a Visual Studio Code extension:
:warning: This project got a new maintainer
After several years of inactivity this project is in a transition to a new maintainer. Please see this announcement.
Required textX Generator Plugins
Building a custom VS Code extension for newly registered language is delegated to the textx-vscode generator which uses textx-coloring to produce a syntax highlighting Textmate file.
Features
- [x] language project registration/unregistration (editable mode is supported)
- [x] languages and generators preview
- [x] language VS Code extension generation and installation
- [x] model and meta-model validations
- [x] default syntax highlighting
- [x] live-reload on grammar changes (editable mode)
- [ ] configure and run generators
- [ ] language project scaffolding
- [ ] optional environment configuration
- [ ] code completion
- [ ] jump to definition
- [ ] find all references
- [ ] configurable syntax highlighting
- [ ] code folding
- [ ] symbols tree view
- [ ] viewX integration
Development Setup
This project requires python 3.6 and node v10.16 for development.
Installation steps:
python -m venv env && source env/bin/activatepip install -r requirements.txtcd client && npm i
To register pre-commit hooks, run: pre-commit install
To run pre-commit hooks manually: pre-commit run --all-files
Running the extension in VS Code:
In order to run the extension, client directory must be added as a workspace folder or opened as a root project.
Now, switch to debug view, choose Server + Client option and press F5.
A new VS Code window should be opened in examples directory.
CI/CD and Artifacts
Take a look at build process.
License
MIT
Legend
-
textX language project is a python package that registers one or more languages using a textX registration API
-
textX generator project is a python package that registers one or more generators using a textX registration API