Skip to content

Commit

Permalink
Feat:copy service comment to interfaces
Browse files Browse the repository at this point in the history
  • Loading branch information
silves-xiang committed May 22, 2024
1 parent e22436a commit dd41c8f
Show file tree
Hide file tree
Showing 8 changed files with 81 additions and 0 deletions.
6 changes: 6 additions & 0 deletions channelz/grpc_channelz_v1/channelz_grpc.pb.go

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

17 changes: 17 additions & 0 deletions cmd/protoc-gen-go-grpc/grpc.go
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,16 @@ func generateFileContent(gen *protogen.Plugin, file *protogen.File, g *protogen.
}
}

// copyCommentsFromProto copies the comments from the RPC proto definitions
// to the corresponding generated interface file.
func genServiceComments(g *protogen.GeneratedFile, service *protogen.Service) {
if service.Comments.Leading != "" {
// Add empty comment line to attach this service's comments to the godoc comments previously output for all services.
g.P("//")
g.P(strings.TrimSpace(service.Comments.Leading.String()))
}
}

func genService(gen *protogen.Plugin, file *protogen.File, g *protogen.GeneratedFile, service *protogen.Service) {
// Full methods constants.
helper.genFullMethods(g, service)
Expand All @@ -198,6 +208,9 @@ func genService(gen *protogen.Plugin, file *protogen.File, g *protogen.Generated
g.P("//")
g.P("// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.")

// Copy comments from proto file.
genServiceComments(g, service)

if service.Desc.Options().(*descriptorpb.ServiceOptions).GetDeprecated() {
g.P("//")
g.P(deprecationComment)
Expand Down Expand Up @@ -251,6 +264,10 @@ func genService(gen *protogen.Plugin, file *protogen.File, g *protogen.Generated
g.P("// ", serverType, " is the server API for ", service.GoName, " service.")
g.P("// All implementations ", mustOrShould, " embed Unimplemented", serverType)
g.P("// for forward compatibility")

// Copy comments from proto file.
genServiceComments(g, service)

if service.Desc.Options().(*descriptorpb.ServiceOptions).GetDeprecated() {
g.P("//")
g.P(deprecationComment)
Expand Down
4 changes: 4 additions & 0 deletions examples/features/proto/echo/echo_grpc.pb.go

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

4 changes: 4 additions & 0 deletions examples/helloworld/helloworld/helloworld_grpc.pb.go

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

4 changes: 4 additions & 0 deletions examples/route_guide/routeguide/route_guide_grpc.pb.go

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

8 changes: 8 additions & 0 deletions health/grpc_health_v1/health_grpc.pb.go

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

32 changes: 32 additions & 0 deletions interop/grpc_testing/test_grpc.pb.go

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

6 changes: 6 additions & 0 deletions profiling/proto/service_grpc.pb.go

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

0 comments on commit dd41c8f

Please sign in to comment.