// Code generated by github.com/go-enry/go-enry/v2/internal/code-generator DO NOT EDIT. // Extracted from github/linguist commit: 6aed0bd564f55c4f2d987c2e6035eda7aea26375 package data import ( "regexp" "github.com/go-enry/go-enry/v2/data/rule" ) var ContentHeuristics = map[string]*Heuristics{ ".1": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Or( rule.MatchingLanguages("Roff"), regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), ), }, ".1in": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Always( rule.MatchingLanguages("Roff"), ), }, ".1m": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Always( rule.MatchingLanguages("Roff"), ), }, ".1x": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Always( rule.MatchingLanguages("Roff"), ), }, ".2": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Or( rule.MatchingLanguages("Roff"), regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), ), }, ".3": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Or( rule.MatchingLanguages("Roff"), regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), ), }, ".3in": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Always( rule.MatchingLanguages("Roff"), ), }, ".3m": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Always( rule.MatchingLanguages("Roff"), ), }, ".3p": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Always( rule.MatchingLanguages("Roff"), ), }, ".3pm": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Always( rule.MatchingLanguages("Roff"), ), }, ".3qt": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Always( rule.MatchingLanguages("Roff"), ), }, ".3x": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Always( rule.MatchingLanguages("Roff"), ), }, ".4": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Or( rule.MatchingLanguages("Roff"), regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), ), }, ".5": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Or( rule.MatchingLanguages("Roff"), regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), ), }, ".6": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Or( rule.MatchingLanguages("Roff"), regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), ), }, ".7": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Or( rule.MatchingLanguages("Roff"), regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), ), }, ".8": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Or( rule.MatchingLanguages("Roff"), regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), ), }, ".9": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Or( rule.MatchingLanguages("Roff"), regexp.MustCompile(`(?m)^\.(?:[A-Za-z]{2}(?:\s|$)|\\")`), ), }, ".al": &Heuristics{ rule.And( rule.MatchingLanguages("AL"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)\b(?i:(CODEUNIT|PAGE|PAGEEXTENSION|PAGECUSTOMIZATION|DOTNET|ENUM|ENUMEXTENSION|VALUE|QUERY|REPORT|TABLE|TABLEEXTENSION|XMLPORT|PROFILE|CONTROLADDIN))\b`), ), ), rule.Always( rule.MatchingLanguages("Perl"), ), }, ".as": &Heuristics{}, ".asc": &Heuristics{ rule.Or( rule.MatchingLanguages("Public Key"), regexp.MustCompile(`(?m)^(----[- ]BEGIN|ssh-(rsa|dss)) `), ), rule.Or( rule.MatchingLanguages("AsciiDoc"), regexp.MustCompile(`(?m)^[=-]+(\s|\n)|{{[A-Za-z]`), ), rule.Or( rule.MatchingLanguages("AGS Script"), regexp.MustCompile(`(?m)^(\/\/.+|((import|export)\s+)?(function|int|float|char)\s+((room|repeatedly|on|game)_)?([A-Za-z]+[A-Za-z_0-9]+)\s*[;\(])`), ), }, ".asm": &Heuristics{ rule.Or( rule.MatchingLanguages("Motorola 68K Assembly"), regexp.MustCompile(`(?m)(?im)\bmoveq(?:\.l)?\s+#(?:\$-?[0-9a-f]{1,3}|%[0-1]{1,8}|-?[0-9]{1,3}),\s*d[0-7]\b|(?im)^\s*move(?:\.[bwl])?\s+(?:sr|usp),\s*[^\s]+|(?im)^\s*move\.[bwl]\s+.*\b[ad]\d|(?im)^\s*movem\.[bwl]\b|(?im)^\s*move[mp](?:\.[wl])?\b|(?im)^\s*btst\b|(?im)^\s*dbra\b`), ), }, ".asy": &Heuristics{ rule.Or( rule.MatchingLanguages("LTspice Symbol"), regexp.MustCompile(`(?m)^SymbolType[ \t]`), ), rule.Always( rule.MatchingLanguages("Asymptote"), ), }, ".bb": &Heuristics{ rule.Or( rule.MatchingLanguages("BlitzBasic"), regexp.MustCompile(`(?m)(<^\s*; |End Function)`), ), rule.Or( rule.MatchingLanguages("BitBake"), regexp.MustCompile(`(?m)^\s*(# |include|require)\b`), ), }, ".builds": &Heuristics{ rule.Or( rule.MatchingLanguages("XML"), regexp.MustCompile(`(?m)^(\s*)(?i:)`), ), }, ".f": &Heuristics{ rule.Or( rule.MatchingLanguages("Forth"), regexp.MustCompile(`(?m)^: `), ), rule.Or( rule.MatchingLanguages("Filebench WML"), regexp.MustCompile(`(?m)flowop`), ), rule.Or( rule.MatchingLanguages("Fortran"), regexp.MustCompile(`(?m)^(?i:[c*][^abd-z]| (subroutine|program|end|data)\s|\s*!)`), ), }, ".for": &Heuristics{ rule.Or( rule.MatchingLanguages("Forth"), regexp.MustCompile(`(?m)^: `), ), rule.Or( rule.MatchingLanguages("Fortran"), regexp.MustCompile(`(?m)^(?i:[c*][^abd-z]| (subroutine|program|end|data)\s|\s*!)`), ), }, ".fr": &Heuristics{ rule.Or( rule.MatchingLanguages("Forth"), regexp.MustCompile(`(?m)^(: |also |new-device|previous )`), ), rule.Or( rule.MatchingLanguages("Frege"), regexp.MustCompile(`(?m)^\s*(import|module|package|data|type) `), ), rule.Always( rule.MatchingLanguages("Text"), ), }, ".fs": &Heuristics{ rule.Or( rule.MatchingLanguages("Forth"), regexp.MustCompile(`(?m)^(: |new-device)`), ), rule.Or( rule.MatchingLanguages("F#"), regexp.MustCompile(`(?m)^\s*(#light|import|let|module|namespace|open|type)`), ), rule.Or( rule.MatchingLanguages("GLSL"), regexp.MustCompile(`(?m)^\s*(#version|precision|uniform|varying|vec[234])`), ), rule.Or( rule.MatchingLanguages("Filterscript"), regexp.MustCompile(`(?m)#include|#pragma\s+(rs|version)|__attribute__`), ), }, ".gd": &Heuristics{ rule.Or( rule.MatchingLanguages("GAP"), regexp.MustCompile(`(?m)\s*(Declare|BindGlobal|KeyDependentOperation)`), ), rule.Or( rule.MatchingLanguages("GDScript"), regexp.MustCompile(`(?m)\s*(extends|var|const|enum|func|class|signal|tool|yield|assert|onready)`), ), }, ".gml": &Heuristics{ rule.Or( rule.MatchingLanguages("XML"), regexp.MustCompile(`(?m)(?i:^\s*(\<\?xml|xmlns))`), ), rule.Or( rule.MatchingLanguages("Graph Modeling Language"), regexp.MustCompile(`(?m)(?i:^\s*(graph|node)\s+\[$)`), ), rule.Or( rule.MatchingLanguages("Gerber Image"), regexp.MustCompile(`(?m)^[DGMT][0-9]{2}\*$`), ), rule.Always( rule.MatchingLanguages("Game Maker Language"), ), }, ".gs": &Heuristics{ rule.Or( rule.MatchingLanguages("GLSL"), regexp.MustCompile(`(?m)^#version\s+[0-9]+\b`), ), rule.Or( rule.MatchingLanguages("Gosu"), regexp.MustCompile(`(?m)^uses (java|gw)\.`), ), rule.Or( rule.MatchingLanguages("Genie"), regexp.MustCompile(`(?m)^\[indent=[0-9]+\]`), ), }, ".h": &Heuristics{ rule.Or( rule.MatchingLanguages("Objective-C"), regexp.MustCompile(`(?m)^\s*(@(interface|class|protocol|property|end|synchronised|selector|implementation)\b|#import\s+.+\.h[">])`), ), rule.Or( rule.MatchingLanguages("C++"), regexp.MustCompile(`(?m)^\s*#\s*include <(cstdint|string|vector|map|list|array|bitset|queue|stack|forward_list|unordered_map|unordered_set|(i|o|io)stream)>|^\s*template\s*<|^[ \t]*(try|constexpr)|^[ \t]*catch\s*\(|^[ \t]*(class|(using[ \t]+)?namespace)\s+\w+|^[ \t]*(private|public|protected):$|std::\w+`), ), }, ".hh": &Heuristics{ rule.Or( rule.MatchingLanguages("Hack"), regexp.MustCompile(`(?m)<\?hh`), ), }, ".i": &Heuristics{ rule.Or( rule.MatchingLanguages("Motorola 68K Assembly"), regexp.MustCompile(`(?m)(?im)\bmoveq(?:\.l)?\s+#(?:\$-?[0-9a-f]{1,3}|%[0-1]{1,8}|-?[0-9]{1,3}),\s*d[0-7]\b|(?im)^\s*move(?:\.[bwl])?\s+(?:sr|usp),\s*[^\s]+|(?im)^\s*move\.[bwl]\s+.*\b[ad]\d|(?im)^\s*movem\.[bwl]\b|(?im)^\s*move[mp](?:\.[wl])?\b|(?im)^\s*btst\b|(?im)^\s*dbra\b`), ), rule.Or( rule.MatchingLanguages("SWIG"), regexp.MustCompile(`(?m)^[ \t]*%[a-z_]+\b|^%[{}]$`), ), }, ".ice": &Heuristics{ rule.Or( rule.MatchingLanguages("JSON"), regexp.MustCompile(`(?m)\A\s*[{\[]`), ), rule.Always( rule.MatchingLanguages("Slice"), ), }, ".inc": &Heuristics{ rule.Or( rule.MatchingLanguages("Motorola 68K Assembly"), regexp.MustCompile(`(?m)(?im)\bmoveq(?:\.l)?\s+#(?:\$-?[0-9a-f]{1,3}|%[0-1]{1,8}|-?[0-9]{1,3}),\s*d[0-7]\b|(?im)^\s*move(?:\.[bwl])?\s+(?:sr|usp),\s*[^\s]+|(?im)^\s*move\.[bwl]\s+.*\b[ad]\d|(?im)^\s*movem\.[bwl]\b|(?im)^\s*move[mp](?:\.[wl])?\b|(?im)^\s*btst\b|(?im)^\s*dbra\b`), ), rule.Or( rule.MatchingLanguages("PHP"), regexp.MustCompile(`(?m)^<\?(?:php)?`), ), rule.Or( rule.MatchingLanguages("SourcePawn"), regexp.MustCompile(`(?m)^public\s+(?:SharedPlugin(?:\s+|:)__pl_\w+\s*=(?:\s*{)?|(?:void\s+)?__pl_\w+_SetNTVOptional\(\)(?:\s*{)?)`), ), rule.Or( rule.MatchingLanguages("POV-Ray SDL"), regexp.MustCompile(`(?m)^\s*#(declare|local|macro|while)\s`), ), }, ".l": &Heuristics{ rule.Or( rule.MatchingLanguages("Common Lisp"), regexp.MustCompile(`(?m)\(def(un|macro)\s`), ), rule.Or( rule.MatchingLanguages("Lex"), regexp.MustCompile(`(?m)^(%[%{}]xs|<.*>)`), ), rule.Or( rule.MatchingLanguages("Roff"), regexp.MustCompile(`(?m)^\.[A-Za-z]{2}(\s|$)`), ), rule.Or( rule.MatchingLanguages("PicoLisp"), regexp.MustCompile(`(?m)^\((de|class|rel|code|data|must)\s`), ), }, ".lisp": &Heuristics{ rule.Or( rule.MatchingLanguages("Common Lisp"), regexp.MustCompile(`(?m)^\s*\((?i:defun|in-package|defpackage) `), ), rule.Or( rule.MatchingLanguages("NewLisp"), regexp.MustCompile(`(?m)^\s*\(define `), ), }, ".ls": &Heuristics{ rule.Or( rule.MatchingLanguages("LoomScript"), regexp.MustCompile(`(?m)^\s*package\s*[\w\.\/\*\s]*\s*{`), ), rule.Always( rule.MatchingLanguages("LiveScript"), ), }, ".lsp": &Heuristics{ rule.Or( rule.MatchingLanguages("Common Lisp"), regexp.MustCompile(`(?m)^\s*\((?i:defun|in-package|defpackage) `), ), rule.Or( rule.MatchingLanguages("NewLisp"), regexp.MustCompile(`(?m)^\s*\(define `), ), }, ".m": &Heuristics{ rule.Or( rule.MatchingLanguages("Objective-C"), regexp.MustCompile(`(?m)^\s*(@(interface|class|protocol|property|end|synchronised|selector|implementation)\b|#import\s+.+\.h[">])`), ), rule.Or( rule.MatchingLanguages("Mercury"), regexp.MustCompile(`(?m):- module`), ), rule.Or( rule.MatchingLanguages("MUF"), regexp.MustCompile(`(?m)^: `), ), rule.Or( rule.MatchingLanguages("M"), regexp.MustCompile(`(?m)^\s*;`), ), rule.And( rule.MatchingLanguages("Mathematica"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)\(\*`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)\*\)$`), ), ), rule.Or( rule.MatchingLanguages("MATLAB"), regexp.MustCompile(`(?m)^\s*%`), ), rule.Or( rule.MatchingLanguages("Limbo"), regexp.MustCompile(`(?m)^\w+\s*:\s*module\s*{`), ), }, ".m4": &Heuristics{ rule.Or( rule.MatchingLanguages("M4Sugar"), regexp.MustCompile(`(?m)AC_DEFUN|AC_PREREQ|AC_INIT|^_?m4_`), ), rule.Always( rule.MatchingLanguages("M4"), ), }, ".man": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Always( rule.MatchingLanguages("Roff"), ), }, ".mask": &Heuristics{ rule.Or( rule.MatchingLanguages("Unity3d Asset"), regexp.MustCompile(`(?m)tag:unity3d.com`), ), }, ".md": &Heuristics{ rule.Or( rule.MatchingLanguages("Markdown"), regexp.MustCompile(`(?m)(^[-A-Za-z0-9=#!\*\[|>])|<\/|\A\z`), ), rule.Or( rule.MatchingLanguages("GCC Machine Description"), regexp.MustCompile(`(?m)^(;;|\(define_)`), ), rule.Always( rule.MatchingLanguages("Markdown"), ), }, ".mdoc": &Heuristics{ rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dd +(?:[^"\s]+|"[^"]+")`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*Sh +(?:[^"\s]|"[^"]+")`), ), ), rule.And( rule.MatchingLanguages("Roff Manpage"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[.'][ \t]*SH +(?:[^"\s]+|"[^"\s]+)`), ), ), rule.Always( rule.MatchingLanguages("Roff"), ), }, ".ml": &Heuristics{ rule.Or( rule.MatchingLanguages("OCaml"), regexp.MustCompile(`(?m)(^\s*module)|let rec |match\s+(\S+\s)+with`), ), rule.Or( rule.MatchingLanguages("Standard ML"), regexp.MustCompile(`(?m)=> |case\s+(\S+\s)+of`), ), }, ".mod": &Heuristics{ rule.Or( rule.MatchingLanguages("XML"), regexp.MustCompile(`(?m)\s`), ), }, ".pro": &Heuristics{ rule.Or( rule.MatchingLanguages("Proguard"), regexp.MustCompile(`(?m)^-(include\b.*\.pro$|keep\b|keepclassmembers\b|keepattributes\b)`), ), rule.Or( rule.MatchingLanguages("Prolog"), regexp.MustCompile(`(?m)^[^\[#]+:-`), ), rule.Or( rule.MatchingLanguages("INI"), regexp.MustCompile(`(?m)last_client=`), ), rule.And( rule.MatchingLanguages("QMake"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)HEADERS`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)SOURCES`), ), ), rule.Or( rule.MatchingLanguages("IDL"), regexp.MustCompile(`(?m)^\s*function[ \w,]+$`), ), }, ".properties": &Heuristics{ rule.And( rule.MatchingLanguages("INI"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[^#!;][^=]*=`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[;\[]`), ), ), rule.And( rule.MatchingLanguages("Java Properties"), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[^#!;][^=]*=`), ), rule.Or( rule.MatchingLanguages(""), regexp.MustCompile(`(?m)^[#!]`), ), ), rule.Or( rule.MatchingLanguages("INI"), regexp.MustCompile(`(?m)^[^#!;][^=]*=`), ), rule.Or( rule.MatchingLanguages("Java properties"), regexp.MustCompile(`(?m)^[^#!][^:]*:`), ), }, ".q": &Heuristics{ rule.Or( rule.MatchingLanguages("q"), regexp.MustCompile(`(?m)((?i:[A-Z.][\w.]*:{)|(^|\n)\\(cd?|d|l|p|ts?) )`), ), rule.Or( rule.MatchingLanguages("HiveQL"), regexp.MustCompile(`(?m)(?i:SELECT\s+[\w*,]+\s+FROM|(CREATE|ALTER|DROP)\s(DATABASE|SCHEMA|TABLE))`), ), }, ".qs": &Heuristics{ rule.Or( rule.MatchingLanguages("Q#"), regexp.MustCompile(`(?m)^((\/{2,3})?\s*(namespace|operation)\b)`), ), rule.Or( rule.MatchingLanguages("Qt Script"), regexp.MustCompile(`(?m)(\w+\.prototype\.\w+|===|\bvar\b)`), ), }, ".r": &Heuristics{ rule.Or( rule.MatchingLanguages("Rebol"), regexp.MustCompile(`(?m)(?i:\bRebol\b)`), ), rule.Or( rule.MatchingLanguages("R"), regexp.MustCompile(`(?m)<-|^\s*#`), ), }, ".re": &Heuristics{ rule.Or( rule.MatchingLanguages("Reason"), regexp.MustCompile(`(?m)^\s*module\s+type\s|^\s*(?:include|open)\s+\w+\s*;\s*$|^\s*let\s+(?:module\s\w+\s*=\s*{|\w+:\s+.*=.*;\s*$)`), ), rule.Or( rule.MatchingLanguages("C++"), regexp.MustCompile(`(?m)^\s*#(?:(?:if|ifdef|define|pragma)\s+\w|\s*include\s+<[^>]+>)|^\s*template\s*<`), ), }, ".res": &Heuristics{ rule.Or( rule.MatchingLanguages("ReScript"), regexp.MustCompile(`(?m)^\s*(let|module|type)\s+\w*\s+=\s+|^\s*(?:include|open)\s+\w+\s*$`), ), }, ".rno": &Heuristics{ rule.Or( rule.MatchingLanguages("Roff"), regexp.MustCompile(`(?m)^\.\\" `), ), }, ".rpy": &Heuristics{ rule.Or( rule.MatchingLanguages("Python"), regexp.MustCompile(`(?m)(?m:^(import|from|class|def)\s)`), ), rule.Always( rule.MatchingLanguages("Ren'Py"), ), }, ".rs": &Heuristics{ rule.Or( rule.MatchingLanguages("Rust"), regexp.MustCompile(`(?m)^(use |fn |mod |pub |macro_rules|impl|#!?\[)`), ), rule.Or( rule.MatchingLanguages("RenderScript"), regexp.MustCompile(`(?m)#include|#pragma\s+(rs|version)|__attribute__`), ), rule.Or( rule.MatchingLanguages("XML"), regexp.MustCompile(`(?m)^\s*<\?xml`), ), }, ".s": &Heuristics{ rule.Or( rule.MatchingLanguages("Motorola 68K Assembly"), regexp.MustCompile(`(?m)(?im)\bmoveq(?:\.l)?\s+#(?:\$-?[0-9a-f]{1,3}|%[0-1]{1,8}|-?[0-9]{1,3}),\s*d[0-7]\b|(?im)^\s*move(?:\.[bwl])?\s+(?:sr|usp),\s*[^\s]+|(?im)^\s*move\.[bwl]\s+.*\b[ad]\d|(?im)^\s*movem\.[bwl]\b|(?im)^\s*move[mp](?:\.[wl])?\b|(?im)^\s*btst\b|(?im)^\s*dbra\b`), ), }, ".sc": &Heuristics{ rule.Or( rule.MatchingLanguages("SuperCollider"), regexp.MustCompile(`(?m)(?i:\^(this|super)\.|^\s*~\w+\s*=\.)`), ), rule.Or( rule.MatchingLanguages("Scala"), regexp.MustCompile(`(?m)(^\s*import (scala|java)\.|^\s*class\b)`), ), }, ".sol": &Heuristics{ rule.Or( rule.MatchingLanguages("Gerber Image"), regexp.MustCompile(`(?m)^[DGMT][0-9]{2}\*\r?\n`), ), }, ".sql": &Heuristics{ rule.Or( rule.MatchingLanguages("PLpgSQL"), regexp.MustCompile(`(?m)(?i:^\\i\b|AS\s+\$\$|LANGUAGE\s+'?plpgsql'?|BEGIN(\s+WORK)?\s*;)`), ), rule.Or( rule.MatchingLanguages("SQLPL"), regexp.MustCompile(`(?m)(?i:ALTER\s+MODULE|MODE\s+DB2SQL|\bSYS(CAT|PROC)\.|ASSOCIATE\s+RESULT\s+SET|\bEND!\s*$)`), ), rule.Or( rule.MatchingLanguages("PLSQL"), regexp.MustCompile(`(?m)(?i:\$\$PLSQL_|XMLTYPE|systimestamp|\.nextval|CONNECT\s+BY|AUTHID\s+(DEFINER|CURRENT_USER)|constructor\W+function)`), ), rule.Or( rule.MatchingLanguages("TSQL"), regexp.MustCompile(`(?m)(?i:^\s*GO\b|BEGIN(\s+TRY|\s+CATCH)|OUTPUT\s+INSERTED|DECLARE\s+@|\[dbo\])`), ), rule.Always( rule.MatchingLanguages("SQL"), ), }, ".srt": &Heuristics{ rule.Or( rule.MatchingLanguages("SubRip Text"), regexp.MustCompile(`(?m)^(\d{2}:\d{2}:\d{2},\d{3})\s*(-->)\s*(\d{2}:\d{2}:\d{2},\d{3})$`), ), }, ".t": &Heuristics{ rule.Or( rule.MatchingLanguages("Perl"), regexp.MustCompile(`(?m)\buse\s+(?:strict\b|v?5\.)`), ), rule.Or( rule.MatchingLanguages("Raku"), regexp.MustCompile(`(?m)^\s*(?:use\s+v6\b|\bmodule\b|\bmy\s+class\b)`), ), rule.Or( rule.MatchingLanguages("Turing"), regexp.MustCompile(`(?m)^\s*%[ \t]+|^\s*var\s+\w+(\s*:\s*\w+)?\s*:=\s*\w+`), ), }, ".toc": &Heuristics{ rule.Or( rule.MatchingLanguages("World of Warcraft Addon Data"), regexp.MustCompile(`(?m)^## |@no-lib-strip@`), ), rule.Or( rule.MatchingLanguages("TeX"), regexp.MustCompile(`(?m)^\\(contentsline|defcounter|beamer|boolfalse)`), ), }, ".ts": &Heuristics{ rule.Or( rule.MatchingLanguages("XML"), regexp.MustCompile(`(?m) `), ), rule.Always( rule.MatchingLanguages("Scilab"), ), }, ".tsx": &Heuristics{ rule.Or( rule.MatchingLanguages("TSX"), regexp.MustCompile(`(?m)^\s*(import.+(from\s+|require\()['"]react|\/\/\/\s*