Skip to content

Commit

Permalink
Merge pull request #5 from srikrsna/embeds
Browse files Browse the repository at this point in the history
Fix embebed messages
  • Loading branch information
srikrsna authored Sep 21, 2019
2 parents a39b1bd + 0e21899 commit 60b27de
Show file tree
Hide file tree
Showing 8 changed files with 159 additions and 42 deletions.
136 changes: 115 additions & 21 deletions example/example.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions example/example.proto
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,13 @@ message SecondMessage {
string with_new_multiple = 2 [(tagger.tags) = "graphql:\"withNewTags,optional\" xml:\"multi,omitempty\"" ];

string replace_default = 3 [(tagger.tags) = "json:\"replacePrevious\""] ;
}

message ThirdExample {
message InnerExample {
string id = 1 [(tagger.tags) = "json:\"yes\""];
int32 yes = 2 [(tagger.tags) = "json:\"id\""];
}

InnerExample inner_example = 1 [(tagger.tags) = "json:\"inner\""];
}
7 changes: 5 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
module github.com/srikrsna/protoc-gen-gotag

go 1.11

require (
github.com/fatih/structtag v1.0.0
github.com/golang/protobuf v1.3.1
github.com/lyft/protoc-gen-star v0.4.9
github.com/golang/protobuf v1.3.2
github.com/lyft/protoc-gen-star v0.4.11
github.com/spf13/afero v1.2.2 // indirect
github.com/stretchr/objx v0.2.0 // indirect
golang.org/x/crypto v0.0.0-20190418165655-df01cb2cc480 // indirect
golang.org/x/net v0.0.0-20190419010253-1f3472d942ba // indirect
golang.org/x/sync v0.0.0-20190412183630-56d357773e84 // indirect
golang.org/x/sys v0.0.0-20190418153312-f0ce4c0180be // indirect
golang.org/x/text v0.3.2 // indirect
)
7 changes: 7 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,14 @@ github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/lyft/protoc-gen-star v0.3.7 h1:W4dlsAyWiwWTKVRP6ujIR+dzIFcCaZmYH6rI4RYqXDE=
github.com/lyft/protoc-gen-star v0.3.7/go.mod h1:mE8fbna26u7aEA2QCVvvfBU/ZrPgocG1206xAFPcs94=
github.com/lyft/protoc-gen-star v0.4.9 h1:dm1l/IvkdW3IzdwrqPu2ywcBdqZ7hp+ppzN/AJZg0Z0=
github.com/lyft/protoc-gen-star v0.4.9/go.mod h1:mE8fbna26u7aEA2QCVvvfBU/ZrPgocG1206xAFPcs94=
github.com/lyft/protoc-gen-star v0.4.11 h1:zW6fJQBtCtVeSiO/Kbpzv32GO0J/Z8egSLeohES202w=
github.com/lyft/protoc-gen-star v0.4.11/go.mod h1:mE8fbna26u7aEA2QCVvvfBU/ZrPgocG1206xAFPcs94=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/spf13/afero v1.1.1 h1:Lt3ihYMlE+lreX1GS4Qw4ZsNpYQLxIXKBTEOXm3nt6I=
Expand All @@ -35,3 +39,6 @@ golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190418153312-f0ce4c0180be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
2 changes: 1 addition & 1 deletion main.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ import (
)

func main() {
pgs.Init().RegisterModule(module.New()).RegisterPostProcessor(pgsgo.GoFmt()).Render()
pgs.Init(pgs.DebugMode()).RegisterModule(module.New()).RegisterPostProcessor(pgsgo.GoFmt()).Render()
}
16 changes: 9 additions & 7 deletions module/extract.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,21 @@ package module

import (
"github.com/fatih/structtag"
"github.com/lyft/protoc-gen-star"
pgs "github.com/lyft/protoc-gen-star"
pgsgo "github.com/lyft/protoc-gen-star/lang/go"
"github.com/srikrsna/protoc-gen-gotag/tagger"
)

type tagExtractor struct {
pgs.Visitor
pgs.DebuggerCommon
pgsgo.Context

tags map[string]map[string]*structtag.Tags
}

func newTagExtractor(d pgs.DebuggerCommon) *tagExtractor {
v := &tagExtractor{DebuggerCommon: d}
func newTagExtractor(d pgs.DebuggerCommon, ctx pgsgo.Context) *tagExtractor {
v := &tagExtractor{DebuggerCommon: d, Context: ctx}
v.Visitor = pgs.PassThroughVisitor(v)
return v
}
Expand All @@ -35,13 +37,13 @@ func (v *tagExtractor) VisitOneOf(o pgs.OneOf) (pgs.Visitor, error) {
return nil, err
}

msgName := o.Message().Name().UpperCamelCase().String()
msgName := v.Context.Name(o.Message()).String()

if v.tags[msgName] == nil {
v.tags[msgName] = map[string]*structtag.Tags{}
}

v.tags[msgName][o.Name().UpperCamelCase().String()] = tags
v.tags[msgName][v.Context.Name(o).String()] = tags

return v, nil
}
Expand All @@ -60,7 +62,7 @@ func (v *tagExtractor) VisitField(f pgs.Field) (pgs.Visitor, error) {
tags, err := structtag.Parse(tval)
v.CheckErr(err)

msgName := f.Message().Name().UpperCamelCase().String()
msgName := v.Context.Name(f.Message()).String()

if f.InOneOf() {
msgName = f.Message().Name().UpperCamelCase().String() + "_" + f.Name().UpperCamelCase().String()
Expand All @@ -70,7 +72,7 @@ func (v *tagExtractor) VisitField(f pgs.Field) (pgs.Visitor, error) {
v.tags[msgName] = map[string]*structtag.Tags{}
}

v.tags[msgName][f.Name().UpperCamelCase().String()] = tags
v.tags[msgName][v.Context.Name(f).String()] = tags

return v, nil
}
Expand Down
4 changes: 2 additions & 2 deletions module/tagger.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
"strings"

"github.com/fatih/structtag"
"github.com/lyft/protoc-gen-star"
pgs "github.com/lyft/protoc-gen-star"
pgsgo "github.com/lyft/protoc-gen-star/lang/go"
)

Expand Down Expand Up @@ -38,7 +38,7 @@ func (m mod) Execute(targets map[string]pgs.File, packages map[string]pgs.Packag
xt, err := structtag.Parse(xtv)
m.CheckErr(err)

extractor := newTagExtractor(m)
extractor := newTagExtractor(m, m.Context)
for _, f := range targets {
tags := extractor.Extract(f)

Expand Down
20 changes: 11 additions & 9 deletions tagger/tagger.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 60b27de

Please sign in to comment.