Skip to content

Supported Generators

gogenfilter detects files generated by 18 code generation tools through a two-phase approach: filename patterns first (zero I/O), then content markers.

Tool Filename Detection Content Detection
sqlc models.go, querier.go, query.sql.go, batch.go, *.sql.go "Code generated by sqlc"
templ _templ.go suffix Code generated by templ
go-enum _enum.go suffix "Code generated by go-enum"
protobuf .pb.go, _grpc.pb.go suffix Code generated by protoc-gen-go
oapi-codegen None oapi-codegen content marker
deepcopy-gen zz_generated.* prefix + .go suffix "Code generated by deepcopy-gen"
wire wire_gen.go suffix "Code generated by Wire"
moq _moq.go, _moq_test.go suffix "Code generated by moq"
mockgen _mock.go suffix "Code generated by MockGen"
stringer None `“Code generated by "stringer"”
mockery mock_ prefix "Code generated by mockery"
ent None "Code generated by ent" / "Code generated by entc"
gqlgen None "Code generated by github.com/99designs/gqlgen"
easyjson _easyjson.go suffix "Code generated by easyjson"
msgp None "Code generated by github.com/tinylib/msgp"
counterfeiter fake_ prefix "Code generated by counterfeiter"
go-swagger None "Code generated by go-swagger"
Generic fallback None Any // Code generated by comment

The generic detector catches any tool that follows Go’s standard code generation comment convention from go.dev/s/generatedcode. This means even tools not explicitly supported will be detected if they include the standard comment.

The detector table is the single source of truth. Each entry has:

  • An option (FilterOption)
  • A reason (FilterReason)
  • An optional matchFilename function (Phase 1)
  • An optional checkContent function (Phase 2)

Derived lists like AllFilterOptions() and AllFilterReasons() are auto-generated from this table.