Skip to content

Commit 36e4b25

Browse files
committed
Feat:copy service comment to interfaces
1 parent e22436a commit 36e4b25

File tree

8 files changed

+81
-0
lines changed

8 files changed

+81
-0
lines changed

channelz/grpc_channelz_v1/channelz_grpc.pb.go

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/protoc-gen-go-grpc/grpc.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,16 @@ func generateFileContent(gen *protogen.Plugin, file *protogen.File, g *protogen.
187187
}
188188
}
189189

190+
// genServiceComments copies the comments from the RPC proto definitions
191+
// to the corresponding generated interface file.
192+
func genServiceComments(g *protogen.GeneratedFile, service *protogen.Service) {
193+
if service.Comments.Leading != "" {
194+
// Add empty comment line to attach this service's comments to the godoc comments previously output for all services.
195+
g.P("//")
196+
g.P(strings.TrimSpace(service.Comments.Leading.String()))
197+
}
198+
}
199+
190200
func genService(gen *protogen.Plugin, file *protogen.File, g *protogen.GeneratedFile, service *protogen.Service) {
191201
// Full methods constants.
192202
helper.genFullMethods(g, service)
@@ -198,6 +208,9 @@ func genService(gen *protogen.Plugin, file *protogen.File, g *protogen.Generated
198208
g.P("//")
199209
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.")
200210

211+
// Copy comments from proto file.
212+
genServiceComments(g, service)
213+
201214
if service.Desc.Options().(*descriptorpb.ServiceOptions).GetDeprecated() {
202215
g.P("//")
203216
g.P(deprecationComment)
@@ -251,6 +264,10 @@ func genService(gen *protogen.Plugin, file *protogen.File, g *protogen.Generated
251264
g.P("// ", serverType, " is the server API for ", service.GoName, " service.")
252265
g.P("// All implementations ", mustOrShould, " embed Unimplemented", serverType)
253266
g.P("// for forward compatibility")
267+
268+
// Copy comments from proto file.
269+
genServiceComments(g, service)
270+
254271
if service.Desc.Options().(*descriptorpb.ServiceOptions).GetDeprecated() {
255272
g.P("//")
256273
g.P(deprecationComment)

examples/features/proto/echo/echo_grpc.pb.go

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/helloworld/helloworld/helloworld_grpc.pb.go

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/route_guide/routeguide/route_guide_grpc.pb.go

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

health/grpc_health_v1/health_grpc.pb.go

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

interop/grpc_testing/test_grpc.pb.go

Lines changed: 32 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

profiling/proto/service_grpc.pb.go

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)