summaryrefslogtreecommitdiff
path: root/protoReformat.go
diff options
context:
space:
mode:
Diffstat (limited to 'protoReformat.go')
-rw-r--r--protoReformat.go74
1 files changed, 54 insertions, 20 deletions
diff --git a/protoReformat.go b/protoReformat.go
index 6afb93f..664e792 100644
--- a/protoReformat.go
+++ b/protoReformat.go
@@ -76,12 +76,12 @@ func protoReformat(filename string) error {
var newfile string
- var fmtmsg *FormatMsg
- fmtmsg = new(FormatMsg)
-
var bigName int64
var bigType int64
+ var fmtmsg *FormatMsg
+ fmtmsg = new(FormatMsg)
+
var inMessage bool
var allLinesIter iter.Seq[string]
allLinesIter = makeLineIter(data)
@@ -110,10 +110,15 @@ func protoReformat(filename string) error {
if !inMessage {
continue
}
- fmtmsg.Lines = append(fmtmsg.Lines, line)
}
- fmtmsg.MaxVarname = bigName
- fmtmsg.MaxVartype = bigType
+
+ var basemsg *FormatMsg
+ basemsg = new(FormatMsg)
+ basemsg.MaxVarname = bigName
+ basemsg.MaxVartype = bigType
+ inMessage = false
+
+ var comments string
// write out the messages
allTheLines = newLinesScanner(strings.Split(string(data), "\n"))
@@ -121,35 +126,59 @@ func protoReformat(filename string) error {
line := allTheLines.NextRaw()
if strings.HasPrefix(line, "oneof ") {
- newmsg := fmtmsg.newOneofMessage(line)
+ newmsg := basemsg.newOneofMessage(line)
+ newmsg.msgPB.Notes = strings.Split(comments, "\n")
newmsg.load()
- for _, newline := range newmsg.msgPB.format() {
- newfile += fmt.Sprintln(newline)
- }
+ basemsg.Msgs = append(basemsg.Msgs, newmsg.msgPB)
+ /*
+ for _, newline := range newmsg.msgPB.format() {
+ newfile += fmt.Sprintln(newline)
+ }
+ */
+ inMessage = true
continue
}
if strings.HasPrefix(line, "enum ") {
- newmsg := fmtmsg.newEnumMessage(line)
+ newmsg := basemsg.newEnumMessage(line)
+ newmsg.msgPB.Notes = strings.Split(comments, "\n")
newmsg.load()
+ basemsg.Msgs = append(basemsg.Msgs, newmsg.msgPB)
// loadEnumDefinition(newmsg)
- for _, newline := range newmsg.msgPB.format() {
- newfile += fmt.Sprintln(newline)
- }
+ /*
+ for _, newline := range newmsg.msgPB.format() {
+ newfile += fmt.Sprintln(newline)
+ }
+ */
+ inMessage = true
continue
}
if strings.HasPrefix(line, "message ") {
- newmsg := fmtmsg.newStdMessage(line)
- newmsg.load()
log.Info("got to message", line)
- for _, newline := range newmsg.msgPB.format() {
- newfile += fmt.Sprintln(newline)
- }
+
+ newmsg := basemsg.newStdMessage(line)
+ newmsg.msgPB.Notes = strings.Split(comments, "\n")
+ newmsg.load()
+ basemsg.Msgs = append(basemsg.Msgs, newmsg.msgPB)
+ /*
+ for _, newline := range newmsg.msgPB.format() {
+ newfile += fmt.Sprintln(newline)
+ }
+ */
+ inMessage = true
continue
}
- newfile += fmt.Sprintln(line)
+ if inMessage {
+ comments += fmt.Sprintln(line)
+ } else {
+ basemsg.Notes = append(basemsg.Notes, line)
+ }
+ }
+
+ for _, newline := range basemsg.format() {
+ newfile += fmt.Sprintln(newline)
}
return saveFile(filename, newfile)
@@ -375,6 +404,11 @@ func (msg *FormatMsg) format() []string {
func formatMessage(curmsg *FormatMsg) []string {
var newmsg []string
+ // print the Notes
+ for _, line := range curmsg.Notes {
+ newmsg = append(newmsg, line)
+ }
+
if curmsg.Header != "" {
line := fmt.Sprintf("%s%s // msg depth=%d", curmsg.padBase(), curmsg.Header, curmsg.Depth)
parts := strings.Fields(line)