Quick Start
Basic Usage
Section titled “Basic Usage”Create a filter and check files:
package main
import ( "fmt"
"github.com/LarsArtmann/gogenfilter/v3")
func main() { opts, err := gogenfilter.WithFilterOptions(gogenfilter.FilterAll) if err != nil { panic(err) }
f, err := gogenfilter.NewFilter(opts) if err != nil { panic(err) }
filtered, err := f.Filter("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:
opts, err := gogenfilter.WithFilterOptions( gogenfilter.FilterSQLC, gogenfilter.FilterTempl,)if err != nil { panic(err)}f, err := gogenfilter.NewFilter(opts)if err != nil { panic(err)}Detailed Results
Section titled “Detailed Results”Get detailed information about why a file was filtered:
opts, err := gogenfilter.WithFilterOptions(gogenfilter.FilterAll)if err != nil { panic(err)}f, err := gogenfilter.NewFilter(opts)if err != nil { panic(err)}
result, err := f.FilterDetailed("db/models.go")if result.Filtered { fmt.Printf("Reason: %s, Trace: %s\n", result.Reason, result.Trace)}Disabled Filter
Section titled “Disabled Filter”A disabled filter passes everything through — useful for feature flags:
f, _ := gogenfilter.NewFilter()filtered, _ := f.Filter("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)}