Fixed
-
A configured catalog formatter now displaces poly's generic tree-sitter reindenter instead of
chaining with it. Formatters run in sequence and the whole chain repeats to a fixed point, so a
language served by both poly's fallback reindenter and an external formatter had the two fighting
over indentation on every pass. This is what kept Elixir from converging: even with[tools.mix]
declared, poly reindented the file andmix formatreindented it back. The fallback is dropped only
when the catalog tool's binary is actually onPATH, so a configured-but-missing tool leaves the
fallback in place rather than silently dropping all formatting for the language.
(crates/poly-core/src/runner.rs,crates/poly-core/src/engine.rs,
crates/poly-core/src/engines/catalog_tool/mod.rs)Elixir projects should now declare the formatter that owns the language:
[tools.mix] enabled = true root = "packages/elixir"