From c5e2e0f993dd606d79a5f790afaadcebc3358532 Mon Sep 17 00:00:00 2001 From: "sashakoshka@tebibyte.media" Date: Wed, 22 Jan 2025 16:56:05 -0500 Subject: [PATCH] generate: Fix broken doc comments --- generate/generate.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/generate/generate.go b/generate/generate.go index 6f3a1cd..0c40be2 100644 --- a/generate/generate.go +++ b/generate/generate.go @@ -3,6 +3,7 @@ package generate import "io" import "fmt" import "bufio" +import "strings" const send = `// Send sends one message along a transaction. @@ -62,7 +63,6 @@ func (this *Protocol) Generate(writer io.Writer, packag string) error { if err != nil { return err } } - // TODO return nil } @@ -86,13 +86,13 @@ func (this *Protocol) receive(out io.Writer) error { } func (this *Protocol) defineMessage(out io.Writer, message Message) error { - fmt.Fprintf(out, "// (%d) %s\n", message.Method, message.Doc) + fmt.Fprintln(out, comment("//", fmt.Sprintf("(%d) %s\n", message.Method, message.Doc))) fmt.Fprintf(out, "type Message%s struct {\n", message.Name) for _, field := range message.Fields { typ, err := this.ResolveType(field.Type) if err != nil { return err } if field.Doc != "" { - fmt.Fprintf(out, "\t// %s\n", field.Doc) + fmt.Fprintf(out, "\t%s\n", comment("\t//", field.Doc)) } if field.Optional { typ = fmt.Sprintf("hopp.Option[%s]", typ) @@ -246,7 +246,9 @@ func (this *Protocol) unmarshalMessage(out io.Writer, message Message) error { fmt.Fprintf(out, "\t\t\tmsg.%s.Set(value)\n", field.Name) } else { fmt.Fprintf(out, "\t\t\tmsg.%s = value\n", field.Name) - fmt.Fprintf(out, "\t\t\tfoundRequired ++\n") + if requiredTotal > 0 { + fmt.Fprintf(out, "\t\t\tfoundRequired ++\n") + } } } fmt.Fprintf(out, "\t\t}\n") @@ -288,3 +290,7 @@ func (this *Protocol) unmarshalField(out io.Writer, field Field) error { } return nil } + +func comment(prefix, text string) string { + return prefix + " " + strings.ReplaceAll(strings.TrimSpace(text), "\n", "\n" + prefix + " ") +}