package slinguist // CODE GENERATED AUTOMATICALLY WITH github.com/src-d/simple-linguist/cli/slinguist-generate // THIS FILE SHOULD NOT BE EDITED BY HAND // Extracted from github/linguist commit: {{ getCommit }} import ( "path/filepath" "regexp" "strings" ) func GetLanguageByContent(filename string, content []byte) (lang string, safe bool) { ext := strings.ToLower(filepath.Ext(filename)) if fnMatcher, ok := matchers[ext]; ok { lang, safe = fnMatcher(content) return } return GetLanguageByExtension(filename) } type languageMatcher func ([]byte) (string, bool) var matchers = map[string]languageMatcher{ {{ range $index, $disambiguator := . -}} {{ printf "%q" $disambiguator.Extension }}: func(i []byte) (string, bool) { {{ 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(i) {{- if lt $j (len $language.LogicRelations) }} {{index $language.LogicRelations $j}} {{- end -}} {{ end }} { return {{ printf "%q" $language.Language }}, true } {{- end -}} {{- end -}} {{- end}} return {{ returnLanguage $disambiguator.Languages }}, {{ safeLanguage $disambiguator.Languages }} }, {{ end -}} } var ( {{ range $index, $heuristic := getAllHeuristics . -}} {{ $heuristic.Name }} = regexp.MustCompile(`{{ $heuristic.Regexp }}`) {{ end -}} )