package data import "gopkg.in/toqueteos/substring.v1" type languageMatcher func ([]byte) []string var ContentMatchers = map[string]languageMatcher{ {{ range $index, $disambiguator := . -}} {{ printf "%q" $disambiguator.Extension }}: func(i []byte) []string { {{ range $i, $language := $disambiguator.Languages -}} {{- if not (avoidLanguage $language) }} {{- if gt (len $language.Heuristics) 0 }} {{- if gt $i 0 }} else {{ end -}} if {{- range $j, $heuristic := $language.Heuristics }} {{ $heuristic.Name }}.Match(string(i)) {{- if lt $j (len $language.LogicRelations) }} {{index $language.LogicRelations $j}} {{- end -}} {{ end }} { return []string{ {{- printf "%q" $language.Language -}} } } {{- end -}} {{- end -}} {{- end}} return {{ returnLanguages $disambiguator.Languages | returnStringSlice }} }, {{ end -}} } var ( {{ range $index, $heuristic := getAllHeuristics . -}} {{ $heuristic.Name }} = substring.Regexp(`{{ $heuristic.Regexp }}`) {{ end -}} )