This mono-repo contains a set of tools for working with the Toml configuration file format.
The common Toml related tooling are Toml -> Json compilers. But compiling to Json is just one scenario of many, lets consider some other potential use cases:
- Building a Toml Syntax Highlighter.
- Converting Toml to Yaml.
- Building a Toml Beautifier.
- Validating Toml versus a given schema.
- Providing content assist in a Toml file.
These scenarios cannot be implemented (well) using most existing Toml to Json compilers, for example:
- Lost comments information.
- How can we beautify or convert Toml to Yaml if we don't possess the comments information?
- Lack of Token type & positioning information.
- How could we syntax highlight(paint) parts of a Toml file if we do not know where every single Token starts and ends (Commas/Parenthesis/Literals/...)?
- Failing on the first error
- How would we implement content assist on a Toml file currently being edited if our parser fails on the first error?
- Lack of full position information
- How will we provide useful Schema validation errors if we lack full position information?
- Full position information would also be needed for the content assist scenario.
This mono repo will contain two types of packages.
- Low level Infrastructure (Toml Lexer & Parser implemented using Chevrotain) with advanced capabilities to support the complex scenarios described above.
- Toml (end user) Tooling (Beautifier/Compiler/Schema Validator/...) that would be implemented using the advanced low level infrastructure packages mentioned above.
Infrastructure packages:
Tooling Packages: