From 2c8b79a7eb7469774e333aff08acb7be45be529d Mon Sep 17 00:00:00 2001 From: trobro Date: Wed, 27 Aug 2025 18:32:27 +0200 Subject: [PATCH 1/2] hjson-cli -preserveComments --- hjson-cli/main.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/hjson-cli/main.go b/hjson-cli/main.go index 7f8bb6a..74f4a7f 100644 --- a/hjson-cli/main.go +++ b/hjson-cli/main.go @@ -47,6 +47,7 @@ func main() { var quoteAlways = flag.Bool("quoteAlways", false, "Always quote string values.") var showVersion = flag.Bool("v", false, "Show version.") var preserveKeyOrder = flag.Bool("preserveKeyOrder", false, "Preserve key order in objects/maps.") + var preserveComments = flag.Bool("preserveComments", false, "Preserve comments (and key order) in Hjson output.") flag.Parse() if *help || flag.NArg() > 1 { @@ -78,9 +79,11 @@ func main() { var value interface{} - if *preserveKeyOrder { + if *preserveKeyOrder || *preserveComments { var node *hjson.Node - err = hjson.Unmarshal(data, &node) + opt := hjson.DefaultDecoderOptions() + opt.WhitespaceAsComments = false + err = hjson.UnmarshalWithOptions(data, &node, opt) value = node } else { err = hjson.Unmarshal(data, &value) @@ -108,7 +111,7 @@ func main() { opt.BracesSameLine = *bracesSameLine opt.EmitRootBraces = !*omitRootBraces opt.QuoteAlways = *quoteAlways - opt.Comments = false + opt.Comments = *preserveComments out, err = hjson.MarshalWithOptions(value, opt) if err != nil { panic(err) From 7b5fe5413b7bef25131dfd4bab76d164a90efc43 Mon Sep 17 00:00:00 2001 From: trobro Date: Wed, 27 Aug 2025 18:36:25 +0200 Subject: [PATCH 2/2] better help --- hjson-cli/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hjson-cli/main.go b/hjson-cli/main.go index 74f4a7f..7da87f9 100644 --- a/hjson-cli/main.go +++ b/hjson-cli/main.go @@ -47,7 +47,7 @@ func main() { var quoteAlways = flag.Bool("quoteAlways", false, "Always quote string values.") var showVersion = flag.Bool("v", false, "Show version.") var preserveKeyOrder = flag.Bool("preserveKeyOrder", false, "Preserve key order in objects/maps.") - var preserveComments = flag.Bool("preserveComments", false, "Preserve comments (and key order) in Hjson output.") + var preserveComments = flag.Bool("preserveComments", false, "Preserve comments in Hjson output (and key order in any output).") flag.Parse() if *help || flag.NArg() > 1 {