Changelog¶
2026.05.14.1¶
Bump
literalizerto 2026.5.14.1.YAML inputs with non-string dict keys (integers, dates, booleans) now flow through to the target language’s value-formatting path instead of being silently stringified. Languages that can represent the key natively (Python, Ruby, Clojure, Lua, Bash, and others) produce the corresponding literal; languages whose dict syntax requires string keys or a homogeneous typed map surface the new upstream
UnrepresentableInputErroras a clean CLI error.
2026.05.14¶
Bump
literalizerto 2026.5.14.--variable-name(with--new-variable/--no-new-variableand--modifier) now applies in--mode callas well, wrapping the rendered call in the language’s idiomatic per-language variable binding (e.g.let user = createUser(...),const user = createUser(...),user = create_user(...)). Mutability and inference are picked up from--declaration-styleand--modifierexactly as in literal mode. Languages whose declaration template wraps or transforms the right-hand side in a way only valid for literal values (e.g. Bash command substitution, Objective-C boxing, tagged-enum heterogeneous-strategy languages) surface the upstreamUnsupportedCallShapeErroras a clean CLI error, as does the combination with--per-element(which has no per-element name vector).
2026.05.13¶
Bump
literalizerto 2026.5.13.1. The new release re-exposes thesupports_*class attributes forempty_dict_key,call_style, and the fivedefault_*_typeoptions, restoring a type-safe probe for runtime-dispatched constructor kwargs (cf. upstream issue #2147).Replace
--line-endingwith--statement-terminator-style. The upstreamLineEndingsenum was removed;StatementTerminatorStyles(semicolon,none) is its successor.Add
--call-stylefor picking between per-language call shapes (e.g.curriedfor Haskell / OCaml / F# / SML / Elm,namedfor Visual Basic).Add
--numeric-stylefor languages that support multiple numeric rendering styles (e.g.overloadedvs.explicit).Add
--language-versionfor selecting the target language version (each language exposes aVersionFormatsenum).Add
--module-namefor languages whose--wrap-in-fileform introduces a named scope (C, C++, D, Erlang, Fortran, F#, Java, Objective-C, Occam, SystemVerilog). Previously amodule_nameargument toliteralizeitself, now a per-language constructor argument.Add
--ref-keyfor picking a marker key other than$reffor variable-reference mappings in the input data.Surface the new typed
literalizerexceptions as clean CLI errors rather than tracebacks:UnsupportedCallShapeError,VariableNameNotSupportedError,WrapInFileWithoutVariableNotSupportedError,WrapCombinedInFileNotSupportedError,DottedCallTargetNotSupportedError,DottedCallStubNotSupportedError,FreeFunctionCallNotSupportedError,CallArgNotSupportedError,HeterogeneousScalarCollectionError,UnrepresentableSpecialFloatError.--variable-type-hints autois now--variable-type-hints never(upstream rename), with a newsafeoption that annotates only when the language’s own inference would widen the variable to a permissive type (e.g.unknown[]for an empty TypeScript array).
2026.04.30¶
Bump
literalizerto 2026.4.29 (adds Roc, Wren, Mojo, V, Ada, Nim, Tcl, Scheme, PureScript, OCaml, SystemVerilog, COBOL, Fortran, Dart, Dhall, Elixir, Elm, and PowerShell toliteralize_callsupport).Add
--ref-casefor emitting$refmarkers in input data as bare identifiers re-cased tosnake,camel,pascal,upper_snake, orkebab.Bump
literalizerto 2026.4.21.4.Add
--heterogeneous-strategyto pick between per-language strategies for collections with mixed scalar types (e.g. Rust’stagged_enum, which emits a generated taggedenumpreamble and wraps each value at the call site).Surface
literalize_callerrors as clean CLI messages rather than tracebacks: parameter-count mismatches, languages with no call syntax (YAML, TOML, JSON5, Norg), and languages whose call rendering is not yet implemented all now exit with a descriptiveError:line.Add
--modifier(repeatable) for declaration modifiers on new variables in languages that support them (Java, C#, C++).Remove
--error-on-coercion:literalizernow always errors on heterogeneous data that cannot be represented in the target language.Add
--mode callfor converting data into function call expressions, with--call-function,--call-params, and--per-elementoptions.
2026.04.06¶
2026.03.29¶
Bump
literalizerto 2026.03.26.1.Replace
--line-prefixCLI option with--pre-indent-level.