gopkg.in/src-d/enry.v1@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}}