ugly-config
v0.3.0
Published
A simple configuration language
Downloads
7
Readme
UGL, the ugly configuration language
Line-based; one key and data value per line, for Git-friendliness Indentation-based grouping; canonically one \t per indentation level but parsing will accept any whitespace as long as the relative character counts work out The rationale for indentation-based grouping is it keeps all grouping semantics local to the individual line rather than there being lines with only brackets everywhere Git frequently messes up merges due to lining up lone braces rather than similar code lines; using significant indentation removes that possibility A tab is considered equal to 8 spaces for the purposes of parsing mixed indentation, since Windows Notepad and MacOS TextEdit use 8-space tabs
Implementation ideas: Detect recursive structures by recursing through each prop's type and breaking if a parent type is found Use function parameter hinting in VS Code for showing field metadata and tuple subfields Maybe represent conflicting field definitions as function overloads?