Quick Start
Basic Usage
Section titled “Basic Usage”Create a filter and check files:
package main
import ( "fmt" "github.com/LarsArtmann/gogenfilter")
func main() { f := gogenfilter.NewFilter( gogenfilter.Enabled(), gogenfilter.WithFilterOptions(gogenfilter.FilterAll), )
filtered, err := f.ShouldFilter("db/models.go") if err != nil { panic(err) }
if filtered { fmt.Println("skipping generated file") }}Filter Specific Generators
Section titled “Filter Specific Generators”Target only the generators you care about:
f := gogenfilter.NewFilter( gogenfilter.Enabled(), gogenfilter.WithFilterOptions( gogenfilter.FilterSQLC, gogenfilter.FilterTempl, ),)With Metrics
Section titled “With Metrics”Track what gets filtered and why:
f := gogenfilter.NewFilter( gogenfilter.Enabled(), gogenfilter.WithFilterOptions(gogenfilter.FilterAll),)
f.ShouldFilter("db/models.go")f.ShouldFilter("page_templ.go")f.ShouldFilter("main.go")
stats := f.GetStats()fmt.Printf("Checked: %d, Filtered: %d\n", stats.TotalFilesChecked, stats.TotalFiltered())Disabled Filter
Section titled “Disabled Filter”A disabled filter passes everything through — useful for feature flags:
f := gogenfilter.NewFilter(gogenfilter.Disabled())filtered, _ := f.ShouldFilter("db/models.go") // always falseLow-Level Detection
Section titled “Low-Level Detection”Use detection functions directly without creating a Filter:
content, _ := os.ReadFile("db/models.go")
reason := gogenfilter.DetectReason("db/models.go", string(content), gogenfilter.FilterSQLC, gogenfilter.FilterGeneric,)
if reason != gogenfilter.ReasonNotFiltered { fmt.Printf("Generated by: %s\n", reason)}