summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-03-27 06:26:01 -0500
committerJeff Carr <[email protected]>2025-03-27 06:26:01 -0500
commit1b7d44ec42bc5be8f07bb67c0fbbddf36f2e3050 (patch)
tree9fc2157180c98e1b1d3493516ec73394343d2fbf
parentebf856a579281c4aea7630d3cc712adac5bb21d7 (diff)
add an enum for messages
-rw-r--r--Makefile4
-rw-r--r--argv.go3
-rw-r--r--file.proto18
-rw-r--r--main.go4
-rw-r--r--protoReformat.go47
5 files changed, 43 insertions, 33 deletions
diff --git a/Makefile b/Makefile
index 3d007b6..351bcae 100644
--- a/Makefile
+++ b/Makefile
@@ -45,7 +45,7 @@ build:
cp -f autogenpb autogenpb.${BUILDTIME}
bak:
- mv -f autogenpb autogenpb.last
+ cp -f autogenpb autogenpb.last
redo-protobuf:
rm -f *.pb.go
@@ -63,7 +63,7 @@ proto:
# use the current autogenpb
proto-local: bak clean
- ./autogenpb.last --proto file.proto --package main
+ ./autogenpb.last --proto file.proto --package main --no-format
junk:
cd example; rm -f go.* *.pb.go
diff --git a/argv.go b/argv.go
index b85be17..0f248cb 100644
--- a/argv.go
+++ b/argv.go
@@ -19,7 +19,8 @@ type args struct {
Regret bool `arg:"--regret" help:"ignore needed UUID. You will eventually regret this."`
Delete bool `arg:"--delete" help:"use delete with copy experiment"`
DryRun bool `arg:"--dry-run" help:"check the .proto syntax, but don't do anything"`
- Format bool `arg:"--format" help:"only reformat the .proto file"`
+ Format bool `arg:"--format" help:"eformat the .proto file and exit"`
+ NoFormat bool `arg:"--no-format" help:"do not auto-reformat the .proto file"`
GoSrc string `arg:"--go-src" help:"default is ~/go/src. could be set to your go.work path"`
GoPath string `arg:"--gopath" help:"the gopath of this repo"`
Identify string `arg:"--identify" help:"identify file"`
diff --git a/file.proto b/file.proto
index 5b8aeff..461b69f 100644
--- a/file.proto
+++ b/file.proto
@@ -61,15 +61,21 @@ message Sort {
// used to auto-format protobuf files
message FormatMsg {
- repeated string lines = 1; // keys to sort on
+ enum Type {
+ MESSAGE = 0;
+ ENUM = 1;
+ ONEOF = 2;
+ }
+
+ int64 depth = 1; // used to indent output
int64 maxVarname = 2; // max string length of var names
int64 maxVartype = 3; // max string length of var types
- repeated FormatMsg inceptionMsgs = 4; // messages inside messages
- repeated FormatMsg enums = 5; // locally defined enums
- repeated FormatMsg oneofs = 6; // locally defined oneofs
- string header = 7; // the 'message {','enum {', etc line
+ string header = 4; // the 'message {','enum {', etc line
+ repeated string notes = 5; // unknown lines or comments
+ repeated FormatMsg msgs = 6; // locally defined messages and enums
+ repeated string lines = 7; // the variables
string footer = 8; // the '}' line
- repeated string notes = 9; // unknown lines or comments
+ Type type = 9;
}
message Find {
diff --git a/main.go b/main.go
index 004ce5a..e4c510f 100644
--- a/main.go
+++ b/main.go
@@ -86,7 +86,9 @@ func main() {
log.Info("autogenpb parse error:", err)
badExit(err)
}
- protoReformat(argv.Proto)
+ if !argv.NoFormat {
+ protoReformat(argv.Proto)
+ }
if pf.Bases == nil {
badExit(fmt.Errorf("Base was nil. 'message %s {` did not exist", pf.Filebase))
diff --git a/protoReformat.go b/protoReformat.go
index d54ece1..adb9764 100644
--- a/protoReformat.go
+++ b/protoReformat.go
@@ -49,17 +49,15 @@ func protoReformat(filename string) error {
var newfile string
- /*
- _, junk := filepath.Split(filename)
- if junk != "SignalService.proto" {
- var allLinesIter iter.Seq[string]
- allLinesIter = makeLineIter(data)
- // gets the max vartype and varname
- for line := range allLinesIter {
- newfile += fmt.Sprintln(commentPreprocessor(line))
- }
- return saveFile(filename, newfile)
- }
+ /* check the comment preprocessor
+ log.Info("filename", filename)
+ alltest := makeLineIter(data)
+ // gets the max vartype and varname
+ for line := range alltest {
+ newfile += fmt.Sprintln(commentPreprocessor(line))
+ }
+ saveFile(filename, newfile)
+ os.Exit(-1)
*/
var fmtmsg *FormatMsg
@@ -374,23 +372,25 @@ func formatMessage(curmsg *FormatMsg) []string {
}
*/
- for _, msg := range curmsg.Enums {
- for _, newline := range formatEnum(msg) {
- newmsg = append(newmsg, newline)
+ /*
+ for _, msg := range curmsg.Enums {
+ for _, newline := range formatEnum(msg) {
+ newmsg = append(newmsg, newline)
+ }
}
- }
- for _, msg := range curmsg.Oneofs {
- for _, newline := range formatEnum(msg) {
- newmsg = append(newmsg, newline)
+ for _, msg := range curmsg.Oneofs {
+ for _, newline := range formatEnum(msg) {
+ newmsg = append(newmsg, newline)
+ }
}
- }
- for _, msg := range curmsg.InceptionMsgs {
- for _, newline := range formatMessage(msg) {
- newmsg = append(newmsg, newline)
+ for _, msg := range curmsg.Msgs {
+ for _, newline := range msg.format() {
+ newmsg = append(newmsg, newline)
+ }
}
- }
+ */
for _, line := range curmsg.Lines {
line = strings.TrimSpace(line)
@@ -452,6 +452,7 @@ func (it *LinesScanner) Next() string {
}
// out := commentPreprocessor(it.things[it.index-1])
out := it.things[it.index-1]
+ out = commentPreprocessor(out)
// return strings.TrimSpace(out)
return out
}