-
Notifications
You must be signed in to change notification settings - Fork 67
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
3 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,5 @@ | ||
# Integration of Langium and Sprotty | ||
# Langium Railroad Diagrams | ||
|
||
This package provides glue code for [Langium](https://langium.org) and [Sprotty](https://www.npmjs.com/package/sprotty). It includes the following features: | ||
This package provides the ability to build railroad syntax diagrams for [Langium](https://langium.org) grammars. | ||
|
||
* Generate diagram models from a Langium AST | ||
* Listen to document changes and update existing diagram models automatically | ||
* Hook into the JSON-RPC channel used by the language server | ||
|
||
The counterpart of this integration is the [sprotty-vscode](https://www.npmjs.com/package/sprotty-vscode) package, which provides Sprotty diagrams embedded in VS Code webviews and is able to connect with the JSON-RPC stream of a chosen language. | ||
|
||
## How to Use This | ||
|
||
1. Implement a diagram model generator by extending `LangiumDiagramGenerator` | ||
2. Add `SprottyDiagramServices` to the dependency injection module of your language and bind the `diagram.DiagramGenerator` service | ||
3. Add `DefaultSprottyModule` to the `inject` function that sets up your dependency injection container | ||
4. Call the `addDiagramHandler` function in your main code to hook into the JSON-RPC stream | ||
It is reused by the [langium-cli](https://www.npmjs.com/package/langium-cli) package and the [Langium VSCode extension](https://marketplace.visualstudio.com/items?itemName=langium.langium-vscode). |