From f59c43d528da37edddb82705824d6b55996cff31 Mon Sep 17 00:00:00 2001 From: Matt Kantor Date: Thu, 2 Jan 2025 19:55:57 -0500 Subject: [PATCH] Omit all ordinal property keys in pretty plz notation --- src/language/unparsing/pretty-plz.ts | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/language/unparsing/pretty-plz.ts b/src/language/unparsing/pretty-plz.ts index 99de60b..7e4cbad 100644 --- a/src/language/unparsing/pretty-plz.ts +++ b/src/language/unparsing/pretty-plz.ts @@ -132,19 +132,25 @@ const sugarFreeMolecule = (value: Molecule) => { return either.makeRight(openBrace + closeBrace) } else { const keyValuePairsAsStrings: string[] = [] + let ordinalPropertyKeyCounter = 0n for (const [propertyKey, propertyValue] of entries) { const valueAsStringResult = atomOrMolecule(propertyValue) if (either.isLeft(valueAsStringResult)) { return valueAsStringResult } - keyValuePairsAsStrings.push( - // TODO: Intelligently omit all ordinal property keys, not just `0`. - (propertyKey === '0' - ? '' - : kleur.cyan(quoteIfNecessary(propertyKey).concat(colon)).concat(' ') - ).concat(valueAsStringResult.value), - ) + // Omit ordinal property keys: + if (propertyKey === String(ordinalPropertyKeyCounter)) { + keyValuePairsAsStrings.push(valueAsStringResult.value) + ordinalPropertyKeyCounter += 1n + } else { + keyValuePairsAsStrings.push( + kleur + .cyan(quoteIfNecessary(propertyKey).concat(colon)) + .concat(' ') + .concat(valueAsStringResult.value), + ) + } } return either.makeRight(