totosca
rad:z34DRwF1fHWmLMbb2iQiMF7q3r2W7
I started working on the TOSCA 1.3-2.0 language server.
It is in its early stage but can be handy even so. It can:
- validate TOSCA 1.3 and 2.0 schemas (currently, some parts are missing; working on reaching ~100% coverage)
- provide the goto-definition capability for type references and other definition references (artifacts, requirement targets, etc)
- find references for types (aka find usages)
- provide (hacky-buggy) suggestions for types (working on schema-level suggestions)
It is written in Rust, which has a powerful macro system helping leverage many entities in the standard. For YAML parsing, I use yaml-peg-rs (without the serde), and petgraph is used for storing AST and handling the generic nature of relations between different TOSCA entities. And last but not least is ariadne, which helps display fancy diagnostics messages.
You can check it out by installing it with cargo:
cargo install --git https://ash.radicle.garden/z34DRwF1fHWmLMbb2iQiMF7q3r2W7.git toto_cli
Try with your template:
toto check your_template.yaml
It also has some editor integrations: