diaryx.org / projects /

flower

Rust MIT / Apache-2.0

A structural editor for config files — it edits the tree, not the characters.

Where a text editor edits characters, flower edits the tree. You navigate the parsed config structurally — into mappings, along sequences, down to scalars — and edit one value at a time. Every change is a path-addressed, lossless splice through fig's editor: the bytes you didn't touch stay byte-for-byte identical, and the document is only ever committed in a valid state.

  • Two views of the same tree. An indented, type-colored tree; or a settings-menu page view that sinks the fields nobody types below the ones they do.
  • Typed scalar edits. Booleans, numbers, nulls, and text are committed through fig's validated replace — not typed freehand.
  • Everything fig reads. JSON/JSONC/JSON5, YAML, TOML, ZON, and the fig dialect.

Where it fits

flower is the config sibling of leaf: leaf's caret model is right for permissive document formats; a strict config grammar wants a structural one. It edits through fig's tree, and in Diaryx it's a natural front end for vault configuration and frontmatter.

Status

Early prototype. Navigation, both views, typed edits, deletes, and save all work today; the roadmap in the repo says what isn't here yet.