Skip to content

Feature/switch to generator - #1

Open
fabianpage wants to merge 143 commits into
ergomechstore:mainfrom
fabianpage:feature/switch_to_generator
Open

Feature/switch to generator#1
fabianpage wants to merge 143 commits into
ergomechstore:mainfrom
fabianpage:feature/switch_to_generator

Conversation

@fabianpage

Copy link
Copy Markdown

No description provided.

fabianpage and others added 30 commits June 21, 2026 00:52
Add :tiles top-level config key and :placements layer/combo-layer key.
The assembly engine resolves placements into a flat :bindings grid before
rendering, so render-layer and render-combo-layer require no changes.

- assemble-placements builds a target grid from :row-widths, filling
  empty cells with :trans (customizable via :empty)
- Overlapping placements resolve with last-wins semantics
- Out-of-bounds writes throw ExceptionInfo by default; silenced with :clip?
- Add end-to-end example #5 demonstrating overlapping tile placement
- Add mirror-tile helper that reverses each row when :mirror :horizontal
- Update assemble-placements to read :mirror and per-placement :clip?
- Placement-level :clip? overrides node-level default
- Add tests for horizontal mirroring, per-placement clip, and clip+mirror composition
Shows a left-half tile reused for the right half via :mirror :horizontal
Tiles may now specify :placements + :row-widths instead of inline
:bindings. The assembly engine recursively resolves tile placements
through the tile registry before flattening into the final binding
grid.

Cycle detection maintains a visited chain and throws ExceptionInfo
with the full reference path when a tile references itself directly
or transitively.

Respects existing mirroring and clipping semantics from #3.
Shows a half-tile built from two finger-column micro-tiles, then
mirrored to form a full row in the BASE layer.
Combo-layer nodes already supported :placements via the generic
resolve-placements-node pipeline. Add explicit tests covering:
- combo-layer with :placements built from tiles
- mirroring + clipping on combo-layer placements
- overlapping placement behavior (last-wins semantics)
Shows a combo-layer assembled from mirrored :qrow and :arow tiles,
generating diagonal combos across both rows.
- totem_config.edn: EDN config with corrected behavior references
  (e.g. [:double_single_quote] instead of :double_single_quote)
- totem_template.keymap: template with // BEGIN/END markers
- totem_generated.keymap: verified output, functionally identical
to config/totem.keymap (minus formatting and ASCII art)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant