[go: nahoru, domu]

Skip to content

Generate custom description for proto enum, support default value option

Notifications You must be signed in to change notification settings

windmeup/protoc-gen-enum-desc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

protoc-gen-enum-desc (pged)

inspired by PGV

Generate custom description for proto enum

Install

go install github.com/windmeup/protoc-gen-enum-desc/cmd/protoc-gen-enum-desc@latest

Usage

import "pged/enumdesc.proto"; // proto files in GO_HOME/pkg/mode/github.com/windmeup/...
enum ClientEvent {
  option (pged.default_description) = "unknown client event"; // default description, optional
  CLIENT_EVENT_UNSPECIFIED = 0;
  CLIENT_EVENT_START = 1 [(pged.description) = "client start"]; // description, optional
  CLIENT_EVENT_STOP = 2;
}

Generate code with protoc

protoc \
  -I . \
  -I path/to/pged/ \
  --go_out=":../generated" \
  --enum-desc_out="lang=go:../generated" \
  example.proto

Generate code with buf, recommend

# buf.yaml
version: v1
deps:
  - buf.build/windmeup/pged
breaking:
  use:
    - FILE
lint:
  use:
    - DEFAULT
# buf.gen.yaml
version: v1
plugins:
  - name: go
    out: .
    opt: paths=source_relative
  - name: enum-desc
    out: .
    opt:
      - paths=source_relative
      - lang=go
buf mod update
buf generate

Golang

  • go module
  go get github.com/windmeup/protoc-gen-enum-desc
  • get enum's description with Description() methods, which in generated files xxxxxx.pb.enumdesc.go
package example

import (
	"github.com/stretchr/testify/require"
	"testing"
)

func TestClient_ClientEvent_Description(t *testing.T) {
	require.Equal(t, "client start", Client_CLIENT_EVENT_START.Description())
}

Other languages

TODO

About

Generate custom description for proto enum, support default value option

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages