github.com/rohankumardubey/go-enry@v1.7.3/internal/code-generator/assets/content.go.tmpl (about) 1 package data 2 3 import ( 4 "regexp" 5 6 "gopkg.in/src-d/enry.v1/data/rule" 7 ) 8 9 var ContentHeuristics = map[string]*Heuristics{ 10 {{ range $ext, $rules := . -}} 11 {{ printf "%q" $ext }}: &Heuristics{ 12 {{ range $rule := $rules -}} 13 {{template "Rule" $rule}} 14 {{ end -}} 15 }, 16 {{ end -}} 17 } 18 19 {{ define "Rule" -}} 20 {{ if eq .Op "And" -}} 21 rule.And( 22 {{ template "Languages" .Langs -}} 23 {{ range $rule := .Rules -}} 24 {{template "Rule" $rule}} 25 {{ end -}} 26 ), 27 {{- else if eq .Op "Or" -}} 28 rule.Or( 29 {{ template "Languages" .Langs -}} 30 regexp.MustCompile(`{{ .Pattern }}`), 31 ), 32 {{- else if eq .Op "Not" -}} 33 rule.Not( 34 {{ template "Languages" .Langs -}} 35 regexp.MustCompile(`{{ .Pattern }}`), 36 ), 37 {{- else if eq .Op "Always" -}} 38 rule.Always( 39 {{ template "Languages" .Langs -}} 40 ), 41 {{ end -}} 42 {{ end -}} 43 44 45 {{define "Languages" -}} 46 {{with . -}} 47 rule.MatchingLanguages( {{range .}} {{printf "\"%s\"" .}}, {{end}} ), 48 {{ else -}} 49 rule.MatchingLanguages(""), 50 {{end -}} 51 {{end}}