!7 cmodule FluidTextFileSpike > DynPrintLog { switchable int maxRefLength = 8; transient S demoContent = autoUnindent_mls([=[ refs="at *", name="index" [[ entry 1 at abc entry 2 at def ]] i=abc [[hello]] i=def [[world]] ]=]); start-thread { print(demoContent); S out = cleanIt(demoContent, false); print_withNLBefore(out); assertEquals("Idempotency", out, cleanIt(out, false)); print("OK"); } S cleanIt(S content, bool verbose) { new CleanFluidTextFile cleaner; cleaner.verbose = verbose; cleaner.maxRefLength = maxRefLength; cleaner.reader = stringReader(content); new StringWriter writer; cleaner.writer = writer; cleaner.run(); ret str(writer); } }