All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.2.0: Cyclic Cypress - 2023-05-22
- Topiary website, web-based playground and logos.
- Full Nickel formatting support.
- Improved OCaml formatting support.
@append_antispace
and@prepend_antispace
formatting capture names.- WASM build target, for the web-based playground.
- Arbitrary whitespace indentation support.
- Exhaustive query checking in tests.
- Maintain a CHANGELOG and a documented release process.
- Move to a build configuration file, rather than a mixture of hardcoding and parsing query predicates at runtime.
- Conditional predicates, in the query language, to reduce the number of formatting capture names.
- Higher fidelity exit codes.
- Idempotency check in terminal-based playground.
- Reduced verbosity of failed integration test output.
- Various improvements to the test suite.
- Idiomatic improvements to the Rust codebase.
- Restructured repository into a Cargo workspace.
- OCaml idempotency issues.
- Idempotency checking in integration tests.
- Don't process queries that match below leaf nodes.
- Skip over zero-byte matched nodes.
0.1.0: Benevolent Beech - 2023-03-09
This first public release focuses on the Topiary engine and providing decent OCaml formatting support, with the formatting capture names required to do so.
@allow_blank_line_before
@append_delimiter
/@prepend_delimiter
@append_multiline_delimiter
/@prepend_multiline_delimiter
@append_empty_softline
/@prepend_empty_softline
@append_hardline
/@prepend_hardline
@single_line_no_indent
@append_indent_start
/@prepend_indent_start
@append_indent_end
/@prepend_indent_end
@append_input_softline
/@prepend_input_softline
@append_space
/@prepend_space
@append_spaced_softline
/@prepend_spaced_softline
@delete
@singleline_delete
@do_nothing
@begin_scope
/@end_scope
and scoped softlines
- OCaml (implementations and interfaces)
- JSON
- TOML
- Nickel (experimental)
- Bash (experimental)
- Tree-sitter query language (experimental)
- Rust (experimental)
- Basic formatter authoring tools (terminal-based playground and tree visualisation)
pre-commit-hooks.nix
support
0.0.1-prototype: Archetypal Aspen - 2022-06-14
This prototype release was created exclusively to show the validity of the idea of using Tree-sitter to build a formatter. It includes only a prototype JSON formatter.