Skip to content

Latest commit

 

History

History
117 lines (94 loc) · 4.04 KB

CHANGELOG.md

File metadata and controls

117 lines (94 loc) · 4.04 KB

Change Log

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

Added

  • 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.

Changed

  • 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.

Fixed

  • 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.

Formatting Capture Names

  • @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

Language Support

  • OCaml (implementations and interfaces)
  • JSON
  • TOML
  • Nickel (experimental)
  • Bash (experimental)
  • Tree-sitter query language (experimental)
  • Rust (experimental)

Miscellaneous

  • 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.